* CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2
3         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
4           Implemented more 2.0 members.
5
6 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
7
8         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
9           null (strange, but it seems to happen when running unit tests).
10
11 2007-05-30  Andreia Gaita  <avidigal@novell.com>
12
13         * ContainerControl.cs: Set active_control even earlier, before 
14         firing any events, and undo it if validation returns false.
15
16 2007-05-30  Andreia Gaita  <avidigal@novell.com>
17
18         * ContainerControl.cs: Raise Validation and Enter/Leave events
19         even if there is no Form and set active_control earlier, just
20         before firing Enter events (toshok's patches). Fixes #80647.
21
22 2007-05-30  Jackson Harper  <jackson@ximian.com>
23
24         * TextControl.cs: Redid the pageup/pagedown a little to simplify
25         things and fix bug #81311.
26
27 2007-05-30  Jackson Harper  <jackson@ximian.com>
28
29         * X11Dnd.cs: Now that we have our own event loop, we need to
30         cancel when we get a mouseup but it won't be accepted.
31
32 2007-05-30  Chris Toshok  <toshok@ximian.com>
33
34         * DataGrid.cs (set_CurrentCell): guard against negative
35         column/row.
36
37         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
38         array index syntax instead of looping over the property names.
39
40         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
41         and set IsInEditOrNavigateMode to false there.
42
43 2007-05-30  Jackson Harper  <jackson@ximian.com>
44
45         * TreeView.cs: Make sure we don't get a bad visible order when
46         setting to the top node.  Fixes some misc crashing in
47         ControlInspector.
48
49 2007-05-30  Andreia Gaita  <avidigal@novell.com>
50
51         * UserControl.cs: Add 2.0 AutoSizeMode
52
53 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
54
55         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
56
57 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
58
59         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
60         lines. Fixes #80285. 
61
62 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
63
64         * DataGridColumnStyle.cs: Add char trimming column header text format. 
65
66 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
67
68         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
69         Fixes #80147.
70
71 2007-05-29  Jackson Harper  <jackson@ximian.com>
72
73         * TreeNode.cs: Fix off by one on calculating whether or not a node
74         is visible.
75
76 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
77
78         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
79         * ScrollableControl.cs: Force an UpdateDistances when we move the
80         scrollbars.
81         [Fixes bug #80605]
82
83 2007-05-29  Andreia Gaita  <avidigal@novell.com>
84
85         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
86         update the page setup screen.
87
88 2007-05-29  Andreia Gaita  <avidigal@novell.com>
89
90         * PageSetupDialog.cs: Fix landscape mode.
91
92 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
93
94         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
95         IconSizeHorizontalSpacing.
96
97 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
98
99         * ListView.cs: The declaration of prev_tooltip_item should be inside
100         a NET_2_0 conditional (avoid a warning).
101
102 2007-05-28  Andreia Gaita  <avidigal@novell.com>
103
104         * PageSetupDialog.cs: Implement PrintPreview control to display
105         the preview thumbnail. Change unit conversion to use 
106         PrinterUnitConvert methods.
107         
108         Note: there is a huge bug in ms.net where the default margins are 
109         interpreted as centimeters (?), when in fact they are set in inches. When 
110         loading the page setup dialog initially (ms.net), the default margins 
111         are set to 1 inch, and the dialog shows them with value 10, when in fact 
112         it should be 25 (properly converted). Our dialog doesn't have this bug.
113         
114         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
115         RectangleF.
116         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
117
118 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
119
120         * ListView.cs:
121         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
122         items.
123
124 2007-05-28  Andreia Gaita  <avidigal@novell.com>
125
126         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
127         an IntPtr on csc (it builds fine on mcs, could it be a compiler
128         bug?), convert the ptr to Int32 first.
129
130 2007-05-28  Jackson Harper  <jackson@ximian.com>
131
132         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
133         recieved, we will exit the dnd tracking loop.
134
135 2007-05-28  Jackson Harper  <jackson@ximian.com>
136
137         * X11Dnd.cs: Keep tracking until the xdnd finished event is
138         recieved. TODO: I should probably stick a timer on the dropped
139         event, and finish the drag if the XDND Finished event never shows
140         (because some apps don't seem to send it).
141
142 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
143
144         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
145         #81733.
146
147 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
148
149         * MonthCalendar.cs: Only mark the keypresses we actually handle as
150           handled.
151
152 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
153
154         * MonthCalendar.cs: Set the size after initializing all the relevant
155           variables. Fixes #81742.
156
157 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
158
159         * KeyEventArgs.cs: Fix typo.
160
161 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
162
163         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
164         to match MS. Fixed MinDate to only accept value less than or equal
165         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
166         Removed TODO's that are now verified by unit tests.
167
168 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
169
170         * TreeNodeCollection.cs: Minor corrections to exceptions to match
171         MS.
172
173 2007-05-25  Jackson Harper  <jackson@ximian.com>
174
175         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
176         it's own message loop.
177         * XplatUIX11.cs: Remove some of the dnd hooks
178
179 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
180
181         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
182         instead of MinimizedWindowSize.
183
184 2007-05-25  Jackson Harper  <jackson@ximian.com>
185
186         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
187
188 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
189
190         * KeyEventArgs.cs: Added SuppressKeyPress.
191         * Control.cs: Added support for SuppressKeyPress.
192
193 2007-05-24  Andreia Gaita  <avidigal@novell.com>
194
195         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
196         problems with PieChart. suppress_validation should not be a counter,
197         if there are several BeginInit calls, the first EndInit will 
198         activate validation. Fix exceptions thrown by set_Value.
199         * UpDownBase.cs: ValidateText only if it's the user editing it.
200
201 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
202
203         * ListControl.cs: FilterItemOnProperty should return the filtered
204         item proeprty even if DataSource is null. The same applies for
205         GetItemText. Fixes #80427.
206
207 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
208
209         * Control.cs: If a control doesn't have a parent when it's Dock is
210         set, but it has children, it needs to do a layout.  Fixes some nested
211         controls issues.  [Fixes bug #81199]
212
213 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
214
215         * ComboBox.cs: If there are few items in the drop down list, make it
216           the exact size the items need, no bigger. Fixes #81612.
217
218 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
219
220         * Application.cs: When we have captured the keyboard for a menu,
221         check for mouse down events in case we need to close the menu.
222         * Control.cs, Form.cs: Remove mouse down checks for menus.
223
224 2007-05-24  Jackson Harper  <jackson@ximian.com>
225
226         * TextControl.cs: Handle tabs in non multiline mode a little
227         differently.
228
229 2007-05-24  Jackson Harper  <jackson@ximian.com>
230
231         * TextControl.cs: We need to manually break apart tabbed text and
232         move the tabs, since the system.drawing tabbing mechanism relies
233         on tab stops.
234         * TextBoxBase.cs: Move the caret properly when the user enters a
235         tab.
236
237 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
238
239         * ContainerControl.cs: Don't check CanSelect before calling
240         ProcessMnemonic.
241         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
242         release a KeyboardActive on click if it's not ours.
243
244 2007-05-23  Andreia Gaita  <avidigal@novell.com>
245
246         * ColumnHeader.cs: Add TypeConverter
247
248 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
249
250         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
251
252 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
253
254         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
255
256 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
257
258         * LinkLabel.cs: Implement public Padding property.
259
260 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
261
262         * LinkLabel.cs: Implement public FlatStyle.
263
264 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
265
266         * Control.cs: Apply patch from George to call parent.PerformLayout
267         when Visible is changed.  [Fixes bugs #81118, 81718]
268
269 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
270
271         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
272
273 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
274
275         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
276
277 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
278
279         * ContextMenu.cs: Implement Collapse.
280
281 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
282
283         * ToolBarButton.cs: Implement Name.
284
285 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
286
287         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
288         use current_item, it prevents some NRE. Fixes #81675.  
289
290 2007-05-22  Andreia Gaita  <avidigal@novell.com>
291
292         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
293         without updating the text.
294
295 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
296
297         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
298         without calling DeleteObject.  [Should fix bug #81709]
299
300 2007-05-22  Jackson Harper  <jackson@ximian.com>
301
302         * RichTextBox.cs: Set the line endings correctly, when flushing
303         RTF text.
304
305 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
306
307         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
308          {Width=0,Height=0}.
309
310 2007-05-22  Jackson Harper  <jackson@ximian.com>
311
312         * TreeView.cs: Setting top with a null node should set to the very
313         top.
314
315 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
316
317         * Form.cs: ShowDialog: destroy the handle when message loop is
318           finished, matches MS behaviour. Refactor parts of WmClose into
319           RaiseCloseEvents, that only raises events if they haven't already
320           been raised. Fixes #81688 and #81521.
321         * Application.cs: Don't call close on the form when exiting a modal
322           loop, it will raise all the (Form)Closed/Closing events again if
323           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
324           which doesn'r raise any events it they have been raised before.
325
326 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
327
328         * Control.cs: Add OnPrint.
329         * ToolStrip.cs: Add GetChildAtPoint.
330         * ToolStripContainer.cs: Add OnRightToLeftChanged.
331         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
332
333 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
334
335         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
336
337 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
338
339         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
340           isn't visible anymore. Fixes #81651.
341
342 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
343
344         * Control.cs: WmShowWindow: Update children's z-order after setting
345           their parent. SetParent may show the window, thereby corrupting
346           z-order, since the window will be shown on top.
347         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
348           multiple (and redundant) WM_SHOWWINDOW messages.
349         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
350           event has already been raised.
351         * Form.cs: Change is_changing_visible_state to a counter, since
352           SetVisibleCore can be called recursively. CreateHandle: when
353           creating mdi children, send (De)Activated events.
354         * MdiClient.cs: Update use of is_changing_visible_state.
355         * Application.cs: OnThreadException: Surround exception handling with
356           try/finally to ensure we always reset the error-handling state
357           before leaving.
358
359 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
360
361         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
362           (#81704).
363
364 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
365
366         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
367         SmallIcon views, now that we have a standarized horizontal spacing.
368
369         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
370         4, just like the other views (Match .Net).
371
372 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
373
374         * Control.cs: Delay calculating anchor distances until we actually layout.
375         Always query the WM for the actual size and location it put us at instead of
376         only when we send negative values.
377         [Fixes bugs #81694, 81695]
378
379 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
380
381         * Application.cs: Avoid a possible stack overflow when trying to exit
382           the application.
383
384 2007-05-19  Marek Safar  <marek.safar@gmail.com>
385
386         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
387         enum value.
388
389 2007-05-19  Andreia Gaita  <avidigal@novell.com>
390
391         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
392         * NumericUpDownAcceleration.cs, 
393           NumericUpDownAccelerationCollection.cs: Added 2.0
394           implementation.
395
396 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
397
398         * RichTextBox.cs: Recalculate the document after the ScrollBars
399         property is changed. Fixes bug #81681.
400
401 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
402
403         * DataObject.cs: Implement 2.0 methods.
404
405 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
406
407         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
408         in the center of the checkbox, not in the left-top corner. 
409         Fixes #80037.
410
411 2007-05-18  Jackson Harper  <jackson@ximian.com>
412
413         * RichTextBox.cs: Recalculate the document after the scrollbars
414         property is changed.
415         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
416         81486.
417
418 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
419
420         * CreateParams.cs: Make HasWindowManager marginally faster.
421         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
422           into Hwnd so that other drivers can use it as well.
423         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
424           the default location from Hwnd. Fixes MDI client windows always
425           showing up at (0,0) in Windows (Win32 won't set the default
426           location since the window styles aren't correct).
427
428 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
429
430         * TreeView.cs: Modified DoubleBuffered to just use the base
431         implementation.
432
433 2007-05-18  Jackson Harper  <jackson@ximian.com>
434
435         * TreeView.cs: Set the top node to the last child node when
436         expanding all
437         - When we get focus, if there is no selected node, use the top
438         node.
439
440 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
441
442         * KeysConverter.cs: Add CanConvertTo.
443         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
444         * LinkConverter.cs: Added.
445
446 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
447
448         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
449         it prevents error when file dont have write access. Fixes #81669 and #81667.  
450
451 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
452
453         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
454         button text. Fixes #79640.  
455
456 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
457
458         * Control.cs: According to MSDN controls created in the designer theres 
459         keyboard accelerators visible by default. So included check for design
460         in ShowKeyboardCuesInternal.  
461
462 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
463
464         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
465         text. Fixes #81621.  
466
467 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
468
469         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
470         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
471
472 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
473
474         * Control.cs: Finish implementation of UI State using WmChangeUIState
475         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
476         in some controls to check for show_keyboard_cues to draw accell keys "_".  
477
478 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
479
480         * ListBox.cs: When calculating the horizontal scrollbar
481         in single column mode, don't use values less than 0 for
482         Maximum. Fixes #81474.
483
484 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
485
486         * ListBox.cs: Throw the some missing exceptions in
487         ListBox.ObjectCollection methods.
488
489 2007-05-17  Jackson Harper  <jackson@ximian.com>
490
491         * TextBoxBase.cs: Recalculate the document when the word wrap
492         value has changed. This fixes 81488.
493
494 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
495
496         * Clipboard.cs: Implement missing GetText overload.
497
498 2007-05-17  Chris Toshok  <toshok@ximian.com>
499
500         * Control.cs (CheckDataBindings): remove the binding_context arg
501         to binding.Check.
502
503         * CurrencyManager.cs (OnItemChanged): fix this now that
504         BindingManagerBase is fixed. also remove the comment telling where
505         the fix should go.  We set transfering_data to true/false around
506         the call to PushData to keep UpdateIsBinding from being called.
507         (ListChangedHandler): remove the extra OnMetaDataChanged call for
508         PropertyDescriptorAdded in the 1.1 case.  The extra call is
509         actually generated by System.Data generating 2 metadata changed
510         events of its own per column add.  The fix should go there.  Add a
511         comment to that affect in our test's Assert.Ignore.
512
513         * BindingManagerBase.cs: Rework PullData and PushData slightly.
514         we keep a boolean flag (transfering_data) that keeps us from
515         calling UpdateIsBinding multiple times if we re-enter either of
516         them.
517
518         * ControlBindingsCollection.cs (AddCore): remove the
519         binding_context arg to binding.Check.
520
521         * Binding.cs (IsBinding): don't check if we're binding here, just
522         return our cached value.  we update it in UpdateIsBinding.
523         (Check): don't take the binding_context arg, we'll just use our
524         control's.  Also, for some reason MS doesn't use the data member
525         field when getting the bindingmanager for this binding.  it just
526         uses the datasource.  Make this method callable multiple times,
527         and only do the is_null_desc stuff if manager.Position != -1 (so
528         we don't get an exception accessing manager.Current).
529         (UpdateIsBinding): move the code from IsBinding here.
530         (PositionChangedHandler): call Check here to we can initialize
531         things that require a non- -1 position.
532
533 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
534
535         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
536         control.
537
538 2007-05-17  Andreia Gaita  <avidigal@novell.com>
539
540         * TabControl.cs: Add 2.0 methods and events, including
541         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
542         * TabPage.cs: Add 2.0 methods
543
544 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
545
546         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
547         keyboard_cues is properly handled by message method.  
548
549 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
550
551         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
552
553 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
554
555         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
556
557 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
558
559         * Control.cs: 
560         - WmUpdateUIState added to handle state changes, it make call to
561         OnChangeUICues event.
562         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
563         SystemInformation.
564
565 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
566
567         * ImageKeyConverter.cs: Added.
568         * TreeViewImageKeyConverter.cs: Added.
569
570 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
571         
572         * ToolTips.cs: Update Text if SetToolTip is called for a control
573         already showing the tooltip, as well as restarting its timer; show
574         tooltip if we are inside the control bounds by the time of calling
575         SetToolTip. Inside ShowTooltip remove the check to not show the 
576         tooltip again for the active control (it is allowed by .Net to 
577         show the tooltip on the same control multiple times).
578
579 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
580
581         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
582
583 2007-05-16  Andreia Gaita <avidigal@novell.com> 
584
585         * ContainerControl.cs: only process tab key if there are no 
586         modifier keys present, otherwise the control does the 
587         tab processing, if it needs to. Fixes #81622
588         * TabControl.cs: Fixes calculation for which tab to select on
589         shift+ctrl+tab.
590
591 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
592
593         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
594
595 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
596
597         * Control.cs: Make IsInputCharInternal to allow controls to
598         override it and still match MS API.
599         * TextBoxBase.cs: Override IsInputCharInternal and always
600         return true.
601         [Fixes bug #81616]
602
603 2007-05-15  Jackson Harper  <jackson@ximian.com>
604
605         * TextBox.cs: Disable some of the menu options when using a
606         readonly textbox.
607
608 2007-05-15  Jackson Harper  <jackson@ximian.com>
609
610         * TextBox.cs:
611         * TextBoxBase.cs:
612         * RichTextBox.cs: Some new 2.0 methods
613
614 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
615
616         * FileDialog.cs: On 1.0 profile, do not support multidotted 
617         extensions.
618
619 2007-05-14  Jackson Harper  <jackson@ximian.com>
620
621         * TextBoxBase.cs: Implement some of the new 2.0 methods.
622         * RichTextBox.cs: We need to override these methods on 2.0.
623         * MaskedTextBox.cs: These are implemented now
624         * TextControl.cs: This was off by one.
625
626 2007-05-14  Jackson Harper  <jackson@ximian.com>
627
628         * TextControl.cs: Because the line endings are including in the
629         text, we don't need to add them in anymore.
630
631 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
632
633         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
634         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
635
636 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
637
638         * ToolBar.cs: Adjust size to default size when button theres no text and
639         image, it fixes remaining issues from #81524.
640
641 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
642
643         * ToolBar.cs: 
644         - When not flat call redraw to recalculate sizes on creare handle to match
645         win32 behavior.
646         - Revert 77220 because it causes some regressions in toobar
647         button.
648
649 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
650
651         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
652           now actually enters a usable state.
653
654 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
655
656         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
657         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
658         3 buttons.
659
660 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
661
662         * ToolBar.cs: Save default_size on create handle to use later for buttons
663         without text, needed to mimic win32 behavior.
664
665 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
666
667         * ToolBar.cs: Fix button layour to best fit width or height according to
668         vertical or not. Fixes #81524.
669
670 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
671
672         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
673         toolbar size info because different styles theres different sizes.
674         Fixes #81522.
675
676 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
677
678         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
679         if we are using checkboxes, checked is true, and we have less
680         than two images in StateImageList; for the 1.1 in the same scenario
681         draw the first image if we have at least one image in StateImageList.
682         Fixes part of #81191.
683
684 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
685
686         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
687         the owner's Items collection on merge.
688
689 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
690
691         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
692         * ToolStripItemCollection.cs: Lots of fixes to when events get called
693         and parent/owner gets changed based on gert's unit tests.
694
695 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
696
697         * MaskedTextBox.cs: Started implementing parts of it.
698
699 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
700
701         * ListView.cs: When clicking the checkbox on the items
702         take into account the double clicks even if we have only
703         one image in StateImageList (only for 1.0/1.1). Also 
704         generate an extra change of checked state when we receive
705         the second click on checkbox (match .Net behaviour). 
706         Fixes part of #81191.
707
708 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
709
710         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
711
712 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
713
714         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
715         even if OnLoad is overriden and base.OnLoad is not called.
716         [Fixes bug #81582]
717
718 2007-05-10  Andreia Gaita  <avidigal@novell.com>
719
720         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
721         shame. (I blame my ever-persisting and annoying cold)
722
723 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
724
725         * ListView.cs: Don't eat navigation keys.  Let them flow through to
726         KeyDown/KeyPress routines.  [Fixes bug #81569]
727
728 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
729
730         * ListView.cs: When handling keys for selecting the item based off
731         keyboard input, do not consider keys pressed with Alt or Control.  Also,
732         correctly handle keys when the Shift key is down. [Fixes bug #81578]
733
734 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
735
736         * Control.cs: When using UseWaitCursor, we have to store the requested
737         Cursor to use when UseWaitCursor is turned off.
738
739 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
740
741         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
742         to false.
743         * Application.cs: Use PreProcessControlMessage instead of
744         PreProcessMessage.
745         * PreProcessControlMessage.cs: Make internal for 1.1.
746
747 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
748
749         * Control.cs: Add InternalContains focus property, which hast the same
750         functionality of ContainsFocus, but also including implicit controls.
751         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
752         since we need to know if the focus is contained in our implicit
753         ItemControl when calculating Layout. Fixes part of #80888.
754
755 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
756
757         * ToolTip.cs: Remove center form string alignment as it must be align to
758         left.
759
760 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
761
762         * ToolStripItemCollection.cs: Set the new item's parent and owner
763         in Insert like we do in Add.  [Fixes bug #81568]
764
765 2007-05-08  Jackson Harper  <jackson@ximian.com>
766
767         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
768         - Off by one error in SetTop
769         - Disable DoubeBuffering
770         
771 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
772
773         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
774           control as much as necessary in order to make it entirely visible,
775           instead of centering the control in the container (matches MS
776           behaviour). CalculateCanvasSize: we need to take the current scroll
777           position into account when calculating the maximum canvas,
778           otherwise the following scenario will fail: resize so that the
779           scrollbars appear, use the scrollbars to scroll, resize again
780           smaller, and now the canvas size is too small. Recalculate: when
781           showing scrollbars make sure they start off at 0, and try to scroll
782           the active control into view. Fixes #79540. HandleScrollBar: don't
783           scroll anywhere if the scrollbar isn't visible.
784
785 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
786
787         * ListView.cs: When focus changed, call Layout/Invalidate
788         in the focused item to update the selected state (should show
789         entire label when ListView is focused, and a part of it if is not).
790         * ListViewItem.cs: When doing layout for LargeIcon, take into account
791         for displaying the entire label not only the Focused state of the
792         item, but also the Focused state of the ListView (match .Net
793         behaviour).
794
795 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
796
797         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
798         Implement UseWaitCursor. 
799
800 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
801         Applying contributed patch from Sergey Volk.
802
803         * Clipboard.cs: Implement SetDataObject retry logic and new overload
804         of SetDataObject.
805         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
806
807 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
808
809         * Control.cs: Implement DrawToBitmap.
810
811 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
812         Applying contributed patch from Stefan Noack.
813         
814         * Control.cs: Add [Get|Set]AutoSizeMode.
815
816 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
817
818         * MdiClient.cs: Unmerge menus when the last child is closed.
819
820 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
821
822         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
823         * ToolStripManager.cs: Call Merge on DropDowns.
824         [Fixes bug #81477]
825
826 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
827
828         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
829           uints.
830         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
831           visibility. We can't create forms visible, since we have to set the
832           owner before making the form visible (otherwise Win32 will do
833           strange things with task bar icons). The problem is that we set the
834           internal is_visible to true before creating the control, so
835           is_changing_visible_state is the only way of determining if we're
836           in the process of creating the form due to setting Visible=true -
837           this works because SetVisibleCore explicitly makes the form
838           visibile afterwards anyways. Fixes #80775.
839
840 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
841
842         * ThemeWin32Classic.cs: When drawing ListViewItems,
843         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
844         or LargeIcon _and_ item is not focused (match .Net behaviour).
845
846 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
847
848         * Control.cs, Form.cs: Fix some obsolete method warnings.
849
850 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
851
852         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
853         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
854
855 2007-05-04  Andreia Gaita  <avidigal@novell.com>
856
857         * ContainerControl.cs: Fix active_control attribution when going
858         up the parent chain so that the first parent container gets the control
859         and the rest of the parent containers get the child containers (skips
860         non-containers). Fixes #80729
861
862 2007-05-04  Randolph Chung  <tausq@debian.org>
863
864         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
865         [Fixes bug #81499]
866
867 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
868
869         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
870           takes a size parameter, since the CreateParam's size isn't true for
871           minimized forms. Fixes #81518,
872
873 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
874
875         * Form.cs: Add OnDeactivateInternal.
876         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
877
878 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
879
880         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
881           accessing the parent. Fixes #81508.
882
883 2007-05-03  Chris Toshok  <toshok@ximian.com>
884
885         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
886         2.0 block, pass listposition + 1 to ChangeRecordState when a row
887         was added before the current listposition.  Fixes the
888         TestInsertRowBeforeCurrent unit test.
889
890 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
891
892         * Application.cs: Add RaiseIdle.
893         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
894         XplatUIX11.cs: Implement RaiseIdle.
895
896 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
897         corcompare work: N - Z
898         * NotifyIcon.cs
899         * ProgressBar.cs
900         * RadionButton.cs
901         * ScrollableControl.cs
902         * SplitContainer.cs
903         * SplitterPanel.cs
904         * StatusBar.cs
905         * SystemInformation.cs
906         * TabControl.cs
907         * TableLayoutControlCollection.cs
908         * TableLayoutPanel.cs
909         * TabPage.cs
910         * ToolBar.cs
911         * ToolBarButton.cs
912         * ToolStrip.cs
913         * ToolStripComboBox.cs
914         * ToolStripContainer.cs
915         * ToolStripContentPanel.cs
916         * ToolStripDropDown.cs
917         * ToolStripDropDownItem.cs
918         * ToolStripDropDownMenu.cs
919         * ToolStripItem.cs
920         * ToolStripItemCollection.cs
921         * ToolStripMenuItem.cs
922         * ToolStripPanel.cs
923         * ToolStripSplitButton.cs
924         * ToolTip.cs
925         * TreeNode.cs
926         * TreeNodeCollection.cs
927         * TreeNodeMouseHoverEventArgs.cs
928         * TreeView.cs
929
930 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
931
932         * ContextMenu.cs: Add public method Show with alignment property to 2.0
933         stuff. Thanks aatdark for the patch. 
934
935 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
936
937         * GridItem.cs: Implement 2.0 Tag property.
938
939 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
940
941         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
942         count instead of Nodes.Length.  [Fixes bug #81448]
943
944 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
945
946         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
947         [Fixes bug #81506]
948
949 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
950         corcompare work: A - M
951         * BindingNavigator.cs
952         * Button.cs
953         * ButtonBase.cs
954         * CheckBox.cs
955         * Control.cs
956         * FlowLayoutPanel.cs
957         * Form.cs
958         * Label.cs
959         * LinkLabel.cs
960         * ListView.cs
961
962 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
963
964         * Application.cs: Give toolstrips a chance to process mnemonics.
965         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
966         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
967         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
968
969 2007-05-01  Jackson Harper  <jackson@ximian.com>
970
971         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
972         wider area too.
973         - Don't set the BoundsSpecified
974
975 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
976
977         * Application.cs: When using the toolstrip shortcut mechanism, allow the
978         message to pass through to a regular control if it hosted by a toolstrip.
979         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
980         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
981
982 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
983
984         * TextRenderer.cs: Use the flags argument when using the MeasureString
985         fallback algorithm.
986
987 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
988
989         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
990         the MDI menu item.  [Fixes bug #81483]
991
992 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
993
994         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
995         string. When setting Name to null, use zero-length string instead.
996
997 2007-04-29  Andreia Gaita  <avidigal@novell.com>
998
999         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
1000         DeselectTab). Implement missing 2.0 TabPageCollection methods
1001         (Add, ContainsKey, RemoveByKey, IndexOfKey)
1002
1003 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
1004
1005         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
1006
1007 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
1008
1009         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
1010         Fixes bug #81479. Include details of exception when LoadFile fails.
1011
1012 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
1013
1014         * DrawListViewSubItemEventArgs.cs: Added missing setter
1015
1016 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1017
1018         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
1019         Hide methods (not complete). Implement missing 2.0 OnPopup event.
1020
1021 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1022
1023         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
1024         removed in ly last commit (it was breaking the Label edit feature).
1025
1026         * ThemeWin32Classic.cs: When drawing a ListViewItem use
1027         StringAlignment.Near for LineAlignment (match .Net).
1028
1029 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1030
1031         * TabControl.cs: Change SetTab so it adds the tabpage to the list
1032         of controls if it isn't already there - was blowing up when doing
1033         tabcontrol.TabPages[i]=new TabPage(). 
1034         SetTab now does a replace by removing the page at the index. 
1035         Add a new InsertTab method that inserts a page in a given index 
1036         instead of replacing. 
1037         Implements TabPageCollection.Insert(int, TabPage).
1038
1039 2007-04-27  Chris Toshok  <toshok@ximian.com>
1040
1041         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
1042         internal handler that can be invoked from our subclasses.)  Also,
1043         add a comment to PushData about how we need to fix it.
1044
1045         * CurrencyManager.cs: tons of changes here.  trying to get things
1046         matching the behavior of .net wrt event orders (ItemChanged,
1047         CurrentChanged, PositionChanged.)  I've implemented a private .net
1048         symbol (ChangeRecordState) that appears in stack traces because
1049         it's actually easier to do this than to effective inline all its
1050         various behaviors at every call site.
1051
1052         * RelatedPropertyManager.cs: guard against an exception here by
1053         not using parent.Current if the position is set to -1 (if the
1054         parent datasource is cleared, for instance).
1055
1056         * Binding.cs: don't parse data in PushData (this might be wrong,
1057         but it jives with MS's behavior.)  Also, don't call PushData when
1058         we get a CurrentChanged event.
1059
1060 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1061
1062         * WebBrowser.cs,
1063           WebBrowserBase.cs,
1064           WebBrowserSiteBase.cs,
1065           HtmlDocument.cs: Added stubbed out classes, no real implementations 
1066           yet.
1067
1068 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1069
1070         * MainMenu.cs: In draw method without parameters call draw method with 
1071         PaintEvent, another one (just rect) adjust rectangle and we dont need it
1072         as Rect property is already adjusted. Fixes #80694.
1073
1074 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
1075
1076         * Application.cs: Need to handle keyboard menu deselection here.
1077         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
1078         navigation, allowing keyboard to work on X11.
1079         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
1080
1081 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1082
1083         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
1084         menu bar. It fixes some drawing issues in menu bar.
1085
1086 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1087
1088         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
1089         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
1090         when <alt> key is pressed.
1091
1092 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1093
1094         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
1095         example just set visible to false and make this prevent from other problems.
1096         In SystrayAdd always remove pending expose. Fixes #81072.
1097
1098 2007-04-26  Marek Safar  <marek.safar@gmail.com>
1099
1100         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
1101         value is set.
1102
1103 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1104
1105         * ListView.cs: Added three missing 2.0 events and corresponding
1106         EventHandlers. Added the OwnerDraw property.
1107         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
1108
1109 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1110
1111         * DrawListViewItemEventArgs.cs
1112         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
1113
1114 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1115
1116         * TextControl.cs: Fixed typo in constructor
1117
1118 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
1119
1120         * Application.cs: Create a shortcut path so that currently selected
1121         MenuStrips can intercept keyboard events without having focus.
1122         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
1123         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
1124         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
1125         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
1126         generate WM_SYSCOMMAND message in X11 for other platforms.
1127         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
1128         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
1129         * ToolStripSplitButton.cs: Add DefaultItem property.
1130         
1131 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1132
1133         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
1134         fixes some menu draw problem on Windows with border diferent from default
1135         it also fixes #81403.
1136
1137 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1138
1139         * Form.cs: Refactor WndProc into separate methods, just like Control is
1140           doing it.
1141
1142 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1143
1144         * Control.cs: set_Text: move the call to the driver into a seperate
1145           virtual method so that Form can override it.
1146         * MaskedTextBox.cs: Corcompare fixes.
1147         * Form.cs: Override UpdateWindowText and only update the styles if the
1148           form has been shown (fixes #81405).
1149
1150 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1151
1152         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
1153         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
1154         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
1155         the form lost focus or another control was clicked.
1156
1157 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
1158
1159         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
1160         fixed.
1161
1162 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1163
1164         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
1165           DrawListViewItemEventHandler.cs,
1166           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
1167           Added.
1168         * X11Structs.cs: More ToString implementation.
1169
1170 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1171
1172         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
1173         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
1174
1175 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1176
1177         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
1178           handle.
1179         * FormCollection.cs: Don't add a form if it's already in the
1180           collection.
1181         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
1182           according to behaviour and MSDN. The ownerWin32 is the active
1183           window at the moment when we call ShowDialog, not the context's
1184           main form (the context's main form may open another form that opens
1185           a form with ShowDialog, the win32 owner is the second form). Add
1186           and remove forms to the Application.OpenForms in other places to
1187           better match MS behaviour. Add an IsActive property that raises
1188           On(de)Activated only if the active state has changed (we were
1189           raising OnDeactivated before OnActivated while creating forms).
1190         * Application.cs: Refactor Enabling/Disabling of windows for modal
1191           dialog loops out to separate methods, and restore the thread
1192           context when we quit the method. Fixes #81407.
1193
1194 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1195
1196         * ListView.cs: In ItemControl.HandleClicks, also fire 
1197         2.0 MouseClick or MouseDoubleClick events on the parent,
1198         not only the Click/DoubleClick events.
1199
1200 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1201
1202         * TableLayoutSettings.cs: 
1203         - Added a GetControls method and a support structure to help the 
1204         TypeConverter to enumerate the controls for     serialization. 
1205         - Added a new serialization constructor. 
1206         - Added a isSerialized flag initialized to true on the 
1207         serialization constructor so that the TableLayoutPanel.LayoutSettings 
1208         setter does not throw the designed NotSupportedOperation exception
1209         when the object is built through deserialization.
1210         - Implemented GetObjectData
1211         
1212         * TableLayoutPanel.cs: Added check on LayoutSettings.
1213
1214 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1215
1216         * ListView.cs: Report Click and DoubleClick events to the parent
1217         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
1218         from breaking the click count state when using dialog forms (Control
1219         reports the clicks in a similar fashion). In the previous behaviour
1220         the last WM_LBUTTONUP message in a  double click was sent to the
1221         ListView's form, instead of the ListView, which was breaking the click
1222         count for it. Fixes #80387.
1223
1224 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1225
1226         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
1227
1228 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1229
1230         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
1231         us from created dropdowns for menu items that do not have subitems.
1232         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
1233         Check HasDropDownItems before calling DropDown so a dropdown will not be
1234         created if it isn't needed.
1235
1236 2007-04-24  Jackson Harper  <jackson@ximian.com>
1237
1238         * TreeView.cs: Set the first node to the selected node when we get
1239         focus if there is no selected node.
1240
1241 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1242
1243         * MimeIcon.cs: remove using blocks so that image streams are
1244         not disposed of. Fixes #80151
1245
1246 2007-04-24  Jackson Harper  <jackson@ximian.com>
1247
1248         * TextBoxBase.cs: Fixup the height of textboxes when the control
1249         is created.
1250
1251 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1252
1253         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
1254         for each ToolStripItem when the parent's RightToLeftChanged is called.
1255
1256 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1257
1258         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
1259           Fixes #80163.
1260         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
1261           property, so that the setter can be overriden too.
1262         * TextBox.cs: Change GetContextMenuInternal() to use
1263           ContextMenuInternal.
1264
1265 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1266
1267         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1268           #81406.
1269
1270 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1271
1272         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1273           #81406.
1274
1275 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1276
1277         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
1278           avoid duplicate work. Mostily skeleton code, it's not working at
1279           all yet.
1280
1281 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
1282
1283         * NotifyIcon.cs : stub for MouseClick event
1284         * Application.cs: stub for SetUnhandledExceptionMode
1285
1286 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1287
1288         * BindingNavigator.cs : Initial (partial) implementation
1289
1290 2007-04-23  Jackson Harper  <jackson@ximian.com>
1291
1292         * TreeView.cs: Do not create the treeview's handle when setting
1293         the scroll position.
1294         - ExpandAll needs to compute the scrollbars so it knows which
1295         position to set the bar too.
1296         * TreeNode.cs: 
1297         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
1298
1299 2007-04-23  Jackson Harper  <jackson@ximian.com>
1300
1301         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
1302         key. Fixes #81408.
1303
1304 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
1305
1306         * ToolStripItem.cs: Make GetImageSize internal.
1307         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
1308         need to draw an item.  Fixes a reported issue where images on menus
1309         that were not 16x16 were drawing incorrectly.
1310
1311 2007-04-21  Miguel de Icaza  <miguel@novell.com>
1312
1313         * Padding.cs: Use the converter, fixes the resgen2 issue with
1314         XMLNotePad. 
1315
1316 2007-04-21  Jackson Harper  <jackson@ximian.com>
1317
1318         * TreeView.cs: Dont try to unhighlight the selected node if there
1319         isn't a selected node.
1320
1321 2007-04-21  Jackson Harper  <jackson@ximian.com>
1322
1323         * UpDownBase.cs:
1324         * TextBoxBase.cs:
1325         * ListView.cs:
1326         * ListBox.cs:
1327         * TreeView.cs: Use the InternalBorderStyle property to set the
1328         initial border style, this forces the client rectangle to be sized
1329         correctly.
1330
1331 2007-04-20  Jackson Harper  <jackson@ximian.com>
1332
1333         * TreeView.cs: Simplify scrolling to the last node after expanding
1334         all.
1335         - Fix some off by ones with setting the bottom.
1336
1337 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1338
1339         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
1340         that.  We were incorrectly doing it the other way around.  Also,
1341         update ClientSize if we change the BorderStyle before the control
1342         is created.
1343
1344 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1345
1346         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1347         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1348         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
1349         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1350         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1351         Caption to CaptionHeight.
1352         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
1353         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
1354         and FixedFrameBorderSize to return value from current XplatUI driver.
1355         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
1356         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
1357         and FixedFrameBorderSize using win32 API. Renamed Caption to
1358         CaptionHeight.
1359         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
1360         * SystemInformation.cs: Fixed typo in BorderSize.
1361
1362 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1363
1364         * XplatUI.cs: Added MenuAccessKeysUnderlined.
1365         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
1366         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
1367         returning false.
1368         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
1369         value from XplatUI driver.
1370         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
1371         SystemParametersInfo.
1372         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
1373         override.
1374         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
1375         returning false.
1376
1377 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1378
1379         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
1380
1381 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1382
1383         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
1384
1385 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1386
1387         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
1388         MenuStrips that contain ToolStripSeparators.
1389
1390 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1391
1392         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
1393           DefineStdCursorBitmap.
1394         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
1395           has been created off a standard cursor. This is used to get a
1396           bitmap of the standard cursor when Draw or DrawStretched is called
1397           in order to draw the cursor.
1398         * X11Structs.cs: Added XcursorImage and XcursorImages.
1399         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
1400           DefineStdCursorBitmap.
1401         * Cursors.cs: Update all relevant creations of Cursor to use the new
1402           internal constructor.
1403
1404 2007-04-19  Jackson Harper  <jackson@ximian.com>
1405
1406         * TextBox.cs: Move the has_been_focused into the base control, so
1407         some of the text adding methods can manipulate it (probably time
1408         for a better name for this flag too).
1409         - Call a new version of selectall that doesn't scroll
1410         * TextBoxBase.cs: When we append text, if the document is empty,
1411         don't scroll.  If the document has text already, we scroll to the
1412         end of the appended text.
1413         - When the text is changed, we reset the has_been_focused, so the
1414         next time the control gets focused, all the text is selected.
1415
1416 2007-04-19  Jackson Harper  <jackson@ximian.com>
1417
1418         * TextControl.cs: Move the margins to the document, add a method
1419         so the margin sizes can be updated.
1420         * TextBoxBase.cs: When the border style is changed, update the
1421         border sizes.
1422
1423 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
1424
1425         * Control.cs: Respect DefaultPadding.
1426         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
1427         padding into account.
1428         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
1429
1430 2007-04-19  Jackson Harper  <jackson@ximian.com>
1431
1432         * TextControl.cs: Oops, we need to use the ClientRect not the
1433         bounds here.
1434
1435 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1436
1437         * ListView.cs: In ItemControl.ItemsMouseDown, take into
1438         account the double clicks when CheckBoxes are used and
1439         the pointer is inside the checkbox. Fixes part of #81191.
1440
1441 2007-04-18  Jackson Harper  <jackson@ximian.com>
1442
1443         * TextControl.cs: Pressing the end key shouldn't move the caret
1444         past the line ending.
1445         * TextBoxBase.cs: We can still delete if we are in the line
1446         ending and the combine will just kill the existing line ending.
1447
1448 2007-04-18  Jackson Harper  <jackson@ximian.com>
1449
1450         * TextControl.cs: We can't move lines, then invalidate their
1451         bounds, we need to get the old bounds and combine that with the
1452         new bounds.
1453         * TextBoxBase.cs: Before combining two lines for a delete, we need
1454         to invalidate the area of the old line, since that will be moved
1455         in the combine operation.
1456
1457 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
1458
1459         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
1460         with transparent background. Fixes #80482.
1461
1462 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
1463
1464         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
1465         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
1466         [Fixes bug #81391]
1467
1468 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1469
1470         * CreateParams.cs: Add a couple of helper methods and do a less string
1471           concatenation in ToString.
1472         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
1473           overload that takes a Control parameter, since this method may be
1474           called before a control is assigned to the hwnd (from
1475           CreateWindow), and update CreateWindow to use the new overload. In
1476           GetMenuOrigin subtract the title bar from the y position if the
1477           form has a window manager (since we're painting it and not X).
1478         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
1479           CreateParams to calculate the origin (since border sizes may vary).
1480           In ScreenToMenu only subtract the title height if we actually have
1481           a title.
1482         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
1483           mdi children never have menus of themselves.
1484         * InternalWindowManager.cs: Implement menu handling like form does.
1485           Added GetMenuOrigin to calculate the menu origin, can't use the
1486           CreateParams from the form like normally since it's lying.
1487         * Hwnd.cs: Implement GetBorderSize better (in the sense more
1488           windows-like) and add Inflate and comparison operators to the
1489           Borders type. When calculating MenuOrigin and it's a form with a
1490           window manager, use the window manager to calculate it.
1491
1492 2007-04-17  Chris Toshok  <toshok@ximian.com>
1493
1494         * Control.cs (CreateControl): turns out in 2.0 we don't need this
1495         OnBindingContextChanged thing here.  It's only generated from
1496         ContainerControl.OnCreateControl.  Fixes a newly written unit test
1497         - BindingTest.BindingContextChangedTest4.
1498         
1499 2007-04-17  Jackson Harper  <jackson@ximian.com>
1500
1501         * ScrollBar.cs: When setting values, make sure the current
1502         position stays within the new values range.
1503
1504 2007-04-17  Chris Toshok  <toshok@ximian.com>
1505
1506         * Control.cs (CreateControl): talk about a bizarre corner case.
1507         Don't emit OnBindingContextChanged here if we're a parentless
1508         control (i.e. if we're a form.).  Fixes
1509         BindingTest.BindingContextChangedTest2.
1510
1511 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1512
1513         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
1514         from win32. Fixes #81255.
1515
1516 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1517
1518         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
1519         already present in CalculateButtonTextAndImageLayout.
1520
1521 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1522
1523         * XplatUIX11.cs: When setting min/max size for a window we need to
1524           translate the coordinates to x coordinates. Create an overload of
1525           SetWindowMinMax that takes a CreateParams handling this, and change
1526           SetWMStyles to call this function (can't use Control.FromHandle in
1527           the SetWindowMinMax to get the control/CreateParams from the handle
1528           because the handle might not have been assigned to the control
1529           yet). Fixes #81371.
1530
1531 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1532
1533         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
1534         if StateImageList is non-null and it has less than two items (match MS
1535         behaviour). Also, in HandleNavKeys handle the Space key, calling
1536         the new ToggleItemsCheckState method, which tries to change the
1537         checked state of the selected items. Fixes part of #81191.
1538
1539 2007-04-16  Jackson Harper  <jackson@ximian.com>
1540
1541         * RichTextBox.cs: namespace cleanup.
1542
1543 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1544
1545         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
1546
1547 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1548
1549         [Fixes #79447]
1550         * Control.cs: Call invalidate in set_Region.
1551
1552         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
1553         it dont works here.
1554
1555 2007-04-16  Jackson Harper  <jackson@ximian.com>
1556
1557         * TextBoxBase.cs: When enter is pressed, we need to update all
1558         lines below the current.
1559
1560 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
1561
1562         * MdiClient.cs: Implement implicit menu merging for MDI
1563         children.  When a child form is active, if it has a menustrip
1564         and the parent form has a MainMenuStrip, automatically merge
1565         the menus.
1566
1567 2007-04-15  Andreia Gaita  <avidigal@novell.com>
1568
1569         * TabControl.cs: Refactored sizing methods to not repeat
1570         code all over the place. Tab bounds are now calculated
1571         as if alignment is top and single line, and only when 
1572         setting the bounds are the positions adjusted according
1573         to alignment. Replaced hardcoded positions, spacings and
1574         paddings by getting the values the ThemeEngine. 
1575         Fixes #79619.
1576         
1577         * Theme.cs: Change TabControl properties and methods so
1578         that all start with TabControl*. Added more properties
1579         to help remove hardcoded values on tabcontrol.
1580         Add CPDrawBorder3D declaration so the Theming classes
1581         can access it.
1582         
1583         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
1584
1585         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
1586         on the Theming namespace, and call the appropriate methods here.
1587         Change CPDrawBorder3D to public.
1588
1589 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1590
1591         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
1592         the control after firing the OnMouseUp event, instead of sending
1593         the message before the mentioned event. This is so we can match the
1594         MS behaviour. Fixes part of #80385.
1595
1596 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1597
1598         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
1599         RightToLeft property.
1600
1601 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1602
1603         * ToolStrip.cs: Add properties and internal methods to support merging.
1604         * ToolStripItem.cs: Add MergeAction and MergeIndex.
1605         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
1606         not trigger reparenting or layouts.
1607         * ToolStripManager.cs: Add Merge and RevertMerge methods.
1608         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
1609         is hosting the overflow menu.
1610
1611 2007-04-13  Jackson Harper  <jackson@ximian.com>
1612
1613         * TextControl.cs: Set the line ending correctly for the first
1614         inserted line.
1615
1616 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
1617
1618         * Theme.cs: Update GetMethod to get the new definition for 
1619         KnownColors.Update (and fix theme color updates).
1620
1621 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
1622
1623         * MessageBox.cs: Fix some test and button position.
1624
1625 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1626
1627         * Form.cs: Consider the implicit controls in
1628         GetRealChildAtPoint. We need it since this method
1629         is called on Form when handling the some messages in
1630         WndProc, and need to consider those implicit ones too.
1631         Fixes #80385.
1632
1633 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
1634
1635         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
1636         if there are no ShortcutKeys set.
1637         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
1638         set, use it when painting.
1639
1640 2007-04-12  Jackson Harper  <jackson@ximian.com>
1641
1642         * TextControl.cs: Fix some off-by-one issues in line duplication
1643         and insertion in the undo manager. Also, overwrite the first tag
1644         of a line on insert, if it is just a zero lengthed tag. This
1645         prevents us from getting an extra stranded tag at the beginning of
1646         the first line.
1647
1648 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
1649
1650         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
1651         to calculated proper size including when handle was not created yet.
1652
1653 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1654
1655         * MdiWindowManager.cs: When moving a form, allow the form to be moved
1656           when the mouse is outside of it's parent's client rectangle. Fixes
1657           #79982 (take 3, part 2).
1658
1659 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1660
1661         * X11Structs.cs: Add a few ToString() overrides.
1662         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
1663           the window location in a window-manager independent way. Reworked
1664           FrameExtents, it now actually works. Reworked AddConfigureNotify
1665           and ReparentNotify handling to use GetTopLevelWindowLocation
1666           instead of the earlier, more hacky solution. Reworked SetWMStyles,
1667           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
1668           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
1669           for all other windows (fixes #81281 part 1), a toolwindow is hidden
1670           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
1671           and generally refactored to do as few calculations as possible
1672           inside the lock.
1673
1674 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
1675
1676         * Theme.cs: Change "reflective-contract" between MWF and SD to 
1677         minimize # of calls, avoid Color serialization and avoid updating 
1678         every "known colors" each time a single one is updated.
1679
1680 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1681
1682         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
1683         when not readonly and the text is explicitly set. Code style updates.
1684         * DataGridTableStyle.cs: Removed extra line.
1685         * DataGrid.cs: Code style updates. Removed extra whitespace.
1686         * DataGridColumnStyle.cs: Code style updates. Removed extra 
1687         whitespace.
1688
1689 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1690
1691         * XplatUIX11.cs: Added comment that "fixes" #80021.
1692
1693 2007-04-09  Jackson Harper  <jackson@ximian.com>
1694
1695         * TextControl.cs: We don't need this -1 on the line count anymore.
1696
1697 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1698
1699         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
1700         entered value to underlying type, and convert it back to a string to
1701         apply formatting. Modified GetFormattedValue to use TypeConverter
1702         if available.
1703
1704 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
1705
1706         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
1707         Use SubItems property when we want to ensure there's at least one
1708         subitem. Modified SubItems property to ensure there's always at least
1709         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
1710         the NRE's reported by MS.
1711
1712 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
1713
1714         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
1715         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
1716         Spaces to tabs. Removed extra tabs.
1717
1718 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
1719
1720         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
1721         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
1722
1723 2007-04-06  Jackson Harper  <jackson@ximian.com>
1724
1725         * TextBoxBase.cs: When a delete removes a line, recalculate all
1726         lines below that line (they need to get offsets setup correctly)
1727         and invalidate.
1728
1729 2007-04-05  Jackson Harper  <jackson@ximian.com>
1730
1731         * TextControl.cs: We need to invalidate across the width of the
1732         document when we are invalidating multiple lines.
1733         * TextBoxBase.cs: Don't delete into the line ending.
1734
1735 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1736
1737         * ListView.cs: Restore the check for the MouseHover event
1738         in ListView. It looks like the ListView fires more than one MouseHover
1739         event when HoverSelection is true  _only_ in weird-corner scenarios, but
1740         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
1741         event.
1742
1743 2007-04-05  Mike Kestner  <mkestner@novell.com>
1744
1745         * ListView.cs : raise MouseDown before updating selection.
1746         [Fixes #80373 tab 1&3]
1747
1748 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1749
1750         * ToolStripRenderer.cs: Add static method to mirror image.
1751         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
1752         and RightToLeftAutoMirrorImage.
1753         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
1754
1755 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1756
1757         * ToolStripSplitStackLayout.cs: Support Alignment property.
1758         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
1759
1760 2007-04-05  Jackson Harper  <jackson@ximian.com>
1761
1762         * TextControl.cs: Move around the line endings when crossing line
1763         boundaries.
1764         - When combining lines, strip the ending text off the first line.
1765
1766 2007-04-05  Jackson Harper  <jackson@ximian.com>
1767
1768         * TextControl.cs:
1769         * TextBoxBase.cs: Try to never move the cursor into the line
1770         ending.
1771         
1772 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1773
1774         * ToolStripItem.cs: Make sure we aren't firing mouse events when
1775         the item is disabled.  Also add a few missing methods.
1776
1777 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1778
1779         * ListView.cs: We don't need the MouseEnter/MouseLeave check
1780         to fire just one MouseHover event when HoverSelection is true, since
1781         .Net does fire more than one MouseHover event in that scenario. Also,
1782         fix the selection in HoverSelection, by invoking UpdateMultiSelect
1783         if MultiSelect is true, instead of only setting ListViewItem.Selected.
1784         Finally, we need to reset the Hover logic in MouseMove, even when we
1785         don't have a selected item.
1786
1787 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1788
1789         * ToolStrip.cs: Add several missing methods, properties, and events.
1790
1791 2007-04-04  Chris Toshok  <toshok@ximian.com>
1792
1793         * DataGridTextBoxColumn.cs: set the bounds of the text box to
1794         (0,0,0,0) in Commit, as MS does.
1795
1796         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
1797         make sure we set CurrentRow on a row header click *before* calling
1798         Select.  This moves the current cell (and the textbox) to the new
1799         row.  The call to Select then hides the textbox, giving us the
1800         correct behavior.  Fixes #80362.
1801
1802         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
1803         (ListChangedHandler): reorder the position/current changed events,
1804         and call UpdateIsBinding in the ItemAdded case.
1805
1806         * GridColumnStylesCollection.cs: add some columns events, one of
1807         which raises the CollectionChanged event.
1808
1809 2007-04-04  Jackson Harper  <jackson@ximian.com>
1810
1811         * TextControl.cs: When we delete multiple selection lines
1812         invalidate the selection area, don't need to do that for single
1813         lines because the final update view will handle it.
1814
1815 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1816
1817         * Control.cs: When we CreateControl, we need to also create all of the
1818         control's children.  The child's OnLoad must also fire before the parent's
1819         OnLoad.  Fixes the toolbox size in PDN.
1820
1821 2007-04-04  Jackson Harper  <jackson@ximian.com>
1822
1823         * TextBoxBase.cs: When the user presses enter, insert a line
1824         ending into the text. (Maybe this would be a good spot for
1825         Environment.NewLine).
1826         * TextControl.cs: Remove undo manager hack, line endings get
1827         inserted properly now.
1828         
1829 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1830
1831         * MenuAPI.cs: 
1832         - Remove unneeded parameters in UpdateCursor.
1833         - Fix UpdateCursor to check if menu is active.
1834         - Call UpdateCursor when menu deactivate my click.
1835         [Fixes remaining issues from #80410]
1836
1837 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1838
1839         * Control.cs: GetRealChildAtPoint method added, it make an
1840         recursive child control search for the point. 
1841
1842         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
1843         menu.
1844
1845         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
1846
1847 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1848
1849         * Form.cs: Fix mouse position when send back mouse event after closes
1850         menu.
1851
1852 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1853
1854         * Form.cs: Simplify the BUTTONDOWN for active tracker.
1855
1856 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1857
1858         * Control.cs: Fix an issue where if a user resized a control inside
1859         a sizing method like OnResize, we would overwrite their explicit
1860         value.  Also, only call DefaultSize once in the constructor instead
1861         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
1862         nothing actually changed.
1863
1864 2007-04-03  Jackson Harper  <jackson@ximian.com>
1865
1866         * TextControl.cs: Don't attempt to copy text for lines with no
1867         text in them (technically this shouldn't happen, but we aren't
1868         always inserting line endings when we should be).
1869
1870 2007-04-03  Jackson Harper  <jackson@ximian.com>
1871
1872         * TextBoxBase.cs: Calculate the scrollbars before calculating the
1873         document, because this sets some of the document size properties
1874         that are needed.
1875
1876 2007-04-03  Jackson Harper  <jackson@ximian.com>
1877
1878         * TextBoxBase.cs: We need to calculate maximums even if this is
1879         not a multiline control, because the maxs are used for scrolling.
1880         - Display the caret after doing a page up/down, we need to
1881         manually display it because a proper CaretMoved event isn't
1882         triggered (this is because of the way the math is done to
1883         determine how far to scroll).
1884
1885 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1886
1887         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
1888         (ToolBar was relying on SetBoundsCore to default the values sent 
1889         base off of BoundsSpecified.)
1890
1891 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1892
1893         * DateTimePicker.cs: Change Text so that when a null value or empty
1894           string is assigned to the test we always raise ValueChanged and
1895           TextChanged (earlier implementation would only raise ValueChanged
1896           if the current date value was different from DateTime.Now).
1897
1898 2007-04-03  Andreia Gaita <avidigal@novell.com> 
1899
1900         * ButtonBase: Call update after invalidation, fixes #80194
1901
1902 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1903
1904         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
1905           #79335.
1906
1907 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1908
1909         * XplatUIX11.cs: SetWMStyles: If the control is a form with
1910           FormBorderStyle = None, don't give the window any decorations.
1911           Fixes #81276.
1912
1913 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1914
1915         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
1916         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
1917           to check for is a mix of several styles (such as WS_CAPTION for
1918           instance).
1919         * Control.cs: Don't paint an area bigger than the client area when
1920           painting the background colour. Add an internal GetCreateParams.
1921           Update calls to XplatUI.CalculateWindowRect due to API change.
1922         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
1923           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
1924           the size if it hasn't been handled by any windows. When creating
1925           and moving windows, X wants the location of the entire window, but
1926           the size of the client window, so add
1927           TranslateClientRectangleToXClientRectangle,
1928           TranslateWindowSizeToXWindowSIze and
1929           TranslatedXWindowSizeToWindowSize to cope with this, and call them
1930           before every window creation and move. Update CalculateWIndowRect
1931           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
1932           In AddConfigureNotify don't do anything if the hwnd is a zombie
1933           (fixes the BadWindow we were getting while running the tests),
1934           always calculate the offsets when it's a parentless window, not
1935           only when reparented, and translate the window size, since we're
1936           getting the client size of the whole window, excluding entire
1937           window.
1938         * Theme.cs: Added BorderSizableSize.
1939         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
1940           anymore. Update calls to XplatUI.CalculateWindowRect due to API
1941           chang
1942         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
1943           change. Fake the window styles here instead of in XplatUIWin32 so
1944           that all back-ends get the same window styles (and it's Form that's
1945           deciding when to use wm, not the Win32 backend anyways)
1946         * Hwnd.cs: Completely reworked GetWindowRectangle and
1947           GetClientRectangle - they are now passed a CreateParams and they
1948           only use Style and ExStyle to determine the rectangles (they should
1949           now work just like Win32AdjustWindowRectEx - though quite a few
1950           special cases are probably missing). They should also be 100%
1951           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
1952           == rect), and all numbers (borders, menu sizes) are taken from the
1953           current theme. Added a GetBorders helper function that will return
1954           the borders for any given CreateParams (including captions and
1955           menus), and GetBorderSize that returns the given border size only.
1956         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
1957           Hwnd.GetClientRectangle.
1958
1959 2007-04-02  Chris Toshok  <toshok@ximian.com>
1960
1961         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
1962         logic between the values we present to the user and the values
1963         which are stored in the column's property.  Also, don't call
1964         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
1965
1966 2007-04-02  Jackson Harper  <jackson@ximian.com>
1967
1968         * TextBoxBase.cs: Scroll faster!
1969
1970 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
1971
1972         * StatusStrip.cs: Layout fixes for PDN.
1973         * ToolStrip.cs: Set item's available to true, and placement to main when
1974         added.
1975         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
1976         changing in setter before doing any work, add InternalVisible.
1977         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
1978         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
1979         infinite loop.
1980
1981 2007-04-02  Jackson Harper  <jackson@ximian.com>
1982
1983         * TextBox.cs: LBUTTON does not make the textbox select all of it's
1984         text on focus.
1985
1986 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1987
1988         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
1989           Makes ToolStripComboBoxes show up again.
1990
1991 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1992
1993         * ListView.cs: Add a hover_pending field in ListView
1994         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
1995         cycle (we are resetting the MouseHover logic in XplatUI
1996         to handle HoverSelection). Fixes #80429.
1997
1998 2007-04-02  Jackson Harper  <jackson@ximian.com>
1999
2000         * TextControl.cs: Make sure the attributes get set on the last
2001         tag.
2002         - Still have to do the end tag if we have stepped all the ways to
2003         the end.
2004
2005 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
2006
2007         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
2008         on an internal libgdiplus call when the information is already 
2009         available via the public API.
2010
2011 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2012
2013         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
2014           control is removed from a control collecftion.
2015         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
2016           Fixes FormPropertyTest (failed on rare occasions).
2017         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
2018           of Win32SetParent (when changing from no parent to a parent it
2019           might add the new parent's location in screen coordinates to this
2020           window's location).
2021         * Form.cs: Rework ChangingParent once again, now the handle is
2022           recreated whenever a FormWindowManager is added or removed (that is
2023           whenever a normal form is parented or abandoned). Also change
2024           CreateParams so that all non-toplevel windows always get the
2025           specified sice (StartupPosition is never considered for
2026           non-TopLevel forms).
2027         * ContainerControl.cs: Add ChildControlRemoved, the container control
2028           needs to be notified when a control is removed from it's
2029           collection, in the case the removed control is the active control.
2030
2031 2007-04-02  Jackson Harper  <jackson@ximian.com>
2032
2033         * RichTextBox.cs: Use the new methods for setting the font and
2034         color, these methods set the specified attribute without
2035         overriding the other attributes.
2036
2037 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
2038
2039         * ToolStripPanel.cs: Fixes for better layouts in PDN.
2040
2041 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
2042
2043         * TextBox.cs: Added internal ChangeBackColor method to special-case
2044         Color.Empty. Added check for invalid ScrollBars value.
2045         * TextBoxBase.cs: Added internal ChangeBackColor method.
2046         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
2047         internal ChangeBackColor method to special-case Color.Empty. Added
2048         check for invalid ScrollBars value.
2049
2050 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
2051
2052         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
2053
2054 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2055
2056         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
2057         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
2058         [Based on submitted patch from Olivier Duff.]
2059
2060 2007-03-30  Jackson Harper  <jackson@ximian.com>
2061
2062         * TextBox.cs: Only select all on initial focus if the user has not
2063         specified a selection area.
2064
2065 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2066
2067         * UserControl.cs: Override CreateParams.
2068
2069 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2070
2071         [ Fixes #80995 ]
2072
2073         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
2074         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
2075           check for is a mix of several styles (such as WS_CAPTION for instance).
2076         * Control.cs: Don't paint an area bigger than the client area when painting
2077           the background colour. Add an internal GetCreateParams. Update calls to
2078           XplatUI.CalculateWindowRect due to API change.
2079         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
2080           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
2081           hasn't been handled by any windows. When creating and moving windows, X
2082           wants the location of the entire window, but the size of the client
2083           window, so add TranslateClientRectangleToXClientRectangle,
2084           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
2085           to cope with this, and call them before every window creation and move.
2086           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
2087           removing DeriveStyles). In AddConfigureNotify don't do anything if the
2088           hwnd is a zombie (fixes the BadWindow we were getting while running the
2089           tests), always calculate the offsets when it's a parentless window, not
2090           only when reparented, and translate the window size, since we're getting
2091           the client size of the whole window, excluding entire window.
2092         * Theme.cs: Added BorderSizableSize.
2093         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
2094           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
2095         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
2096           Fake the window styles here instead of in XplatUIWin32 so that all
2097           back-ends get the same window styles (and it's Form that's deciding when
2098           to use wm, not the Win32 backend anyways)
2099         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
2100           they are now passed a CreateParams and they only use Style and ExStyle
2101           to determine the rectangles (they should now work just like
2102           Win32AdjustWindowRectEx - though quite a few special cases are probably
2103           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
2104           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
2105           sizes) are taken from the current theme. Added a GetBorders helper
2106           function that will return the borders for any given CreateParams
2107           (including captions and menus), and GetBorderSize that returns the given
2108           border size only.
2109         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
2110           Hwnd.GetClientRectangle.
2111
2112 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2113
2114         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
2115           layout of the mdi children is handled by CreateParams. Fixes
2116           #79964,
2117
2118 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2119
2120         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
2121         processed.
2122
2123         * Form.cs: When active tracker mouse down is not processed, send event 
2124         back to control inside mouse position. [Fixes #81227]
2125
2126 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2127
2128         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
2129         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
2130         stealing focus from the active form on Windows.  (Control will be made
2131         visible in ShowWindow.)
2132
2133 2007-03-29  Mike Kestner  <mkestner@novell.com>
2134
2135         * ImageList.cs : add internal Changed event.
2136         * ListView.cs : hook up to StateImageList.Changed to perform
2137         invalidations when the the state icon list changes. [Fixes #81191]
2138
2139 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2140
2141         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
2142         to prevent tooltips from stealing focus from the active form on Windows.
2143
2144 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2145
2146         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
2147
2148         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
2149
2150 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2151
2152         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
2153         balloons.
2154
2155 2007-03-29  Jackson Harper  <jackson@ximian.com>
2156
2157         * TextControl.cs: When deleting text from non multiline textboxes,
2158         we need to update the entire document, because line offsets will
2159         be shifting.
2160
2161 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2162
2163         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
2164         added to theme, now we can create themes that uses diferent notify engines
2165         like notification-daemon from galago project or growl for Mac OS.
2166
2167 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2168
2169         * NotifyIcon.cs: Prevent Balloon to show in task bar.
2170
2171 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2172
2173         * XplatUIX11.cs: Prevent system to open more than one balloon.
2174
2175         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
2176         some compiler warning messages.
2177
2178 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2179
2180         [Fixes #79149]
2181
2182         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
2183
2184         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
2185         implemented, this methods is used by NotifyIcon.BalloonWindow class.
2186
2187         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
2188         systems.
2189
2190 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2191
2192         * ListViewItem.cs: Forgot to make Invalidate internal.
2193
2194 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2195
2196         * ListView.cs: Add a InvalidateSelection method to
2197         invalidate methods which are currently selected, and call
2198         it when setting FullRowSelect and HideSelection, instead of
2199         calling Redraw.
2200
2201 2007-03-28  Chris Toshok  <toshok@ximian.com>
2202
2203         * XplatUIX11.cs (UnmapWindow): reindent this block.
2204
2205         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
2206         the selection_start if we're moving the selection (that is, not
2207         extending it). Fixes bug #80461.
2208
2209 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2210
2211         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
2212         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
2213         create private ControlCollection.
2214
2215 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2216
2217         * Control.cs: We need to call OnVisibleChanged for our implicit
2218         children as well as our normal children.  Fixes scrollbars in
2219         comboboxes not showing up.
2220
2221 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2222
2223         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
2224         the check for IsHandleCreated first.  The check in CreateHandle is not
2225         good enough because CreateHandle can be overriden, and the override 
2226         should not be called if the handle is already created.
2227
2228 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2229
2230         * ToolStrip.cs: Remove MonoTODO for tooltips.
2231         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
2232         * ToolStripContainer.cs: Add custom ControlCollection class.
2233         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
2234         * ToolStripDropDown.cs: Add some missing properties/methods.
2235         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
2236         * ToolStripItem.cs: Remove MonoTODO for tooltips.
2237         * ToolStripManager.cs: Add IsShortcutDefined.
2238         * ToolStripOverflow.cs: Override LayoutEngine.
2239         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
2240         * ToolStripSeparator.cs: Add ImageKey.
2241
2242 2007-03-28  Jackson Harper  <jackson@ximian.com>
2243
2244         * TextControl.cs: If a char delete removes a line ending, we need
2245         to update the ending style.
2246         - Make sure the line ending calcs get called.
2247
2248 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2249
2250         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
2251           it was making the new code not work. Fixed a typo in the new code
2252           as well. Fixes #79826.
2253
2254 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2255
2256         * XplatUIWin32.cs:
2257         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
2258         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
2259         - SystrayBalloon method implemented.
2260         [Add support for notifyicon balloon on win32, #79149]
2261
2262 2007-03-27  Mike Kestner  <mkestner@novell.com>
2263
2264         * ThemeWin32Classic.cs : update StateImageList selection to mirror
2265         the ms behavior when only one image is added to the list.
2266         [Fixes #81191]
2267
2268 2007-03-27  Jackson Harper  <jackson@ximian.com>
2269
2270         * TextControl.cs: Improvements to non multiline line ending
2271         drawing/measuing.
2272
2273 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2274
2275         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
2276
2277 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2278
2279         * NotifyIcon.cs: 
2280         - Balloon message handling added.
2281         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
2282
2283         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2284         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
2285         to SystrayBalloon to me like other Systray method, also a
2286         handle parameter added.
2287
2288 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2289
2290         * ListView.cs: Show scrollbars even when items.Count == 0
2291         but the columns Width is bigger than the ListView.Width.
2292         Also, when columns.Count == 0 set layout_wd and layout_ht
2293         to the ClientRectangle values, so we don't show any scrollbar
2294         in that case.
2295
2296 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2297
2298         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
2299
2300 2007-03-27  Jackson Harper  <jackson@ximian.com>
2301
2302         * RichTextBox.cs: The RTF library decodes the text properly for us
2303         now.
2304
2305 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2306
2307         * ListView.cs: Display HeaderControl even when columns.Count == 0.
2308         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
2309         ListView header (HeaderControl), instead of Control.BackColor.
2310
2311 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2312
2313         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
2314         Fixes tab control issues where controls would not show up because they
2315         never received their OnVisibleChanged call.
2316
2317 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2318
2319         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
2320         BalloonTipShown).
2321
2322 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2323
2324         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
2325         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
2326         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
2327         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
2328         the handle.  Fix WindowState by using the internal variable until we are 
2329         sure that we've been shown.
2330         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
2331         max or min.
2332         [Fixes bug #81198]
2333
2334 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2335
2336         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
2337           (at least borders). Fixes #79386 on Linux (with a small difference
2338           in behaviour: when trying to resize a caption-less window metacity
2339           shows the sysmenu. Resizing is still possible though).
2340         * XplatUIWin32.cs: When setting window styles send request an extra
2341           WM_NCCALCSIZE when it's a form without title (due to no text and no
2342           caption), since Win32 seems to calculate it wrong the first time we
2343           get the message, though the second time things work as they should.
2344         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
2345           newly reparented window might show up unparented. Update
2346           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
2347           there's no title text. Fixes #79386.
2348
2349 2007-03-27  Mike Kestner  <mkestner@novell.com>
2350
2351         * ListBox.cs : don't perform invalidations if the handle hasn't been
2352         created.  [Fixes #80753]
2353
2354 2007-03-27  Mike Kestner  <mkestner@novell.com>
2355
2356         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
2357         [Fixes #80428]
2358
2359 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2360
2361         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
2362         needed to implement Balloon.
2363
2364 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2365
2366         * ListViewItem.cs: In the constructors that take
2367         an array of strings, don't use ListViewSubItemCollection.AddRange
2368         method to add items, since we need to have a different behaviour (in
2369         the constructors we add an item for each null string, opposed to
2370         the behaviour of AddRange, which adds nothing).
2371
2372 2007-03-26  Andreia Gaita  <avidigal@novell.com>
2373
2374         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
2375
2376 2007-03-26  Jackson Harper  <jackson@ximian.com>
2377
2378         * TextControl.cs: Draw and measure line endings when in non
2379         multiline mode.
2380         - When searching the text, count the end of the last line as a
2381         word boundary.
2382
2383 2007-03-26  Jackson Harper  <jackson@ximian.com>
2384
2385         * RichTextBox.cs: The selection_start and selection_end don't
2386         really track the correct tags for the selection. So we'll manually
2387         compute the correct tag here.
2388
2389 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2390
2391         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
2392           and Continuous styles. Fixes #79469.
2393
2394 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2395
2396         * ToolStrip.cs: Implement Tooltips.
2397         * ToolStripItem.cs: Create internal method for determining tooltip.
2398
2399 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2400
2401         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
2402
2403 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2404
2405         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
2406         it prevents a problem thak keeps icon visible after application 
2407         closes on win32.
2408
2409 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2410
2411         * NotifyIcon.cs: Balloon properties and methods created.
2412
2413         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2414         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
2415
2416 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
2417
2418         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
2419
2420 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2421
2422         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
2423         parameter indicates which aspects were explicit/user-set.
2424         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
2425
2426 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2427
2428         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
2429         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
2430         SmallChange, and Value (2.0).
2431         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
2432
2433 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2434
2435         * ListView.cs: Always set item_control.Width in LayoutDetails
2436         if View is Details. Setting it later in CalculateScrollBars
2437         in a not-so-corner scenario (the sum of columns width is
2438         not bigger than the ListView width when handle is created, and then
2439         that sum gets bigger by increasing the width of the columns)
2440         causes a very weird recursion path (which shouldn't be happening,
2441         since header_control sets it in CalculateScrollBars too). This bug
2442         appeared after Chris' fixes for handle created issues, so probably
2443         it's related to some handle-creation time.
2444
2445 2007-03-23  Chris Toshok  <toshok@ximian.com>
2446
2447         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
2448         case where there's an add row, just so we don't end up in a case
2449         where it's not displayed (this happens when the row is partially
2450         obscured).  Fixes bug #79574.
2451
2452 2007-03-23  Jackson Harper  <jackson@ximian.com>
2453
2454         * TextControl.cs:
2455         * TextBoxBase.cs:
2456         * RichTextBox.cs: Preserve line endings in the lines text buffer,
2457         also added an enum that represents the line ending type. 
2458
2459 2007-03-23  Andreia Gaita  <avidigal@novell.com>
2460
2461         * NumericUpDown.cs: Fix logic so Text and Value properties are not
2462         messed with in every method call, but only from DownButton, 
2463         UpButton, UpdateEditText() and ValidateText. Fixes #80346
2464
2465 2007-03-23  Chris Toshok  <toshok@ximian.com>
2466
2467         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
2468         format objects if the format spec is "".  Fixes bug #80889.
2469
2470 2007-03-22  Miguel de Icaza  <miguel@novell.com>
2471
2472         * ToolStripPanel.cs (Join): added stubs to build PDN3
2473
2474         * Control.cs (AutoScrollOffset): Add.
2475
2476         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
2477         property, its only implemented for Win32, on X11 it defaults to
2478         some hardcoded value.
2479
2480         * ToolStripItem.cs (AllowDrop): Add property
2481
2482 2007-03-22  Mike Kestner  <mkestner@novell.com>
2483
2484         * ListView.cs : in FullRowSelect Details mode, only enable box
2485         selection if the user clicks over the "item" column outside of the
2486         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
2487
2488 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2489
2490         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
2491           handle is not created yet.
2492         * Form.cs: Select: Don't call CreateHandle if the handle is already
2493           created, avoids a stack overflow on Windows when we are recreating
2494           controls.
2495         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
2496           they are made visible, and override AfterTopMostControl to keep
2497           them on top when other controls are brought to front.
2498           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
2499           or force_*scroll_visible is true (old implementation always shows
2500           scrollbars when needed, no matter what auto_scroll was set to).
2501         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
2502           IsHandleCreated check.
2503
2504 2007-03-22  Andreia Gaita  <avidigal@novell.com>
2505
2506         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
2507         row or col separator.
2508         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
2509
2510 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2511
2512         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
2513
2514 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2515
2516         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
2517         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
2518         every time. Fixes #80410.
2519
2520 2007-03-22  Chris Toshok  <toshok@ximian.com>
2521
2522         * BindingSource.cs (AddNew): partially implement.
2523
2524         remove a couple of NotImplementedException's
2525         to get bug #81148 closed.
2526
2527 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2528
2529         [Fixes #80380]
2530         
2531         * Control.cs:
2532         - UpdateCursor method added to update the screen cursor.
2533         - GetAvailableCursor method added to return cursor for enabled tree,
2534         it searches for cursor on control and it's parent's for enabled control.
2535         - Call UpdateCursor method on setter of Cursor property.
2536         - On setter of Enabled call UpdateCursor when it is false, we need to
2537         change cursor to normal (or to this parent cursor) because cursor 
2538         setting theres no effect to disabled controls.
2539         - Some minor source changes to follow the coding style guidelines.
2540
2541         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
2542         controls.
2543
2544 2007-03-22  Chris Toshok  <toshok@ximian.com>
2545
2546         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
2547         generates.
2548
2549 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2550
2551         * XplatUIX11.cs: Implement default locations for forms.
2552         * Form.cs: Completely rework startup location for forms. Fixes #79964.
2553         * Hwnd.cs: Add previous_child_startup_location (to track the current
2554           startup location for any child forms of the current form) and
2555           previous_main_startup_location (to track the startup location for
2556           the current toplevel form).
2557
2558 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2559
2560         * Control.cs: Don't trigger a layout if an implicit control is added
2561         that isn't visible.  Also, don't notify the owner when an implicit control
2562         is added.  (Owners shouldn't even know about their implicit controls.)
2563
2564 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2565
2566         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
2567         to save some re-layouts.
2568
2569 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
2570
2571         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
2572         [Fixes #81203]
2573
2574 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2575
2576         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
2577         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
2578
2579 2007-03-21  Mike Kestner  <mkestner@novell.com>
2580
2581         * ListView.cs : disable selection update for non-left button clicks
2582         with mods and over selected items.  [Fixes #80524]
2583
2584 2007-03-20  Jackson Harper  <jackson@ximian.com>
2585
2586         * TextControl.cs:
2587         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
2588         \r\r\n, \n.
2589
2590 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2591
2592         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
2593           very probably a more complicated calculation there. Update the
2594           textbox' ForeColor and BackColor when the ComboBox' colors are
2595           changed. Change the border change in LayoutComboBox to only affect
2596           the textbox, not all the calculations there. Seems to fix most of
2597           #79436.
2598
2599 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2600
2601         * ComboBox.cs: Handle Home and End keys as well as all combinations of
2602           modifiers + navigation keys as input keys, enables advanced text
2603           selection in the combobox (like Shift+Left Arrow for instance).
2604           ComboTextBox now overrides Focused and returns whatever
2605           ComboBox.Focused returns, since it really should be focused
2606           whenever the ComboBox is. Fixes #80795. Also make the border around
2607           the text box one pixel bigger, as mentioned in #79436.
2608
2609 2007-03-20  Jackson Harper  <jackson@ximian.com>
2610
2611         * TreeView.cs: Don't offset the images, this was causing some
2612         artifacts when expanding/collapsing with images that were the
2613         exact height of the treenode.
2614
2615 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2616
2617         * TrackBar.cs: Query the theme for the correct value when the mouse
2618           moves and the thumb is pressed. 
2619         * Theme.cs: Added TrackBarValueFromMousePosition
2620         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
2621           implementation was updating the trackbar value when drawing, now
2622           the drawing methods only draw. Fixes #80900. Refactored the
2623           calculations out to TrackBarValueFromMousePosition and
2624           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
2625           according to the mouse position whenever it wants to. Changed the
2626           light coloured pen when drawing the thumb from ControlLight to
2627           ControlLightLight, because the ControlLight is the same colour as
2628           the background so the 3D effect is lost. 
2629
2630 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2631
2632         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
2633         defined. Fixes #80784.
2634
2635 2007-03-20  Marek Habersack  <mhabersack@novell.com>
2636
2637         * ContextMenuStrip.cs: align with the change introduced in
2638         revision 74664.
2639
2640 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2641
2642         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
2643         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
2644         in SetTopmost.
2645
2646 2007-03-19  Chris Toshok  <toshok@ximian.com>
2647
2648         * Control.cs (WmPaint): don't make use of the Handle property
2649         after an event is emitted, as the user could have closed the
2650         form/destroyed the control.  Store the Handle in a local variable
2651         and make use of that.  Fixes bug #80768.
2652
2653 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2654
2655         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
2656         behavior in X11 environments.
2657
2658 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2659
2660         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
2661         because on setter of topmost we dont call SetTopmost when handle is not
2662         created.
2663
2664 2007-03-20  Jackson Harper  <jackson@ximian.com>
2665
2666         * TextControl.cs: Need to use SelectionLength () not
2667         selection_length, since that var is reset to -1.
2668         - Draw the caret when we don't have focus.
2669         * TextBox.cs: The selectall actually doesn't occur until the first
2670         focus.
2671         * TextBoxBase.cs: Need to update the caret position after a
2672         selectall.
2673         
2674 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2675
2676         * ListView.cs: Enable scrolling when using Tile view.
2677
2678 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2679
2680         [Fixes #80902]
2681
2682         * XplatUIDriver.cs: Abstract SetOwner method created.
2683
2684         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
2685         must be implemented and was masked as todo.
2686
2687         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
2688         GWL_HWNDPARENT.
2689
2690         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
2691         cheking for null owner to remove transient. The SetTopmost will be change
2692         on a decond step.
2693
2694         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
2695         SetTopmost. Now owned forms will work properly in win32 and X11.
2696
2697 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2698
2699         * MdiWindowManager.cs: Update function name.
2700         * Form.cs: After closing a form MdiParent is always null.
2701         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
2702           better what it should do: necessary book-keeping when the form is
2703           closed, it should not close the form itself.
2704
2705 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2706
2707         * ListViewItem.cs: Fix back and fore color. The subitems only
2708         use their own colors if they are set, otherwise use the listview's
2709         colors. Don't set default colors on constructor for subitem.
2710         Fixes #79315.
2711
2712 2007-03-19  Mike Kestner  <mkestner@novell.com>
2713
2714         * ListView.cs : make box selection for Details views with 
2715         FullRowSelect conform to MS behavior when clicking in the "item" 
2716         column and clicking outside the defined columns.
2717         [Fixes case 5-6 of #80374]
2718
2719 2007-03-19  Chris Toshok  <toshok@ximian.com>
2720
2721         * ScrollableControl.cs: create the controls from within the ctor,
2722         but don't actually add them until our handle is created.  this
2723         fixes a NRE possibility jpobst found (if you override OnLayout in
2724         a subclass, it's called before your ctor).  Also, add a
2725         IsHandleCreated guard to UpdateSizeGripVisibility as well.
2726
2727 2007-03-19  Jackson Harper  <jackson@ximian.com>
2728
2729         * TextBox.cs: Reduce the amount of invalidation we do.
2730         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
2731         some of them are true by default on MS.
2732         - Add some functions to reduce the amount of invalidates we do.
2733         * TextControl.cs: Less invalidation.
2734
2735 2007-03-19  Chris Toshok  <toshok@ximian.com>
2736
2737         [ Fixes #81773, and *seems* to fix #81553 as well ]
2738
2739         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
2740         AccumulateDestroyedHandles.  We need to do it *after* we send
2741         WM_DESTROY, as the user's code can access Control.Handle in
2742         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
2743         move the WM_DESTROY/zombie handling to before the call to
2744         XDestroyWindow.  For some reason without this ordering
2745         FormTest.RecreateHandle hangs.  This ordering is semantically
2746         equivalent, however, as XDestroyWindow is async anyway.
2747
2748 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
2749
2750         * RichTextBox.cs: Reset backcolor_set after setting default.
2751
2752 2007-03-19  Chris Toshok  <toshok@ximian.com>
2753
2754         * ScrollableControl.cs: the scroll position should not effect the
2755         canvas size.  commit patch from georgegiolfan@yahoo.com, which
2756         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
2757         
2758 2007-03-19  Chris Toshok  <toshok@ximian.com>
2759
2760         * ScrollableControl.cs: clean this up a bit.  create the
2761         scrollbars in the ctor and just show/hide them as needed.  Also,
2762         make hscroll_visible/vscroll_visible internal to Recalculate, and
2763         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
2764         everywhere else.  This seems to fix the scrollbars appearing
2765         beneath the content for me (i have *no* idea why that is,
2766         however.)
2767
2768 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2769
2770         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
2771         some redundacy for stuff in Anchor and Dock that base will take care of.
2772         [Fixes #80762]
2773
2774 2007-03-19  Mike Kestner  <mkestner@novell.com>
2775
2776         * ListView.cs : make box selection for Details views without 
2777         FullRowSelect dependent on the text bounds, not item bounds.
2778         * ListViewItem.cs : add an internal property to obtain the TextBounds
2779         in Details view.  [Fixes case 1-4 of #80374]
2780
2781 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2782
2783         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
2784         we're < 2.0. #78448 && #80316
2785
2786 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2787
2788         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
2789         have the same style available as the previously selected one.  Also,
2790         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
2791
2792 2007-03-19  Jackson Harper  <jackson@ximian.com>
2793
2794         * TextControl.cs: Add an alignment property that all new lines
2795         will be given.
2796         - Make sure to use the align shift when calculating the line's X
2797         position.
2798         * TextBox.cs: Set the alignment on the document as well as on all
2799         the document lines.
2800
2801 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2802
2803         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
2804           throw if setting the parent of an mdichild that already has an
2805           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
2806           AssemblyProductAttribute in the assembly, use the type's namespace (as
2807           MS seems to do). CreateControl: don't create the handle if the control
2808           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
2809           create handle if the control is not a form. Change FocusInternal to
2810           virtual so that it can be overriden by Form.
2811         * TextBox.cs: Update call to FocusInternal.
2812         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
2813           form is not a toplevel form when it's a mdi child, so update is_toplevel
2814           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
2815           hasn't been created. Show (IWin32Window): Don't allow this overload for
2816           toplevel windows. CenterToParent/CenterToScreen/Select: create the
2817           handle as MS does. SetVisibleCore: if called on a MdiChild and the
2818           parent isn't visible yet, save the visibility and restore it when the
2819           parent is made visible.
2820         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
2821           methods, since the visibility of the scrollbars can be changed from
2822           several places, not only from AutoScroll.
2823           [Fixes #81179]
2824
2825 2007-03-19  Jackson Harper  <jackson@ximian.com>
2826
2827         * RichTextBox.cs: Enable shortcuts by default.
2828         * TextBoxBase.cs: Add conditional shortcuts.  
2829
2830 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2831
2832         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
2833
2834 2007-03-19  Chris Toshok  <toshok@ximian.com>
2835
2836         [ Fixes bug #80604]
2837         
2838         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
2839         swallow the message we're waiting on, instead of delivering it, as
2840         this is only used for the WM_SHOWWINDOW raised from
2841         MapWindow/UnmapWindow, and the message needs to be generated
2842         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
2843         before doing the Map/Unmap.  Also make sure that the Hwnd is still
2844         alive after the message has been handled.
2845
2846         *before* the window is shown.
2847
2848         * Control.cs (CreateControl): guard a few more things inside the
2849         if (!is_created) block, as we might end up being called again -
2850         yay .net.
2851         (WmShowWindow): call CreateControl if we're showing the control.
2852
2853 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2854
2855         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
2856           controls without a handle if they have any parent with a handle. In
2857           Dispose add a check whether the handle is created or not before
2858           calling BeginInvoke, this removes the need of the extra disposing
2859           parameter (which was bogus anyway since it didn't prevent the
2860           invoke from happening, it only skipped the check for an existing
2861           handle, meaning that the invoke would call on an inexistent
2862           handle).
2863
2864 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2865
2866         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
2867         appears in taskbar.
2868
2869 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2870
2871         * MessageBox.cs:
2872         - Fixed a problem that dont show help button for messages with 3 buttons.
2873         - Refactory button size and position calculations, now dont use fixed 
2874         values, also fixed button sizes (#80043) and form's border space.
2875         - AddButton method created, now all other AddButton methods call this one.
2876         - Some other source code cosmetic changes.
2877
2878 2007-03-18  Jackson Harper  <jackson@ximian.com>
2879
2880         * RichTextBox.cs: Don't do this all fonts must match check if
2881         there is only one char selected.
2882
2883 2007-03-18  Jackson Harper  <jackson@ximian.com>
2884
2885         * TreeView.cs: ScrollWindow works properly now, so we don't need
2886         to screw around with the scroll area.  This fixes some artifacts
2887         when expanding and collapsing.
2888
2889 2007-03-18  Jackson Harper  <jackson@ximian.com>
2890
2891         * TextBoxBase.cs: Allow updating the selection position when the
2892         cursor is outside the textarea, but we have a capture.
2893         * TextControl.cs: A special case for when the cursor is outside
2894         the bounds of the TB.
2895         
2896 2007-03-18  Jackson Harper  <jackson@ximian.com>
2897
2898         * TextBoxBase.cs: Remove image pasting code for now.  There is no
2899         way to get an image on the clipboard right now anyways.
2900         * TextControl.cs:
2901         * RichTextBox.cs: Use the new RTF Picture class for pictures.
2902
2903 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2904
2905         * MessageBox.cs:
2906         - Set window properties in constructor intead of on CreateParams.
2907         - Remove topmost from Window ExStyle.
2908         - Set ShowInTaskbar to false.
2909         - Set form border to FixedDialog.
2910         - Some cosmetic changes and remove unneeded comments.
2911         - It fixes itens 2,3 and 4 of bug #80043.
2912
2913 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
2914
2915         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
2916         none was explicitly set. Fixes part of bug #79949.
2917
2918 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2919
2920         * ToolStripComboBox.cs: Add AutoComplete*.
2921
2922 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2923
2924         * ToolStripComboBox.cs: Add FlatStyle.
2925
2926 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
2927
2928         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
2929         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
2930
2931 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2932
2933         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
2934           CheckBox.cs, RadioButton.cs, BindingSource.cs,
2935           DataGridColumnStyle.cs: Remove warnings.
2936
2937 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2938
2939         * Menu.cs: MergeMenu: Check menu argument for null before looping over
2940           it.
2941         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
2942           visibility of mdi child forms. FormSizeChangedHandler: update the
2943           maximized size if size has changed while maximized.
2944         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
2945           creating the handle.
2946         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
2947           avoid creating the handle if not created.
2948         * XplatUI.cs: Update debug output.
2949         * XplatUIStructs.cs: Added ToString's for a couple of structs.
2950
2951 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
2952
2953         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
2954         ProcessCmdKey().
2955         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
2956         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
2957         Implement keyboard shortcuts.
2958
2959 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2960
2961         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
2962         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
2963         ColorDialog and all derived classes.
2964
2965 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2966
2967         [ Fixes bug #79828 ]
2968
2969         * ToolBar.cs:
2970         - Rename ToolBarButtonInfor to ToolBarItem.
2971         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
2972         - Maintain an array of ToolBarItem, used instead of ToolBarButton
2973         collection to be able add same button more than one time on a toolbar.
2974         - Refactory all properties and methods to use ToolBarItem. 
2975
2976         * ToolBarButton.cs: 
2977         - Remove all propeties and methods that is now in ToolBarItem.
2978         - Rectangle propery now gets the rectangle from first ToolBarItem to
2979         mimic win32 behavior.
2980         - Size calculation and layout methods also removed.
2981
2982         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
2983         ToolBarItem instead of ToolBarButton to right drawing buttons when
2984         same button/separator was added more than one time to ToolBar.
2985
2986         * ThemeNice.cs: Same as above. 
2987
2988 2007-03-15  Andreia Gaita  <avidigal@novell.com>
2989
2990         * XplatUIX11.cs: Fire extra MouseMove events right after
2991         MouseDown and MouseUp, emulating win32's <censored> behaviour
2992         for apps that rely on it.
2993
2994 2007-03-15  Jackson Harper  <jackson@ximian.com>
2995
2996         * TextControl.cs:
2997         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
2998         it is drawn on the controls client window and there is no NC
2999         area.
3000         - Set the background color to gray on 2.0 when we are readonly.
3001
3002 2007-03-15  Chris Toshok  <toshok@ximian.com>
3003
3004         [ Fixes bug #81144 ]
3005         
3006         * XplatUIX11.cs: implement VirtualScreen independently of
3007         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
3008         property.
3009
3010 2007-03-15  Chris Toshok  <toshok@ximian.com>
3011
3012         * Hwnd.cs: add an internal field for the cached_window_state.
3013
3014         * XplatUIX11.cs: cache the window state, invalidating the cache
3015         (and thus re-querying the X server) only when we see an update to
3016         the _NET_WM_STATE property.
3017
3018 2007-03-15  Chris Toshok  <toshok@ximian.com>
3019
3020         * BindingSource.cs: get a lot of the unit tests working.
3021
3022 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
3023
3024         * Control.cs: Modify UpdateStyles to store distances when bounds >=
3025         0 instead of just bounds > 0.  [Fixes bug #80912]
3026
3027 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
3028
3029         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
3030         and methods.
3031
3032 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
3033         
3034         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
3035         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
3036         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
3037         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
3038
3039 2007-03-15  Chris Toshok  <toshok@ximian.com>
3040
3041         [ Fixes #81101 ]
3042         
3043         * Control.cs: add Ivan's fix for 81101, with a slight modification
3044         - you can set control.Target to null.
3045
3046 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
3047
3048         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
3049         HideDropDown, use Hide instead to prevent an NRE.
3050         [Fixes bug #81147]
3051
3052 2007-03-14  Jackson Harper  <jackson@ximian.com>
3053
3054         * TextBoxBase.cs: Mess with the creation stuff a little. We need
3055         to calculate the document before the handle is created, in some
3056         cases. (Actually just one case).
3057
3058 2007-03-14  Jackson Harper  <jackson@ximian.com>
3059
3060         * TextBoxBase.cs: Need to display the caret after letting the base
3061         wndproc handle the focus methods, because the caret display
3062         methods check the focus state.
3063         - Try to display the caret after updating it's position with SelectWord.
3064         - Don't need to do an immediate update on this recalc, since there
3065         will be an invalidate anyways.
3066
3067 2007-03-14  Jackson Harper  <jackson@ximian.com>
3068
3069         * TreeView.cs: Some workarounds so that we can match event order a
3070         little better.
3071
3072 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
3073
3074         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
3075         #80803. Avoid NullReferenceException when Control does not have
3076         parent. Fixed different blinkstyle issues. Only subscribe to Tick
3077         event a single time. Only draw error icon when control is created and
3078         visible. Fixes failing unit tests.
3079
3080 2007-03-14  Andreia Gaita  <avidigal@novell.com>
3081
3082         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
3083         Selecting events. Fire Leave and Enter events when changing tabs.
3084
3085 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
3086
3087         * TreeView.cs: Add TreeViewNodeSorter.
3088         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
3089
3090 2007-03-14  Chris Toshok  <toshok@ximian.com>
3091
3092         * Form.cs: go ahead and remove the RecreateHandles that jpobst
3093         removed earlier and I had him add back it.  It turns out metacity
3094         *does* in fact handle the MOTIF_WM_HINTS property changing, it
3095         just doesn't redraw the window titlebar until you resize the
3096         window.  This also means we aren't recreating the entire window
3097         hierarchy on X when you change this property.  And it looks better
3098         on windows, too.
3099
3100 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3101
3102         * ListViewItem.cs:
3103         * ListView.cs: Collecting selection information
3104         is now done in SelectedIndexCollection rather than in
3105         SelectedListViewItemCollection. This is done so we can
3106         have the selection information code in one single place
3107         (virtual mode selection information entirely depends on
3108         SelectedIndexCollection).
3109
3110 2007-03-13  Miguel de Icaza  <miguel@novell.com>
3111
3112         * ErrorProvider.cs: Add stubs for ISupportInitialize
3113
3114 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3115
3116         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
3117         in the right order with the right values, from the Checked property, 
3118         just as MS does (instead of triggering them from ListView).
3119
3120         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
3121
3122 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3123
3124         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
3125         the correct handler in OnItemCheck method (ItemCheckEventHandler 
3126         instead of EventHandler). This used to throw an InvalidCastException.
3127
3128 2007-03-13  Jackson Harper  <jackson@ximian.com>
3129
3130         * TextBoxBase.cs: Calculate the document before the handle is
3131         created, so there isn't an extra invalidate called.
3132
3133 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
3134
3135         * Form.cs: Don't set owner in ShowDialog until we are sure
3136         that we aren't going to throw an exception.  [Fixes bug #80773]
3137
3138 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
3139
3140         * TreeView.cs: Make it compile.
3141
3142 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3143
3144         * Control.cs: Another place we don't call SizeFromClientSize.
3145         * Form.cs: Another place we don't call SizeFromClientSize.
3146         [Fixes bug #81125]
3147
3148 2007-03-12  Jackson Harper  <jackson@ximian.com>
3149
3150         * TreeView.cs: Basically emulating some strangness here with
3151         exanding nodes and setting node positions when windows aren't
3152         created.
3153         - Also attempting to walk the node tree less than previously, and
3154         just use visible order calculations for determining offsets.
3155         - oops made scrolling backwards.
3156         * TreeNode.cs: We need to start nodes with a zero visible order,
3157         because the order calcs are based on the first nodes order.
3158
3159 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3160
3161         * Form.cs: Don't exit the program if RecreateHandle is called on
3162         the main form.
3163
3164 2007-03-12  Chris Toshok  <toshok@ximian.com>
3165
3166         * XEventQueue.cs: remove the use of PostQuitState.
3167
3168         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
3169         WM_QUIT message in GetMessage, return false (and if we're in the
3170         nested WaitForHwndMessage, repost the WM_QUIT message).
3171
3172 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3173
3174         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
3175         or the MaximizeBox properties.  [Part of bug #80640]
3176
3177 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
3178
3179         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
3180         no links.
3181
3182 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3183
3184         * ToolStripItem.cs: Fix some tests I broke by checking Visible
3185         instead of visible.
3186
3187 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
3188
3189         * FileDialog.cs: Use text of File name combobox to determine what
3190         files the user selected. Added tokenizer to parse the file names.
3191         Fixes bug #81123.
3192
3193 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3194
3195         * Control.cs: We can't call SizeFromClientSize in the constructor,
3196         but we still need to do the same work, so make an internal version.
3197         [Fixes bug #80621]
3198
3199 2007-03-12  Jackson Harper  <jackson@ximian.com>
3200
3201         * TreeView.cs:
3202         * TreeNode.cs:
3203         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
3204         IsExpanded.
3205
3206 2007-03-12  Jackson Harper  <jackson@ximian.com>
3207
3208         * TextBoxBase.cs: Now that the handles are being created a little
3209         later, we need to make sure that the document is recalculated when
3210         the handle is created.
3211
3212 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
3213
3214         * Theme.cs: GetLinkFont abstract method added.
3215         
3216         * LinkLabel.cs: 
3217         - Remove CalcTrimRectangle, no longer needed.
3218         - Factor also remove, position issues must be fixed in libgdiplus.
3219         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
3220         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
3221         care about font used to draw links.
3222         - Set TabStop to true when control is "Selectable", control is selectable
3223         when have one or more links. Fixes #80501 (test case is also added).
3224         - Set the LinkArea values after links change, LinkArea values must be
3225         based in first link position and size, a test case was created.
3226         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
3227         the attribute must be true LinkArea.Length > 0. The same was applied to
3228         TabStop.
3229         
3230         * ThemeWin32Classic.cs: 
3231         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
3232         in draw method.
3233         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
3234         color change.
3235         - Draw focus rectangle for every parts focused, including parts that 
3236         is on another line, its because regions returns various rectangles
3237         and not only one. Needed to mimic W32 look.
3238         - Uses Graphics.Clip to delimite region painted, it mean that now 
3239         complete text is passed to DrawString, with this we solve layout
3240         issues without create another text renderer.
3241         - Uses Region.Intersect to fix some flickers problems, now only needed
3242         parts will redrawed.
3243         - This changes fixes #79614 and some other unreported issues, on Linux 
3244         some layout problems still remain, the problem is under 
3245         MeasureCharacterRanges but it is an libgdiplus bug.
3246
3247 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
3248
3249         * TextBox.cs: Set for foreground color.
3250         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
3251         this is already done in Control.
3252
3253 2007-03-10  Jackson Harper  <jackson@ximian.com>
3254
3255         * TextBox.cs: Set the background color, but reset the
3256         backcolor_set flag which is just for the user setting the
3257         background color.
3258
3259 2007-03-09  Chris Toshok  <toshok@ximian.com>
3260
3261         * Control.cs: really remove the call to XplatUI.SetVisible from
3262         CreateHandle(), like I said I did when I merged the branch.
3263
3264         * BindingSource.cs: implement some more of this stuff.
3265
3266 2007-03-09  Jackson Harper  <jackson@ximian.com>
3267
3268         * TextBox.cs: Don't explicitly set our background colors.
3269         * TextControl.cs:
3270         * TextBoxBase.cs: Draw readonly text.
3271         - Need to invalidate when backcolor or readonly are changed.
3272         
3273 2007-03-09  Jackson Harper  <jackson@ximian.com>
3274
3275         * TextBoxBase.cs: Don't set the forecolor until the handle is
3276         created.
3277         - Do not raise OnPaint, and removed some old debug code.
3278
3279 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
3280
3281         * ScrollableControl.cs: Fix mouse wheel scrolling.
3282
3283 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3284
3285         * Control.cs: Wire up MouseDoubleClick event.
3286
3287 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3288
3289         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
3290         top or bottom.
3291         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
3292         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
3293         item is added.  This logic was moved to ToolStrip.OnItemAdded.
3294         [Fixes bug #81090]
3295
3296 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3297
3298         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
3299
3300 2007-03-08  Jackson Harper  <jackson@ximian.com>
3301
3302         * TreeView.cs: Show the correct image for selected node (this used
3303         to work, not sure how the code got deleted). Also implemented 2.0 feature
3304         SelectedImageKey.
3305
3306 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3307
3308         * ListView.cs:
3309         * ListViewItem.cs: Cache index in items when retrieving them
3310         in VirtualMode.
3311
3312 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3313
3314         * ToolStripItem.cs: Don't return the explicit_size if we are using 
3315         AutoSize.  Fixes invalidation issue when user has explicitly set a
3316         size and has AutoSize = true.
3317
3318 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3319
3320         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
3321
3322 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3323
3324         * DataGridView.cs: Remove event handler from DataView when a
3325         DataTable is used as DataSource.
3326
3327 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3328
3329         * Control.cs: Create internal setter for client_size to allow it to be
3330         set without triggering resizing code.
3331         * Form.cs: Calculate client_size in constructor, only change client_size
3332         in FormBorderStyle property if Handle has been created.
3333         [Fixes #80574, #80791]
3334
3335 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
3336
3337         * SystemInformation.cs: Add TerminalServerSession.
3338
3339 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3340
3341         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
3342         TreeView code.
3343
3344 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3345
3346         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
3347         Handle before we were supposed to.  Now checks ActivateOnShow property
3348         in Control.
3349         * Control.cs: Add internal ActivateOnShow property.
3350         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
3351         for ActivateOnShow.
3352         * Hwnd.cs Remove no longer needed no_activate field.
3353
3354 2007-03-07  Jackson Harper  <jackson@ximian.com>
3355
3356         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
3357         2.0 properties
3358         * DrawTreeNodeEventHandler.cs: Add
3359         * DrawTreeNodeEventArgs.cs: Correct default value.
3360         
3361 2007-03-07  Chris Toshok  <toshok@ximian.com>
3362
3363         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
3364         to be called before NativeWindow.WndProc.  Put the HwndCreating
3365         magic there to hook up our Hwnd's to handles.
3366
3367 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
3368
3369         * DataGridView.cs: Comment out debug code.
3370
3371 2007-03-07  Chris Toshok  <toshok@ximian.com>
3372
3373         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
3374         to make the rest of the world happy]
3375
3376         * Control.cs (CreateHandle): there's no need to call
3377         XplatUI.SetVisible here, it's effectively done by
3378         XplatUI.CreateWindow on X now, and always was on windows.
3379
3380         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
3381         shortcircuit out of the loop if we have a message loop running on
3382         this thread.
3383
3384         [Changelog from merge]
3385
3386         2007-03-05  Chris Toshok  <toshok@ximian.com>
3387
3388                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
3389                 causes handle creation.
3390
3391         2007-02-28  Chris Toshok  <toshok@ximian.com>
3392
3393                 * ApplicationContext.cs: Add a flag to make sure we only raise the
3394                 ThreadExit event once (ExitThreadCore can be indirectly called
3395                 from a few places.)  I don't like the additional flag, but it
3396                 makes the event ordering/count correct.
3397
3398                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
3399                 without locking the collection.  An enumerator doesn't give us any
3400                 protection from modification anyway.  Lock the thread hash and
3401                 replace the complicated enumerator loop with a foreach.
3402                 (Application.CloseForms): make internal so it can be called from
3403                 ApplicationContext.  This should probably be moved to MWFThread.
3404                 (Application.ExitThread): don't call MWFThread.Current.Exit()
3405                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
3406                 when the runloop exits (in response to WM_QUIT.)
3407                 (Application.RunLoop): add a comment (and check) for
3408                 context.MainForm being null after setting context.MainForm.Visible
3409                 = true.  This is because you're perfectly free to dispose of a
3410                 form in VisibilityChanged.  Chalk this up to another case where we
3411                 need to synchronously generate WM_ACTIVATE from Control.Show.
3412                 Also, add handling for WM_QUIT here so we'll exit the loop.
3413                 
3414                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
3415                 fact that we don't wait if we're only unmapping the whole_window
3416                 makes me a bit nervous, but it doesn't seem to cause any problems
3417                 yet.
3418
3419                 also, add a comment about the stupid, broken and wrong resetting
3420                 of PostQuitState to false in GetMessage().
3421
3422                 In PostQuitMessage, we need to add a WM_QUIT message to the
3423                 thread's queue.  We use the FosterParent to get the right
3424                 handle/hwnd/queue.
3425
3426                 Lastly, in SetVisible, we need to unmap both windows, since the
3427                 waiting only happens when we're unmapping the client window.  So
3428                 now, the *only* time we unmap just the whole_window is in the hack
3429                 for resizing a control to 0,0.
3430                 
3431         2007-02-21  Chris Toshok  <toshok@ximian.com>
3432
3433                 * Application.cs (CloseForms): rewrite this so that we don't
3434                 modify the list while we're traversing it.
3435
3436         2007-02-20  Chris Toshok  <toshok@ximian.com>
3437
3438                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
3439                 of OnHandleCreated.
3440                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
3441                 handle is created.  otherwise we'll create it here.
3442                 (VerticalScrollEvent): same here.
3443
3444                 * Application.cs (CloseForms): call Form.Dispose, don't post
3445                 WM_CLOSE_INTERNAL.
3446
3447                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
3448                 here. Application should Dispose() of the Form's.
3449
3450                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
3451                 WM_DESTROY as well.
3452                 (MapWindow,UnmapWindow): only actually do the waiting for
3453                 SHOWWINDOW if the control we're dealing with is a Form.
3454                 (CreateWindow): if the control isn't a form, SendMessage
3455                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
3456
3457                 * Control.cs (SetVisibleCore): always use is_visible here, not
3458                 value.  If we use value, we can end up re-setting something
3459                 visible if, for instance, you do Control.Hide() in a delegate
3460                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
3461
3462         2007-02-20  Chris Toshok  <toshok@ximian.com>
3463
3464                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
3465                 the message we need.  PeekMessage returning false should not be a
3466                 condition under which we exit the loop.
3467
3468         2007-02-15  Chris Toshok  <toshok@ximian.com>
3469
3470                 * Control.cs (Refresh): only refresh if we've got a handle and are
3471                 visible.
3472                 (CreateAccessibilityInstance): CreateControl() here.
3473                 (UpdateChildrenZOrder): complicate the code loop even more by
3474                 taking into account controls that haven't had their handle
3475                 created, and those that aren't visible.  But on the flip side,
3476                 simplify the code by splitting it into two loops.  one which
3477                 builds up the list of child controls we're interested in, and the
3478                 other that sets the z order of those children.
3479
3480         2007-02-14  Chris Toshok  <toshok@ximian.com>
3481
3482                 * Control.cs: Control.AccessibilityObject causes the control to be
3483                 created, not just the handle.
3484
3485         2007-02-14  Chris Toshok  <toshok@ximian.com>
3486
3487                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
3488                 problem on X where a window might have its handle created (and be
3489                 visible) while the window is unmapped.  calling XConfigureWindow
3490                 on an unmapped window is bad, and generates X errors.
3491
3492         2007-02-13  Chris Toshok  <toshok@ximian.com>
3493
3494                 * Control.cs (CreateHandle): don't loop over our children setting
3495                 their parent here.  do it when in WndProc when we're shown.
3496                 (UpdateChildrenZOrder): make this internal so we can call it from
3497                 ScrollableControl.
3498                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
3499                 creating its handle.  Also, remove the calls to PerformLayout from
3500                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
3501                 OnVisibleChanged only seems to be called directly here for the
3502                 toplevel control.  It's propagated down the window hierarchy by
3503                 calls to child.OnParentVisibleChanged.
3504                 (OnVisibleChanged): don't do layout here - it's done (oddly
3505                 enough, according to a glance at stack traces on ms.net..) in
3506                 ScrollableControl.
3507                 
3508                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
3509                 z order of our children before calling PerformLayout.
3510
3511         2007-02-12  Chris Toshok  <toshok@ximian.com>
3512
3513                 [big change, fixes #80020]
3514                 
3515                 * AccessibleObject.cs: we need to make owner internal again to fix
3516                 some of ControlAccessibleObject.
3517
3518                 * Control.cs: lots of changes here.  add support for WM_CREATE,
3519                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
3520                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
3521                 we create child controls.  leave the MonoTODO's for the
3522                 accessibility calls, but fix the exceptions so the tests pass.
3523
3524                 Add the InvalidOperationExceptions to Invoke methods, and remove a
3525                 couple of InvokeInternal methods we aren't using.
3526                 
3527                 Also, add a couple of CreateHandle calls in places where we know
3528                 the handles are being created but our code doesn't reference
3529                 .Handle.
3530
3531                 Make SetVisibleCore call OnVisibleChange if the handle isn't
3532                 created.  If the handle is created, we rely on XplatUI.SetVisible
3533                 generating the event synchronously.
3534                 
3535                 Lastly, make sure we don't use this.Handle inside CreateHandle,
3536                 because we can call back into client (and that code can dispose of
3537                 the control).
3538
3539                 * XplatUIStructs.cs: misc/cleanup.
3540
3541                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
3542                 although we don't populate the wParam properly.
3543                 (CreateWindow): generate WM_CREATE.
3544                 (MapWindow,UnmapWindow): make these calls synchronous, at great
3545                 performance expense (particularly in the unmap case), to match
3546                 win32 behavior.
3547
3548                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
3549                 to call it.
3550                 (set_MdiParent): don't recreate the handle unless it's been
3551                 created already.
3552                 
3553                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
3554                 it's created.
3555
3556                 * NativeWindow.cs: this is probably the weirdest part of the
3557                 patch.  We need a way to link up the window being created to the
3558                 WM_CREATE message.  Since we can only be creating one window at a
3559                 time on a given thread, we keep track of a per-thread reference so
3560                 we can dispatch it properly.  We also need to keep track of the
3561                 Hwnd currently being created so that the win32 backend doesn't
3562                 have problems.
3563                 
3564                 * XplatUIWin32.cs: a similar change to the one we made in
3565                 NativeWindow.cs.
3566
3567 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3568
3569         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
3570         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
3571         to draw the menu shortcut string.
3572
3573 2007-03-07  Jackson Harper  <jackson@ximian.com>
3574
3575         * TreeNode.cs: Add the 2.0 collapse method.
3576
3577 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3578
3579         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
3580
3581 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3582
3583         * DataGridView.cs: Change DataSource will clear column and row
3584         lists. Call Invalidate() to reflect DataSource change.
3585
3586 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3587
3588         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
3589         and a new row is added to it.
3590
3591 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3592
3593         * DataGridView.cs: Add columns when DataSource is en empty list but
3594         is a System.Data.DataView (from a System.Data.DataTable).
3595
3596 2007-03-06  Andreia Gaita  <avidigal@novell.com>
3597
3598         * Label.cs: Implement AutoEllipsis (2.0)
3599
3600 2007-03-06  Jackson Harper  <jackson@ximian.com>
3601
3602         * TreeView.cs: Implement 2.0 TopNode setter property.
3603         - Use a local var instead of the skipped_nodes field for computing
3604         how many nodes to skip.  Otherwise we won't scroll because the
3605         valuechanged handler checks if skipped_nodes is equal to the new
3606         value.
3607         - Implement 2.0 Sort method.
3608         - Add useless 2.0 DoubleBuffer property
3609         - Implement 2.0 LineColors property.  Lets you change the color of
3610         the lines in the tree. Terribly useful for creating non cohesive
3611         desktops.
3612         - Implement 2.0 image key feature.
3613
3614 2007-03-06  Jackson Harper  <jackson@ximian.com>
3615
3616         * TreeView.cs: We can't get the bounds of the nodes before raising
3617         the AfterSelect event, because that event could change the node's
3618         bounds (scrolling, font change, etc).
3619
3620 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3621
3622         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
3623         * Form.cs: Don't recreate handle when creating FormWindowManager, just
3624           update window styles. In CreateParams us VisibleInternal instead of
3625           VIsible to get the actual visible flag set for this form.
3626         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
3627           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
3628           handle the case when the form is already maximized, in which case
3629           it should be restored. Fixes #81043.
3630
3631 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3632
3633         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
3634
3635 2007-03-05  Jackson Harper  <jackson@ximian.com>
3636
3637         * TreeViewHitTestInfo.cs: implement.
3638
3639 2007-03-05  Jackson Harper  <jackson@ximian.com>
3640
3641         * InternalWindowManager.cs: class status fix.
3642
3643 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3644
3645         * InternalWindowManager.cs: All windows that have a parent
3646         are confined to their parent when they're being moved.
3647         Fixes #80822.
3648
3649 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
3650
3651         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
3652         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
3653
3654 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3655
3656         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
3657           buttons invisible before deciding which ones should be visible
3658           (fixes minimize/maximize buttons showing up in toolwindows). Remove
3659           an unused variable.
3660         * InternalWindowManager.cs: Remove warning.
3661
3662 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3663
3664         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
3665         to throw an InvalidOperationException is virtual mode is being used.
3666
3667 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3668
3669         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
3670         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
3671         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
3672         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
3673         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
3674         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
3675
3676 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3677
3678         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
3679           driver.KeyboardDelay from XplatUI.KeyboardDelay 
3680         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
3681           (patch by Sergey Volk)
3682
3683 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3684
3685         * ToolWindowManager.cs: Added, contains logic for
3686           tool windows.
3687         * CreateParams.cs: Add a few helper methods and an
3688           internal variable to know which control the CreateParams belongs
3689           to.
3690         * Control.cs: Call Form.ChangingParent when the
3691           parent is about to be changed.
3692         * XplatUIX11.cs: DeriveStyles (): Set
3693           caption_height for all windows that have captions and are children.
3694           Update to use ToolWindowManager instead of InternalWindowManager
3695           for ToolWindows.
3696         * XplatUIWin32.cs: Set fake window styles for all
3697           windows that have window managers.
3698         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
3699           now duplicated for mdi windows when they are
3700           maximized, first for the buttons the window itself has, then for
3701           the buttons that appear in the menu bar. Makes things a little
3702           easier). Updated UpdateWindowDecorations, SetWindowState and the
3703           mouse eventhandlers accordingly.
3704         * Form.cs: Add ChangingParent (), contains the
3705           logic of what should happen when the parent changes. In MdiParent
3706           don't set things that ChangingParent () is doing. When handling
3707           WM_CLOSE, we can close the form if there are any other modal forms
3708           and the current form is a descendent of the modal form.
3709         * InternalWindowManager.cs: A lot of refactoring,
3710           the title buttons are now extracted to a separate container class
3711           that takes care of all button code (clicks, tooltips, etc). Moved
3712           Iconic|Maximized|Normal Bounds properties to this class from
3713           MdiWindowManager, so that the window state logic can succeed for
3714           other than mdi wm's. Implemented general window state change logic.
3715           Moved CreateButtons to ThemeWin32Classic, since the theme might
3716           override which buttons are available when as well as the exact
3717           location.
3718         * FormWindowManager.cs: Added, contains logic for
3719           normal forms.
3720         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
3721           which buttons go where (and if they are at all visible). 
3722           Removed special handling of maximized windows, since they aren't special. 
3723           In DrawManagedWindowDecorations don't try to draw the text if it is
3724           empty.
3725         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
3726           use whatever the wm gives us.
3727
3728 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3729
3730         * ButtonBase.cs: Add 2.0 properties.
3731         * Button.cs: Override Draw for 2.0.
3732         * Control.cs: Add Entered and Selected properties.
3733         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
3734         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
3735         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
3736         buttons.
3737         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
3738
3739 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3740
3741         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
3742
3743 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3744
3745         * XplatUIWin32.cs: Register a new class with Windows each time we get
3746         a new ClassStyle.  [Fixes bugs #79432, #80817]
3747         * Controls.cs: Set the correct ClassStyle in CreateParams.
3748         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
3749
3750 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
3751
3752         * ListView.cs: Add fireEvent argument to ReorderColumn since the
3753         ColumnReordered event must not be signaled when modifying DisplayIndex
3754         of a ColumnHeader. Added internal ReorderColumns method which takes
3755         care of drawing, and updating the internal DisplayIndex of the
3756         ColumnHeader. Added AddColumn method which is invoked from
3757         ColumnHeaderCollection when adding or inserting columns, and which
3758         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
3759         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
3760         Recalculated dispay indices after removing a ColumnHeader.
3761         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
3762         match MS. Allows last display index to be returned after ListView
3763         is disposed. Update actual location of ColumnHeader when DisplayIndex
3764         is modified.
3765
3766 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
3767
3768         * LinkLabel.cs: Improve CalcTrimRectangle.
3769         
3770         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
3771
3772 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3773
3774         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
3775         get rectangle as a result value.
3776
3777 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3778
3779         * LinkLabel.cs: Theres some diferences between rectangle return from 
3780         MeasureCharacterRanges and the area used for DrawString to fix this 
3781         CalcMeasurementFactor method was created, it calcules the diferences
3782         to be use later to adjust rectangle in draw operations. Fixes #80473.
3783         
3784         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
3785         to adjust draw rectangle.
3786
3787 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3788
3789         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
3790         text and some other changes to reduce and optimize source code.
3791
3792 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3793
3794         * RadioButton.cs: Implement 2.0 event.
3795         * RelatedImageListAttribute.cs: Implement new class.
3796
3797 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3798
3799         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
3800
3801 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3802
3803         * CheckBox.cs: Implement 2.0 functionality.
3804
3805 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3806
3807         * ListView.cs: Refactor Add and AddRange methods of
3808         ListViewItemCollection, to not update the ListView
3809         everytime an item is added in AddRange. Also move the update
3810         code to a new CollectionChanged method, and call it
3811         from other methods that need it as well (this should also fix some
3812         bugs when Sorting is used).
3813
3814 2007-02-27  Jackson Harper  <jackson@ximian.com>
3815
3816         * TextControl.cs: Try to never let the caret stay in a non-text
3817         tag.
3818         * TextBoxBase.cs: Update the caret.
3819
3820 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
3821
3822         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
3823         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
3824         delete POINT structure, duplicate of one in XplatUIStructs.
3825         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
3826
3827 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
3828
3829         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
3830         edit box since otherwise the Label would immediately be set (even if
3831         the user did not modify the label). In OnKeyDown set Handled to true
3832         if Return or Escape was pressed. In ColumnHeaderCollection unlink
3833         columns that are to be removed. In ListViewItemCollection unlink items
3834         that are to be removed.
3835
3836 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
3837
3838         * TextRenderer.cs: If we set a GDI clip region, we need to clear
3839         it when we are done.  [Fixes bug #80949]
3840
3841 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3842
3843         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
3844
3845 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3846
3847         * ListView.cs: I forgot to commit the changes for ListView 
3848         in my previous patch.
3849
3850 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3851
3852         * Clipboard.cs: Partially implement an overload of SetDataObject.
3853         * Form.cs: Implement ShowWithoutActivation.
3854         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
3855
3856 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3857
3858         This is a first set of changes to make the Virtual mode works,
3859         by avoiding the retrieval of ListViewItem instances until
3860         draw time.
3861
3862         * ListView.cs: Store item position in the ListView instead of the
3863         ListViewItem, this way we don't request the Bounds property of
3864         ListViewItem inside the ListView calculations, as well as cache the item
3865         size in item_size field. Store indexes instead of ListViewItem
3866         instances in the matrix used by icon view. Add a ItemMatrixLocation
3867         struct to hold the row and col info of the matrix info.
3868
3869         * ListViewItem.cs: Don't store the location anymore, and only cache
3870         the rectangles for GetBounds. Use the ListView.GetItemLocation
3871         method to retrieve the actual location.
3872
3873 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3874
3875         * TextRenderer.cs: Add clipping support, thanks to George.
3876         [Fixes bug #80949]
3877
3878 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3879
3880         * ListViewItem.cs: Cancel label edit when item is removed from 
3881         ListView.
3882         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
3883         event before the edit textbox is displayed.  Added CancelEdit method
3884         which is used end to editing while ignoring the value set by the
3885         user. In EndEdit, set focus to ListView to avoid losing focus to
3886         other controls. In ListViewItemCollection.Clear, cancel editing of
3887         any of the items.  In Remove, cancel editing of item being removed.
3888         Avoid udplicate code by modifing RemoveAt to invoke Remove.
3889
3890 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3891
3892         * FileDialog.cs: Update FSEntry when move is successful. Fixes
3893         bug #80948.  
3894
3895 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3896
3897         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
3898         compatible with non X11 systems. Fixes #80901.
3899
3900 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3901
3902         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
3903         whether the item should be unselected and reselect. We do no want this
3904         when we're starting to edit the label. Do not fire the 
3905         SelectedIndexChanged event from ListView when its already been fired
3906         by modifying ListViewItem.Selected. Fixes bug #80943.
3907
3908 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3909
3910         * TextRenderer.cs: Previos commit logic was backwards.
3911
3912 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3913
3914         * TextRenderer.cs: Don't add padding on MeasureText if we were
3915         sent the NoPadding flag.
3916
3917 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3918
3919         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
3920         after DrawButton. To prevent image overlaps button borders SetClip and 
3921         ResetClip added before and after draw image. Fixes #79129.
3922
3923 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3924
3925         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
3926         window size, it fix problem when you run under win32 that theres
3927         Size diferent than ClientSize. Also fix controls size and positions
3928         to mimic Win32. Fixes #80837.
3929
3930 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
3931
3932         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
3933         menu area to fix some problems for non X11 systems. Fixes #80613.
3934
3935 2007-02-22  Jackson Harper  <jackson@ximian.com>
3936
3937         * TreeNode.cs: When a node is expanded, set its is_expanded flag
3938         even if it doesn't have any children.
3939
3940 2007-02-22  Jackson Harper  <jackson@ximian.com>
3941
3942         * TreeView.cs: Calculate the top node 'on the fly', this
3943         eliminates issues where you need to click on the tree before
3944         scrolling it to get the top node computed correctly.
3945         * TreeNodeCollection.cs: We don't need to mess with the top node
3946         anymore.
3947
3948 2007-02-22  Jackson Harper  <jackson@ximian.com>
3949
3950         * DataGridViewRow.cs: Fix typo so height can actually be set.
3951         Patch by Peter Grimm.
3952
3953 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3954
3955         * FileDialog.cs: Fixed support for renaming files and directories.
3956         * ListView.cs: Do not lose focus when edit is canceled. Process
3957         Escape as regular key (to prevent closing of dialogs).
3958
3959 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3960
3961         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
3962         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
3963
3964 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3965
3966         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
3967         did not modify label.
3968         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
3969         modified the text. Reset Label when user presses Escape in edit mode.
3970         Move focus to ListView after having cancelled or finished editing the
3971         label.
3972
3973 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
3974
3975         * ComboBox.cs: Removed unnecessary initializations. Marked items field
3976         private. Clear textbox when Text is set to null and SelectedIndex is
3977         already -1.
3978         * FileDialog.cs: Removed unnecessary initializations. Removed 
3979         workarounds for ComboBox bugs that are now fixed. Modified
3980         DefaultExt, InitialDirectory and Title property to change null to
3981         zero-length string in getters. Avoid directly accessing fields.
3982
3983 2007-02-20  Jackson Harper  <jackson@ximian.com>
3984
3985         * TextControl.cs: Remove RecalAlignments call, that was some
3986         debugging leftovers.
3987         - Don't use the line indent when we shouldn't.
3988         * RichTextBox.cs: Add support for paragraph left indents.
3989
3990 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3991
3992         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
3993         Seems like the class status pages doesn't catch params differences.
3994
3995 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
3996
3997         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
3998
3999 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
4000
4001         * ComboBox.cs: Setting Text should have no effect if item text of
4002         selected item exactly matches value. First lookup text using
4003         case-sensitive comparison, and fallback to case-insensitive comparison.
4004         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
4005         allow startIndex to be last index. Changed ArgumentOutOfRangeException
4006         paramname to match MS. Restart from first item if string is not found
4007         after startIndex. Fixed paramname of ArgumentNullException that is
4008         thrown for null value in ObjectCollection.Contains.
4009
4010 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
4011
4012         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
4013
4014 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4015
4016         * ListControl.cs: In SelectedValue use value.Equals to compare for
4017         equality instead of ==, otherwise it will fail for strings.
4018         Fixes #80794.
4019
4020 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4021         
4022         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
4023         since the caret won't show up unless ShowSelection is true. 
4024         Fixes #80795.
4025
4026 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4027
4028         * Application.cs: When disabling all forms but the main form, do not
4029           disable any descendants of the main form (such as mdi children or
4030           other parented forms). Fixes #80822 on Windows.
4031         * Form.cs: If we have a parent, set the WS_CHILD style.
4032         * Control.cs: Update the window styles if the control whose parent has
4033           changed is a form (the WS_CHILD style has to be switched).
4034
4035 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
4036
4037         * XplatUIStructs.cs: MsgUIState structure added.
4038
4039 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
4040
4041         * FileDialog.cs: Removed need for separate fileName field. On 2.0
4042         profile, do not check filename(s) for illegal character if filename(s)
4043         were set non-interactively but always check on 1.0 profile. Fixed NRE
4044          in DefaultExt and only strip off first leading dot. Improve exception
4045         message when invalid Filter is set. Do not ignore InitialDirectory if
4046         it does no exist. Store specified Title, and if empty use default
4047         title (depending on type of dialog). Added an internal DialogTitle 
4048         property for retrieving dialog title. Fixed logic of displayed dir to
4049         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
4050         string as its buggy.
4051         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
4052         FileName is a zero-length string (it can never be null). Override 
4053         DialogTitle property to set default title of dialog box.
4054         * SaveFileDialog.cs: Override DialogTitle property to set default
4055         title of dialog box.
4056
4057 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
4058
4059         * FileDialog.cs: Modify default text of filename and filetype labels
4060         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
4061         after we've updated the SelectedIndex. Fixes part of bug #80887.
4062         * SaveFileDialog.cs: Set text of filetype label.
4063
4064 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4065
4066         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
4067         label field. Needed by latest Jackson's fixes for ListView.
4068
4069 2007-02-16  Andreia Gaita  <avidigal@novell.com>
4070
4071         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
4072         print preview images.
4073
4074 2007-02-16  Jackson Harper  <jackson@ximian.com>
4075
4076         * ListView.cs: Make AfterLabelEdit work correctly.
4077         * FileDialog.cs: After changing the name of the folder, we have to
4078         make sure that it is created, or that we pop up an error because
4079         it already exists.
4080
4081 2007-02-16  Jackson Harper  <jackson@ximian.com>
4082
4083         * X11Dnd.cs: Implement aliases on mime handlers, so things like
4084         System.String are mapped to text.
4085         - Handle dataobjects, getting all the possible formats out of them
4086         - We dont need the drag event args before we give feedback. This
4087         allows feedback cursors to be immediate before selections have
4088         been converted.
4089
4090 2007-02-16  Jackson Harper  <jackson@ximian.com>
4091
4092         * TextBoxBase.cs: Modified the method for inserting images to
4093         taking a line and position instead of tag and position.
4094         * RichTextBox.cs: Handle PngBlip data by inserting the png image
4095         into the RTF file.
4096         * TextControl.cs: Allow images to be inserted as the first tag of
4097         a line.
4098         - Fix some off by one issues when we assume the first tag is a
4099         text tag, not an image tag.
4100
4101 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4102
4103         * ListView.cs: Set focus to ListView when ItemControl gets a
4104         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
4105         Fixes part of #80467.
4106
4107 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4108
4109         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
4110           validate Text input (if null or empty string reset Value to default
4111           value). Fixes #80830.
4112
4113 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4114
4115         * ListView.cs: Set owner as null for columns and items when
4116         Dispose is invoked. Fixes #80607.
4117
4118 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
4119
4120         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
4121         showing DropDowns, don't show a Grip when doing Flow layout.
4122         [This fixes the toolbox in PDN 2.72.]
4123         * ToolStripItem.cs: Add Anchor property and some internal properties to
4124         reduces needed changes to FlowLayout.
4125         * ToolStripOverflow.cs: Remove unused variable.
4126         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
4127         use it in the layout calculations.
4128
4129 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4130
4131         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
4132         reported in #79640.
4133         
4134         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
4135         size calculation.
4136
4137 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4138
4139         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
4140         MeasureString format, it can make button very large in some cases, it is
4141         strange but is what win32 do.
4142
4143 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4144
4145         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
4146         size calculation.
4147
4148         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
4149         rendering, the value is based on MenuAccessKeysUnderlined.
4150
4151 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4152
4153         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
4154         for most themes.
4155         
4156         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
4157         
4158         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
4159         and use MenuAccessKeysUnderlined instead.
4160
4161 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4162
4163         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
4164         A selected control would not get a Focus call if:
4165                 - the default active control of the container is the same as
4166                   the one that was selected
4167                 - we are switching from one container to another
4168         Under these conditions, the container being selected already has
4169         an active_control, which is the same as the one being activated, 
4170         so set_ActiveControl would always return and not send the Focus
4171         call. Fix to check if the currently active control of the container
4172         is actually focused.
4173
4174 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
4175
4176         * StatusStrip.cs: Implement the spring layout.
4177         * ToolStripControlHost.cs: Make sure the hosted control's visibility
4178         always matches the host.
4179         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
4180         and TextAfterImage.
4181
4182 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4183
4184         * Control.cs: Code reorganization only.
4185           - Reorganize the WndProc cases so that each case has it's own handling method, 
4186           to help with the no-line-numbering stack traces.
4187           - Formatting changes (it's vstudio's fault, really :p)
4188
4189 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4190
4191         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
4192           Thread.CurrentUICulture to match DateTimePicker's (and MS)
4193           behaviour.
4194
4195 2007-02-12  Jackson Harper  <jackson@ximian.com>
4196
4197         * RichTextBox.cs:
4198         * TextBox.cs: By default we have a non multiline document
4199         - use the multiline property instead of the internal variable
4200         * TextBoxBase.cs: Treat multiline and non multiline the same in
4201         most places.
4202         - Use the documents multiline flag instead of tracking it ourself
4203         * TextControl.cs: Attempt at getting multiline to match MS
4204         behavior.  Lines now track an offset, which is either their X or Y
4205         offset depending on whether or not we are in multiline mode.
4206         - Update all the methods to understand that lines have an X value.
4207         - Fix crash in Undo::Duplicate when empty lines are deleted.
4208
4209 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4210
4211         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
4212         code moved to properties PreferredHeight and PreferredWidth. It solve the
4213         all problems when preferred sizes must be recalculated. Fixes #80801.
4214
4215 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4216
4217         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
4218         font height when compatible_text_rendering is false. Partially fix #80801.
4219
4220 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4221
4222         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
4223
4224 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4225
4226         * Form.cs: Improved exception messages in ShowDialog.
4227
4228 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4229
4230         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
4231         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
4232         if not set. Fixes bug #80764. Avoid accessing current_settings field
4233         directly.
4234
4235 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
4236
4237         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
4238         false.
4239
4240         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
4241         public in 2.0 and for easy maintenance and dont break compatibility it is 
4242         internal in 1.1.
4243         
4244 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4245
4246         * ToolStripItem.cs: Implement using images from ImageList.
4247
4248 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4249
4250         * DateTimePicker.cs: Change default date-formatting culture from
4251           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
4252           seems to be the way MS does it.
4253
4254 2007-02-08  Andreia Gaita  <avidigal@novell.com>
4255
4256         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
4257         (the 6 was cut off on the right side)
4258
4259 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4260
4261         * Form.cs: Tell MenuStrips to close when the form is clicked.
4262         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
4263         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
4264         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
4265         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
4266         support for Overflow, where items that do not fit are automatically
4267         reparented to a drop down menu.
4268         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
4269         Also: fixes bug #80747.
4270
4271 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4272
4273         * ComboBox.cs: Remove warning (unused code).
4274         * ScrollableControl.cs: Remove warning for 1.1 profile.
4275
4276 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4277
4278         * Form.cs: Remove a warning.
4279
4280 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4281
4282         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
4283           'g' specifier, not documented anywhere, but seems to always show up
4284           as a single space (might have something to do with the DateTime 'g'
4285           specifier, which is the era format, but since DateTimePicker can't
4286           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
4287           won't crash if the format has an unmatched quote. Now shows
4288           single-character formats correctly. Fixes #80744.
4289
4290 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4291
4292         * StatusStrip.cs: Stretch property needs to call base.Stretch,
4293         not this.Stretch to fix stack overflow. [Fixes bug #80760]
4294
4295 2007-02-07  Chris Toshok  <toshok@ximian.com>
4296
4297         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
4298         background color.  it overwrites the background image we've
4299         already painted.  Fixes #80599.
4300
4301 2007-02-07  Chris Toshok  <toshok@ximian.com>
4302
4303         * DataGrid.cs: return immediately from Edit() when there are no
4304         columns.  Fixes #80662.
4305
4306 2007-02-07  Chris Toshok  <toshok@ximian.com>
4307
4308         * MessageBox.cs: fix #80625.  don't always show the Help button in
4309         2.0.  use the displayHelpButton parameter to determine if we
4310         should show it. Also, make the internal show_help field private.
4311
4312 2007-02-07  Chris Toshok  <toshok@ximian.com>
4313
4314         * Control.cs (SetVisibleCore): check in the proposed patch for
4315         80604, and set is_visible before calling CreateControl.
4316
4317 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
4318
4319         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
4320         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
4321         on it.
4322
4323 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
4324
4325         * MenuAPI.cs: hotkey_active internal field added, it is required because
4326         we need to know when hotkeys must be draw, before this change a keystate
4327         Navigating was used but we can have menu in navigating state without
4328         hotkeys. Fixes #80694.
4329         
4330         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
4331
4332 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4333
4334         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
4335           corresponding events and methods to be internal for 1.1 profile and
4336           public for 2.0 profile (required by SizeGrip).
4337         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
4338           implicit control list). Don't set the size nor the location of the
4339           SizeGrip anymore as it's not needed.
4340         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
4341           draw directly on the captured control (fixes #80656). Removed
4342           ShowGrip (it wasn't used anywhere), redraw (always true), added
4343           GetDefaultSize and GetDefaultRectangle to calculate defaults.
4344         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
4345           be called from SizeGrip.
4346
4347 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4348
4349         * Timer.cs: Throw ArgumentException if Interval <= 0.
4350
4351 2007-02-05  Jackson Harper  <jackson@ximian.com>
4352
4353         * TreeView.cs: We need to check scrollbar visibility when window
4354         visibility is updated, because non visible trees don't ever add
4355         scrollbars.
4356         * Cursor.cs: We want the override cursor to be reset to NULL when
4357         we set current cursor to the default cursor.
4358
4359 2007-02-05  Jackson Harper  <jackson@ximian.com>
4360
4361         * TextControl.cs: Don't have crlfs when we are non multiline.
4362         - Consolidate the line position.
4363
4364 2007-02-05  Jackson Harper  <jackson@ximian.com>
4365
4366         * X11Keyboard.cs: BACK+CTRL gets a special char code.
4367
4368 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4369
4370         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
4371           handling LeaveNotify->NotifyUngrab in order to send
4372           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
4373           after calling XUngrabPointer, so we call WindowUngrabbed directly
4374           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
4375         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
4376           MouseCaptureChanged correctly. Also create handles if changing
4377           Capture (matches MS behaviour).
4378
4379 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4380
4381         * SizeGrip.cs: Make the last change 2.0 only.
4382
4383 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4384
4385         * SizeGrip.cs: If resizing and the capture is lost, revert any size
4386           changes to initial size (fixes #80597).
4387
4388 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4389
4390         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
4391
4392 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4393
4394         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
4395           background) and only allow dragging if enabled. This way the
4396           sizegrip can be used to fill the open square that otherwise would
4397           have been shown in the bottom right corner of ScrollableControl
4398           when ScrollableControl is not suppose to support sizing.
4399         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
4400           sizegrip is shown and enabled, and hook up with necessary events.
4401
4402 2007-02-01  Chris Toshok  <toshok@ximian.com>
4403
4404         * DataGridTextBoxColumn.cs: clean up the
4405         GetFormattedString/GetColumnValueAtRow combination of functions.
4406         Also fix UpdateUI, and the initial state of
4407         IsInEditOrNavigateMode.
4408
4409         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
4410         aren't supposed to scroll the textbox here, we're supposed to
4411         scroll the datagrid.
4412
4413 2007-02-01  Chris Toshok  <toshok@ximian.com>
4414
4415         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
4416         setting the position.
4417
4418 2007-02-01  Chris Toshok  <toshok@ximian.com>
4419
4420         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
4421         here, since the most recent focus fixes keep us from generating
4422         the Leave event when our textbox gets focus.
4423         (Edit): we should be passing null for the column style's
4424         instantText parameter.
4425         
4426 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
4427
4428         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
4429         raised.  Fixes menu text/icons not showing up in PDN.
4430
4431 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4432
4433         * Control.cs: Remove code in constructor that makes every
4434         control with WS_CHILD set have initial location -1, -1.
4435
4436 2007-01-31  Jackson Harper  <jackson@ximian.com>
4437
4438         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
4439         XplatUIX11.
4440         * XplatUIX11.cs: Give teh keyboard to teh dnd.
4441
4442 2007-01-31  Jackson Harper  <jackson@ximian.com>
4443
4444         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
4445         - Remove some debug code.
4446
4447 2007-01-31  Jackson Harper  <jackson@ximian.com>
4448
4449         * XplatUIX11.cs: If you set the override cursor during a grab, it
4450         should actually override the grab cursor.  This comes into play
4451         when you are setting custom cursors in a DND feedback method.
4452
4453 2007-01-31  Jackson Harper  <jackson@ximian.com>
4454
4455         * X11Dnd.cs: Add support for handling the QueryContinue and
4456         GiveFeedback events.
4457         - Cancel drag and drop actions when the escape key is clicked.
4458         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
4459         can handle the ESCAPE key.
4460         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
4461         done when dnd events are continued after the button is released.
4462         - Add a new helper method so that dnd can translate key events.
4463
4464 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
4465
4466         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
4467         make it more obvious what is happening.
4468
4469 2007-01-30  Jackson Harper  <jackson@ximian.com>
4470
4471         * XplatUIX11.cs: Don't break when handling button release in drag
4472         and drop operations. We need that BUTTONUP message to get through
4473         so capture is released.
4474         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
4475         this is handled automatically when the mouse is down.
4476
4477 2007-01-30  Jackson Harper  <jackson@ximian.com>
4478
4479         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
4480         is closed, so we need to make sure that we aren't changing the
4481         dialog result when the OK (Open or Save) button has been clicked
4482         and we are closing the window ourselves.  Note we don't need to
4483         worry about the cache being written in this case, because it was
4484         already done in the previous FilOk call.
4485
4486 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4487         
4488         * DateTimePicker.cs: Remove a warning.
4489         * ComboBox.cs: Remove a couple of warnings.
4490
4491 2007-01-29  Chris Toshok  <toshok@ximian.com>
4492
4493         * XplatUIX11.cs: don't crash, and remove the icon if the user has
4494         set one, if SetIcon is passed a null icon.
4495
4496 2007-01-29  Andreia Gaita  <avidigal@novell.com>
4497
4498         * TextBox.cs: Redraw when the password characters changes
4499         * TextControl.cs: Check if textbox has a password char and draw 
4500         a line of password chars instead of the text in the line. LineTag gets 
4501         an extra Draw() method which allows document.Draw to override the text 
4502         that will be drawn. Removes 1024 char limitation on length of passworded 
4503         lines.
4504
4505 2007-01-29  Jackson Harper  <jackson@ximian.com>
4506
4507         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
4508         single chars is not.
4509
4510 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
4511
4512         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
4513         one pixel.  Fix a StackOverflowException caused by an overload wrongly
4514         calling itself.
4515
4516 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
4517
4518         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
4519         also remove ProcessArrowKey and put the code inside ProcessKeys.
4520
4521 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
4522
4523         * PaddingConverter.cs: Added.
4524
4525 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4526         
4527         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
4528         ShowPanels is false (fixes #80600). Only draw up to 127 characters
4529         of text (fixes #80601). For panels clip the text to draw to the
4530         panel (fixes #80603).
4531
4532 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4533
4534         * ComboBox.cs: Fixed implementation of ResetText.
4535
4536 2007-01-25  Jackson Harper  <jackson@ximian.com>
4537
4538         * TextControl.cs: For the last char of a line we need to use the
4539         line size, not that chars width, since it won't actually be
4540         computed since the right side of a char is based on the start of
4541         the left side of the next char, and the next char does not exist.
4542
4543 2007-01-25  Chris Toshok  <toshok@ximian.com>
4544
4545         * Splitter.cs: fix the new unit tests, and reindent some switch
4546         statements.
4547
4548 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4549
4550         * ComboBox.cs: Implemented 2.0 methods and events.
4551         * TextBoxBase.cs: Added OnTextUpdate, so that
4552         ComboBox.ComboTextBox can inform ComboBox of it.
4553
4554 2007-01-25  Jackson Harper  <jackson@ximian.com>
4555
4556         * TextControl.cs: Respect ShowSelection when deciding whether or
4557         not to display the caret, this allows comboboxes to have carets
4558         when the combotextbox does not have focus.
4559
4560 2007-01-25  Jackson Harper  <jackson@ximian.com>
4561
4562         * TextControl.cs: Add a Suspend/Resume for updating, basically the
4563         same as the Suspend/Resume for recalc, except this will do actual
4564         Invalidates.
4565         - New Undo manager, works much like the MS version.
4566         - Implemented Redo
4567         * TextBoxBase.cs: The Cut operation is undoable.
4568
4569 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4570         
4571         * TextBoxBase.cs: Don't antialias text. Makes it look way better
4572         on Windows (no difference on Linux).    
4573
4574 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4575
4576         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
4577         we don't want to activate any windows. Fixes #79433.
4578
4579 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
4580
4581         - ButtonBase.cs: Fix capitalization of parameter: disposing.
4582         [Fixes bug #80609]
4583
4584 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
4585
4586         * FileDialog.cs:
4587         - Move to using System.ComponentModel.EventHandlerList
4588         - Replace Refresh with Invalidate
4589         - Clear the mime filecache on closing
4590         - Some other memory reducing work. After beeing closed FD now uses
4591           only about 300 KB for the fdo mime stuff plus the memory of the
4592           cached icons.
4593         * Mime.cs: Changed coding style and removed unnecessary commented
4594         code. Some more memory memory reducing work.
4595
4596 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4597
4598         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
4599         a few other missing 2.0 properties.
4600         * Theme.cs: Added DrawFlatStyleComboBox.
4601         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
4602
4603 2007-01-24  Chris Toshok  <toshok@ximian.com>
4604
4605         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
4606         wake_waiting flag, not just when there's data to be read.  if we
4607         don't, then future wakeup's won't reach us and we'll be doomed to
4608         wait for the entire 1 second timeout forever (unless there are X
4609         events to be had).
4610
4611 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4612
4613         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
4614         until you pass Items.Count, not Items.Count - 1 like 1.1.
4615
4616 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
4617
4618         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
4619
4620 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4621
4622         * ToolStripContainer.cs: The recent Dock fix exposed that I was
4623         adding the panels in the wrong order.
4624
4625 2007-01-24  Jackson Harper  <jackson@ximian.com>
4626
4627         * TextBoxBase.cs: When we move the caret we also need to move the
4628         selection, this fixes some random crashing after doing select
4629         text, unselect, delete a char, paste.
4630
4631 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4632
4633         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
4634
4635 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4636
4637         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
4638         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
4639         * ToolBar.cs: Force redraw in BackgroundImageChanged.
4640
4641 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4642
4643         * ToolBar.cs:
4644         - Implement support for vertical toolbars. Fixes #80539;
4645         - Call LayoutToolBar when resize, it fix some other problems in layout.
4646         - Rename requested_height to requested_size, as we can have width on it
4647         when toolbar is vertical.
4648         - Create a private property "Vertical" that uses Dock to verify when 
4649         toolbar is vertical or not.
4650         - Set ControlStyles when change Dock property.
4651         - Refactory in LayoutToolBar to have better variables names and to support
4652         vertical toolbars.
4653         - Fixes default value for ButtonSize when button count is equal zero, size
4654         must be (39, 36) test case writed.
4655
4656 2007-01-23  Chris Toshok  <toshok@ximian.com>
4657
4658         * Control.cs: fix the checks so that they work correctly for mdi
4659         parents/children.
4660
4661 2007-01-23  Chris Toshok  <toshok@ximian.com>
4662
4663         * Control.cs: ControlCollection seems to have super-secret
4664         abstraction breaking knowledge of Mdi containers.  allow MdiClient
4665         to add toplevel controls.
4666
4667 2007-01-23  Chris Toshok  <toshok@ximian.com>
4668
4669         * Control.cs: throw an ArgumentException if a toplevel control is
4670         added to our control collection from ControlCollection.Add, as
4671         well as from ControlCollection.IList.Add.  This fixes the
4672         ControlSetTopLevelTest.TestTopLevelAdd unit test.
4673
4674         Also, in ControlCollection.IList.Add, don't through an
4675         ArgumentNullException, throw an ArgumentException, when value ==
4676         null.  This matches MS.
4677
4678 2007-01-23  Chris Toshok  <toshok@ximian.com>
4679
4680         * BindingSource.cs: initial, incomplete, implementation of
4681         BindingSource.
4682
4683 2007-01-23  Jackson Harper  <jackson@ximian.com>
4684
4685         * TextControl.cs:
4686         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
4687         that I can fix a broken unit test (TextBoxTest::ClearUndo)
4688         
4689 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4690
4691         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
4692
4693 2007-01-23  Andreia Gaita  <avidigal@novell.com>
4694
4695         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
4696         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
4697         IndexOfKey() for 2.0
4698
4699 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4700
4701         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
4702         to prevent it from changing z-order.
4703         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
4704         leave UI updates in MdiWindowManager.
4705         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
4706         1 sized (NC handling goes weird on Linux otherwise).
4707         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
4708         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
4709         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
4710         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
4711         and SetWindowState(s) to allow for changing the size of an activated child
4712         before activating it (reduces a lot of flicker).
4713
4714 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4715
4716         * Form.cs: Changing FormBorderStyle has different semantics based
4717         on whether the Form is visible or not.  If not visible, don't change
4718         the Size.  But InvalidateNC needs to be called to force the window
4719         to pick up the changes and redraw itself.  [Fixes bug #80574]
4720
4721 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4722
4723         [Moma work]
4724         * ContainerControl.cs: ProcessCmdKey.
4725         * ErrorProvider.cs: new constructor.
4726         * Form.cs: fix AutoValidateEvent compiler warning.
4727         * Label.cs: fix OnAutoSizeChanged compiler warning.
4728         * MenuStrip.cs: fix CanOverflow compiler warning.
4729         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
4730         * TextBox.cs: Dispose.
4731         * ToolStrip.cs: CanOverflow, re-enable double buffering.
4732         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
4733         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
4734         * ToolStripItem.cs: Overflow, RightToLeft properties.
4735
4736 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4737
4738         * Form.cs: Move the layout of the main form to MdiWindowManager.
4739         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
4740         do a layout of the main window to update MdiClient's client area to
4741         the right area. Fixes #80533. Remove the calculation of nc size, 
4742         it was just wrong and the correct one is the same as for 
4743         InternalWindowManager. 
4744
4745 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
4746
4747         * Control.cs: Setting Anchor or Dock needs to reset the other
4748         to its default.  [Fixes bug #80556]
4749
4750 2007-01-20  Chris Toshok  <toshok@ximian.com>
4751
4752         * CheckedListBox.cs: class status changes.
4753
4754         * ScrollableControl.cs: same.
4755
4756         * RichTextBox.cs: same.
4757
4758         * ContainerControl.cs: same.
4759
4760         * ListView.cs: same.
4761
4762         * NotifyIcon.cs: same.
4763
4764         * MenuStrip.cs: same.
4765
4766         * RadioButton.cs: same.
4767
4768         * CheckBox.cs: same.
4769
4770         * PrintPreviewDialog.cs: same.
4771
4772         * Form.cs: same.
4773
4774 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
4775
4776         * TreeNode.cs: Apply Alan's patch for Name property.
4777
4778 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4779         
4780         * Form.cs: Implemented SizeGripStyle.
4781         * SizeGrip.cs: Check for minimum and maximum size for the
4782         control being resized and only resize if size has actually
4783         changed.
4784
4785 2007-01-19  Chris Toshok  <toshok@ximian.com>
4786
4787         * DataGridColumnStyle.cs: stop setting _readonly in the
4788         PropertyDescriptor setter.  fixes a unit test failure.
4789
4790         also, rename ParentReadOnly to TableStyleReadOnly, and have it
4791         just consult our table style (if we have one).  We don't need to
4792         consult the datagrid readonly attribute because that's passed in
4793         as the _ro arg to Edit.  this simplifies things a little.
4794         
4795         * DataGrid.cs: use CurrentColumn instead of
4796         current_cell.ColumnNumber just to simplify some of the code.
4797
4798         switch the order of some things in the CurrentCell setter to keep
4799         the previous cell from getting a textbox again -
4800         EnsureCellVisibility causes scrolling to happen, which calls Edit.
4801         So we need to set the new cell before calling it.
4802         
4803         call Edit in OnEnter, as does Microsoft.
4804         
4805         also, make sure the current table style isn't the one we create
4806         initially when checking to see if it's different than the one
4807         we're setting it to in BindColumns (this fixes #80421).
4808
4809         * GridTableStylesCollection.cs: table styles can have "" for a
4810         mapping name.  part of the fix for #80421.
4811
4812         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
4813         Edit significantly.
4814
4815 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4816
4817         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
4818         and less GDI object leaky-er.
4819
4820 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4821
4822         * LinkLabel.cs: Add opaque control style
4823
4824 2007-01-18  Jackson Harper  <jackson@ximian.com>
4825
4826         * TextControl.cs: Calculate width properly.
4827         - Don't store the tag's X offset, this can be figured out very
4828         easily.
4829         - When getting the caret tag make sure to get the last empty tag.
4830
4831 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4832
4833         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
4834         [Fixes bug #79959]
4835
4836         * Control.cs: Color.Empty shouldn't count for previous transparent
4837         redraw changes.
4838
4839 2007-01-18  Jackson Harper  <jackson@ximian.com>
4840
4841         * TextBox.cs:
4842         * RichTextBox.cs:
4843         * TextControl.cs: Starting to merge in some pieces of my older
4844         undo work.  Basically just some slight cleanup of the undo API.
4845
4846 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4847
4848         * TrackBar.cs: Fix signature of RightToLeftLayout.
4849         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
4850         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
4851         * Application.cs: Implemented UseWaitCursor.
4852
4853 2007-01-18  Jackson Harper  <jackson@ximian.com>
4854
4855         * TextControl.cs: We can't skip tags if any part of the tag is
4856         visible.
4857
4858 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4859
4860         * ContainerControl.cs: Override OnLayout.
4861
4862 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4863
4864         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
4865
4866         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
4867         everything else.
4868
4869 2007-01-18  Chris Toshok  <toshok@ximian.com>
4870
4871         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
4872         (leftover from the container_selected days, I'd wager).  fixes bug
4873         #80546.
4874
4875 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4876
4877         * Control.cs: Apply patch from George to fix the new testcase on
4878         bug #80451.  We can't just check for Color.Transparent, we need 
4879         to check if the back color's alpha channel is < 255.
4880
4881 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4882
4883         * Form.cs: Move setting show_icon = true to before the constructor
4884         so that the base constructor has that information when it calculates
4885         the form's size.  Was causing forms to be (6, 6) bigger than they
4886         were supposed to be.  Thanks for catching this Rolf!
4887
4888 2007-01-18  Jackson Harper  <jackson@ximian.com>
4889
4890         * TextControl.cs: When replacing a selection we need to invalidate
4891         from the initial selection start, because selection start is moved
4892         to the end of the replacement.
4893
4894 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4895
4896         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
4897
4898 2007-01-18  Chris Toshok  <toshok@ximian.com>
4899
4900         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
4901         I just added.
4902
4903 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
4904
4905         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
4906         layout methods and properties from ToolBarButton must be available
4907         into ToolBarButtonInfo.
4908
4909 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4910
4911         * Control.cs: If the control has a transparent background, we
4912         need to refresh it when it moves and when it's parent's background
4913         image changes.  [Fixes bug #80451]
4914
4915 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4916
4917         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
4918
4919 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4920
4921         * XplatUIWin32.cs: Implement proper double buffering for Windows.
4922         [Fixes bug #80447, and probably speeds up things as well]
4923
4924 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4925
4926         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
4927         * XplatUIWin32.cs: We need to recalculate NC size after changing 
4928         window style to toolwindow (otherwise the client rectangle will be
4929         3 pixels to small for some reason).
4930         * MdiWindowManager.cs: Revert NC size calculations to match how
4931         they are calculated only based on window styles (to match
4932         Win32AdjustWindowRectEx, since otherwise when setting size or 
4933         location, Control will call Win32AdjustWindowRectEx to update client 
4934         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
4935         calculate a different value of client size causing another paint 
4936         (and flickering))
4937         * InternalWindowManager.cs: When moving or resizing a window only
4938         update size or location if they actually changed.
4939         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
4940         (seems to match Windows behaviour better). Cleaned up 
4941         ManagedWindowDecorations to draw what's needed and nothing else
4942         (was drawing borders and lines where they shouldn't be)
4943         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
4944         (style = 0xFFFF) and takes into account caption height when 
4945         calculating window rectangle.   
4946
4947 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4948
4949         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
4950         can be added to toolbar multiple times, we need to maintain a list of 
4951         button information for each positions.
4952
4953 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4954
4955         * ToolBar.cs: Some small stetic changes.
4956
4957 2007-01-16  Jackson Harper  <jackson@ximian.com>
4958
4959         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
4960         that allow us to have nested recalc = false blocks.
4961         - Add paste support for images in the RichTextBox
4962         * RichTextBox.cs: flush the text after the color is changed, so
4963         the change takes effect.
4964         - Use SuspendRecalc
4965         - Some extra debugging info
4966         * TextControl.cs: Tags no longer track their length, it is just
4967         computed from the next tags length, this makes things a little
4968         simpler and reduces places that we have to track length changes.
4969         - Refactored the linetag class a little so we could make it
4970         a base class for different kinds of tags
4971         - Created a image tag, a tag that can have a single image inserted
4972         into it
4973         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
4974         that we can call suspend multiple times.
4975         - Add some debugging methods
4976
4977 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4978
4979         * MdiClient.cs: Add ActivatePreviousChild for 
4980         mdi child window navigation.
4981         * Form.cs: Use MdiClient.ActivateNextChild/
4982         ActivatePreviousChild instead of Form.SelectNextControl
4983         to select the next/previous child since 
4984         SelectNextControl doesn't do it in the same order
4985         as mdi children should do it.
4986
4987 2007-01-16  Chris Toshok  <toshok@ximian.com>
4988
4989         * Control.cs: remove container_selected field.
4990
4991 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4992
4993         * MdiClient.cs: Update main form's ActiveChild when
4994         updating keyboard focus for the mdi child.
4995
4996 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
4997
4998         * Control.cs: PreferredSize fix.
4999
5000         * Form.cs: Add several 2.0 events, properties, and methods.
5001
5002 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
5003
5004         * Form.cs: Provide meaningful message when MdiParent is assigned a
5005         Form that is not an MdiContainer.
5006
5007 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5008
5009         * MdiClient.cs: Update main form's ActiveChild when
5010         activating a mdi child.
5011
5012 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5013
5014         * MdiWindowManager.cs: Fix NRE when merging menus and main form
5015         doesn't have a menu.
5016
5017         * Form.cs: Request NCRecalc after creating a mdi child window.
5018         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
5019         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
5020         
5021         * MdiClient.cs: Add new method SendFocusToActiveChild that either
5022         sends keyboard focus to the active child, or to the MdiClient
5023         if there are no child forms.
5024         
5025 2007-01-15  Chris Toshok  <toshok@ximian.com>
5026
5027         * ListView.cs: drop the *Internal overrides, just do our work in
5028         ItemControl's WndProc instead.
5029
5030         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
5031         of the various controls, and forward the events properly (in the
5032         same manner as MS) from the textbox to the UpDown.  Also the
5033         ActiveControl of the UpDownBase gets set properly now.  Finally,
5034         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
5035
5036         * NumericUpDown.cs: set Text in the ctor.
5037
5038         * DomainUpDown.cs: call UpdateEditText in the ctor.
5039         
5040         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
5041         so even a Selectable = false textbox can be focused if you click
5042         in it.  Go figure.
5043
5044         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
5045         just add their handling in their respective WndProc's.  Also add
5046         an explicit FocusInternal method that doesn't consult CanFocus
5047         before calling Select(this).
5048
5049         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
5050         do our work in WndProc instead.
5051
5052         * TabControl.cs: same.
5053
5054         * ComboBox.cs: same.
5055
5056 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5057
5058         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
5059         Fixes #80006.
5060
5061 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5062
5063         * ListViewItem.cs:
5064         * ThemeWin32Classic.cs: Don't draw the item text outside
5065         item bounds in Details view, as well as use trimming.
5066         Fixes bug #80376.
5067
5068 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5069
5070         * Form.cs: Implement Form.ShowIcon.
5071         
5072         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
5073         null, which when combined with the DlgModalFrame window style removes
5074         the icon from the title bar.
5075
5076 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5077
5078         * Control.cs: Call OnMouseClick after OnClick. (2.0)
5079
5080 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5081
5082         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
5083         menu when mdi child windows theres a menu, uses insert to get icon
5084         at first position. Partially fix #80006.
5085
5086 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5087
5088         * Clipboard.cs: Implement 2.0 methods.
5089
5090 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5091
5092         * Menu.cs: Implement Insert method of MenuItemCollection class
5093         to fix MenuMerge.
5094
5095 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5096
5097         * ListView.cs: Implement 2.0 FindItemWithText method.
5098
5099 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5100
5101         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
5102         to calculate menu bar size. Fixes #80290.
5103
5104 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5105
5106         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
5107
5108 2007-01-11  Chris Toshok  <toshok@ximian.com>
5109
5110         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
5111         initial form.
5112
5113 2007-01-11  Chris Toshok  <toshok@ximian.com>
5114
5115         * LinkLabel.cs: make sure to call base.Select in our Select method
5116         if it turns out we're going to be selected (i.e. if we have a link
5117         that is going to receive focus).  That way our container's
5118         ActiveControl is updated properly.
5119
5120 2007-01-11  Chris Toshok  <toshok@ximian.com>
5121
5122         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
5123         they have 1 or more links.  this fixes the crash gert reported.
5124
5125 2007-01-11  Andreia Gaita  <avidigal@novell.com>
5126
5127         * ContainerControl.cs: Remove ContainerSelected flag, not needed
5128         anymore.
5129
5130         * Control.cs (Controls.Add): Check if control to be added to the collection
5131         is a top level control, and throw an ArgumentException if it is.
5132         Remove ContainerSelectedFlag, not needed anymore.
5133
5134         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
5135         top most control doesn't activate the form. This fixes a problem in the
5136         MessageBox, where the default button wouldn't get focus because the form
5137         was activated before being Loaded - when the Owner is set, SetTopMost is
5138         called, and it would activate it.
5139
5140 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
5141
5142         * Button.cs: When clicked and setting the parent form's DialogResult,
5143         use FindForm instead of Parent, since parent could be a container
5144         control and not the Form.  Fixes bug #80495.
5145
5146 2007-01-10  Chris Toshok  <toshok@ximian.com>
5147
5148         * Form.cs: move the call to SendControlFocus into the same
5149         is_loaded check.
5150
5151 2007-01-10  Chris Toshok  <toshok@ximian.com>
5152
5153         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
5154         It breaks in the face of the new ActiveControl stuff, and should
5155         be unnecessary.
5156
5157         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
5158         activecontrol's focus if it's not already set, after we set
5159         ActiveControl, but before we call OnActivated.  Re-fixes #79667
5160         after the previous focus/active control fixes regressed it.
5161
5162         * Control.cs: reindent some code.
5163         
5164 2007-01-10  Chris Toshok  <toshok@ximian.com>
5165
5166         * Splitter.cs: clearing some outstanding changes from my tree.
5167         Replace all accesses (not writes) to the internal dock_style field
5168         with the Dock property.
5169
5170 2007-01-10  Chris Toshok  <toshok@ximian.com>
5171
5172         * Control.cs: make FireEnter, FireLeave, FireValidating, and
5173         FireValidated virtual.
5174
5175         * Form.cs: override and don't chain up calls to FireEnter and
5176         FireLeave.
5177
5178 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5179
5180         * ListView.cs: Add more text padding space when using
5181         auto resize for columns (the previous value didn't work fine).
5182
5183         * ThemeWin32Classic.cs: Update text position inside columns,
5184         to match the appeareance of .Net.
5185
5186         * ColumnHeader.cs: When using auto resize, only the Width should
5187         depend on the sub items, not the Height. Also, set width after
5188         auto resizing (the value of Width should never remain as -1 or -2).
5189
5190 2007-01-10  Chris Toshok  <toshok@ximian.com>
5191
5192         * Application.cs: fix compilation errors when debug is enabled.
5193
5194 2007-01-10  Chris Toshok  <toshok@ximian.com>
5195
5196         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
5197         add some nice ascii art pictures and explanation of the process).
5198         (GetMostDeeplyNestedActiveControl): new utility function we need
5199         because our ActiveControl can refer to a child container with its
5200         own ActiveControl.
5201
5202         * Form.cs (OnActivated): remove the call to SelectActiveControl
5203         from here, since you can override this method and not chain up,
5204         and winforms still sets the active control.
5205         (OnCreateControl): also remove the unnecessary SelectActiveControl
5206         call from here.
5207         (WndProc): it's actually called from the WM_ACTIVATE block, just
5208         before calling OnActivated.
5209
5210         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
5211         inside the else.  the ActiveControl setter will end up setting
5212         focus on @control.  This keeps us from setting it again (and
5213         generating an extra LostFocus/GotFocus pair).
5214         (Select (bool, bool)): reindent.
5215
5216 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
5217
5218         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
5219         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
5220         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
5221         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
5222         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
5223         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
5224         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
5225         ToolStripTextBox.cs: Another wave of corcompare work.
5226
5227 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5228
5229         * ColumnHeader.cs: Implement 2.0 AutoResize method using
5230         the Width property.
5231
5232         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
5233         methods by callling Column.AutoResize method on columns.
5234
5235 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5236
5237         * Control.cs: Provide proper implementations of PreferredSize
5238         and GetPreferredSize (2.0).
5239
5240 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5241
5242         * Form.cs: Remove one character (!) to make my previous OnClosing
5243         stuff work for modal windows like MessageBox.
5244
5245 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5246
5247         * ListView.cs:
5248         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
5249         ListView.Columns to get the last displayed column. Fixes #80452.
5250
5251 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
5252
5253         * Label.cs, LinkLabel.cs: Source code identation fixes.
5254
5255 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
5256
5257         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
5258         we dont need to invalidate only borders because when we invalidate four
5259         border lines the invalidate's generates a complete redraw of button, 
5260         because it now invalidate a complete rect some other redraws operations
5261         are fixed. Fixes #80196.
5262         
5263         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
5264         Remove ToolBarInvalidateEntireButton as it is not used.
5265
5266 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5267         
5268         * Form.cs: Make sure that both OnClosing and OnFormClosing are
5269         called for 2.0 profile.
5270         * CloseReason.cs: Make class internal for 1.1.
5271
5272 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5273
5274         * ToolStripManager.cs: Implement FindToolStrip functionality.
5275         * ToolStrip.cs: Register and unregister with ToolStripManager.
5276
5277 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5278
5279         * Control.cs: This was messy.  2.0 moves much of ControlCollection
5280         to ArrangedElementCollection.  Implemented this with as few #if's as 
5281         possible (which is still too many).
5282
5283 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5284
5285         * Control.cs: Implement SizeFromClientSize() [2.0].
5286
5287 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
5288
5289         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
5290         use Theme.BorderSize to calculate area instead of static value 1, 
5291         by the way use new BorderStaticSize instead     Border3DSize when 
5292         border_static is true. Fixes #79537.
5293         
5294         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
5295         
5296         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
5297         it is not needed.
5298
5299 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5300
5301         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
5302
5303 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5304
5305         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
5306         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
5307         
5308         * Hwnd.cs: 
5309         - border_static field added, it will used to define when a control 
5310         theres 3D border but it must be static (thin).
5311         - In GetWindowRectangle use Theme.BorderSize to calculate area 
5312         instead of static value 1, by the way use new BorderStaticSize instead
5313         Border3DSize when border_static is true.
5314
5315         * XplatUIX11.cs, XplatUIOSX.cs: 
5316         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
5317         
5318         * Theme.cs: BorderStaticSize field added.
5319
5320 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5321
5322         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
5323
5324 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5325
5326         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
5327         mimic same behavior than win32 that set border only in CreateParams,
5328         it fix problems under CreateParams overrides. Fix #79442 and partial
5329         fix #79537.
5330         
5331         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
5332         of thi control you must call recreate handle. 
5333         
5334         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
5335         need to do anything as RecreateHangle will take care about borders.
5336
5337 2007-01-05  Mike Kestner  <mkestner@novell.com>
5338
5339         * ListView.cs: hack to eliminate Lost/Got focus notifications on
5340         cycles between the ItemControl and parent.  Fixes #80388.
5341
5342 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
5343
5344         * Control.cs: Lazy init layout engine. Do not directly use 
5345         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
5346
5347 2007-01-05  Chris Toshok  <toshok@ximian.com>
5348
5349         * DataGrid.cs: don't forceably rebind columns in SetDataSource
5350         unless our list manager has changed (i.e. unless we have reason to
5351         believe our columns have changed).  Fixes #80422.
5352         
5353         also, disable the call do BindColumns in
5354         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
5355         1.1 the event isn't raised in response to a column addition on a
5356         table.)
5357
5358 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5359
5360         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
5361         that inheritors can not call it if they choose.  Fixes bug #80456.
5362
5363 2007-01-05  Andreia Gaita  <avidigal@novell.com>
5364
5365         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
5366         doesn't blow up with a null exception on marshalling.
5367         
5368 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5369
5370         * Control.cs: Implement several 2.0 protected properties and methods.
5371         Ensure that all necessary events are being called when properties
5372         are set.
5373
5374 2007-01-05  Mike Kestner  <mkestner@novell.com>
5375
5376         * ListView.cs: implement PgUp/PgDn for Details view.  Also
5377         fixes First/LastVisibleIndex to use the item_control.ClientRect 
5378         instead of the parent control.  Fixes #80378.
5379
5380 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5381
5382         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
5383           determine whether to use yard-pound or not (bug #78399).
5384
5385 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5386
5387         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
5388         problems. So it is time to bring back the old popupbutton colors.
5389
5390 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5391
5392         * ColumnHeader.cs:
5393         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
5394         property by using the internal information of the
5395         columns order in ListView.
5396
5397 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
5398
5399         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
5400         Add 2.0 Tag properties.
5401
5402         * LinkArea.cs: Add 2.0 ToString method.
5403
5404 2007-01-03  Chris Toshok  <toshok@ximian.com>
5405
5406         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
5407         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
5408         when we're editing, which fixes #80047.
5409
5410 2007-01-03  Chris Toshok  <toshok@ximian.com>
5411
5412         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
5413         #80404.
5414
5415 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
5416
5417         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
5418         property and implementation.
5419
5420         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
5421         for MdiWindowListItem property.
5422
5423         * ToolStripDropDown.cs: Don't consider hidden menu items while
5424         laying out the menu.
5425
5426 2007-01-03  Andreia Gaita  <avidigal@novell.com>
5427
5428         * SendKeys.cs: window handle is not needed in win32, so just
5429         get the active window for X after parsing keys and don't use
5430         it when building the message; it is passed by parameter to the 
5431         Xplat method and used there to build the message instead. Also,
5432         wait for events to be processed on SendWait, as opposed to Send,
5433         which doesn't wait :) Playing with threads and Send() completely 
5434         hangs on ms.net, only SendWait() works.
5435         
5436         XplatUIX11.cs
5437         X11Display.cs: Check for valid window handle.
5438
5439 2007-01-03  Jackson Harper  <jackson@ximian.com>
5440
5441         * TextControl.cs: Need to prevent wrap calculations when replacing
5442         text (this was there before i removed it accidently).
5443         - Don't update the cursor during the positioning, just set it to
5444         selection_start at the end of the operaion.
5445
5446 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5447
5448         * Control.cs:
5449         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
5450         
5451 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5452
5453         * MonthCalendar.cs: Added Click and DoubleClick events again,
5454         but this time they only hide Control's Click and DoubleClick.
5455         
5456 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
5457
5458         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
5459         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
5460
5461 2007-01-02  Jackson Harper  <jackson@ximian.com>
5462
5463         * TextBoxBase.cs: We move the caret with the split now, so we
5464         don't need to explicitly move the caret after splitting.  This
5465         fixes the caret bumping down an extra line on Enter.
5466
5467 2007-01-02  Miguel de Icaza  <miguel@novell.com>
5468
5469         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
5470         2.72). 
5471
5472         * ScrollableControl.cs: Add Scroll event.
5473
5474 2007-01-02  Mike Kestner  <mkestner@novell.com>
5475
5476         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
5477         to fix all hdr height padding codepaths.  Fixes #80207.
5478
5479 2007-01-02  Chris Toshok  <toshok@ximian.com>
5480
5481         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
5482         setting it to the Control defaults anyway, and it being after the
5483         Dock set was screwing up layout.
5484         (set_Dock): don't short circuit out of setting base.Dock.  Also,
5485         no need to call UpdateStatusBar here, as it'll be re-layed out if
5486         it needs to be.
5487
5488 2007-01-02  Mike Kestner  <mkestner@novell.com>
5489
5490         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
5491         to header height for width == -1. Fixes the rest of #80207.
5492
5493 2007-01-02  Mike Kestner  <mkestner@novell.com>
5494
5495         * ListView.cs: rework the mouse event forwarding everaldo added
5496         to translate the coordinates to the parent control not
5497         raise the parent events until after we've done our work. Hover
5498         needs more work, in the case where HoverSelection is on, because
5499         the item control receives more than one MouseHover per Enter
5500         event, so we need to ensure only the "first" hover gets forwarded.
5501         Opening a minor bug for that.
5502
5503 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
5504
5505         * CheckedListBox.cs: Fixed SelectionMode to match MS.
5506         * ListControl.cs: Implemented AllowSelection property. Removed extra
5507         tabs.
5508         * ListBox.cs: Implemented AllowSelection property.
5509
5510 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5511
5512         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
5513         SelectedItem, it prevent for errors when you must disable item
5514         before perform click. Fixes #80409.
5515
5516 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5517
5518         * MenuAPI.cs: Prevent second level and beyond submenus to close
5519         until first level when move out side of popup.
5520         
5521 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5522
5523         * MenuAPI.cs:
5524         - Down submenu positin in three pixels.
5525         - Closes sub menu when mouse leaves from menu. Fixes #80402.
5526
5527 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5528
5529         * ThemeWin32Classic.cs:
5530         - Fix popup menu size adding one pixel on the top.
5531         - Down menu item border from two to one to mimic Win32.
5532         - Some source identation fixes. 
5533
5534 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5535
5536         * ThemeWin32Classic.cs: Use float numbers to calculate size and
5537         position of menu arrows, it fix wrong arrow size.
5538
5539 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5540
5541         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
5542         instead of line, it simplify draw operation and fix it using 3D
5543         borders to mimic Win32.
5544
5545 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
5546
5547         * StatusStrip.cs: Add implementation of the sizing grip.
5548
5549         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
5550         StatusStrip rendering.
5551
5552 2006-12-31  Chris Toshok  <toshok@ximian.com>
5553
5554         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
5555         override the layout style (anchor/dock) of the control.  assign to
5556         Dock instead.  Fixes bug #80416.
5557
5558         * ToolStrip.cs: same.
5559
5560 2006-12-31  Andreia Gaita  <avidigal@novell.com>
5561
5562         * ContainerControl.cs: Use ContainerSelected flag to check if 
5563         a Container is directly selected, or if Select is called on a 
5564         non-container. If a container is directly selected, focus events 
5565         should not be raised.
5566         Apply #80411 patch to throw exception on set_ActiveControl if 
5567         control is the same as the current one.
5568         
5569         * Control.cs: Use ContainerSelected flag (see above).
5570         Add invalidation check to raise event but not invalidate if 
5571         dimensions are 0.       
5572         Apply #80411 patch.
5573         
5574
5575 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
5576
5577         * MenuAPI.cs: After click, dont close popup menu when menu is
5578         ContextMenu. Fixes #80399.
5579
5580 2006-12-30  Chris Toshok  <toshok@ximian.com>
5581
5582         * ContainerControl.cs: make sure we throw the exception if the
5583         container control doesn't contain the control we're setting
5584         ActiveControl to.
5585
5586 2006-12-30  Chris Toshok  <toshok@ximian.com>
5587
5588         * Control.cs (SetTopLevel): fix the exception raised by
5589         SetTopLevel for child controls.
5590         (set_Anchor): call UpdateDistances when setting the anchor type.
5591         This fixes bug #80336.
5592
5593 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5594
5595         * Theme.cs: For now, revert back to 8pt font.
5596
5597 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
5598
5599         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
5600         Fixes #80395.
5601
5602 2006-12-29  Chris Toshok  <toshok@ximian.com>
5603
5604         * Control.cs: reorder the code in OnResize to give the same event
5605         ordering as MS.
5606
5607 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5608
5609         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
5610         TileHorizontally and TileVertically.
5611         
5612 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
5613
5614         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
5615         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
5616         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
5617         Corrected copyright and email adress.
5618
5619 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5620
5621         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
5622         of Exception in FullPath property if no TreeView is associated with
5623         the TreeNode.
5624
5625 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5626
5627         * Theme.cs: Marked default_font as private, and initialize it in ctor
5628         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
5629         on 2.0 profile.
5630         * ThemeGtk.cs: Removed default_font intialization.
5631         * ThemeWin32Classic.cs: Removed default_font initialization.
5632
5633 2006-12-28  Chris Toshok  <toshok@ximian.com>
5634
5635         * Control.cs: fix a couple of place where we were creating handles
5636         more aggressively than we should be.  Fixes ControlRefresh unit
5637         tests.
5638
5639 2006-12-28  Chris Toshok  <toshok@ximian.com>
5640
5641         * Control.cs: contrary to what the comment said, Control.Dock does
5642         not supercede Control.Anchor - the last one you assign to decides
5643         the layout behavior.  so we need to keep track of which was the
5644         last set.  Also, fix some of the affected property arguments in
5645         PerformLayout calls, and remove an redundant parent.PerformLayout
5646         call in OnResized.
5647
5648         Add a VisibleInternal property, which returns is_visible.  We
5649         can/should get rid of all the usage of this field elsewhere.
5650
5651 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5652         
5653         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
5654         control style, not DoubleBuffer. Added UseDoubleBuffering property
5655         that indicates whether doublebuffering is enabled and supported.
5656         (comment from and code based on Gert Driesen's patch in #80324).
5657         Fixes #80324.
5658
5659 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5660         
5661         * Control.cs: Fixed a NRE.
5662
5663 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5664
5665         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
5666         for 2.0.
5667
5668 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5669
5670         * Control.cs: Rewrote double buffering, now a seperate
5671         class handles all the buffering, no Graphics is disposed of
5672         until the painting is finished (earlier implementation 
5673         would crash if the control was resized in the OnPaint, 
5674         since it would cause the double buffer to be recreated
5675         and the old one disposed), a separate Graphics is 
5676         created for every paint (MS behaviour and anyways the state
5677         of the Graphics would have to be saved and restored otherwise)
5678         
5679         * XplatUIDriver.cs: 
5680         * XplatUIX11.cs:
5681         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
5682         so that we can get the graphics for the back buffer without
5683         having to create a new one and remove the offscreen_dc parameter
5684         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
5685         
5686 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5687
5688         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
5689         Also make virtual all the key-related methods.
5690
5691         * ListViewItem.cs: Make virtual the key related methods for
5692         ListViewSubItemCollection.
5693
5694 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5695
5696         * ListView.cs:
5697         * ListViewItem.cs:
5698         * ThemeWin32Classic.cs:
5699         * Theme.cs: Initial support for Tile view in ListView,
5700         as well as the implementation of the required bits for it (Item
5701         and Subitem).
5702
5703 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5704
5705         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
5706         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
5707         Provide useful exception messages.
5708
5709 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5710
5711         * TrackBar.cs: Remove a warning.
5712         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
5713         when used by DateTimePicker, fixes #80287. This also requires that 
5714         MonthCalendar implements it's own drawing for the yearly updown control,
5715         otherwise the Capture tracking would be too complicated. Removed the Click 
5716         and DoubleClick events (according to comments they were hiding the base class
5717         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
5718         raise these events, not that they cannot be raised. It is possible to raise 
5719         them by calling OnClick and OnDoubleClick). Added two internal fields in 
5720         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
5721         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
5722         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
5723         event, no longer needed.
5724         
5725 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5726
5727         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
5728         true if new value differs from current value.
5729
5730 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5731
5732         * Control.cs: ControlCollection.Count must be public. Fixed build of
5733         unit tests.
5734
5735 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5736
5737         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
5738
5739 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5740
5741         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
5742
5743 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5744
5745         * Control.cs: Invalidates control including when Width and Height is 
5746         equal zero or is not visible, only Paint event must be care about 
5747         this. Fixes #79913.
5748
5749 2006-12-26  Chris Toshok  <toshok@ximian.com>
5750
5751         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
5752         more corcompare work.
5753
5754         * DataGridView.cs: fix compiler warning.
5755
5756         * ColumnHeader.cs: some corcompare work, and also take the
5757         opportunity to make the internal fields private.
5758
5759         * ListView.cs: fix the fallout from the above field change.
5760
5761 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5762
5763         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
5764         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
5765         ToolStripTextBox.cs: Fixes to events and corcompare.
5766
5767 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5768
5769         * ListView.cs: Call owner.OnMousexx event to propagate events from
5770         item to ListView. Fixes #80367.
5771
5772 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5773
5774         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
5775         if value is less than one. ItemHeight should not be set to a value
5776         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
5777         Removed extra tabs.
5778
5779 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5780
5781         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
5782         * ToolStripStatusLabel.cs: Add Spring for Moma.
5783
5784 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5785
5786         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
5787         Fixed code formatting. Removed debug code.
5788         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
5789
5790 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5791
5792         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
5793         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
5794         ArgumentOutOfRangeException if ColumnCount is negative. In 
5795         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
5796         less than 4 or higher than 32768.
5797         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
5798         Fixed FormatProvider to return CurrentCulture unless explicitly set.
5799         Fixed IsFormatProviderDefault to return true if FormatProvider has
5800         not been explicitly set.
5801
5802 2006-12-25  Chris Toshok  <toshok@ximian.com>
5803
5804         * Application.cs: add a couple of 2.0 events.
5805
5806 2006-12-25  Chris Toshok  <toshok@ximian.com>
5807
5808         * Control.cs: fix compiler warning.
5809
5810         * AxHost.cs: corcompare fixes.
5811
5812         * ApplicationContext.cs: corcompare fixes.
5813
5814 2006-12-25  Chris Toshok  <toshok@ximian.com>
5815
5816         * Control.cs: only update dist_right/dist_bottom if the
5817         width/height is > 0.  this fixes anchored controls being resized
5818         smaller until they disappear and then resized larger again.
5819
5820 2006-12-25  Chris Toshok  <toshok@ximian.com>
5821
5822         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
5823         since they're nothing more than X/Left and Y/Top, respectively.
5824
5825         Also, move back to a per-control Bitmap/Graphics for
5826         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
5827         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
5828         Height.
5829
5830 2006-12-25  Miguel de Icaza  <miguel@novell.com>
5831
5832         * MessageBox.cs: Implemented overload that takes a new "bool
5833         displayHelpButton" by adding a new internal field "show_help".
5834         When clicked this will raise the HelpRequested on the owner or the
5835         main form. 
5836
5837         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
5838         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
5839
5840         * ListView.cs: Add support ColumnWidthChanged and
5841         ColumnWidthChanging. 
5842
5843         Add support for ColumnReordered event.
5844         (ReorderColumn): Add NET_2_0 specific support for cancelling the
5845         reorder.
5846
5847         Very nice codebase!
5848
5849         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
5850
5851         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
5852
5853 2006-12-24  Chris Toshok  <toshok@ximian.com>
5854
5855         * GridTablesFactory.cs: 2.0 corcompare work.
5856
5857         * ToolStripContainer.cs: add "override" to
5858         ContextMenuStripChanged, and remove the local event object.
5859
5860         * ToolStripDropDown.cs: same with a couple properties.
5861
5862         * ToolStripPanel.cs: same with AutoSizeChanged event.
5863
5864         * TextBoxBase.cs: add "override" to AutoSizeChanged.
5865
5866         * Form.cs: add the remaining 2.0 events, and do some corcompare
5867         attribute work.
5868
5869         * DateTimePicker.cs: add "new" to padding.
5870
5871         * ButtonBase.cs: use Control's use_compatible_text_rendering.
5872
5873         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
5874
5875         * DataGridView.cs: PaddingChanged is overridden.
5876
5877 2006-12-24  Chris Toshok  <toshok@ximian.com>
5878
5879         * Control.cs: corecompare work here too.
5880
5881         * DataGridViewElement.cs, DataGridView.cs,
5882         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
5883         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
5884         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
5885         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
5886         work.
5887
5888 2006-12-24  Miguel de Icaza  <miguel@novell.com>
5889
5890         * Control.cs: Switched the error message on the console for a
5891         todo.  A review of the code will have to cope with this anyways
5892         (since its a large feature, it is in our radar) and it was
5893         producing too much output when running PDN.
5894
5895         * ToolStripComboBox.cs: Set the text when the SelectedIndex
5896         changes.  Applications depend on this (PDN 2.72)
5897
5898 2006-12-23  Chris Toshok  <toshok@ximian.com>
5899
5900         * TableLayoutSettings.cs: finish up the corcompare work for this
5901         class.
5902
5903 2006-12-23  Chris Toshok  <toshok@ximian.com>
5904
5905         * Control.cs: make SetImplicitBounds internal, do some futzing
5906         with LayoutEngine so that it's available in 1.1, and remove the
5907         entire duplicated code mess from PerformLayout.  Use
5908         System.Windows.Forms.Layout.DefaultLayout instead.
5909
5910         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
5911
5912 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5913
5914         * Form.cs: Add MainMenuStrip property.
5915
5916 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5917
5918         * Control.cs: Add ContextMenuStrip property and implementation.
5919         Fix ContextMenu implementation to show menu centered on control when
5920         activated using the keyboard instead of showing at screen (0,0).
5921
5922         * ToolStripDropDown.cs: Fix needed overload of Show ().
5923
5924 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5925
5926         * Menu.cs: Name property added for 2.0 profile.
5927         
5928 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5929
5930         * Menu.cs: Update information about FindMenuItem, method to be
5931         implemented soon.
5932
5933 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5934
5935         * MenuAPI.cs: When deselect items deselect also selected subitems.
5936         
5937 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5938
5939         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
5940         FindSubItemByCoord to found itens that is not active, also an
5941         cheking added to FindSubItemByCoord to search for items only 
5942         in visible popup windows. Fixes #80274.
5943
5944 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
5945
5946         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
5947         internal property, it be care about change ExStyle. 
5948
5949 2006-12-22  Andreia Gaita  <avidigal@novell.com>
5950
5951         * ContainerControl.cs: set activeControl for parent forms up the 
5952         tree when the new activecontrol is a container.
5953         When validating the active control, if it is a container, also
5954         raise up the validation for it's active control. Fixes #80280
5955         
5956         * Control.cs: Add internal property flag and check to prevent
5957         Focus events from getting raised when Select() is called for
5958         a ContainerControl. There are still too many focus events being
5959         raised at the moment though.
5960         Cleaned up the code a bit.
5961
5962 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5963
5964         * Control.cs: Added all missing 2.0 events.and
5965         fixed a couple of corcompare issues.
5966         * TrackBar.cs: Implemented missing 2.0 bits.
5967         * MonthCalendar.cs, 
5968         * DateTimePicker.cs, 
5969         * MdiClient.cs: Fixed some corcompare issues.
5970
5971 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5972
5973         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
5974         SplitterPanel.cs: corecompare work.
5975
5976 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5977
5978         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
5979         Clean up warnings for BackgroundImageChanged and PaddingChanged
5980         events now that they are implemented in Control.cs.
5981
5982 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
5983
5984         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
5985         
5986         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
5987         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
5988         of TableLayoutPanel and supporting cast.
5989
5990 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5991
5992         * XplatUIWin32.cs: 
5993         - GrabWindow now confines the mouse pointer to the confine window.
5994         - Added Win32ClipCursor and Win32GetClipCursor.
5995
5996         * Control.cs: 
5997         - Added CaptureWithConfine to be able to capture and confine 
5998         mouse pointer.
5999         
6000         * InternalWindowManager.cs: 
6001         - Call CaptureWithConfine instead of Capture if we're an
6002         MdiChild (fixes #79982).
6003
6004 2006-12-21  Chris Toshok  <toshok@ximian.com>
6005
6006         * DataGrid.cs: guard against the initial state of selection, where
6007         selection_start == -1.  make sure we only select from index >= 0.
6008         Fixes bug #80291.
6009
6010 2006-12-21  Chris Toshok  <toshok@ximian.com>
6011
6012         * Control.cs: we don't need to be so draconian with
6013         UpdateDistances, and we thusly don't need to call it before
6014         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
6015
6016 2006-12-21  Daniel Nauck  <dna@mono-project.de>
6017
6018         * ComboBox.cs,
6019         TextBox.cs: Implemented AutoComplete properties.
6020
6021 2006-12-20  Chris Toshok  <toshok@ximian.com>
6022
6023         * DataGridView*.cs: some corecompare work.
6024
6025 2006-12-20  Jackson Harper  <jackson@ximian.com>
6026
6027         * XplatUIX11.cs: We need to hide the caret when deleting it,
6028         otherwise you get carets left lying around everywhere.
6029         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
6030         prevents getting some weird half drawn caret tracers when
6031         scrolling.
6032         * TextControl.cs: Attempt to reduce the number of times we need to
6033         recreate the caret.
6034
6035 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
6036
6037         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
6038
6039 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6040
6041         * DateTimePicker.cs:
6042         - Implemented missing 2.0 bits.
6043         - Changed some default values to match MS.
6044         
6045 2006-12-20  Jackson Harper  <jackson@ximian.com>
6046
6047         * TextBoxBase.cs: When changing the font across the document we
6048         can't recalculate after changing each line, since that will cahnge
6049         the line count.
6050         - PreferredHeight is a little different than i thought.
6051         - When backspacing, move the caret before we do the actual char
6052         delete, because when that delete crosses a wrap boundary the
6053         positional information will change.
6054
6055 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6056
6057         * Control.cs: Added some missing 2.0 bits: 
6058         BackgroundImageLayout, BackgroundImageLayoutChanged, 
6059         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
6060         add IBindableComponent and IDropTarget implementation.
6061         
6062         * MonthCalendar.cs: 
6063         - Added all missing 2.0 features:
6064         BackgroundImageLayout, RightToLeftLayout, 
6065         OnHandleDestroyed, RightToLeftLayoutChanged, 
6066         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
6067         PaddingChanged.
6068         - Rewrote all the BoldDate code, it was completely broken.
6069         - Fixed all the tests (the tests can now be re-enabled, the
6070         problems were not with the tests, but with the control, it was
6071         mostly broken).
6072         
6073         * DateTimePicker.cs: Changed the location where the 
6074         MonthCalendar is shown.
6075         
6076 2006-12-19  Chris Toshok  <toshok@ximian.com>
6077
6078         * DataGridView.cs: add IDropTarget implementation.
6079
6080         * ToolStripPanel.cs: add IDropTarget implementation.
6081
6082 2006-12-19  Jackson Harper  <jackson@ximian.com>
6083
6084         * TextControl.cs: soft now means something different than what it
6085         used to mean, we want to move the caret regardless of whether or
6086         not this break was soft (would we really have wanted the caret
6087         to not move with the break in the old context?)
6088         * TreeView.cs: Make sure we factor in the vert scrollbar when
6089         calculating the horizontal scrollbar's maximum.
6090
6091 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6092
6093         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
6094         check for keywords in alternate casing, close bug #80049.
6095
6096 2006-12-19  Chris Toshok  <toshok@ximian.com>
6097
6098         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
6099         methods (which all do nothing).
6100
6101         * IDropTarget.cs: add the 4 missing methods.
6102
6103 2006-12-19  Chris Toshok  <toshok@ximian.com>
6104
6105         * TableLayoutRowStyleCollection.cs: corcompare work.
6106         
6107         * TableLayoutSettings.cs: same.
6108
6109         * TableLayoutStyle.cs: same.
6110
6111         * TableLayoutColumnStyleCollection.cs: same.
6112
6113 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
6114
6115         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
6116         TableLayoutPanel I've had in my local tree for way too long.
6117
6118 2006-12-19  Miguel de Icaza  <miguel@novell.com>
6119
6120         * TableLayoutSettings.cs: Finish the public API (still needs all
6121         the logic to update on changes). 
6122
6123         * TableLayoutPanelCellPosition.cs: new file.
6124         
6125         * TableLayoutRowStyleCollection.cs,
6126         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
6127         TableLayoutSettings.cs: Track the final 2.0 table api.
6128
6129 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6130
6131         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
6132         and Image List 2.0 members for ColummnHeader.
6133         * ListView.cs: Add key-related 2.0 methods for
6134         ColumnHeaderCollection.
6135
6136 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6137
6138         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
6139         ArgumentNullException if items argument is null. Ignore null item in
6140         arrays. Removed extra tabs.
6141
6142 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6143
6144         * MonthCalendar.cs: Fixed InvalidCastException.
6145
6146 2006-12-19  Jackson Harper  <jackson@ximian.com>
6147
6148         * TextControl.cs: Don't increment the position here.
6149         - When calculating char positions only add in the line break size
6150         for hard line breaks.
6151
6152 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6153
6154         * SendKeys.cs: Changed some things to match ms.net behaviour
6155         when parsing shifted capital letters.
6156         
6157         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
6158         Add window handle as parameter to SendInput. X11 needs the 
6159         window handle, and the handle being passed      to it in the keys 
6160         queue is the active control handle (which windows needs), not 
6161         the window handle.
6162         
6163         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
6164         to support SendKeys on X.       
6165         
6166         * X11Keyboard: Implement helper method to lookup a linux keycode
6167         given the virtual keycode. Added table of keycode-2-virtualkey
6168         values to support this.
6169
6170 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6171
6172         * ListView.cs: Add support for SelectedIndexCollection
6173         and SelectedItemCollection 2.0 methods. Implement support
6174         for ImageKey too.
6175         * ListViewItem.cs: Add support for ListViewSubItemCollection
6176         2.0 methods. Also, fix an incorrect behavior of AddRange method
6177         (it shouldn't call Clear).
6178         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
6179
6180 2006-12-19  Jackson Harper  <jackson@ximian.com>
6181
6182         * RichTextBox.cs: 
6183         * TextBoxBase.cs: New args for FormatText
6184         * TextControl.cs: Rewrote the main drawing method, this version
6185         feels a little easier to understand and debug to me.  Hopefully it
6186         does to others also
6187         - Fix FormatText to OR in the new formating values.  Added
6188         FormatSpecified param, basically this works in the same way as
6189         BoundsSpecified in Control.
6190         - Set the caret properties when the caret is positioned.
6191         - When wrapping text make sure that we calculate the width of the
6192         last character
6193         - when calculating alignments we might have wrapped down to the
6194         next line, so don't search for an individual tag, search for the
6195         end of the line
6196         - We need to invalidate the selection area when we replace the
6197         selection.
6198         
6199 2006-12-19  Daniel Nauck  <dna@mono-project.de>
6200
6201         * Application.cs: add Restart () 2.0 support
6202
6203 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6204
6205         * MenuItem.cs: Invalidate menu item rectangle after change Enable
6206         property. Fixes #80268.
6207         
6208 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6209
6210         * MenuAPI.cs: Dont trigger select event when closes top menu
6211         item. Fixes #80270.
6212
6213 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6214
6215         * MenuAPI.cs: When you click on menuitem only trigger onselect
6216         event for top menu itens. Fixes #80271.
6217         
6218 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6219
6220         * MdiWindowManager.cs: Make IconicBounds depend on
6221         the bottom of MdiClient, not the top (fixes #80267)
6222         
6223 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6224
6225         * MdiClient.cs: Added missing 2.0 attribute
6226
6227 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6228
6229         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
6230         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
6231
6232 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6233
6234         * MenuAPI.cs: Fix click when menuitem is not popup,
6235         this regression was caused by last commit (#80272).
6236
6237 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
6238
6239         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
6240         fire click event or close menu. Fixes #80272.
6241
6242 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6243
6244         * ListViewHitTestInfo.cs: add
6245
6246 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6247
6248         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
6249         * FlatButtonAppearance.cs: add
6250         * DockingAttribute.cs: add
6251
6252 2006-12-17  Chris Toshok  <toshok@ximian.com>
6253
6254         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
6255         and rebind our columns when it does - this way, if you make
6256         changes to the DataTable (or set the Table attribute on a DataView
6257         after setting it as the DataGrid's DataSource, the changes are
6258         made visible.)  Fixes bug #80107.
6259
6260 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6261
6262         * ListViewGroup.cs: add internal Location property for layouting.
6263         * Theme.cs: add abstract ListViewGroupHeight function.
6264         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
6265
6266 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6267
6268         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
6269         Added reset of selected index to 0 when adding first tab page.
6270         Fixes #80264
6271         
6272         * NumericUpDown.cs: Fix NET_2_0 check
6273
6274 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6275
6276         * ListViewGroup.cs: fixed DefaultValueAttribute value
6277
6278 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6279
6280         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
6281
6282 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6283
6284         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
6285         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
6286         ScrollableControl.cs: Add a handful of methods that are
6287         overwritten in 2.0 
6288
6289 2006-12-15  Chris Toshok  <toshok@ximian.com>
6290
6291         * XplatUIWin32.cs: initial implementation of the Reversible
6292         drawing functions.  there are some problems.  DrawReversibleFrame
6293         doesn't seem to work at all for Dashed FrameStyle, and in the
6294         Thick case there are drawing errors at the corners (we probably
6295         need to bind Rectangle instead of doing moveto/lineto's.)
6296
6297 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6298         
6299         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
6300         to send blocks of key messages. Send accumulates keys to send with Flush, 
6301         while SendWait sends all keys immediately.
6302                 
6303         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
6304         XplatUIX11.cs,  XplatUIX11-new.cs:
6305         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
6306         to Win32 SendInput.
6307         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
6308         
6309         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
6310         testing for ms.net on this class is very tricky, as the tests run too fast 
6311         to allow the hook to release, essentially freezing the keyboard and the 
6312         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
6313         category :p
6314
6315 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6316
6317         * Padding.cs: fixed serialization compability to MS ("_var" field names),
6318                         added missing attributes.
6319  
6320 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6321
6322         * ListViewGroup.cs: Added missing attributes.
6323         * ListViewGroupCollection.cs: Added missing attributes.
6324
6325 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6326
6327         * ListViewItem.cs: fixed ListViewSubItem text property.
6328
6329 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6330         
6331         * Control.cs: Added missing 2.0 attributes
6332         
6333 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6334         
6335         * MdiClient.cs: Added missing 2.0 attribute.
6336         * MonthCalendar.cs: Added some missing 2.0 attributes 
6337         and properties.
6338         
6339 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6340
6341         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
6342
6343 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
6344
6345         * MainMenu.cs: Add the new 2.0 constructor to help out people
6346         using the MainMenu in VS2005.
6347
6348 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6349         
6350         * MdiChildContext.cs: Removed it, no longer used.
6351         * MdiClient.cs: Added missing 2.0 attributes.
6352         
6353 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6354         
6355         * InternalWindowManager.cs: Fix a NullRef with previous 
6356         changes for toolwindows.
6357         
6358 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6359
6360         * Control.cs: 
6361         - Added AfterTopMostControl to allow for certain controls 
6362         to always stay on top when normal controls are brought to 
6363         front.
6364         
6365         * XplatUIWin32.cs: 
6366         - (DrawInversibleRectangle): Get window rectangle from Win32 
6367         in stead of from control, since Win32 doesn't calculate
6368         screen coords correctly from control's Location if it 
6369         have docked siblings.
6370         
6371         * MdiWindowManager.cs:
6372         - Correct the control menu popup location when clicked on
6373         the maximized form icon. (fixes #80223.1)
6374         - Don't show moving rectangle if mouse hasn't moved from
6375         the original clicked point.
6376         - Removed FormGotFocus handler (not used).
6377         - Calculate the control buttons location from the main
6378         window's size and not client size (fixes #79770).
6379         - Form is now closed when the form icon is double-clicked
6380         (fixes #79775). 
6381         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
6382         
6383         * InternalWindowManager.cs:
6384         - Moved some MDI-only methods to MdiWindowManager.
6385         - Removed unused properties and methods.
6386         - Unified method naming for methods handling wm messages.
6387         - Moved all message handling to seperate methods for
6388         each message.
6389         
6390         * ThemeWin32Classic.cs:
6391         - DrawManagedWindowDecorations now draws the title bar 
6392         with a gradient brush.
6393         - Add a CPDrawButtonInternal that allows us to specify
6394         light, normal and dark colors for the buttons (control 
6395         buttons for MDI children were drawn with the same light
6396         color as the background, therefore loosing the 3D effect).
6397         
6398         * SizeGrip.cs:
6399         - Add a CapturedControl property that is used to 
6400         determine the control to resize (defaults to parent). 
6401         Needed for MdiClient, since its SizeGrip's parent is
6402         MdiClient, but the control to resize is the main form.
6403         
6404         * MdiClient.cs:
6405         - Set SizeGrip's CapturedControl to the main form in order
6406         to resize the main form and not the MdiClient.
6407         - Override AfterTopMostControl to leave the scrollbars 
6408         always on top.
6409
6410 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6411
6412         * ListView.cs: fixed ListViewItemCollection AddRange and
6413                         implemented ListViewItemCollection AddRange 2.0 support.
6414
6415 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6416
6417         * ListViewGroup.cs: Add.
6418         * ListViewGroupCollection.cs: Add
6419         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
6420         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
6421                                 stub for ImageKey 2.0 support.
6422
6423 2006-12-14  Mike Kestner  <mkestner@novell.com>
6424
6425         * ListView.cs: add text padding to the autocalculation for columns
6426         of width -2.  Fixes #80207.
6427  
6428 2006-12-14  Mike Kestner  <mkestner@novell.com>
6429
6430         * ListView.cs: add some index guarding for partial row navigation 
6431         logic.  Fixes #80250.
6432
6433 2006-12-14  Mike Kestner  <mkestner@novell.com>
6434
6435         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
6436         are added or inserted to the collection.  Fixes #81099.
6437
6438 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
6439
6440         * MenuAPI.cs: Closes menu when right click out side of popup
6441         it fix problem in ContextMenu and MainMenu. Fixes #80252.
6442
6443 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6444
6445         * ListViewItem.cs: Fix dumb error.
6446
6447         * ListView.cs: Add Find and ContainsKey methods in 
6448         ListViewItemCollection, and also return true for IsReadOnly
6449         and IsFixedSize (changes for 2.0). 
6450
6451 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
6452
6453         * Control.cs: Allow Region to be set to null.
6454
6455 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6456
6457         * MdiWindowManager.cs: Remove unused (commented out) code.
6458         * Form.cs: When the MdiChild is maximized, the form needs 
6459         WM_NCMOUSELEAVE, so request it.
6460         * InternalWindowManager.cs: 
6461         - Added tooltips to control buttons.
6462         - Removed duplicated control button handling code.
6463         - Removed unused (commented out) code.
6464         
6465 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
6466
6467         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
6468         was used because we must set cursor without trigger ChangeCursor event
6469         and without change Cursor control property. Fixes #79963.
6470
6471 2006-12-12  Andreia Gaita  <avidigal@novell.com>
6472         
6473         * Control.cs: Check if Region setter value is null, and ignore
6474
6475 2006-12-12  Jackson Harper  <jackson@ximian.com>
6476
6477         * TextControl.cs: We were almost always drawing one more line then
6478         needed, since the GetLineByPixel will return the last line found
6479         at that pixel. In most cases though, we were invalidating up to
6480         the junction between two lines.
6481         - Improve debug code.
6482
6483 2006-12-12  Chris Toshok  <toshok@ximian.com>
6484
6485         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
6486         and FillReversibleRectangle.
6487
6488         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
6489         and FillReversibleRectangle.
6490
6491         * XplatUIWin32.cs: add stubs which do nothing for
6492         DrawReversibleFrame, DrawReversibleLine, and
6493         FillReversibleRectangle.
6494
6495         * XplatUIOSX.cs: add stubs which raise NIE for
6496         DrawReversibleFrame, DrawReversibleLine, and
6497         FillReversibleRectangle.
6498
6499         * XplatUIX11.cs: add working implementation for
6500         DrawReversibleFrame, DrawReversibleLine, and
6501         FillReversibleRectangle.
6502         
6503         * ControlPaint.cs: implement DrawReversibleFrame,
6504         DrawReversibleLine, and FillReversibleRectangle, by calling into
6505         the appropriate XplatUI method.
6506
6507 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6508
6509         * Form.cs: Make MdiClient have the focus even if it's
6510         not selectable, since it should receive WM_KEY* and WM_MOUSE 
6511         messages. Fixes #79907.
6512         
6513 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6514
6515         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
6516         queried after the window is created.
6517         
6518         * XplatUIX11.cs: Added SendParentNotify to implement 
6519         WM_PARENTNOTIFY logic. Fixes #79965.
6520         
6521         * Control.cs: Added MakeParam.
6522         
6523 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6524
6525         * MdiClient.cs: Resume Layout before setting window
6526         states (fixes #80201).
6527
6528 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6529
6530         * MenuAPI.cs: Deselect a menu item after performing
6531         the click (fixes #80197).
6532
6533 2006-12-11  Jackson Harper  <jackson@ximian.com>
6534
6535         * TextBoxBase.cs: We need to cap this value, since Maximum -
6536         ViewPortHeight can be less than zero.
6537         - Only do selection with the left mouse button.
6538         * TextBox.cs: Don't tell the world that we have a context menu.
6539         * Control.cs: New method so that we can control whether or not the
6540         context menu is visible outside MWF.
6541
6542 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6543
6544         * ToolBarButton.cs: Fix text positon. 
6545
6546 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6547
6548         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
6549
6550         * Control.cs (DoubleBuffered): Add implementation.
6551
6552         * Application.cs (OpenForms): Add.
6553
6554 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6555
6556         * Form.cs: Use opacity instead of Opactiy to determine if we need
6557         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
6558
6559 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6560
6561         * Control.cs: Fix NRE if Control.Site was set to null.
6562
6563 2006-12-11  Chris Toshok  <toshok@ximian.com>
6564
6565         * Control.cs: ControlCollection.Remove should return if the arg is
6566         null, and ControlCollection.SetChildIndex should raise a ANE.
6567
6568 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
6569
6570         * Control.cs: Verify value set for Dock property. Code formatting
6571         updates.
6572
6573 2006-12-11  Jackson Harper  <jackson@ximian.com>
6574
6575         * TextControl.cs: Draw the caret and the selection when a flag is
6576         set on the owner.
6577         * TextBoxBase.cs: We want to draw the caret and the selection for
6578         TextBox but not for TextBoxBase.
6579         - If the window is resized and scrolling is no longer needed (the
6580         whole doc is visible) set the scroll position to zero.
6581         - The default SelectWord (the one TextBox uses) should move the
6582         caret to the end of the word.
6583         - SelectAll moves the caret to the end of the selection.
6584         * TextBox.cs: We don't selectall on focus, we just do it when the
6585         control is created.
6586         
6587 2006-12-11  Mike Kestner  <mkestner@novell.com>
6588
6589         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
6590
6591 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6592
6593         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
6594         2.0 support.
6595         * ListViewItem.cs: Add Name 2.0 property.
6596
6597 2006-12-11  Andreia Gaita  <avidigal@novell.com>
6598
6599         * TabControl.cs: Set visibility on selected or default tab 
6600         when tabcontrol handle is created, so that it's contents
6601         actually show up (duh). Fixes #80193
6602         Don't redraw the control if there is no handle created, as
6603         the selected index might be completely invalid. Added some tests
6604         to check for this.
6605
6606 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6607
6608         * ToolBar.cs: Uses maximun width and height of all buttons as 
6609         button rectangle when ButtonSize specified, it looks strange but
6610         is what happens in Win32. Fixes #80189.
6611
6612 2006-12-11  Jackson Harper  <jackson@ximian.com>
6613
6614         * TextControl.cs: Need to track undo levels ourself, since
6615         compound actions will mess them up.
6616
6617 2006-12-10  Andreia Gaita  <avidigal@novell.com>
6618
6619         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
6620         SelectedIndex value is changed (even if it's not valid).
6621         Reset SelectedIndex to 0 when the handle is created and if
6622         the current index is invalid.
6623         Fixes SelectdeIndex unit tests and #80128
6624
6625 2006-12-08  Chris Toshok  <toshok@ximian.com>
6626
6627         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
6628         calls EndEdit, it needs to be called before we set current_cell to
6629         its new value.  Otherwise, we end up committing the value in the
6630         textbox to the new cell as well.  Fixes bug #80160.
6631
6632 2006-12-08  Chris Toshok  <toshok@ximian.com>
6633
6634         * Form.cs (set_CancelButton): if the button's DialogResult is
6635         None, set it to Cancel.  Fixes bug 80180.
6636
6637 2006-12-08  Jackson Harper  <jackson@ximian.com>
6638
6639         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
6640         to watch ourselves when setting the canvas size and setting the
6641         scrollbar values.
6642
6643 2006-12-08  Chris Toshok  <toshok@ximian.com>
6644
6645         * DataGrid.cs: comment out the two MakeTransparent calls for the
6646         time being so people using trunk (and not 1.2.2) on windows can
6647         actually use the datagrid.  This deals with bug #80151.
6648
6649 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6650
6651         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
6652         Graphics.DrawImage (image, int, int, int, int) overload instead
6653         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
6654         the dpi difference and was blurring images it drew.
6655         [Fixes bug #79960]
6656
6657 2006-12-08  Chris Toshok  <toshok@ximian.com>
6658
6659         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
6660         rowcnt is 0 (such as with an empty datasource), and make sure we
6661         initialize not_usedarea.Y to cells.Y, so we don't draw over the
6662         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
6663
6664 2006-12-08  Chris Toshok  <toshok@ximian.com>
6665
6666         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
6667         grid.
6668
6669 2006-12-08  Chris Toshok  <toshok@ximian.com>
6670
6671         [ Fixes bug #80167 ]
6672         
6673         * ThemeWin32Classic.cs: don't draw the image if the button's flat
6674         style is FlatStyle.System.
6675
6676         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
6677         ButtonBase.flat_style private, and switch uses of it to the public
6678         property.
6679         
6680 2006-12-08  Chris Toshok  <toshok@ximian.com>
6681
6682         [ Fixes bug #80121 ]
6683         
6684         * ThemeWin32Classic.cs: center the caption text in the datagrid
6685         when we draw it.
6686
6687         * DataGrid.cs: lessen the amount we add to the caption height from
6688         6 to 2.  6 was making it huge.
6689
6690 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6691
6692         * UpDownBase: Handle MouseWheel call directly instead of capturing
6693         the inner textbox's OnMouseWheel. Fixes #80166
6694
6695 2006-12-08  Jackson Harper  <jackson@ximian.com>
6696
6697         * TextControl.cs: We need to invalidate the textbox when we empty
6698         it (how had this not been discovered before?)
6699
6700 2006-12-08  Jackson Harper  <jackson@ximian.com>
6701
6702         * TextBoxBase.cs: Reworked the mouse down code so I could get it
6703         to behave like MS, we now ignore the eventargs.Click and just
6704         track state ourself, which we were already doing anyways.
6705         - Constrain the double click handler to the double click size.
6706         
6707 2006-12-08  Chris Toshok  <toshok@ximian.com>
6708
6709         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
6710         direction if that scrollbar isn't shown.  fixes bug #80158.
6711
6712 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6713
6714         * NumericUpDown.cs: Update value on getter. Fixes #79950
6715
6716 2006-12-08  Chris Toshok  <toshok@ximian.com>
6717
6718         * MenuItem.cs: add back in the event cloning code.  I didn't know
6719         how to do it in the face of the EventHandlerList work i'd done
6720         last week.  Fixes bug #80183.
6721
6722 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6723
6724         * Control.cs: Add an invalidate to the BackgroundImage setter.
6725         [Fixes 80184]
6726
6727 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6728
6729         * ToolStrip*: Add some small properties reported by MoMA, fix event
6730         firing and default properties based off of unit tests, and add some
6731         attributes based off of the class status page.
6732
6733 2006-12-07  Jackson Harper  <jackson@ximian.com>
6734
6735         * TextBoxBase.cs: Take HideSelection into account when determining
6736         whether or not to show the selection.
6737         * RichTextBox.cs: After inserting the RTF into the document move
6738         the cursor to the beginning of the document.
6739
6740 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6741
6742         * Control.cs: Remove static ArrayList "controls" which maintained
6743         a reference to every control created.
6744         * Application.cs: Create a static FormCollection to maintain a reference
6745         to every form created.  Use it in places that formerly enumerated through
6746         the controls one looking for forms.
6747         * Form.cs: Add and remove self from above FormCollection.
6748
6749 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
6750
6751         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
6752           not libgdk (though it makes me wonder why I didn't have any
6753           problems)
6754
6755 2006-12-07  Chris Toshok  <toshok@ximian.com>
6756
6757         [ you had to know this was coming after that last commit...]
6758         
6759         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
6760         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
6761         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
6762         XCopyArea).
6763
6764 2006-12-07  Chris Toshok  <toshok@ximian.com>
6765
6766         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
6767         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
6768         all the behavior we need for double buffering.
6769
6770         * XplatUIDriver.cs: implement the 3 double buffer methods using a
6771         client side Bitmap, just like the old Control-based double buffer
6772         code did.  The methods are virtual, so each XplatUI driver
6773         subclass can replace the implementation to use a faster, platform
6774         specific approach.
6775
6776         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
6777         double buffer code, and clean things up a bit in the process.
6778
6779 2006-12-06  Chris Toshok  <toshok@ximian.com>
6780
6781         * Control.cs: reindent WndProc.
6782
6783 2006-12-06  Chris Toshok  <toshok@ximian.com>
6784
6785         [ I wanna be like BenM when I grow up ]
6786         
6787         * Hwnd.cs: create a single static Graphics object on the static
6788         Bitmap we create.  use this for our text measurements.
6789
6790         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
6791         This was causing us to allocate a backbuffer for every control,
6792         even when it wasn't flagged as double buffered.  Instead use the
6793         single graphics instance.  This might have implications for
6794         multithreaded applications.  If we run into problems we can switch
6795         to creating 1 Graphics per control, on the static Hwnd bitmap.
6796
6797         this change nets us a 7M savings in private dirty mappings when
6798         running FormsTest.exe.
6799
6800 2006-12-06  Chris Toshok  <toshok@ximian.com>
6801
6802         * ListView.cs: the BackgroundImage override is just to set
6803         attributes.  chain up to base.BackgroundImage.
6804
6805         * RichTextBox.cs: same.
6806
6807         * ToolBar.cs: same, but we need to also redraw the toolbar when it
6808         changes, so instead a handler for BackgroundImageChanged.
6809         
6810         * Control.cs: make background_image private.
6811
6812 2006-12-06  Chris Toshok  <toshok@ximian.com>
6813
6814         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
6815         sure we even need this assignment, but roll with it for now.
6816
6817         * Control.cs: make the cursor field private.
6818
6819 2006-12-06  Chris Toshok  <toshok@ximian.com>
6820
6821         * Form.cs: we don't need to explicitly set ImeMode to
6822         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
6823         behavior in the face of ImeMode.Inherit.
6824
6825         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
6826         change the ctor's assignment to use ImeMode instead of ime_mode.
6827
6828         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
6829         ImeModeInherit.  Only check for the parent's imemode (and return
6830         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
6831         This fixes the button unit test, which sets both ImeMode and
6832         DefaultImeMode to ImeMode.Disable.
6833
6834         also make the ime_mode field private.
6835
6836 2006-12-06  Chris Toshok  <toshok@ximian.com>
6837
6838         * Control.cs: make control_style private.
6839
6840         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
6841         setting the styles to true, then setting them to false instead of
6842         reverting to their previous values.
6843
6844         also, call SetStyle on the scrollbars instead of using
6845         control_style directly.
6846
6847 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
6848
6849         * FormCollection.cs: Implement. [2.0]
6850
6851 2006-12-06  Chris Toshok  <toshok@ximian.com>
6852
6853         * Control.cs: make tab_stop private.
6854
6855         * Label.cs: set TabStop, not tab_stop.  reformat some event
6856         add/remove methods to make them more compact.
6857
6858 2006-12-06  Chris Toshok  <toshok@ximian.com>
6859
6860         * RadioButton.cs: fix TabStop handling.
6861
6862 2006-12-06  Chris Toshok  <toshok@ximian.com>
6863
6864         * TextBox.cs: remove the explicit assignments to has_focus.
6865         Control does that.
6866
6867         * ButtonBase.cs: remove the assignment to has_focus.  Control will
6868         manage that.
6869         
6870 2006-12-06  Chris Toshok  <toshok@ximian.com>
6871
6872         * ButtonBase.cs: remove all uses of is_enabled from this code.
6873         it's always true when any of the code containing the checks is
6874         executed.
6875
6876 2006-12-06  Chris Toshok  <toshok@ximian.com>
6877
6878         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
6879         with different semantics (some are present in both 1.1 and 2.0
6880         profiles) so that we match MS's behavior in our unit tests.
6881
6882 2006-12-06  Jackson Harper  <jackson@ximian.com>
6883
6884         * TextControl.cs: Make this operation undoable.
6885         * TextBoxBase.cs: Factor the border width into the preferred
6886         height.
6887         - implement Modified as per the spec.
6888
6889 2006-12-06  Chris Toshok  <toshok@ximian.com>
6890
6891         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
6892
6893 2006-12-06  Chris Toshok  <toshok@ximian.com>
6894
6895         * Control.cs: make right_to_left and context_menu fields private.
6896
6897 2006-12-06  Chris Toshok  <toshok@ximian.com>
6898
6899         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
6900         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
6901         Control.child_controls private.  switch all uses over to
6902         Control.Controls.
6903
6904 2006-12-06  Chris Toshok  <toshok@ximian.com>
6905
6906         * System.Windows.Forms/GroupBox.cs,
6907         System.Windows.Forms/AccessibleObject.cs,
6908         System.Windows.Forms/ErrorProvider.cs,
6909         System.Windows.Forms/Control.cs,
6910         System.Windows.Forms/UpDownBase.cs,
6911         System.Windows.Forms/ScrollBar.cs,
6912         System.Windows.Forms/DateTimePicker.cs,
6913         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
6914         System.Windows.Forms/ToolTip.cs,
6915         System.Windows.Forms/RadioButton.cs,
6916         System.Windows.Forms/LinkLabel.cs,
6917         System.Windows.Forms/Splitter.cs,
6918         System.Windows.Forms/TextBoxBase.cs,
6919         System.Windows.Forms/ToolStripTextBox.cs,
6920         System.Windows.Forms/ContainerControl.cs,
6921         System.Windows.Forms/ThemeWin32Classic.cs,
6922         System.Windows.Forms/SizeGrip.cs,
6923         System.Windows.Forms/ToolStripDropDown.cs,
6924         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
6925         private.  switch all uses over to Control.Parent.
6926
6927 2006-12-06  Chris Toshok  <toshok@ximian.com>
6928
6929         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
6930         Control does this before calling emitting these events.
6931
6932         * TabControl.cs: same.
6933
6934         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
6935         Control.client_rect.
6936
6937         * ButtonBase.cs: use the ClientSize property instead of the
6938         client_size field.
6939
6940         * ScrollableControl.cs: same.
6941
6942         * Control.cs: another pass at making properties private.  also,
6943         move the initialization of tab_stop to the ctor.
6944
6945 2006-12-05  Andreia Gaita <avidigal@novell.com>
6946
6947         * TabControl.cs: Let the selected index be set freely if the 
6948         control handle is not yet created.
6949
6950 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
6951
6952         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
6953         internal until I can rewrite DefaultLayout.
6954         * ToolStrip.cs: Fix build error and some general cleaning.
6955         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
6956         Fix build errors caused by making some of Control's fields private.
6957
6958 2006-12-05  Jackson Harper  <jackson@ximian.com>
6959
6960         * TextControl.cs: Redo Insert a little so that it use IndexOf
6961         instead of Split, this prevents it from messing up on things like
6962         \n\n\n. Also more effecient since the split array doesn't need to
6963         be created.
6964         * TextBoxBase.cs: AppendText doesnt handle multiline and non
6965         multiline text differently, this is the first of many fixes that
6966         will make multiline/non-multiline the same thing as far as the
6967         TextBoxBase is concerned.
6968         - Don't split the text and insert lines, this can lose some line
6969         endings (like is the last line a soft or hard break). Instead use
6970         the new Insert.
6971         - Fix an off by one when combining all the lines in the Text
6972         getter.
6973         - Remove separate multiline handling from the Text getter/setter.
6974
6975 2006-12-05  Chris Toshok  <toshok@ximian.com>
6976
6977         * ButtonBase.cs: a few changes:
6978
6979         - don't reinitialize internal Control fields in the ctor when they
6980         have the same values as Control sets them.
6981
6982         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
6983         this before calling those methods.
6984
6985         - we don't need to call Refresh for anything.  use Invalidate
6986         instead.
6987
6988         - OnEnabledChanged doesn't need to redraw at all - Control.cs
6989         calls Refresh in its OnEnabledChanged.
6990         
6991         - several of the events we were registered for in the ctor to
6992         redraw ourselves already include calls to Invalidate in the
6993         property setters that raise the events.  remove the extra
6994         invalidation.
6995
6996         - reformat a switch statement that was 83274658 columns wide.
6997         
6998 2006-12-05  Mike Kestner  <mkestner@novell.com>
6999
7000         * ComboBox.cs: fix a unit test regression from a TextBox
7001         SelectionLength return of -1 when there's no selection.  
7002
7003 2006-12-05  Chris Toshok  <toshok@ximian.com>
7004
7005         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
7006         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
7007         cleaning up some of the internal Control fields being used by
7008         subclasses.
7009
7010 2006-12-05  Mike Kestner  <mkestner@novell.com>
7011
7012         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
7013         listbox after AddImplicit calls since it defaults to hidden. Add a 
7014         hack to preserve requested heights across DropDownStyle changes.
7015
7016 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
7017
7018         * PropertyGrid.cs: Hide FindFirstItem method from public API.
7019
7020 2006-12-05  Chris Toshok  <toshok@ximian.com>
7021
7022         * DataGridView.cs: fix compiler warnings.
7023
7024         * PrintControllerWithStatusDialog.cs: same.
7025
7026         * ToolBar.cs: same.
7027
7028         * FolderBrowserDialog.cs: same.
7029
7030         * Splitter.cs: same.
7031
7032         * DataGridViewComboBoxCell.cs: same.
7033
7034         * XplatUIWin32.cs: same.
7035
7036         * PictureBox.cs: same.
7037
7038         * Win32DnD.cs: same.
7039
7040         * PageSetupDialog.cs: same.
7041
7042         * FileDialog.cs: same.
7043
7044         * PrintDialog.cs: same.
7045
7046         * DataGridTextBoxColumn.cs: same.
7047
7048         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
7049
7050 2006-12-05  Chris Toshok  <toshok@ximian.com>
7051
7052         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
7053         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
7054         System.ComponentModel.EventHandlerList work.
7055
7056 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
7057
7058         * DrawTreeNodeEventArgs.cs: Added.
7059
7060 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7061         
7062         * InternalWindowManager.cs: Remove an unused field.
7063         
7064 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7065
7066         * InternalWindowManager.cs:
7067         - Save the point where the title bar is clicked.
7068         
7069         * MdiWindowManager.cs:
7070         - Only allow moving of the window as long as the 
7071         clicked point on the title bar does not get out of
7072         MdiClient's rectangle. Fixes #79982.
7073         
7074         * MdiClient.cs:
7075         - Added Horizontal/VerticalScrollbarVisible.
7076         - Simplified the scrollbar sizing algorithm.
7077         - Cache the difference in scrolled value in
7078         H/VBarValueChanged and move the calculation out
7079         of the for loop.
7080
7081 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7082
7083         * Control.cs: Make the Console.WriteLine in WndProc 
7084         write more info.
7085
7086 2006-12-05  Chris Toshok  <toshok@ximian.com>
7087
7088         * ToolStripManager.cs, ToolStripButton.cs,
7089         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
7090         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
7091         ToolStripSplitButton.cs, ToolStripSeparator.cs,
7092         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
7093         ToolStripProgressBar.cs, ToolStripContainer.cs,
7094         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
7095         to using System.ComponentModel.EventHandlerList.
7096
7097 2006-12-04  Chris Toshok  <toshok@ximian.com>
7098
7099         * LinkLabel.cs: fix up compiler warnings.
7100
7101         * TableLayoutSettings.cs: same.
7102
7103         * TreeView.cs: same.
7104
7105         * ToolBar.cs: same.
7106
7107         * TabControl.cs: same.
7108
7109         * RichTextBox.cs: same.
7110
7111         * ListViewItem.cs: same.
7112
7113         * PropertyGrid.cs: same.
7114
7115         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
7116
7117         * ToolTip.cs same.
7118
7119         * TextRenderer.cs: fix up compiler warnings.
7120
7121         * Label.cs: same.
7122
7123         * Form.cs: corcompare fixes.
7124
7125         * PictureBox.cs: fix up compiler warnings.
7126
7127         * ImageListStreamer.cs: same.
7128
7129         * TrackBar.cs: corcompare fix.
7130
7131         * Control.cs: fix up compiler warnings.
7132
7133         * SplitterPanel.cs: same.
7134
7135         * NumericTextBox.cs: same.
7136
7137         * ImageList.cs: same.
7138
7139         * StatusStrip.cs: same.
7140
7141         * ProgressBar.cs: corcompare fix.
7142
7143         * ToolStripButton.cs: fix up compiler warnings.
7144
7145         * ToolStripStatusLabel.cs: same.
7146
7147         * ToolStripSplitButton.cs: same.
7148
7149         * ToolStripSeparator.cs: same.
7150
7151         * ToolStripProgressBar.cs: same.
7152
7153         * ToolStripDropDownMenu.cs: same
7154
7155         * ToolStripDropDown.cs: same.
7156
7157         * ToolStripDropDownButton.cs: same.
7158
7159         * ToolStrip.cs: same.
7160
7161         * ToolStripControlHost.cs: same.
7162
7163         * ToolStripContentPanel.cs: same.
7164
7165         * ToolStripDropDown.cs: same.
7166
7167         * ToolStripContainer.cs: same.
7168
7169         * ToolStripPanel.cs: same, and add "new" where we need it to work
7170         with the new ArrangedElementCollection.
7171
7172         * ToolStripItemCollection.cs: add "new" where we need it to work
7173         with the new ArrangedElementCollection.
7174
7175 2006-12-04  Andreia Gaita <avidigal@novell.com>
7176
7177         * TabControl.cs: Fix default tab selection to after TabControl
7178         gets focus and not before. Fixes #80128
7179
7180 2006-12-04  Chris Toshok  <toshok@ximian.com>
7181
7182         * DataGridTableStyle.cs: remove the gross calling of
7183         datagrid.Refresh from here.  It's a broken idea and it doesn't
7184         work anyway.
7185
7186         * DataGrid.cs: instead, just register/unregister from the
7187         DataGridTableStyle events in CurrentTableStyle.  we play it
7188         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
7189         even though some would most likely not require it.  Fixes bug
7190         #80115 (and one portion of #80117 as a side effect).
7191
7192 2006-12-04  Chris Toshok  <toshok@ximian.com>
7193
7194         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
7195         so the textbox (if any) goes away.  Fixes bug #80117.
7196
7197 2006-12-04  Chris Toshok  <toshok@ximian.com>
7198
7199         * DataGridColumnStyle.cs: set the column's readonly property
7200         initially based on the property descriptor's IsReadOnly.  Fixes
7201         bug #80044.
7202
7203 2006-12-04  Chris Toshok  <toshok@ximian.com>
7204
7205         * ComboBox.cs: wrap the dropdown style changing work in
7206         SuspendLayout/ResumeLayout.  Fixes bug #79968.
7207
7208 2006-12-04  Jackson Harper  <jackson@ximian.com>
7209
7210         * TextBoxBase.cs: Fix off by one, since these are one-based.
7211         * TextBox.cs: Select all the text when we get focus.  The TextBox
7212         does this but the RTB does not.
7213
7214 2006-12-04  Chris Toshok  <toshok@ximian.com>
7215
7216         * DataGridTextBoxColumn.cs: remove some spew.
7217
7218         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
7219         but some part of me is saying "it shouldn't be here.."  At any
7220         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
7221         setting the value.
7222
7223 2006-12-04  Chris Toshok  <toshok@ximian.com>
7224
7225         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
7226         to reassign the propertydescriptor.
7227
7228 2006-12-04  Jackson Harper  <jackson@ximian.com>
7229
7230         * TextBoxBase.cs:
7231         * TextControl.cs: Remove some unused variables.  Maybe this will
7232         patch things up between mike and I.
7233         - don't split lines less then one char wide, if the viewport is
7234         that small text won't be visible anyways.
7235         
7236 2006-12-04  Jackson Harper  <jackson@ximian.com>
7237
7238         * TextBoxBase.cs: Default selection length is -1, need to do some
7239         more testing on windows to see when this is used for the property.
7240         - Redid the Lines [] property to that we properly remove soft line
7241         breaks
7242         - added support for preserving carriage returns
7243         -  CanUndo is not a variable like 'is undo enabled' it just returns
7244         true if there is undo operations available.
7245         - AppendText doesn't need to grab the last tag itself anymore,
7246         this happens automatically when we move the cursor.
7247         * TextControl.cs: Add CompoundActions to the undo class. This
7248         allows combining the other operations into one big option.  ie a
7249         paste will combine { delete old, insert new, move cursor }
7250         - Add InsertString undo operation
7251         - New method for deleting multiline text
7252         - Add carriage returns to lines. So we can preserve carriage
7253         returns when text is 'roundtripped'
7254
7255 2006-12-04  Chris Toshok  <toshok@ximian.com>
7256
7257         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
7258         minimum 0.  Fixes the scrollbar exception in bug #80136.
7259
7260 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7261
7262         * MdiClient.cs: 
7263         * MdiWindowManager: Removed unused fields and methods.
7264         
7265 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7266         
7267         * StatusBar.cs: Update all panels when a AutoSize=Contents
7268         panel needs updating.
7269         
7270         * StatusBarPanel.cs: Remove twidth and only use initialize.
7271         Fixes #80031.
7272                 
7273 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7274
7275         * Form.cs: When a form's MdiParent is set add it directly
7276         on top of the z-order in stead of relying on MdiClient's
7277         ActivateChild to do it. Fixes #80135.
7278         
7279         * MdiClient.cs: 
7280         - Remove original_order, mdi_child_list is already doing
7281         the same thing.
7282         - Create mdi_child_list on construction in
7283         stead of first use (avoids a few null checks).
7284
7285         * MenuItem.cs: Use an already existing list of mdi children
7286         to get the correct order of children and remove the other
7287         redundant list.
7288
7289 2006-12-04  Chris Toshok  <toshok@ximian.com>
7290
7291         * PropertyGridView.cs: cached_splitter_location is only used in
7292         !DOUBLEBUFFER code.
7293
7294         * PropertyGrid.cs: implement the ComComponentNameChanged event
7295         using Events, hoping that would fix the warning.  Looks like a
7296         compiler bug instead (#80144).
7297
7298         * PropertyManager.cs: remove unused method.
7299
7300 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
7301
7302         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
7303         include parentesis to fix expression evaluation. Fixes #79634.
7304
7305 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
7306         
7307         * MenuAPI.cs:
7308         - Changes to fix behavior in Menu control, some reported in #80097
7309         and other detected during behavior refactory like a select event
7310         problems.
7311         - Remove unneded "if's" conditions.
7312         - Created an internal to flag when popup is active in control, we need 
7313         it because in .NET you can have menu active but without popup active
7314         when you active menu using popup without visible items.
7315         - Mimic win32 behavior for Select and Popup events.  
7316         - Dont open popup menu when you dont have visible subitems.
7317         - Do nothing when click on disabled menu item.
7318         - Some small changes to follow the coding style guidelines.
7319         - Unselect menu only when another control gives focus. Fixes #80097.
7320         - Remove unused code.
7321         
7322         * MenuItem.cs: internal VisibleItems method to check if menu
7323         theres visible subitems, it will be usefull to fix some 
7324         behavior in Menu control.
7325         
7326 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7327         
7328         * Timer.cs: Tag property for 2.0 profile.
7329         
7330 2006-12-01  Chris Toshok  <toshok@ximian.com>
7331
7332         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
7333         
7334         * Win32DnD.cs: comment out some unused fields.
7335
7336         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
7337         some unused properties/methods.
7338
7339         * XplatUIX11.cs: fix MousePosition so we override the base class's
7340         property instead of conflicting with it.
7341
7342         * PictureBox.cs: comment out some unused fields
7343
7344         * OSXStructs.cs: make some struct fields public.
7345
7346         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
7347         MousePosition so we override the base class's property instead of
7348         conflicting with it.
7349
7350         * X11Dnd.cs: comment out some unused fields
7351
7352         * X11DesktopColors.cs: fix some struct field visibility to quiet
7353         the compiler.
7354
7355         * X11Dnd.cs: remove some debug code.
7356
7357         * ThemeClearlooks.cs: comment out unused field.
7358
7359         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
7360
7361         * ThemeGtk.cs: comment out some unused pinvokes.
7362
7363         * Timer.cs: remove some unused fields.
7364
7365         * ThemeClearlooks.cs: comment out unused field.
7366
7367         * UpDownBase.cs: comment out unused field.
7368
7369         * DataObject.cs: comment out unused field.
7370
7371         * DataGridBoolColumn.cs: reomve unused field.
7372
7373         * DataGrid.cs: remove unused field.
7374
7375         * Cursor.cs: remove old ToBitmap code.
7376
7377         * ControlPaint.cs: remove unused method.
7378
7379         * ScrollBar.cs: remove unused fields.
7380
7381         * ComboBox.cs: remove unused field, and chain up to
7382         AccessibleObject ctor.
7383
7384         * ListBox.cs: remove unused field.
7385
7386         * ButtonBase.cs: wrap a couple fields in NET_2_0.
7387
7388         * GridEntry.cs: remove unused fields.
7389
7390         * Binding.cs: remove unused fields.
7391
7392         * AxHost.cs: remove unused method.
7393
7394         * ContainerControl.cs: remove unused field.
7395
7396         * ScrollableControl.cs: remove unused fields.
7397
7398 2006-12-01  Chris Toshok  <toshok@ximian.com>
7399
7400         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
7401         the Where/WhereString stuff.  it's easy enough to CWL
7402         Environment.StackTrace.
7403
7404         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
7405         unused private fields.
7406
7407 2006-12-01  Jackson Harper  <jackson@ximian.com>
7408
7409         * TextControl.cs: Do not update the view while inserting multiline
7410         text. If we update the view we might wrap lines, before entering
7411         the new lines, which causes the new line insertion calculations to
7412         be totally fubared.
7413         - Remove an old TODO
7414         - Make debug output a little nicer
7415         
7416 2006-12-01  Chris Toshok  <toshok@ximian.com>
7417
7418         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
7419
7420 2006-12-01  Chris Toshok  <toshok@ximian.com>
7421
7422         [ fix the majority of the CS0108 warnings we've been suppressing ]
7423         
7424         * TreeView.cs: mark BackgroundImageChanged as 'new'.
7425
7426         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
7427         to "LayoutToolBar" to quiet mcs.
7428         
7429         * TabControl.cs: mark our ControlCollection class as 'new'.
7430
7431         * TextBoxBase.cs: mark some events as 'new'.
7432
7433         * Splitter.cs: TabStop is 'new'.
7434
7435         * ControlBindingsCollection.cs: mark a few methods as new since
7436         they change the visibility from protected to public.
7437
7438         * RadioButton.cs: DoubleClick -> base class, and remove unused
7439         HaveDoubleClick.
7440
7441         * MonthCalendar.cs: ImeMode property -> base class, and mark many
7442         events as new.
7443
7444         * NumericUpDown.cs: TextChanged -> base class.
7445
7446         * CheckedListBox.cs: mark our ObjectCollection class as new to
7447         quiet mcs.
7448
7449         * FolderBrowserDialog.cs: make HelpRequest event new and have it
7450         muck with the base class.
7451
7452         * StatusBar.cs: fix some mcs warnings about Update being the same
7453         name as a base class method.
7454
7455         * RichTextBox.cs: mark some events as new, and make them do things
7456         to the base class impl.
7457
7458         * UserControl.cs: mark TextChanged as new, and have it manipulate
7459         base.TextChanged.
7460
7461         * UpDownBase.cs: mark some things new.
7462
7463         * CheckBox.cs: mark DoubleClick "new", and add some text about
7464         what we need to look at.
7465
7466         * Panel.cs: make the events "new", and manipulate the base
7467         version.  these are just here for attributes.
7468
7469         * AccessibleObject.cs: make owner private.
7470
7471         * Control.cs: deal with AccessibleObject.owner being private.
7472         cache our own copy if we need it.
7473
7474         * Button.cs: add "new" to the DoubleClickEvent.
7475
7476         * ListBox.cs: no need to track our own has_focus here.  let
7477         Control.has_focus do it for us.  Also some other work to clear up
7478         warnings about not overriding base class methods of the same name.
7479         
7480         * ComboBox.cs: clear up some warnings about not override base
7481         class methods of the same name.
7482
7483 2006-12-01  Chris Toshok  <toshok@ximian.com>
7484
7485         * Form.cs: flag a few things as "new" to quiet some of the mcs
7486         warnings.
7487
7488         * AxHost.cs: same.
7489
7490         * PrintPreviewDialog.cs: same.
7491
7492         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
7493         now DGV isn't so horrible on the class status page.  also, move
7494         all events to using System.ComponentModel.EventHandlerList.  my
7495         wrists hurt.
7496
7497 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7498
7499         * MdiWindowManager.cs:
7500         - Set form to active mdi child if shown,
7501         and update the active mdi child to the next 
7502         remaining child in the z-order if the form is hidden.
7503
7504         * Form.cs: 
7505         - Track if the form has been visible and if its 
7506         visibility is beeing changed, so that the MdiClient
7507         can properly decide the ActiveMdiChild. The MdiClient 
7508         cannot track this since the form can change visibility 
7509         before MdiClient is created.
7510
7511         * MdiClient.cs:
7512         - Don't activate anything of the parent form is changing
7513         its visibility.
7514         - Rework ActiveMdiChild to only return visible mdi 
7515         children and take into account several other corner 
7516         cases.
7517
7518 2006-12-01  Chris Toshok  <toshok@ximian.com>
7519
7520         * IBindableComponent.cs: new 2.0 interface.
7521
7522 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
7523
7524         * DataGrid.cs: Font for caption area is bold by default.
7525
7526 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
7527
7528         * Menu.cs: Tag property for 2.0.
7529         
7530 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7531
7532         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
7533         
7534 2006-12-01  Chris Toshok  <toshok@ximian.com>
7535
7536         * TreeView.cs: doh, the Begin* events should be
7537         TreeViewCancelEventHandler.
7538
7539 2006-12-01  Chris Toshok  <toshok@ximian.com>
7540
7541         * Form.cs: Form.ControlCollection already stores off the
7542         form_owner field.  don't access the base class's internal "owner"
7543         field.
7544
7545         * Control.cs: make all the fields in Control.ControlCollection
7546         private.  there's no need for any internal fields here.
7547
7548 2006-12-01  Chris Toshok  <toshok@ximian.com>
7549
7550         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
7551         OnHandleCreated.  Fixes bug #80109.
7552
7553 2006-12-01  Chris Toshok  <toshok@ximian.com>
7554
7555         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
7556         SplitContainer.cs, Control.cs, StatusStrip.cs,
7557         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
7558         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
7559         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
7560         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
7561         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
7562         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
7563         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
7564         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
7565         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
7566         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
7567
7568         do most of the work to convert our code over to use
7569         System.ComponentModel.Component.Events for
7570         adding/removing/dispatching events.
7571
7572
7573 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7574
7575         * DataGridView.cs: Fix an ArgumentNullException reported 
7576         twice today in IRC.
7577
7578 2006-11-30  Mike Kestner  <mkestner@novell.com>
7579
7580         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
7581         grabbed listbox.  Fixes #80036 and #80101.
7582
7583 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7584
7585         * Message.cs: Changed ToString() to match MS.
7586         
7587 2006-11-30  Jackson Harper  <jackson@ximian.com>
7588
7589         * TextBoxBase.cs: You can still change the selected text on a read
7590         only textbox.
7591         * TextControl.cs: Lower magic number for wrap calculations. This
7592         lets text get closer to the right (far) edge.
7593
7594 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7595
7596         * Control.cs: Tweak 2.0 layout properties.
7597         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
7598         * TextRenderer.cs: Add a new overload.
7599         * ToolStrip*: Huge amount of changes and new features.
7600
7601 2006-11-30  Mike Kestner  <mkestner@novell.com>
7602
7603         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
7604         scroll range correct.  Fixes #79994.
7605
7606 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7607
7608         * MdiWindowManager.cs: Update main form's text when
7609         a form is closed. (fixes #80038)
7610         
7611 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
7612
7613         * ToolBar.cs:
7614         - Fix an regression in ButtonSize.
7615         - Get ImeMode default value change to "Disable".
7616         - Get ShowTooltips default value change to true, default value is 
7617         "false" but after make a test in .NET we get "true" result as default.
7618         
7619 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
7620
7621         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
7622
7623 2006-11-29  Chris Toshok  <toshok@ximian.com>
7624
7625         * XplatUIWin32.cs (GetWindowTransparency): check return value of
7626         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
7627         SetWindowTransparency hasn't been called.
7628
7629 2006-11-29  Chris Toshok  <toshok@ximian.com>
7630
7631         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
7632         if it's supported.
7633         (set_AllowTransparency): reorder things a little so that the
7634         WS_EX_LAYERED style is removed properly.
7635
7636 2006-11-29  Chris Toshok  <toshok@ximian.com>
7637
7638         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
7639         
7640         * Form.cs: only call the XplatUI transparency method (get/set) if
7641         SupportsTransparency says it's supported. Otherwise fallback to
7642         doing nothing (in the set case) or returning the instance field we
7643         cache (in the get case).
7644
7645         * XplatUIStructs.cs: add TransparencySupport flag enum.
7646         
7647         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
7648         change to SupportsTransparency.
7649
7650         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
7651         TransparencySupport.None from SupportsTransparency.
7652
7653         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
7654         TransparencySupport.Set from SupportsTransparency.
7655
7656         * XplatUIWin32.cs: implement GetWindowTransparency calling
7657         GetLayeredWindowAttributes, and implement SupportsTransparency by
7658         checking whether or not both
7659         GetWindowTransparency/SetWindowTransparency are available
7660         entrypoints.  We need to do this since SetWindowTransparency is
7661         available as of win2k, but GetWindowTransparency requires winxp.
7662         yay win32 api.
7663
7664         * XplatUI.cs: Add GetWindowTransparency, and change
7665         SupportsTransparency to allow for either/both Get/Set.
7666
7667 2006-11-29  Chris Toshok  <toshok@ximian.com>
7668
7669         * DataGrid.cs: keep from going into an infinite loop redrawing a
7670         datagrid that has no datasource.  Fixes bug #80033.
7671
7672 2006-11-29  Chris Toshok  <toshok@ximian.com>
7673
7674         * MenuItem.cs: fix the NRE when we assign text (and therefore call
7675         Invalidate) before the mainmenu has been assigned to a control.
7676
7677 2006-11-29  Chris Toshok  <toshok@ximian.com>
7678
7679         * DataGrid.cs: detect when we should be double the double click
7680         row/column autosize stuff, although that codepath has yet to be
7681         written.  part of the work for bug #79891.
7682
7683 2006-11-29  Chris Toshok  <toshok@ximian.com>
7684
7685         * Binding.cs (SetControl): fix unit test.
7686
7687 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7688
7689         * PageSetupDialog.cs: Validate the margins and set them in
7690         PageSettings. 
7691         * NumericTextBox.cs: New class to mimic the behavior of the
7692         textboxes used in the printing dialogs.
7693
7694 2006-11-29  Andreia Gaita  <avidigal@novell.com>
7695         
7696         * Form.cs: Revert previous change (remove call UpdateBounds
7697         from form constructor), because it messes with the handle creation
7698         order, and that one needs lots and lots of love.
7699         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
7700         for valid printer and throw InvalidPrinterException if document
7701         is set but printer not valid), adding a MonoTODO. Once 
7702         handle creation is done properly, we can put this back in.
7703
7704 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7705
7706         * MenuItem.cs: Create a invalidate method for menu item, to be
7707         calling from set text, it make text changes to imadiate update
7708         on screen. Fixes #80013. 
7709         
7710 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7711
7712         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
7713         fixes bug #80070 and some other problem on toolbar buttons
7714         layout.
7715
7716 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7717
7718         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
7719         with dotted brush.      Fixes #79564
7720         
7721 2006-11-28  Andreia Gaita  <avidigal@novell.com>
7722
7723         * Form.cs: Removed call to UpdateBounds on Form
7724         constructor, it was causing a call to CreateHandle
7725         before it was supposed to.
7726         * PrintControllerWithStatusDialog: Applied patch
7727         by Chris Toshok to hide controller when there are
7728         no printers available.
7729         PrintDialog.cs: initialize printer settings to 
7730         null - correct DefaultValues test #5
7731         * PrintPreviewControl.cs: Move PrintController
7732         initialization to GeneratePreview
7733         * PrintPreviewDialog.cs: 
7734         - Remove Preview generation     from Document_set(). It is 
7735         called on OnPaint
7736         - Throw InvalidPrinterException on CreateHandle if
7737         a Document is set but there are no printers or 
7738         printer is not valid.
7739         * ThemeWin32Classic: don't paint PrintPreviewControl
7740         if there is nothing to paint    
7741
7742 2006-11-28  Miguel de Icaza  <miguel@novell.com>
7743
7744         * Form.cs: Add another popular method.
7745
7746         * TabPage.cs: ditto.
7747
7748 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7749
7750         * MenuItem.cs: Fixed a warning.
7751         * InternalWindowManager: Fixed a warning.
7752
7753 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7754
7755         * MenuItem.cs:
7756         - When cloning a menu also clone MdiList and clone the 
7757           window menu items properly (as the forms and menuitems
7758           are kept in an internal hashtable, these need updating 
7759           as well)
7760         - Rewrote the window menu code, menu items are added in the
7761           order the forms were added to their parent, and they are
7762           updated every time the window menu is shown (before the
7763           list was only generated once, in the current order of the
7764           forms, and would never be updated). A checkmark is shown
7765           next to the item corresponding to the active mdi child.
7766
7767 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7768
7769         * XplatUIStructs.cs: 
7770         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
7771         
7772         * XplatUIWin32.cs: 
7773         - Added TME_NONCLIENT to TMEFlags.
7774         - Handles WM_NCMOUSEMOVE in GetMessage to 
7775           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
7776
7777         * MdiWindowManager:
7778         - Now merges mdi child menu to parent menu when maximized.
7779         - Recalculate NC areas of both mdi child and mdi parent. 
7780           Fixes #79757 (4).
7781           on window state and size changes.Fixes #79844 (3).
7782         - Handle WM_NCCALCSIZE to properly calculate borders.
7783
7784         * Form.cs:
7785         - Add/remove to the mdi containers list of mdi children 
7786           in the order they are added.
7787         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
7788           to the maximized mdi child.
7789         
7790         * InternalWindowManager.cs:
7791         - Only execute a click on the control buttons on the mouse up,
7792           not on the mouse down. Show the state of the button 
7793           (was only showing Normal state, never Pressed state). The
7794           pressed button now follows the mouse (if you click the Close 
7795           button and move the mouse over the Maximize button, the 
7796           Maximize button will be shown as pressed). Since Win32 does
7797           not generate WM_NCLBUTTONUP if you release the button outside
7798           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
7799           it as a mouse up.
7800         
7801         * ThemeWin32Classic.cs:
7802         - Draw a missing border around mdi child forms. Fixes #79844 (2).
7803
7804         * MdiClient.cs:
7805         - Added a list of forms which contains the order the forms are
7806           added to the mdi parent.
7807         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
7808         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
7809         - If the active form changes set the scrollbars to the top
7810           of the Z order, otherwise the form could hide them.
7811         - Scrollbars are now sized according to ClientSize, not 
7812           to Size, and they take into account the other scrollbar
7813           to determine maximum.
7814         
7815 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
7816         
7817         * XplatUI.cs:
7818         * XplatUIDriver.cs:
7819         * XplatUIX11.cs:
7820         * XplatUIWin32.cs:
7821         * XplatUIOSX.cs:
7822         - Added RequestAdditionalWM_NCMessages for windows to 
7823           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
7824           Currently only implemented in XplatUIWin32.
7825
7826 2006-11-27  Chris Toshok  <toshok@ximian.com>
7827
7828         * Hwnd.cs: only add the hwnd to the windows hash in
7829         set_WholeWindow and set_ClientWindow if whole_window/client_window
7830         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
7831
7832 2006-11-27  Mike Kestner  <mkestner@novell.com>
7833
7834         * ComboBox.cs: remove redundant OnDropDown call.  It is called
7835         from the ComboListBox.ShowWindow code. Fixes #79969.
7836
7837 2006-11-27  Chris Toshok  <toshok@ximian.com>
7838
7839         * Hwnd.cs: remove the setters for ExposePending and
7840         NCExposePending - noone uses them.
7841
7842 2006-11-27  Jackson Harper  <jackson@ximian.com>
7843
7844         * TextControl.cs: new param for ReplaceSelection which determines
7845         whether we select the new selection, or set the cursor to the end
7846         of the new selection.
7847         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
7848         pasting, select the new text.
7849         * RichTextBox.cs: Use new param for ReplaceSelection.
7850
7851 2006-11-27  Jackson Harper  <jackson@ximian.com>
7852
7853         * TextBoxBase.cs: Set the selection to the caret after the caret
7854         is moved, otherwise they get out of sync.
7855
7856 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7857
7858         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
7859         it fixes #80015
7860
7861 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7862
7863         * ThemeWin32Classic.cs: 
7864         - Fix toolbar drop down arrow position.
7865         - Fix drop down appearance when ToolBar.Appearance is normal,
7866         it fixes #80018.
7867         
7868 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
7869
7870         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
7871         * Control.cs: Same.
7872         * UpDownBase.cs: Same.
7873         * ButtonBase.cs: Same.
7874         * ScrollBar.cs: Same.
7875         * TrackBar.cs: Same.
7876         * PictureBox.cs: Same.
7877         * UserControl.cs: Same.
7878         * Label.cs: Same.
7879         * ListControl.cs: Same.
7880         * TextBoxBase.cs: Same.
7881         * ListView.cs: Same.
7882         * RichTextBox.cs: Same.
7883         * TreeView.cs: Same.
7884
7885 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
7886
7887         * PrintDialog.cs:
7888         - Text label for where 
7889         - Text label comment was not shown
7890
7891 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
7892
7893         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
7894
7895 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7896
7897         * InternalWindowManager.cs: 
7898         - Handle WM_PARENTNOTIFY to activate the form
7899         if any child control is clicked.
7900         - The form is only sizable if not minimized.
7901
7902         * MdiWindowManager.cs:
7903         - Save the IconicBounds if the form is moved.
7904         - Rework SetWindowState, now the window bounds 
7905         are stored only if the old window state is Normal.
7906         
7907         * MdiClient.cs:
7908         - In SetWindowStates store the old window state if 
7909         the window is maximized and restore window state if
7910         the window looses focus.
7911         - Don't handle any scrollbar value changes if 
7912         initializing the scroll bars. Fixes #79771.
7913         - Reworked ArrangeIconicWindows. Current algorithm
7914         tests bounds agains all other minimized windows, if
7915         any intersections create new bounds (going left to 
7916         right, bottom to top) and then test again. When 
7917         successful the bounds are saved and never computed
7918         again. Fixes #79774.
7919
7920 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7921
7922         * InternalWindowManager.cs: Added HandleTitleBarUp.
7923
7924 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7925
7926         * NumericUpDown.cs: In .NET 1.1, user entered text is still
7927         hexadecimal in ParseUserEdit.
7928
7929         
7930 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7931
7932         * MdiWindowManager.cs: 
7933         - Handle a click on the form's icon to show the 
7934         system menu (when maximized). Fixes #79775.
7935         - Change the existing click handler for the form's
7936         icon when not maximized to show on MouseUp.
7937         Fixes #79776.
7938
7939         * Form.cs: In OnResize only layout the mdi child's
7940         parent if it actually has a parent. Might not if
7941         the window is closing.
7942
7943
7944 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7945
7946         * MdiClient.cs: Ignore active MDI client for text of parent, if
7947         child has no text set.
7948
7949 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7950
7951         * ToolBar.cs: Fixed ToString to match MS.
7952
7953 2006-11-22  Andreia Gaita  <avidigal@novell.com>
7954
7955         * NumericUpDown: 
7956         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
7957         update inner values on set. Fixes #79966.
7958         - Override OnLostFocus to update value on NET 2. Fixes #79950.
7959         - Fix hexadecimal parsing.
7960         
7961         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
7962         parent. Fixes #79957
7963
7964 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7965
7966         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
7967         the actual size has to be queried, since if height /
7968         width is negative Win32 changes it to 0. 
7969         Fixes #79999 on Windows.
7970         
7971         * XplatUIX11.cs: Set height / width to 0 if negative
7972         in SetWindowPos. Fixes #79999 on Linux.
7973         
7974 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
7975
7976         * ThemeWin32Classic.cs: Fix text redenring when button is
7977         pressed.
7978
7979 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
7980
7981         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
7982         and later navigate by mouse. Fixes #79528.
7983
7984 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
7985
7986         * ToolBar.cs: Set default value for TabStop to false in
7987         constructor, it fixes remaining behavior of bug #79863.
7988
7989 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7990
7991         * MdiWindowManager.cs:
7992         * InternalWindowManager.cs:
7993         - Moved a few methods specific to Mdi from 
7994         InternalWindowManager to MdiWindowManager.
7995         Fixes #79996.
7996         
7997 2006-11-21  Chris Toshok  <toshok@ximian.com>
7998
7999         * XplatUIOSX.cs: stub out InvalidateNC.
8000
8001         * XplatUIWin32.cs: implement InvalidateNC using the call I found
8002         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
8003
8004         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
8005
8006         * XplatUIDriver.cs: add InvalidateNC abstract method.
8007
8008         * XplatUI.cs: add InvalidateNC.
8009
8010 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
8011
8012         * ToolBar.cs: Invalidate complete button area when pressed status 
8013         was changed.
8014         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
8015         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
8016         by 1 when button is pressed.
8017
8018 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8019
8020         * ToolButton.cs: Invalidate middle of DropDown button when
8021         ToolBar theres DropDownArrows.
8022         * ThemeWin32Classic.cs: Change position of DropDown arrow and
8023         fix DropDown drawing operations.
8024
8025 2006-11-20  Chris Toshok  <toshok@ximian.com>
8026
8027         * NativeWindow.cs: fix the formatting of functions ('{' on the
8028         following line), and enable the thread exception dialog.
8029
8030         * Application.cs: remove the duplicate exception catching from
8031         here.
8032
8033 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8034
8035         * Toolbar.cs: Triggers button click event when click on icon
8036         of dropdown ToolBarButton. Fixes #79912.
8037         
8038 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8039
8040         * Theme.cs:
8041         * ThemeWin32Classic.cs:
8042         - Added a property WindowBorderFont to enable themeing
8043           of mdi child windows' Text.
8044           
8045 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8046
8047         * InternalWindowManager.cs:
8048         * Form.cs:
8049         * MdiClient.cs:
8050         * MdiWindowManager.cs: 
8051         - If mdi child is maximized, set mdi parent's
8052           text to "Parent - [Child]". Fixes #79770.
8053         - If there is any maximized mdi child windows, only the active 
8054           window (and any new windows) is maximized, the rest are normal.
8055         - On a WindowState change only save mdi child's window bounds 
8056           if the old window state was normal. Fixes #79774.
8057         - The scroll bars are now calculated on hopefully all
8058           necessary events. Fixed #79771 / #79844->6 / #79906.
8059         - MdiClient.SizeScrollBars() now takes into account docked 
8060           controls in the parent when calculating available space.
8061         - InternalWindowManager now always repaints the entire title
8062           area. Fixes #79844->1/4/5.
8063         - Added RequestNCRecalc on mdi child windowstate changes.
8064           Fixes #79772.
8065
8066 2006-11-20  Mike Kestner  <mkestner@novell.com>
8067
8068         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
8069         in the MouseUp handler of the listbox and move the return handling
8070         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
8071
8072 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8073
8074         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
8075
8076 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8077
8078         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
8079           working in 1.2.x anymore. So, updated.
8080
8081 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
8082
8083         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
8084         NumberGroupSeparator of current culture instead of assuming en-US.
8085         Fixed bug #79967.
8086
8087 2006-11-17  Mike Kestner  <mkestner@novell.com>
8088
8089         * Control.cs: Add the concept of implicit bounds setting so that
8090         dock/undock round trips preserve explicitly set size/locations.
8091         Fixes #79313.
8092
8093 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8094
8095         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
8096           can't handle those filters. (Fixes bug #79961)
8097
8098 2006-11-17  Chris Toshok  <toshok@ximian.com>
8099
8100         [ fixes the exit/crashes associated with #79835.  it's clearly
8101         suboptimal though, we need to figure out a better way to solve
8102         this. ]
8103         
8104         * PrintPreviewControl.cs: deal with the new invalid printer
8105         exceptions.
8106
8107         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
8108         and return false (so CommonDialog.ShowDialog doesn't actually show
8109         the form.)
8110
8111         * PrintDialog.cs: enable/disable the Ok button depending on
8112         whether or not the printer is valid.
8113
8114         * CommonDialog.cs (ShowDialog): only actually show the form if
8115         RunDialog returns true.
8116
8117 2006-11-17  Jackson Harper  <jackson@ximian.com>
8118
8119         * TextControl.cs: When soft splitting a line, mark it as a soft
8120         split line. Also carry over the current line break to the next
8121         line.
8122
8123 2006-11-17  Chris Toshok  <toshok@ximian.com>
8124
8125         * XplatUIX11.cs: when scrolling a window with an invalid area, we
8126         only want to shift the part of the invalid area that overlaps the
8127         area we're scrolling.  we also don't want to clear the invalid
8128         area unless the invalid area was entirely contained within the
8129         scrolling area.
8130
8131 2006-11-16  Chris Toshok  <toshok@ximian.com>
8132
8133         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
8134         also make sure to free the memory returned by XGetWindowProperty
8135         in GetText().
8136
8137         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
8138
8139 2006-11-16  Chris Toshok  <toshok@ximian.com>
8140
8141         * XplatUI.cs: add a new super secret way to get at the totally
8142         unsupported X11 backend.
8143
8144 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
8145
8146         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
8147
8148 2006-11-16  Jackson Harper  <jackson@ximian.com>
8149
8150         * TreeView.cs: Allow more explicit setting of top node position
8151         for scrollbars. Slower algo, but more accurate.
8152         - CollapseAll should maintain the current top node.
8153         * TextBoxBase.cs: When positioning the caret, use the line, pos
8154         method, since the x, y method does not grab the correct tag, and
8155         the caret height never gets set correctly. (Maybe I should just do
8156         away with the caret having its own height, and always use the
8157         carets current tag for height).
8158
8159 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
8160
8161         [Fixes 79778, 79923]
8162
8163         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
8164         Parent to the FosterParent instead.
8165
8166 2006-11-16  Jackson Harper  <jackson@ximian.com>
8167
8168         * TreeView.cs: Need to recalc the topnode when we expand or
8169         collapse. The scrolling methods can't handle this on their own,
8170         since they use differences between the last scroll position, and
8171         those difference get completely messed up since we are expanding
8172         nodes.  This problem should probably be fixed in the scrolling
8173         methods, so they can figure out exactly where they are, but this
8174         will slow things down a little.
8175         * ThemeWin32Classic.cs: Special case for groupboxes with empty
8176         strings, makes nunit-gui look a lot nicer.
8177
8178 2006-11-16  Chris Toshok  <toshok@ximian.com>
8179
8180         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
8181         the broken multithreaded event handling we have in here.  File
8182         this entry under "Why we should move to the new X11 backend".
8183
8184         Any thread can make it into UpdateMessageQueue, which gets events
8185         from the X socket - some of which could belong to hwnds being
8186         managed by a different thread.  We can also have multiple threads
8187         in UpdateMessageQueue at the same time, with each one reading from
8188         the X socket.  This leads to many problems, with the following
8189         solutions:
8190
8191         We can't use hwnd.Queue.Enqueue anywhere in here and must use
8192         EnqueueLocked.
8193
8194         The MotionNotify compression we do can't work across threads
8195         (without locking the entire queue, perhaps) since we call
8196         hwnd.Queue.Peek, so we just punt and don't compress motion events
8197         unless the owning thread is the one which got the X event.
8198
8199         ConfigureNotify is another fun one, since it modifies the hwnd's
8200         bounds and then enqueues the event.  We add a lock to Hwnd which
8201         is held when setting configure_pending to true (and enqueuing the
8202         event).
8203
8204         There is a race wrt the wake socket.  we need to make sure that
8205         only 1 thread is waiting on that socket, or else a thread could
8206         sleep waiting for data that never comes.  It's difficult (but not
8207         impossible) to make happen, because it seems to require something
8208         like the following:
8209
8210             1. Thread 1 polls on wake_receive
8211         
8212             2. poll returns saying there's data to be read on
8213                wake_receive.
8214         
8215             3. Thread 2 polls on wake_receive and immediately returns
8216                saying there's data to be read.
8217
8218             4. Thread 2 reads the wakeup byte from wake_receive
8219
8220             5. Thread 1 attempts to read the wakeup byte from
8221                wake_receive.
8222
8223             6. Thread 2 exits (due to a form closing, perhaps).
8224
8225             7. Thread 1 blocks forever.
8226         
8227         Fun, eh?
8228
8229         Fixing the Expose handling isn't done yet, and the races inherent
8230         in that piece of code are responsible for the drawing mistakes you
8231         see when generating expose events in a MT app (like NPlot).  This
8232         one is the likely to be the hardest to bandaid, and it doesn't
8233         appear to cause anything but drawing problems.  The other issues
8234         caused apps to exit or hang.
8235
8236         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
8237         called from a different thread than the one that should be calling
8238         these functions.
8239
8240         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
8241
8242 2006-11-15  Chris Toshok  <toshok@ximian.com>
8243
8244         * Application.cs: null out the context's MainForm when we exit
8245         RunLoop.  Fixes a newly checked in unit test as well as the last
8246         ODE from bug #79933.
8247
8248 2006-11-15  Chris Toshok  <toshok@ximian.com>
8249
8250         * Form.cs (set_Owner): allow a null value so we can clear the
8251         form's owner.
8252         (Dispose): set all our owned_form's Owner properties to null, and
8253         clear the owned_forms collection.
8254         (WM_CLOSE): clean up this a little bit.. still not right though.
8255
8256         * ApplicationContext.cs: OnMainFormClosed should only call
8257         ExitThreadCore if the main form isn't recreating.  Fixes unit
8258         test.
8259
8260 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8261
8262         [Fixes 78346]
8263
8264         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
8265
8266 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8267
8268         [Fixes 79433]
8269
8270         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
8271         keep popup window types from stealing focus from the main form
8272         on Windows.
8273
8274         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
8275
8276         * MenuAPI.cs: Set above flag to true.
8277
8278 2006-11-15  Chris Toshok  <toshok@ximian.com>
8279
8280         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
8281         the button being released is not in wParam.
8282
8283 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8284
8285         * Form.cs: Add the released button to MouseEventArgs.Button
8286         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
8287         on Win32.
8288
8289 2006-11-15  Chris Toshok  <toshok@ximian.com>
8290
8291         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
8292         GetText().  untested because it's unused in our implementation.
8293         Control.Text always caches the text, even if
8294         ControlStyles.CacheText is not set.
8295
8296         fixes bug #79939.
8297
8298 2006-11-15  Chris Toshok  <toshok@ximian.com>
8299
8300         [ fixes #79933 ]
8301         
8302         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
8303         message.  no hiding, no disposing.
8304
8305         in the WM_CLOSE handler, hide the form if it's modal.
8306
8307 2006-11-15  Chris Toshok  <toshok@ximian.com>
8308
8309         * XplatUIX11.cs: use AddExpose instead of sending a message.
8310         fixes textbox border drawing.
8311
8312 2006-11-15  Chris Toshok  <toshok@ximian.com>
8313
8314         * PropertyGridView.cs: keep from crashing on mouse move/down when
8315         the property grid is empty.
8316
8317 2006-11-14  Jackson Harper  <jackson@ximian.com>
8318
8319         * TextControl.cs: Make PageUp and PageDown more like the MS
8320         versions.
8321         * TextBoxBase.cs: When we set the text property position the
8322         cursor at the beginning of the document.
8323
8324 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8325
8326         * Form.cs: if a mdi child's WindowState has changed
8327         before it's creation, it would display wrong control
8328         buttons.
8329         
8330 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
8331
8332         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
8333           (Fixes bug #79927)
8334
8335 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8336
8337         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
8338         the window gets to paint its borders even if the window is
8339         getting smaller.
8340         
8341         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
8342         otherwise the old control buttons would still be painted 
8343         if the window gets bigger.
8344         
8345         * PaintEventArgs.cs: add an internal method so that the clip 
8346         rectangle can be changed.
8347         
8348 2006-11-13  Chris Toshok  <toshok@ximian.com>
8349
8350         [ fixes bug #79745 ]
8351         
8352         * NotifyIcon.cs: lots of cleanup.
8353
8354         * X11Structs.cs: add an enum for XEMBED messages.
8355
8356         * XplatUIX11.cs: reindent one of the giant switch statements, it
8357         was taking up an additional tab stop, and this file is already way
8358         too wide for my laptop's screen.
8359
8360         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
8361         we get it, resize the hwnd to the WMNormalHints max_width/height.
8362
8363 2006-11-13  Jackson Harper  <jackson@ximian.com>
8364
8365         * TextBoxBase.cs: Compute the value changes for the mouse wheel
8366         teh simple way.
8367
8368 2006-11-13  Chris Toshok  <toshok@ximian.com>
8369
8370         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
8371         #79898.  force a reference to the Region to stick around so the
8372         unmanaged object isn't collected (rendering our handle in the MSG
8373         stale).
8374
8375 2006-11-13  Chris Toshok  <toshok@ximian.com>
8376
8377         * XplatUIX11.cs: fix #79917 for window managers which support
8378
8379         using XStoreName on the raw utf8, and we need to convert to
8380         COMPOUND_TEXT if it's non-latin1.
8381
8382 2006-11-13  Chris Toshok  <toshok@ximian.com>
8383
8384         * Form.cs (set_DialogResult): we need to set closing to false if
8385         we're setting our result to None.  fixes bug #79908.
8386
8387 2006-11-13  Jackson Harper  <jackson@ximian.com>
8388
8389         * TextControl.cs: When formatting text, compute the adjusted tag
8390         lengths correctly, using FindTag for the end tag instead of trying
8391         to figure it out outselves.
8392         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
8393         the item, ItemHeight doesn't work, because trees with large
8394         imagelists use those for their height
8395         * TreeView.cs: ActualItemHeight factors in the image height
8396         - compute left edge of checkboxes correctly
8397         - when expanding/collapsing move the bottom down one pixel, so we
8398         aren't moving part of the node
8399
8400 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8401
8402         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
8403         stack in PaintEventStart so that it won't get disposed by the gc
8404         before reaching PaintEventEnd.
8405
8406 2006-11-13  Jackson Harper  <jackson@ximian.com>
8407
8408         * TextBoxBase.cs: Don't select the word if we are on a line with
8409         no text.
8410         - We don't need to position the caret on mouse up, since the mouse
8411         move handler should be doing this
8412         - When double clicking a blank line, the caret is advanced to the
8413         next line.
8414
8415 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
8416
8417         * TreeNodeCollection.cs: Avoid duplicating indexer code.
8418
8419 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
8420
8421         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
8422         Fixes part of bug #79910.
8423
8424 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
8425
8426         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
8427           (bug #79903). Some minor string updates to match ms.
8428
8429 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8430
8431         * FileDialog.cs: Don't add an extension if the filename
8432           already ends with that extension.
8433
8434 2006-11-10  Jackson Harper  <jackson@ximian.com>
8435
8436         * TreeView.cs: Use the currently highlighted node for the
8437         BeforeSelect event.
8438         * TextBoxBase.cs: There is no need to expand selection on
8439         MouseMove.
8440         - CanUndo means 'is there any undo operations', not 'is undo
8441         allowed on this textcontrol. Fixed ClearUndo unit test.
8442
8443 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
8444
8445         * Button.cs: only perform click when button is Selectable (so as 
8446         not to activate default buttons when they're disabled)
8447         
8448         * Control.cs: Rewrite of the SelectNextControl and related 
8449         methods. HandleClick now selects next control if the current one
8450         is being disabled.
8451         
8452         * Form.cs: OnActivated selects next active control only if Load 
8453         has already occurred. If Load hasn't run, there's no point in 
8454         selecting here, Load might change the state of controls.
8455         
8456         * FocusTest.cs: Tests marked as working again for these fixes
8457
8458 2006-11-10  Chris Toshok  <toshok@ximian.com>
8459
8460         * XplatUIX11.cs: a couple of fixes.
8461
8462         - use XInternAtoms with almost all the atoms we need to register,
8463         instead of many, many calls to XInternAtom.  should help a bit on
8464         startup time, at the expense of making the code look a little
8465         worse.
8466
8467         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
8468         isn't reparented (which seems to be a clue that we're running fon
8469         compiz) and they have an Owner form.  This fixes the tool windows
8470         in paint.net when running under compiz.
8471
8472         - when setting the opacity of a window, support both the case
8473         where the window has been reparented and also when it hasn't been.
8474         Since compiz/beryl doesn't seem to reparent windows, and these are
8475         the only window managers which support translucency, I'm not sure
8476         why we need the hwnd.reparented case at all.. but leave it in.
8477         now we get translucent windows in paint.net under compiz/beryl.
8478
8479 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8480
8481         * FileDialog.cs: Always return the value for FilterIndex that
8482           was set. Internally convert it to values that make sense.
8483
8484 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8485         
8486         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
8487
8488 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8489
8490         * Toolbar.cs: Change default value of DropDownArrows to true, the 
8491         signature still using false to make it compatible with MS but the 
8492         initial value is true. Fixes #79855.
8493
8494 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8495
8496         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
8497           only available on Linux.
8498
8499 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
8500
8501         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
8502         reduce number of calls to redraw method during toolbar creation.
8503
8504 2006-11-09  Mike Kestner  <mkestner@novell.com>
8505
8506         * ListView.cs : raise SelectedIndexChanged when an item is selected
8507         programmatically via the Item.Selected property.  Gert's nice 
8508         ListViewSelectedIndexChanged test fixture now runs clean.
8509
8510 2006-11-09  Mike Kestner  <mkestner@novell.com>
8511
8512         * ListView.cs : raise SelectedIndexChanged when a selected item is
8513         removed from the item collection using Remove or RemoveAt.
8514
8515 2006-11-09  Mike Kestner  <mkestner@novell.com>
8516
8517         * ListView.cs : raise SelectedIndexChanged once per selected item
8518         for compat with MS.  Fixes #79849+.
8519
8520 2006-11-09  Chris Toshok  <toshok@ximian.com>
8521
8522         * TabControl.cs: initialize row_count to 0, and set it to 1 when
8523         we need to (if we have any tab pages).  Fixes unit test.
8524
8525 2006-11-09  Chris Toshok  <toshok@ximian.com>
8526
8527         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
8528         width is 0, not 3.  Fixes a unit test.
8529
8530 2006-11-09  Mike Kestner  <mkestner@novell.com>
8531
8532         * ListView.cs : use Implicit scrollbars so that focus isn't 
8533         stolen from the listview when they are clicked. Fixes #79850.
8534
8535 2006-11-09  Chris Toshok  <toshok@ximian.com>
8536
8537         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
8538         have a root item.  Fixes #79879.
8539
8540 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
8541
8542         * FileDialog.cs:
8543           - Fix ToString ()
8544           - An ArgumentException is now thrown if a wrong filter
8545             is applied (matches ms). The previous filter doesn't change
8546             anymore if an exception is thrown.
8547           - Changing the FileName property also affects FileNames
8548         * ColorDialog.cs: The length of the CustomColors array is always
8549           16. It doesn't matter if we use a smaller array or null to update
8550           or change the custom colors property.
8551         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
8552           for RootFolder if we get a undefined value.
8553
8554 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8555
8556         * StatusBarPanel.cs: 
8557         - Width is set to MinWidth if Width is smaller than
8558         MinWidth. Fixes #79842.
8559         - MinWidth now always overrides Width (MSDN says MinWidth
8560         is set to Width when AutoSize = None, but they do not 
8561         behave like that).
8562         - Style has now the the correct default value.
8563         
8564 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8565  
8566         * TrackBar.cs: 
8567         - The control is completely invalidated on 
8568         Got/LostFocus to draw the focus rectangle correctly.
8569         - When AutoSize then height is always 45 (width for 
8570         vertical controls).
8571         
8572         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
8573         on the mouse when moved and it doesn't move when grabbed
8574         until the mouse moves as well. Also fixed some wrong 
8575         calculations when clicking on the thumb (control thought
8576         click was outside of thumb and didn't grab it).
8577         Fixes some of the issues in #79718.
8578
8579 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
8580
8581         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
8582
8583 2006-11-08  Chris Toshok  <toshok@ximian.com>
8584
8585         * PropertyGridView.cs: only call ToggleValue if the item is not
8586         readonly.
8587
8588 2006-11-08  Jackson Harper  <jackson@ximian.com>
8589
8590         * TextBoxBase.cs: The RichTextBox and textbox have very different
8591         word selection methods.  Implement the textbox's simple word
8592         selection here, and let the RichTextBox override and provide it's
8593         own.
8594         - Don't do extra selection on mouseup
8595         * RichTextBox.cs: Use the documents word selection algorithm, I
8596         think ideally, this function will be pulled into the
8597         RichTextBox.cs code someday.
8598
8599 2006-11-08  Chris Toshok  <toshok@ximian.com>
8600
8601         * RootGridEntry.cs: new class to represent GridItemType.Root.
8602
8603         * CategoryGridEntry.cs: reformat, and add boilerplate.
8604         
8605         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
8606         returns the UI parent anyway, and we need special handling to
8607         implement the GetTarget method in the face of it.  Also, implement
8608         Select().
8609
8610         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
8611         a root grid item, and use that instead of PropertyGrid.grid_items.
8612         Also, make use of TypeConverters (and add limitted support for
8613         ICustomTypeDescriptors) when initially populating the grid.
8614         Arrays now show up more or less properly.
8615
8616 2006-11-08  Chris Toshok  <toshok@ximian.com>
8617
8618         * Application.cs: set the modal dialog to non modal after we close
8619         it.  Fixes bug #79866.
8620
8621 2006-11-08  Jackson Harper  <jackson@ximian.com>
8622
8623         * TextControl.cs: When combining lines carry over the line end
8624         style from the end line.
8625         - Invalidate the selected area when setting it, if it is visible.
8626         * TextBoxBase.cs: Only rich text box can do full line selects.
8627         - Make sure to set the cursor position when there is a click,
8628         otherwise two clicks in separate areas could cause a large chunk
8629         to be selected.
8630
8631 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8632
8633         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
8634         Fixes #79863.
8635
8636 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8637
8638         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
8639         time. Remove tooltips when ToolButton click events.  Fixes #79856.
8640
8641 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8642
8643         * MenuAPI.cs: Ignore right click for menu actions and fixes
8644         menu border when clicked.  Fixes #79846.
8645
8646 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8647
8648         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
8649         MouseState after create wParam for message, this fixes mouse button 
8650         equal none in mouse up events.
8651         
8652 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
8653
8654         * Control.cs : Focus() now calls Select to set the Container's
8655         Active Control and to give it focus. To avoid infinite recursion
8656         (because ActiveControl also calls Focus at one point), a check 
8657         is made in Focus with the help of a new internal variable
8658         is_focusing.
8659
8660 2006-11-07  Mike Kestner  <mkestner@novell.com>
8661
8662         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
8663         if there's a selection.  Fixes #79849.
8664
8665 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
8666
8667         * PropertyGrid.cs: Avoid fixed height of help description label.
8668         Fixes part of bug #79829.
8669
8670 2006-11-07  Chris Toshok  <toshok@ximian.com>
8671
8672         * XplatUIX11.cs: fix #79790 again, by using the
8673         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
8674
8675 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8676
8677         * ToolBar.cs: Fix left click checking.
8678
8679 2006-11-07  Chris Toshok  <toshok@ximian.com>
8680
8681         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
8682
8683 2006-11-07  Chris Toshok  <toshok@ximian.com>
8684
8685         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
8686         PropertyManager unit tests.
8687
8688         * PropertyManager.cs: make property_name internal.
8689
8690 2006-11-07  Chris Toshok  <toshok@ximian.com>
8691
8692         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
8693         pass a unit test.  Also, don't set image_index to anything in
8694         response to setting the ImageList property.
8695
8696 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8697
8698         * ToolBar.cs: Ignore click events when mouse button is not a
8699         left button, only accepts other button for dropdown menus.  
8700         Fixes #79854.
8701
8702 2006-11-07  Chris Toshok  <toshok@ximian.com>
8703
8704         * DataGrid.cs: make the back and parent row buttons a little less
8705         ugly.
8706
8707 2006-11-07  Jackson Harper  <jackson@ximian.com>
8708
8709         * TextBoxBase.cs: When converting to Text don't put line breaks in
8710         for soft line breaks.
8711         * TextControl.cs: There is an initial "fake" line in the document,
8712         this is now a soft break line, so that an extra line feed doesn't
8713         get added to the end of documents.
8714
8715 2006-11-07  Chris Toshok  <toshok@ximian.com>
8716
8717         [ fix bug #79778 ]
8718         
8719         * CurrencyManager.cs: if the list is readonly, don't bother
8720         checking if IBindingList.AllowNew is true.
8721
8722         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
8723         for non-DataRowView datasources..  or rather, make it not crash.
8724         (DataGridPaintRelationRow): make sure we limit the row painting to
8725         the area not covered by the row header, and make our cell width at
8726         least large enough to cover the relation area.  This allows grids
8727         that have relations but no rows to render correctly.
8728         (DataGridPaintRowContents): same type of changes here.
8729         (SetDataSource): move back to always calling
8730         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
8731         navigating back through relations.
8732         (HitTest): handle the case where we have no cells but have
8733         relations.  Right now we generate a hit in cell 0 of whatever the
8734         row is, not sure if this is strictly correct, but it works for our
8735         purposes.
8736         
8737         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
8738         bother doing anything.
8739
8740 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
8741
8742         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
8743         early version of StatusStrip.  Not responsible for eaten
8744         application or firstborn children.
8745
8746 2006-11-06  Chris Toshok  <toshok@ximian.com>
8747
8748         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
8749         call GetTabRect with a -1 index.  Fixes #79847.
8750
8751 2006-11-06  Jackson Harper  <jackson@ximian.com>
8752
8753         * TreeNodeCollection.cs: Update scrollbars after clearing.
8754
8755 2006-11-06  Chris Toshok  <toshok@ximian.com>
8756
8757         * NumericUpDown.cs: fix the ToString method for some unit test
8758         love.
8759
8760 2006-11-06  Chris Toshok  <toshok@ximian.com>
8761
8762         * PropertyGrid.cs:
8763         - set the initial SelectedGridItem if we can.
8764
8765         - Exclude non-mergable properties only if we're merging > 1
8766         object.  Merging 1 object isn't really merging, obviously.
8767
8768         - Handle PropertySort.NoSort just like Alphabetical, which is
8769         wrong of course, but at least gets things on the screen.
8770         
8771         * PropertyGridView.cs:
8772         - Add method "FindFirstItem" which finds the first property grid
8773         item, so we can select it by default.
8774
8775         - make use of GridEntry.CanResetValue.
8776
8777         - Don't call RedrawBelowItemOnExpansion here anymore, the
8778         individual GridEntry's will do that.
8779
8780         - Remove the ITypeDescriptorContextImpl internal class.
8781         
8782         * GridEntry.cs:
8783         - this class needs to implement ITypeDescriptorContext, as it's
8784         what MS's PropertyDescriptorGridEntry does, which means we can
8785         remove the ITypeDescriptorContextImpl internal class from
8786         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
8787
8788         - keep a reference to our PropertyGridView, and move the call to
8789         RedrawBelowItemOnExpansion here from PGV.  This means
8790         programmaticly setting Expanded actually does something visible.
8791
8792         - add a CanResetValue() function which takes into account our
8793         possibly multiple "selected_objects" in the merged case.  Shifting
8794         PropertyGridView to use this method fixes another unreported
8795         crasher found running the test for #79829.
8796
8797         - when Top or Bounds is updated, make sure the PropertyGridTextBox
8798         is updated to reflect this.
8799
8800         * CategoryGridEntry.cs: the ctor takes the PGV now.
8801         
8802 2006-11-06  Jackson Harper  <jackson@ximian.com>
8803
8804         * TextControl.cs: These are 1 based.
8805         * TextBoxBase.cs: When setting the selected text, don't change the
8806         selected text tags, this is done by ReplaceText, just position the
8807         cursor at the end of the new text.
8808
8809 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8810
8811         * ListView.cs: Allow label edit only when, when LabelEdit is
8812           set to true.
8813
8814 2006-11-06  Jackson Harper  <jackson@ximian.com>
8815
8816         * TextControl.cs: If a suitable wrapping position isn't found,
8817         just wrap right in the middle of a word.
8818
8819 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8820
8821         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
8822           bug #79820.
8823
8824 2006-11-06  Jackson Harper  <jackson@ximian.com>
8825
8826         * TreeView.cs: Can't use the VisibleCount property when setting
8827         scrollbar heights, because this doesn't take into account whether
8828         or not the horz scrollbar just came visible.
8829
8830 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
8831
8832         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
8833         activated.  Fixes #79369, #79832.
8834
8835 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
8836
8837         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
8838           had to remove support for links that point to a directory. FileInfo
8839           returns no usefull information (means, the directory they point to)
8840           for such links. Replaced some empty string ("") with String.Empty.
8841
8842 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8843
8844         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
8845         NullReferenceException when attempting to remove node that is not in
8846         collection. Throw NullReferenceException when null is passed to 
8847         Remove. Allow first element of the collection to be removed. Fixes
8848         bug #79831.  In GetEnumerator ().Current return null if positioned 
8849         before the first element of the collection. In GetEnumerator ().Reset,
8850         position before first element of the collection.
8851
8852 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8853
8854         * PropertyGrid.cs: To match MS, remove default title and description
8855         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
8856         buttons.
8857
8858 2006-11-04  Chris Toshok  <toshok@ximian.com>
8859
8860         * Theme.cs: add a Clamp method, just for kicks.
8861
8862         * ThemeWin32Classic.cs: clamp all color components to [0..255].
8863
8864 2006-11-04  Chris Toshok  <toshok@ximian.com>
8865
8866         * Form.cs: if the form isn't visible, Close() does nothing.
8867
8868 2006-11-03  Chris Toshok  <toshok@ximian.com>
8869
8870         * Form.cs (Close): if the form is modal, don't Dispose of it, only
8871         Hide it.
8872         (WndProc): don't Dispose after handling the WM_CLOSE message.
8873
8874         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
8875         them as such, instead of using casts from Control to Form.  Also,
8876         don't Dispose of the modal dialog when we fall out of the loop -
8877         Close() it instead.
8878
8879         fixes bug #79813.
8880
8881 2006-11-03  Chris Toshok  <toshok@ximian.com>
8882
8883         * Control.cs (Dispose): only go through the dispose thing if we're
8884         @disposing, and we haven't already been disposed.  Fixes bug
8885         #79814.
8886
8887         * Form.cs: no reason to call "base.Dispose()" here instead of
8888         "Dispose()".
8889
8890 2006-11-03  Mike Kestner  <mkestner@novell.com>
8891
8892         * ComboBox.cs : use ToString instead of casts in AddItem for
8893         sorting functionality.  Fixes #79812.
8894
8895 2006-11-03  Chris Toshok  <toshok@ximian.com>
8896
8897         * Application.cs: pave the way for actually using the thread
8898         exception dialog.  it's ifdefed out at the moment.
8899
8900 2006-11-03  Chris Toshok  <toshok@ximian.com>
8901
8902         * ThreadExceptionDialog.cs: until we get a better layout, actually
8903         hide the details textbox and label when we shouldn't see them.
8904
8905 2006-11-03  Jackson Harper  <jackson@ximian.com>
8906
8907         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
8908         multiline textboxes anymore.  This method also determines the
8909         width/height of a textboxes canvas area.
8910         - Sorta a revert of the last patch.  For multiline just position
8911         the controls, then bail.  This way the scrollbar width won't be
8912         altered.
8913
8914 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
8915
8916         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
8917         it dont need.  Fixes #79537.
8918
8919 2006-11-02  Jackson Harper  <jackson@ximian.com>
8920
8921         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
8922         send the status after firing the DndOver event.
8923
8924 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8925
8926         * TrackBar.cs: Now orientation only switches height / width if
8927         the control's handle is created (Win32 does it like this). Also 
8928         fixed a typo in ToString() for a test to pass, changed the 
8929         exception thrown in set_LargeChange and set_SmallChange to 
8930         match Win32 behaviour, and added TrackBar tests to the unit 
8931         tests.
8932
8933 2006-11-02  Chris Toshok  <toshok@ximian.com>
8934
8935         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
8936         not _NET_WM_STATE_NO_TASKBAR.
8937
8938 2006-11-02  Jackson Harper  <jackson@ximian.com>
8939
8940         * TextControl.cs: Increment count by one, since in the update view
8941         count - 1 is used.
8942
8943 2006-11-02  Jackson Harper  <jackson@ximian.com>
8944
8945         * TextBoxBase.cs: Use client rectangle not bounds for checking if
8946         the mouse is in the client rectangle (duh).
8947
8948 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8949         
8950         * TrackBar.cs: Fixed trackbar jumping around when clicking
8951         on it - the trackbar was not detecting correctly at which
8952         side of the thumb the click was done. (fixes #79718)
8953
8954 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
8955
8956         * ListBox.cs: scroll visible area when change SelectedIndex to
8957         a non visible area.  Fixes #79481.
8958
8959 2006-11-01  Jackson Harper  <jackson@ximian.com>
8960
8961         * TextControl.cs: When replacing the selection move the selection
8962         start/end/anchor to the end of the new text.
8963
8964 2006-11-01  Jackson Harper  <jackson@ximian.com>
8965
8966         * XplatUIWin32.cs: When setting the parent change the controls
8967         visibility to it's visibility flag, not to it's old parents
8968         visibility (.Visible walks the parent chain).
8969
8970 2006-11-01  Chris Toshok  <toshok@ximian.com>
8971
8972         * XplatUIX11.cs: revert the #79790 fix, as the simple.
8973         XSetTransientForHint fix breaks paint .net's tool windows.  more
8974         work needed for that one.
8975
8976 2006-11-01  Chris Toshok  <toshok@ximian.com>
8977
8978         * ScrollBar.cs: throw ArgumentException instead of Exception in
8979         LargeChange/SmallChange setters.  fixes unit tests.
8980
8981 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
8982
8983         * ContainerControl.cs: reverted rev.67183 (which was itself
8984         a reversion of rev.66853... eh).
8985         
8986         * Control.cs: Fixes Reflector hang by changing Focus() call
8987         to what it was before rev.66643 (calling Select() here sets 
8988         ActiveControl, which in some situations calls back Focus and 
8989         eventually does a stack overflow). Temp fix.    
8990         Changes to GetNextControl() to not look for children to select when
8991         parent cannot be selectable (so it looks for siblings instead)  
8992         
8993 2006-10-31  Mike Kestner  <mkestner@novell.com>
8994
8995         * CheckedListBox.cs : off by one error in returned index from
8996         ObjectCollection.Add.  Fixes #79758.
8997
8998 2006-10-31  Chris Toshok  <toshok@ximian.com>
8999
9000         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
9001         calls for the textbox/spinner, to keep from recursing to the point
9002         where we crash.  Fixes #79760.
9003
9004 2006-10-31  Chris Toshok  <toshok@ximian.com>
9005
9006         * ListControl.cs (set_SelectedValue): don't throw exceptions on
9007         null/"" value, just return.  matches ms's behavior and fixes some
9008         failing tests.
9009
9010 2006-10-31  Chris Toshok  <toshok@ximian.com>
9011
9012         * Control.cs (set_Capture): make a logic a little easier to
9013         follow.
9014
9015         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
9016         if it's being destroyed.  A necessary fix surely, but a bandaid
9017         also, to fix the stuck capture problem in bug #78413.
9018
9019 2006-10-31  Chris Toshok  <toshok@ximian.com>
9020
9021         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
9022         convention of clearing hwnd.ClientRect when we set the
9023         width/height (so it'll be recalculated by Hwnd).
9024
9025 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
9026
9027         * ContainerControl.cs: reversed Contains check from
9028         ActiveControl due to hanging problems. This fix
9029         partly regresses #79667 (button does not have
9030         initial focus), so this might be a symptom for 
9031         a larger parenting problem (set_ActiveControl
9032         is being called but the child control does
9033         not have the parent set yet?)   
9034         
9035 2006-10-31  Mike Kestner  <mkestner@novell.com>
9036
9037         * MenuAPI.cs : fix keynav when menu is click activated.
9038
9039 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
9040
9041         * ToolStrip*: Version 0.2.
9042
9043         * MenuStrip.cs: Version 0.1.
9044
9045         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
9046
9047 2006-10-30  Chris Toshok  <toshok@ximian.com>
9048
9049         [ fixes the oversized notify icon issue in bug #79745 ]
9050         
9051         * NotifyIcon.cs: scale the icon down to the size we're given by
9052         the XplatUI layer (this would be faster if we did it once instead
9053         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
9054         since it's never invoked.
9055
9056         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
9057         pixels high by default, so let's hardcode our systray icon to that
9058         size.  The SYSTEM_TRAY protocol should really have a way for
9059         client apps to query for the correct icon size.. but oh well.  A
9060         couple of patches to deal with the screwy client_window ==
9061         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
9062         instance, and also make sure we don't XSelectInput twice).
9063
9064 2006-10-30  Chris Toshok  <toshok@ximian.com>
9065
9066         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
9067         recreating forms.  Control recreation is the bane of my existence.
9068         Fix it in a way that keeps everyone happy.
9069
9070 2006-10-30  Chris Toshok  <toshok@ximian.com>
9071
9072         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
9073         just non-CHILD ones.  otherwise sometimes scrollbars end up with
9074         client_windows not being resized to the proper size (ReportBuilder
9075         shows this extremely well).
9076
9077 2006-10-30  Chris Toshok  <toshok@ximian.com>
9078
9079         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
9080         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
9081         showing up in the gnome taskbar.  Fixes bug #79790.
9082
9083 2006-10-30  Chris Toshok  <toshok@ximian.com>
9084
9085         * ApplicationContext.cs: guard against a NRE.
9086
9087         * Application.cs: null out the old MainForm for the context, so we
9088         don't try to use it again once it's disposed.  Fixes bug #79783.
9089
9090 2006-10-30  Chris Toshok  <toshok@ximian.com>
9091
9092         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
9093         BindingContext, set the data source directly, otherwise do the
9094         lazy approach - the actual ListManager will be created when we get
9095         a BindingContext. Fixes bug #79700.
9096
9097 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9098
9099         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
9100           XplatUIX11.cs: Remove old 2 parameter SetVisible.
9101
9102         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
9103
9104 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9105
9106         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
9107         of SetVisible that allows a window to be shown, but not activated.
9108         This is needed on Windows for MenuStrip, and can probably be used
9109         with MainMenu and ComboBox to fix the focus stealing issues on
9110         Windows.
9111
9112         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
9113
9114 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
9115
9116         * PictureBox.cs: Fix the output of the ToString method.
9117
9118 2006-10-29  Chris Toshok  <toshok@ximian.com>
9119
9120         * Control.cs (get_TopLevelControl): fix bug #79781.
9121
9122 2006-10-29  Chris Toshok  <toshok@ximian.com>
9123
9124         * ListControl.cs (set_DataSource): throw Exception here, not
9125         ArgumentException, to match MS behavior.
9126
9127 2006-10-29  Chris Toshok  <toshok@ximian.com>
9128
9129         * Form.cs: remove the try-catch's around calls to GetWindowState.
9130         We can just check the return value.
9131
9132         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
9133         Instead return -1.
9134
9135         * XplatUI.cs: Add note about additional return value for
9136         GetWindowState.
9137
9138 2006-10-29  Chris Toshok  <toshok@ximian.com>
9139
9140         * Control.cs (CreateHandle): when we create our handle, we also
9141         create the handles of our child controls.  Fixes one of the
9142         Control unit tests (CH11).
9143
9144 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9145
9146         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
9147
9148 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9149
9150         * ThemeClearlooks.cs: A little speedup.
9151
9152 2006-10-27  Chris Toshok  <toshok@ximian.com>
9153
9154         * Control.cs: implement Control.FromChildHandle in a way that
9155         matches the docs (and fixes the failed test.)
9156
9157 2006-10-27  Chris Toshok  <toshok@ximian.com>
9158
9159         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
9160         comments).
9161
9162         * DataGrid.cs: implement ResetForeColor such that the tests
9163         succeed.
9164         
9165 2006-10-27  Chris Toshok  <toshok@ximian.com>
9166
9167         * ToolBarButton.cs: setting text/tooltiptext to null results in it
9168         being set to "".  Fixes bug #79759.
9169
9170 2006-10-27  Jackson Harper  <jackson@ximian.com>
9171
9172         * TextControl.cs: We need to clear the entire selection area when
9173         setting the start, otherwise multiline selections are still
9174         visible.
9175
9176 2006-10-26  Chris Toshok  <toshok@ximian.com>
9177
9178         * PropertyGridView.cs: 
9179
9180         - ifdef all the code specific to the double
9181         buffer case, and provide some alternatives in the non-doublebuffer
9182         code, which makes heavy use of XplatUI.ScrollWindow to move things
9183         around without having to invalidate (and cause flicker).  There
9184         are still some drawing problems in the non-doublebuffered case, so
9185         DOUBLEBUFFER is defined by default.
9186
9187         - Fix the way dropdowns are handled.  now we explicitly watch for
9188         the events which might cause the dropdown to close, and break out
9189         of the nested event loop there.  This gets rid of all Capture
9190         code, at the expense of the Msg special casing.  Seems to work,
9191         though, and fixes bug #79743.
9192
9193 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
9194         * Control.cs: SetIsRecreating now recreates implicitly added
9195         child controls as well. Finally fixes #79629. The flag passed to 
9196         SetIsRecreating has also been removed since it wasn't used.
9197         
9198 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9199
9200         * PageSetupDialog.cs: Clean some code, fix some bits, 
9201         add some checks, and add a printer sub-dialog.
9202
9203 2006-10-26  Chris Toshok  <toshok@ximian.com>
9204
9205         * PropertyGrid.cs: make set_SelectedObject call
9206         set_SelectedObjects, and move the duplicate logic to the
9207         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
9208
9209         * PropertyGridView.cs: hide the textbox when we get a
9210         SelectedObjectsChanged event.
9211
9212         Fixes bug #79748.
9213
9214 2006-10-26  Chris Toshok  <toshok@ximian.com>
9215
9216         * PropertyGridView.cs: deal with the type converter not supporting
9217         GetStandardValues() or GetStandardValues() returning null, which
9218         is does in the default case.  Fixes #79742.
9219
9220 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9221
9222         * CheckedListBox.cs: nunit no longer crashes when selecting 
9223         Project/Edit menu option
9224         
9225 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9226
9227         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
9228         is no menu selected. fixes #79739
9229
9230 2006-10-25  Chris Toshok  <toshok@ximian.com>
9231
9232         * PropertyGridView.cs: factor out the splitter invalidation code
9233         into the SplitterPercent setter, and for kicks implement the
9234         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
9235         amount in either direction.
9236
9237 2006-10-25  Chris Toshok  <toshok@ximian.com>
9238
9239         * PropertyGridView.cs: do some cleanup of the brush used to draw
9240         text - read only fields should be grayed out.  not sure how to do
9241         this with the textbox, though.  but the textbox's should also be
9242         readonly now at least.  Also, hide/show the textbox when resizing
9243         the control.
9244         
9245         * CursorConverter.cs: use System.Reflection when getting the
9246         properties of Cursors, as TypeDescriptor.GetProperties isn't
9247         returning static properties.
9248
9249 2006-10-25  Chris Toshok  <toshok@ximian.com>
9250
9251         * PropertyGridView.cs: factor out the up/down handling, and reuse
9252         it for page up/down.  also add End/Home support.
9253
9254 2006-10-25  Chris Toshok  <toshok@ximian.com>
9255
9256         * PropertyGridView.cs:
9257
9258         - ensure the selected grid item is visible in the scrolled area,
9259         fixes bug #79572.
9260
9261         - fix Keys.Down handling when you're on the last item in the
9262         propertygrid.
9263
9264 2006-10-25  Mike Kestner  <mkestner@novell.com>
9265
9266         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
9267         clicks too.  Fixes #79725.
9268
9269 2006-10-24  Chris Toshok  <toshok@ximian.com>
9270
9271         * PropertyGrid.cs: use property.Converter instead of
9272         TypeDescriptor.GetConverter(property.PropertyType), so we catch
9273         TypeConverters declared on the property as well as on the
9274         PropertyType.  Fixes bug #79678.
9275
9276 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
9277
9278         * MimeIcon.cs, Mime.cs:
9279           Fallback to the default platform handler if no shared mime info
9280           stuff exists (fixes #79693).
9281
9282 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9283         * ContainerControl.cs: Incorrect contains check in ActiveControl 
9284         from previous fix (duh).
9285
9286 2006-10-20  Chris Toshok  <toshok@ximian.com>
9287
9288         * PropertyGridView.cs: the dropdown should be MIN(number of items
9289         in list, 15).  Fixes #79551.
9290
9291 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9292         Fixes #79384, #79394, #79652, #79667
9293         * Application.cs: 
9294         
9295         - Modal windows are now destroyed in the proper order for windows
9296         
9297         * ContainerControl.cs:
9298         
9299         - ActiveControl setter has more conditions on when to return:
9300                 - if we're reselecting the active control, but it actually
9301                 didn't have focus (window hidden or some such), it runs
9302                 - if the active control being selected doesn't actually 
9303                 exist in the container, it returns
9304         
9305         * Form.cs
9306         
9307         - The ShowDialog now gets the current form as the owner when
9308         invoking without parameters, and correctly activates the owner 
9309         when returning
9310         
9311         * MessageBox.cs
9312         
9313         - MessageBox now catches the Escape key to exit
9314
9315 2006-10-20  Chris Toshok  <toshok@ximian.com>
9316
9317         * PropertyGridView.cs: fix a number of issues (bug #78565, and
9318         most of bug #79676):
9319
9320         - you can navigate around the property grid with the arrow keys.
9321
9322         - the dropdown is sized properly when the pg has a vertical
9323         scrollbar.
9324
9325         - fix the indentation for subentries, and properly select the
9326         entire label rect.
9327
9328         - fix the gray bar's drawing (only draw it to the last element,
9329         not for the height of the control.  Also make sure we draw that
9330         last horizontal grid line.
9331
9332         - use the same mechanism the datagrid uses wrt the editing textbox
9333         when scrolling/resizing/etc.  Namely, we hide it first, do the
9334         operation, then show it again (if it's still visible).
9335         
9336         - aggressively remove a lot of unnecessary refreshes (and also
9337         calls to Invalidate(). call more limited variants, and only redraw
9338         what we need.)
9339         
9340         * PropertyGrid.cs:
9341
9342         - when we're populating the merged collection, fill in the UI
9343         parent with either the passed in item, or the category item we
9344         create.
9345
9346         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
9347
9348         * GridItem.cs: drop some fully qualified names.
9349         
9350         * GridEntry.cs: add a "UIParent", which is basically the parent
9351         treenode.
9352
9353         * GridItemCollection.cs: add an IndexOf method.
9354
9355 2006-10-20  Mike Kestner  <mkestner@novell.com>
9356
9357         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
9358         a working win32 NC invalidation mechanism, we can't invalidate
9359         menus.  [Fixes #79705]
9360
9361 2006-10-20  Mike Kestner  <mkestner@novell.com>
9362
9363         * ListBox.cs : don't update the VScrollbar if the list is empty,
9364         just hide it.  [Fixes #79692]
9365
9366 2006-10-20  Jackson Harper  <jackson@ximian.com>
9367
9368         * RichTextBox.cs: Handle some special chars better, and don't skip
9369         the entire group when we encounter a special char that we don't
9370         handle correctly.
9371
9372 2006-10-18  Chris Toshok  <toshok@ximian.com>
9373
9374         * PropertyGridView.cs: address a number of issues from bug #79676,
9375         mostly of the cosmetic variety.
9376
9377         - The highlight rectangle for indented items not extends all the
9378         way to the left.
9379
9380         - Indented items aren't indented so much.
9381
9382         - the dropdown is properly sized width-wise if the pg has a
9383         vertical scrollbar.
9384
9385 2006-10-18  Chris Toshok  <toshok@ximian.com>
9386
9387         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
9388         systray stuff is rather convoluted to begin with.
9389
9390         systray icons are a single window for some reason (that I haven't
9391         figured out yet), and for them, client_window == whole_window.
9392         Given the way the tests are structured elsewhere to determine
9393         which paints are pending (client vs. nc), that situation will
9394         always yield PAINT, not NCPAINT.  So, if we have a pending
9395         nc_expose and no pending expose, remove the hwnd from the paint
9396         queue, and also set nc_expose_pending to false, to keep us from
9397         blocking further expose's adding the hwnd to the paint queue.
9398
9399         phew.  like i said, a rather convoluted change.  Fixes the
9400         notifyicon repaint issues in bug #79645.
9401
9402 2006-10-18  Chris Toshok  <toshok@ximian.com>
9403
9404         * Form.cs: when getting the backcolor of the form, don't get
9405         base.BackColor, as this allows parents to influence the background
9406         color.  This breaks mdi forms.  Instead, if the background_color
9407         is empty, return the default.
9408
9409 2006-10-18  Chris Toshok  <toshok@ximian.com>
9410
9411         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
9412         to being private instead of internal static.
9413
9414         * Control.cs: remove all the stupid ParentWaitingOnRecreation
9415         crap, it wasn't working for more deeply nested controls anyway,
9416         and we already have the is_recreating flag - use that instead.
9417         Before calling DestroyHandle in RecreateHandle, recurse through
9418         the control tree setting it to true.  this returns the recreate
9419         code to much of its original simplicity, while now guaranteeing we
9420         actually recreate everything we're supposed to.  This change gets
9421         fyireporting actually showing mdi children.
9422
9423 2006-10-17  Chris Toshok  <toshok@ximian.com>
9424
9425         * Form.cs: remove some debug spew, and collapse some duplicate
9426         code at the end of SetClientSizeCore.
9427
9428         * XplatUIX11.cs: 
9429         - add some more debug spew here too wrt Destroy handling.
9430         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
9431         in Control's handling of WM_DESTROY.
9432         - Remove the handling of zombie window DestroyNotifies from the
9433         event loop - we don't need it.  Now the only DestroyNotifies we
9434         actually handle are ones generated by X.
9435         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
9436         match gtk's (functioning) handling of this. This keep metacity
9437         from leaving droppings in the form of wm borders with no window
9438         contents all over the place.
9439
9440         * Control.cs:
9441         - add a bunch of debug spew wrt control recreation.
9442         - fix a bug where we weren't tracking Visible properly on
9443         recreated hwnds.
9444         - fixed the WM_PAINT double buffer handling to support re-entrant
9445         calls (yes, i know it's gross, but it's happening to us).
9446
9447 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9448         * ThemeWin32Classic.cs: changed drawing of selected days
9449         to make them look better.
9450
9451 2006-10-16  Chris Toshok  <toshok@ximian.com>
9452
9453         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
9454         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
9455
9456         * XplatUIX11.cs: move away from using hwnd.client_dc and
9457         hwnd.non_client_dc and on to a stack of dc's (and in window's
9458         case, PAINTSTRUCT's), so we can deal with nested Paint calls
9459         without puking or not disposing of Graphics objects.
9460
9461         * XplatUIOSX.cs: same.
9462
9463         * XplatUIWin32.cs: same.
9464
9465 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9466
9467         * FileDialog.cs: Don't call on_directory_changed inside
9468           OnSelectedIndexChanged (it changes the SelectedIndex too).
9469           Instead move it to OnSelectionChangeCommitted.
9470
9471 2006-10-13  Chris Toshok  <toshok@ximian.com>
9472
9473         * XplatUIX11.cs: more Destroy work.  the current code does the
9474         following things, in order:
9475
9476         1. Enumerates all handles of all controls at or below the one
9477         being destroyed, in pre-order.  As it is doing this, it marks the
9478         handles as zombie and clears all references to them.
9479         
9480         2. calls XDestroyWindow on the window passed in.
9481
9482         3. SendMessage's WM_DESTROY to all he handles in the accumulated
9483         list.
9484
9485 2006-10-13  Chris Toshok  <toshok@ximian.com>
9486
9487         * XplatUIX11.cs: set hwnd.zombie to true before calling
9488         SendMessage (WM_DESTROY).  this keeps us from marking the new
9489         window a zombie, and also keeps us from calling sendmessage at
9490         all.
9491
9492 2006-10-13  Jackson Harper  <jackson@ximian.com>
9493
9494         * TextControl.cs: Do not show the caret and selection at the same
9495         time.  Reduces ugliness by 35%.
9496
9497 2006-10-13  Chris Toshok  <toshok@ximian.com>
9498
9499         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
9500         zombie after we do the recursive call, so we actually do call
9501         SendMessage on the children controls.
9502         (GetMessage): if we find a pending paint event for a zombie hwnd,
9503         remove the hwnd from the paint queue, or else it will always be
9504         there (and we'll effectively loop infinitely)
9505
9506 2006-10-13  Mike Kestner  <mkestner@novell.com>
9507
9508         * MenuItem.cs : add Selected format under keynav too.
9509         Fixes #79528.
9510
9511 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
9512
9513         * PropertyGrid.cs: Fixed some NRE's and small difference between our
9514         implementation and that of MS.
9515
9516 2006-10-13  Chris Toshok  <toshok@ximian.com>
9517
9518         * Control.cs (OnInvalidated) only futz with the invalid_region if
9519         the control is double buffered.  this fixes the apparent hang in
9520         the ListView unit tests.  Someone needs to make the
9521         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
9522
9523 2006-10-13  Chris Toshok  <toshok@ximian.com>
9524
9525         * PropertyGridView.cs:
9526
9527         - do a little refactoring so that only one place calls
9528         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
9529         else call that.  Also make it Refresh, since there are redraw bugs
9530         otherwise (we should take a look at that...)
9531
9532         - do a little more refactoring work to share the body of code
9533         involved with the drop down.  it was duplicated in the code
9534         dealing with the listbox handling and in the code dealing with the
9535         UITypeEditors.
9536
9537         - add a Capture to the dropdown form's control once it's
9538         displayed, and add a MouseDown handler that checks to make sure
9539         the position is inside the control.  If it's not, close the
9540         dropdown.  This fixes #78190.
9541
9542         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
9543         if the value is different than the initial value.
9544         
9545 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
9546
9547         * Control.cs: see #78650
9548         - Fixed GetNextControl for several cases:
9549                 - Changed FindFlatForward to return 
9550                 correct sibling control when more than one
9551                 control has same TabIndex as the currently 
9552                 focused one.
9553                 - Changed FindFlatBackward to loop children
9554                 from last to first and apply same logic as in
9555                 FindFlatForward
9556                 - Changed FindControlForward to search for
9557                 children when control is not a container
9558                 but has children, or search for siblings if
9559                 control is a container...
9560                 - Changed FindControlBackward   to continue
9561                 searching for child controls when hitting 
9562                 Panel-like parents
9563                 
9564         - Fixed Focus method to update ActiveControl
9565         (FocusTest.FocusSetsActive failure)
9566         
9567         * TabControl.cs:
9568         - Focus rectangle now refreshes when gaining
9569         or losing focus
9570         - Removed grab for Tab key on IsInputKey that 
9571         was keeping tab navigation from working (#78650)
9572
9573 2006-10-13  Chris Toshok  <toshok@ximian.com>
9574
9575         * PropertyGridView.cs:
9576         - Rewrite SetPropertyValue to loop over SelectedGridItem's
9577         SelectedObjects.
9578
9579         - Deal with GridItem.Value == null a few places.
9580
9581         * PropertyGrid.cs: 
9582         - replace the PopulateGridItemCollection with a pair of methods
9583         which compute the intersection of all the properties in the
9584         SelectedObjects array.  Fixes #79615.
9585
9586         - Throw ArgumentException from set_SelectedObjects if there's a
9587         null in the array.
9588
9589         - Add GetTarget method which can be used to traverse up the
9590         GridItem.Parent chain.  It depends on the assumption that
9591         selected_objects for different GridEntries are always in the same
9592         order (a safe assumption).  Use this method and loop over all the
9593         selected objects in the entry when calling RemoveValueChanged and
9594         AddValueChanged.
9595         
9596         * GridEntry.cs: Make this handle multiple selected objects.
9597         .Value returns null if not all the selected objects share the same
9598         value.
9599
9600 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
9601         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
9602           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
9603           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
9604           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
9605           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
9606         add additional functionality.
9607
9608 2006-10-12  Mike Kestner  <mkestner@novell.com>
9609
9610         * ErrorProvider.cs : new ToolTipWindow ctor sig.
9611         * HelpProvider.cs : new ToolTipWindow ctor sig.
9612         * ToolTip.cs : remove ToolTip param from Window sig since it is
9613         not used.
9614         * ToolBar.cs : add tooltip support.  Fixes #79565.
9615
9616 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9617
9618         * ComboBox.cs: move the events in set_SelectedIndex to 
9619         after the call to HighlightIndex in order to avoid 
9620         possible recursion and subsequent problems with the call
9621         to HighlightIndex and include a range check in 
9622         set_HighlightIndex. Fixes #79588
9623         
9624 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9625
9626         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
9627         to ui thread's settings instead of sunday. 
9628         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
9629
9630 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9631
9632         * DateTimePicker.cs
9633         * MonthCalendar.cs
9634         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
9635         and implement missing functionality (selecting different parts 
9636         of the date and edit them individually with the keyboard).
9637         
9638 2006-10-11  Chris Toshok  <toshok@ximian.com>
9639
9640         * Control.cs (OnInvalidated): fix NRE relating to last change.
9641
9642 2006-10-11  Chris Toshok  <toshok@ximian.com>
9643
9644         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
9645         atoms in _NET_WM_STATE here if the window is maximized.  We need
9646         to do this because we're *replacing* the existing _NET_WM_STATE
9647         property, so those atoms will be lost otherwise, and any further
9648         call to GetWindowState will return Normal for a window which is
9649         actually maximized.  Fixes #79338.
9650
9651 2006-10-11  Jackson Harper  <jackson@ximian.com>
9652
9653         * TextControl.cs: Special case for setting selection end to
9654         selection start, we basically kill the anchor.
9655         - some todo comments.
9656
9657 2006-10-11  Chris Toshok  <toshok@ximian.com>
9658
9659         * Control.cs: switch to using an "invalid_region" to track which
9660         parts of the image buffer need updating.  This is more code than
9661         the simple fix from r66532.  That version just attempted to always
9662         fill the entire buffer on redraw, which turns out to be
9663         inefficient when invalidating small rectangles.  This version
9664         simply adds the invalid rectangle to the invalid region.  When we
9665         get any WM_PAINT message we see if it can be filled using the
9666         image buffer, and if it can't (if the paint event's clip rectangle
9667         is visible in the invalid region) we first fill the image buffer.
9668         So, the image buffer is still a cache, we just fill it lazily.
9669
9670         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
9671         need it any longer.
9672
9673 2006-10-11  Chris Toshok  <toshok@ximian.com>
9674
9675         * XplatUIX11.cs (SetWindowPos): we need to update both position as
9676         well as size after calling XMoveResizeWindow.  This keeps us from
9677         ignoring future SetWindowPos calls.  Fixes the disappearing
9678         DateTimePicker in the ToolBarDockExample from bug #72499.
9679
9680 2006-10-11  Chris Toshok  <toshok@ximian.com>
9681
9682         * TextBoxBase.cs: reorder things a bit when it comes to
9683         resizing-causing-recalculation.  we were recalculating the
9684         document when our position was changed, which shouldn't happen.
9685         We only care about size changes.  Clear up some more redundant
9686         recalculation calls while I'm at it.  This makes the toolbar dock
9687         example snappy when you're just dragging toolbars around (since it
9688         causes a relayout whenever you move one.)
9689
9690 2006-10-11  Chris Toshok  <toshok@ximian.com>
9691
9692         * ToolBarButton.cs (get_Rectangle): this only returns
9693         Rectangle.Empty if Visible == false, or Parent == null.
9694         Parent.Visible doesn't matter.
9695
9696 2006-10-10  Chris Toshok  <toshok@ximian.com>
9697
9698         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
9699         by .net 1.1, so switch to an internal method instead.
9700
9701 2006-10-10  Chris Toshok  <toshok@ximian.com>
9702
9703         * Control.cs (WM_PAINT): when a control is double buffered we draw
9704         initially to the ImageBuffer and then copy from there.  But when a
9705         parent control which has child controls is double buffered, the
9706         initial drawing doesn't encompass the entire ClientRectangle of
9707         the parent control, so we end up with uninitialized bits (this is
9708         easily seen by dragging the top toolbar in
9709         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
9710         manually set the ClipRectangle of the paint_event (only the one we
9711         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
9712         of the nastiness in bug #72499.
9713
9714         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
9715         which we use in Control.cs's WM_PAINT handling.
9716
9717 2006-10-10  Jackson Harper  <jackson@ximian.com>
9718
9719         * TextBoxBase.cs: Finish off the autoscrolling stuff.
9720
9721 2006-10-10  Chris Toshok  <toshok@ximian.com>
9722
9723         * Cursor.cs: Apply a slightly different patch to the one suggested
9724         in #79609.
9725
9726 2006-10-10  Jackson Harper  <jackson@ximian.com>
9727
9728         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
9729         not the parent form.
9730         * TextControl.cs: use difference in old line count vs new count to
9731         calculate how many lines were added, this takes into account soft
9732         line breaks properly.
9733
9734 2006-10-10  Chris Toshok  <toshok@ximian.com>
9735
9736         * LinkLabel.cs: don't call MeasureCharacterRanges against a
9737         rectangle located at 0,0 and the size of the text.  Use
9738         ClientRectangle instead.  This fixes rendering of non-left aligned
9739         link labels.
9740
9741 2006-10-10  Jackson Harper  <jackson@ximian.com>
9742
9743         * TextBoxBase.cs: When we set the selection start position the
9744         caret.
9745         * TextControl.cs: Need to update the caret when we decrement it to
9746         zero.
9747         - Make sure that the selection_visible flag gets reset to false if
9748         the selection isn't visible.  Before this you could get it set to
9749         visible by changing the selection start, then changing the end to
9750         equal the start.
9751
9752 2006-10-09  Jackson Harper  <jackson@ximian.com>
9753
9754         * TreeView.cs: Don't update scrollbars when we aren't visible.
9755         * TreeNodeCollection.cs: Only need to update scrollbars if being
9756         added to an expanded visible node or the root node.
9757
9758 2006-10-09  Chris Toshok  <toshok@ximian.com>
9759
9760         * XplatUIX11.cs (SendMessage): fix NRE.
9761
9762 2006-10-09  Jackson Harper  <jackson@ximian.com>
9763
9764         * TextBoxBase.cs: Implement horizontal autoscrolling.
9765         * TextControl.cs: Add a movement types that allows moving forward
9766         and backwards without wrapping.
9767
9768 2006-10-09  Mike Kestner  <mkestner@novell.com>
9769
9770         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
9771         with focus "expansion" of labels.  Fixes #79532 and then some.
9772         * ThemeWin32Classic.cs : add LineLimit to ListView label format
9773         when wrapping.
9774
9775 2006-10-09  Jackson Harper  <jackson@ximian.com>
9776
9777         * TextBoxBase.cs: Set the default max values to MaxValue since
9778         we use the scrollbar for autoscrolling and the default value is
9779         100.  If we don't do this the caret won't keep up with typing
9780         after about 18 characters.
9781         * TextControl.cs: Make sure the selection is offset by the
9782         viewport x.  This fixes selection when using auto scrolling.
9783
9784 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
9785         
9786         * Form.cs: The active control should be selected after the 
9787         OnLoad so that any child control initialization that affects
9788         the selection is done. Fixes #79406
9789
9790 2006-10-06  Chris Toshok  <toshok@ximian.com>
9791
9792         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
9793         to have no evil effects.
9794
9795         - Stop selecting StructureNotifyMask on non-toplevel windows.
9796
9797           The only way children should be resized is by using the SWF api,
9798           and we already send WM_WINDOWPOSCHANGED messages in those cases.
9799           Toplevel windows can be interacted with via the window manager,
9800           and so we keep the input mask there.
9801
9802           The other event StructureNotifyMask gives us (that we care
9803           about) is DestroyNotify.  The code is already structured such
9804           that it assumes we won't be getting a DestroyNotify event for
9805           the window we pass to XDestroyWindow (which is what
9806           StructureNotifyMask is supposed to guarantee.)  So, that code
9807           shouldn't be affected by this either.
9808
9809         - Stop selecting VisibilityChangeMask altogether.
9810
9811           We weren't doing anything with the resulting events anyway.
9812         
9813         This vastly reduces the number of X requests and events we see
9814         when resizing/laying out a large ui.
9815
9816 2006-10-06  Chris Toshok  <toshok@ximian.com>
9817
9818         * ScrollableControl.cs (DisplayRectangle): we need to take into
9819         account the DockPadding regardless of whether or not auto_scroll
9820         == true.  rework this slightly to this effect, and fix bug #79606,
9821         and part of #72499 (you can now see the drag handles and drag
9822         toolbars around).
9823
9824 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
9825
9826         * ListViewItem.cs: Collections of selected and checked items are now
9827         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
9828         we mark the collection "dirty".
9829         * ListView.cs: Marked collections readonly. Modified UpdateSelection
9830         to only clear SelectedItems when a new item is selected and MultiSelect
9831         is enabled. CheckedItems and SelectedItems now subscribe to Changed
9832         event of ListViewItemCollection, and mark its list dirty whenever
9833         that event is fire. This allows us to return selected/checked items 
9834         in the same order as they are in the Items collection. This matches
9835         the MS behavior.
9836
9837 2006-10-06  Chris Toshok  <toshok@ximian.com>
9838
9839         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
9840         right mouse clicks.  Fixes bug #79593.
9841
9842 2006-10-06  Chris Toshok  <toshok@ximian.com>
9843
9844         * Splitter.cs: doh, fix splitters that don't want to cancel the
9845         movement when you drag them.  Also, impose the limits on the
9846         values we send to the SplitterMovingEvent.  Fixes #79598.
9847
9848 2006-10-06  Jackson Harper  <jackson@ximian.com>
9849
9850         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
9851         since we use this for auto scrolling also.
9852
9853 2006-10-05  Chris Toshok  <toshok@ximian.com>
9854
9855         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
9856         beginning to think that most datagrid column types don't need this
9857         method.  Fixes bug #79392.
9858
9859 2006-10-05  Chris Toshok  <toshok@ximian.com>
9860
9861         * DataGrid.cs: move back to a more lazy scheme for creating the
9862         CurrencyManager, so we aren't updating it every time you set
9863         either DataSource or DataMember.  Also, don't call
9864         RecreateDataGridRows if the currency manager hasn't changed.
9865
9866 2006-10-05  Chris Toshok  <toshok@ximian.com>
9867
9868         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
9869         emitted, SelectedIndex should already be updated.  Fixes bug
9870         #78929.
9871
9872 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
9873
9874         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
9875           ToolStripTextBox.cs: Initial commit.
9876         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
9877
9878 2006-10-05  Jackson Harper  <jackson@ximian.com>
9879
9880         * TabControl.cs: We need to invalidate the tab control area when
9881         new ones are added (duh).
9882
9883 2006-10-03  Chris Toshok  <toshok@ximian.com>
9884
9885         * Form.cs (ProcessDialogKey): if the focused control is in this
9886         form and is a button, call its PerformClick method here.  Fixes
9887         #79534.
9888
9889 2006-10-04  Jackson Harper  <jackson@ximian.com>
9890
9891         * TabPage.cs: Ignore setting of Visible, and add an internal
9892         method for setting the controls visibility.  TabPage's Visible
9893         property is a little strange on MS, this seems to make us
9894         compatible, and fixes cases where people set all the tab pages to
9895         visible.
9896         * TabControl.cs: Use the new internal setting on tab pages
9897         visibility.
9898
9899 2006-10-03  Mike Kestner  <mkestner@novell.com>
9900
9901         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
9902
9903 2006-10-03  Mike Kestner  <mkestner@novell.com>
9904
9905         * ListView.cs : use is_visible instead of Visible to check if 
9906         scrollbars should be placed/sized.  Also some max_wrap_width
9907         love for LargeIcon view.  [Fixes #79533]
9908
9909 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
9910
9911         * TextControl.cs :
9912           Make set_TextAlign() do actually update the align. Fixed #78403.
9913
9914 2006-10-03  Chris Toshok  <toshok@ximian.com>
9915
9916         * DataGrid.cs: fix a crash when switching datasources if the
9917         vertical scrollbar is at someplace other than Value = 0.  Also,
9918         reduce the number of recalculation passes we do in SetDataSource
9919         from 2 to 1.
9920
9921 2006-10-03  Jackson Harper  <jackson@ximian.com>
9922
9923         * TextBoxBase.cs: Move the if value the same bail check up, we
9924         don't want to empty the document if it is already empty, this
9925         seems to severly mess up the caret.  TODO: I should probably fix
9926         the empty statement to update teh caret somehow.
9927
9928 2006-10-03  Chris Toshok  <toshok@ximian.com>
9929
9930         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
9931         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
9932         reflection, an internal row type, properties on said type, etc.)
9933         will work with our datagrid.  Fixes #79531.
9934
9935 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9936
9937         * FileDialog.cs: Don't crash if a path is not accessible
9938           (System.UnauthorizedAccessException). Fixes #79569.
9939         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
9940           a ':' too. Return unknown icon for those paths/files.
9941
9942 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
9943
9944         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
9945         GetContainerControl returns null.
9946
9947 2006-10-02  Chris Toshok  <toshok@ximian.com>
9948
9949         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
9950         call to XGetWindowAttributes instead of "handle".  fixes an X
9951         error using notifyicon after the NotifyIconWindow to Form base
9952         class switch.
9953
9954 2006-10-02  Chris Toshok  <toshok@ximian.com>
9955
9956         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
9957         server grab and looping we need to do to get down to the most
9958         deeply nested child window.
9959         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
9960         QueryPointer again after the WarpPointer so we can generate a
9961         proper (fake) MotionNotify event to be enqueued in the destination
9962         window's queue.
9963         (GetCursorPos): call QueryPointer.
9964
9965         Fixes #79556.
9966
9967 2006-10-02  Jackson Harper  <jackson@ximian.com>
9968
9969         * NotifyIcon.cs: Derive the notify icon from a form, so things
9970         like FindForm work on it.
9971         - Swallow the WM_CONTEXTMENU message, since that is generated on
9972         mouse down, and context menu is a mouse up kinda guy.  I believe
9973         the correct fix here is probably to make the notify icon entirely
9974         NC area, but this seems to work fine for anyone not manipulating
9975         WndProc.
9976
9977 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
9978
9979         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
9980           ToolStripItemCollection.cs, ToolStripLabel.cs,
9981           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
9982           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
9983           Initial implementation.
9984         * TextRenderer.cs: Provide padding to MeasureText.
9985
9986 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
9987
9988         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
9989         of ButtonBaseAccessibleObject. Fix bug #79552.
9990
9991 2006-10-02  Jackson Harper  <jackson@ximian.com>
9992
9993         * MdiWindowManager.cs: When maximizing use the containers client
9994         rect, not it's bounds, so nc area is accounted correctly.
9995         - Use the parent form's size for the menu position, since the
9996         client isn't always the full form size.
9997
9998 2006-10-01  Chris Toshok  <toshok@ximian.com>
9999
10000         * ScrollableControl.cs: make sure neither right_edge or
10001         bottom_edge are < 0, since they're used as LargeChange for the
10002         horiz/vert scrollbars respectively.  Fixes #79539.
10003
10004 2006-10-01  Chris Toshok  <toshok@ximian.com>
10005
10006         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
10007         the xplatuix11 code can cause us to destroy/recreate our handle.
10008
10009         * XplatUIX11.cs
10010         (SystrayAdd):
10011         - this code can be invoked many times for the same Hwnd.  Make
10012           sure we only destroy the client window once (the first time this
10013           method is called).  This fixes bug #79544.
10014         - Remove the call to the improperly bound XSync.  why we had two
10015           bindings to this, I will never know, but this call resulted in
10016           events being discarded from the queue(!).
10017         - correct a misunderstanding of _XEMBED_INFO - the second atom is
10018           not our current state but the state we wish to be in.  So, 0 if
10019           we don't want to be mapped.  Change it to 1.
10020         (SystrayRemove): The XEMBED spec makes mention of the fact that
10021         gtk doesn't support the reparent of client windows away from the
10022         embedder.  Looking at gtksocket-x11.c seems to agree with this.
10023         The only avenue we have for removing systray icons is to destroy
10024         them.  We don't want the handle to go away for good, though, so
10025         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
10026         #79545.
10027         
10028 2006-10-01  Chris Toshok  <toshok@ximian.com>
10029
10030         * Form.cs (WndProc): inline the native_enabled variable usage into
10031         the cases in which it's used.  Fixes #79536.
10032
10033 2006-09-29  Mike Kestner  <mkestner@novell.com>
10034
10035         * ListView.cs : toggle the selection state for ctrl clicks in 
10036         multiselect mode. [Fixes #79417]
10037
10038 2006-09-29  Mike Kestner  <mkestner@novell.com>
10039
10040         * ListView.cs : kill CanMultiSelect and refactor the selection
10041         code to support multiselection in the absence of mod keys. Steal
10042         arrow/home/end keys by overriding InternalPreProcessMessage to
10043         restore regressed keynav behavior.
10044         [Fixes #79416]
10045
10046 2006-09-29  Jackson Harper  <jackson@ximian.com>
10047
10048         * MdiClient.cs: Repaint the titlebars when the active window is
10049         changed.
10050
10051 2006-09-29  Chris Toshok  <toshok@ximian.com>
10052
10053         * Application.cs: when entering a runloop with a modal, make sure
10054         the hwnd is enabled.  Fixes #79480.
10055
10056 2006-09-29  Chris Toshok  <toshok@ximian.com>
10057
10058         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
10059         when ListManager.CanAddRows == false, bump us back one.
10060
10061         * DataGridColumnStyle.cs (ParentReadOnly): remove the
10062         listmanager.CanAddRows check.  This makes ArrayLists uneditable
10063         using a datagrid, which is not right.
10064         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
10065         is an IEditable, but call property_descriptor.SetValue regardless.
10066         fixes #79435.
10067
10068 2006-09-29  Chris Toshok  <toshok@ximian.com>
10069
10070         * DataGridBoolColumn.cs: we need to test equality in the face of
10071         possible null values (as is the case with the default NullValue).
10072         This patch keeps us from crashing in that case.
10073
10074 2006-09-29  Jackson Harper  <jackson@ximian.com>
10075
10076         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
10077         here, since it will get called for every node collection in the
10078         tree. This is now done in the treeview once the sorting is
10079         finished.
10080         * TreeView.cs: Recalculate the visible order, and update the
10081         scrollbars after sorting, set the top nope to the root so that the
10082         recalc actually works.
10083
10084 2006-09-29  Chris Toshok  <toshok@ximian.com>
10085
10086         * LinkLabel.cs: more handling of the default link collection in
10087         the face of LinkArea manipulation.  The default link collection
10088         contains 1 element (start=0,length=-1).  If the user sets LinkArea
10089         to anything and the links collection is the default, clear it.
10090         Then only add the link if its nonempty.  Fixes #79518.
10091
10092 2006-09-29  Chris Toshok  <toshok@ximian.com>
10093
10094         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
10095         piece correctly when we hit a '\n'.  Fixes #79517.
10096
10097 2006-09-29  Chris Toshok  <toshok@ximian.com>
10098
10099         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
10100         change the binding of gdk_init_check to take two IntPtr's, and
10101         pass IntPtr.Zero for both of them.  Fixes #79520.
10102
10103 2006-09-29  Mike Kestner  <mkestner@novell.com>
10104
10105         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
10106         [Fixes #78779]
10107
10108 2006-09-28  Jackson Harper  <jackson@ximian.com>
10109
10110         * XplatUIX11.cs: When translating NC messages make sure we go from
10111         whole window to screen, not client window to screen.
10112         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
10113         method doesn't exist
10114         - Skip over controls that aren't forms when arranging.
10115
10116 2006-09-28  Jackson Harper  <jackson@ximian.com>
10117
10118         * XplatUIWin32.cs: Clip the rect to the parent window.
10119         * XplatUIStructs.cs: Add clipping modes struct.
10120         * InternalWindowManager.cs: New private method that factors title
10121         bar heights in when calculating the pos of an NC mouse message.
10122         - Use SendMessage to force a paint when the form's size is changed
10123         instead of painting the decorations immediately.
10124         - Don't let the NC button click messages get to DefWndProc,
10125         because they will attempt to handle windowing themself, and this
10126         messes up z-order (it will put them in front of the scrollbars).
10127         * XplatUIX11.cs: Make sure that we don't reset window managers if
10128         we already have one (ie the window is an MDI window).
10129
10130 2006-09-28  Chris Toshok  <toshok@ximian.com>
10131
10132         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
10133         menu code really needs going over.
10134
10135 2006-09-27  Chris Toshok  <toshok@ximian.com>
10136
10137         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
10138         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
10139         window is maximizable.  So, we need to make sure that even if we
10140         clear the border/wm frame of those functions, they're still
10141         available (basically, we remove the decoration without removing
10142         the function).  Half the fix for #79338.
10143
10144 2006-09-27  Chris Toshok  <toshok@ximian.com>
10145
10146         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
10147         Fixes bug #79515.
10148
10149 2006-09-27  Chris Toshok  <toshok@ximian.com>
10150
10151         * Splitter.cs: reorder things a bit so that we don't actually
10152         draw/move the splitter until after calling OnSplitterMoving.  This
10153         lets users cancel/disallow the movement by explicitly setting
10154         event.SplitX/SplitY.  Fixes #79372.
10155
10156 2006-09-27  Jackson Harper  <jackson@ximian.com>
10157
10158         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
10159         because it is most likely on a window being destroyed, and that
10160         will give us an X11 error.
10161
10162 2006-09-27  Chris Toshok  <toshok@ximian.com>
10163
10164         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
10165         the dropdown button now toggles between showing and hiding the
10166         dropdown.  Also, get rid of dropdown_form_showing and just use
10167         dropdown_form.Visible.  We still don't do a grab, but I'll leave
10168         that part to someone who has handled Capture-fu before.
10169
10170 2006-09-27  Chris Toshok  <toshok@ximian.com>
10171
10172         * DataGrid.cs: return false if alt isn't pressed when '0' is
10173         pressed.  this keeps the '0' key from being swallowed, and fixes
10174         bug #79350.
10175
10176 2006-09-27  Chris Toshok  <toshok@ximian.com>
10177
10178         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
10179         Calling Refresh (in response to a scrollbar event) screws up the
10180         scrollbar painting.  Fixes bug #78923.
10181
10182 2006-09-27  Chris Toshok  <toshok@ximian.com>
10183
10184         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
10185         then insert into hashtable" blocks threadsafe.
10186
10187 2006-09-27  Chris Toshok  <toshok@ximian.com>
10188
10189         * MessageBox.cs (CreateParams): the styles should be |'ed with our
10190         baseclass's, since otherwise the
10191         ControlBox/MinimizeBox/MaximizeBox assignments above have no
10192         effect.  This gets the close button back in messageboxes.
10193
10194 2006-09-27  Chris Toshok  <toshok@ximian.com>
10195
10196         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
10197         flag, not just != 0.  this makes flags that are actually multiple
10198         bits (like WS_CAPTION) work.  fixes bug #79508.
10199
10200 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
10201
10202         * PageSetupDialog.cs: add support for getting and settings the 
10203         paper size, source and orientation.
10204
10205 2006-09-26  Chris Toshok  <toshok@ximian.com>
10206
10207         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
10208         and caption == "", we need to remove the resize handles as well as
10209         the title bar.
10210
10211         * Control.cs (set_Text): turns out that setting Text on a form
10212         should change the WM styles on the window, since if ControlBox ==
10213         false, the only way to get a window border is to have a non-""
10214         Text property.  check winforms/forms/text.cs for an example.  so,
10215         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
10216         update both window styles and title.  This fixes a lot of dialogs
10217         (including the preferences dialog in MonoCalendar.)
10218
10219 2006-09-26  Chris Toshok  <toshok@ximian.com>
10220
10221         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
10222         control isn't a Form), call Win32ShowWindow to hide the window,
10223         but don't update the control Visible property.  When we reparent
10224         back to a parent control, call SetVisible in order for the
10225         window's visibility to be reinstated.
10226
10227         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
10228         the FosterParent.
10229
10230         * Control.cs (ControlCollection.Remove): remove that value.Hide()
10231         call for good, since it breaks MonoCalendar (and other things I'm
10232         sure.) Also, set all_controls to null *after* the owner calls,
10233         which end up regenerating it.
10234         (ChangeParent): allow new_parent to be == null, passing
10235         IntPtr.Zero down to XplatUI.
10236
10237         this fixes #79294 the right way.
10238
10239 2006-09-26  Mike Kestner  <mkestner@novell.com>
10240
10241         * GridEntry.cs : internal SetParent method.
10242         * PropertyGrid.cs : attach to property changed on the proper
10243         target if we have a hierarchical grid with subobjects. Setup
10244         GridItem.Parent for hierarchical items.
10245         * PropertyGridView.cs : Set value on the correct target for
10246         hierarchical grids. [Fixes #78903]
10247
10248 2006-09-26  Chris Toshok  <toshok@ximian.com>
10249
10250         * Control.cs (ChildNeedsRecreating): this should return true if
10251         either we're being recreated and the child is in our list, or our
10252         parent is waiting for our recreation.
10253
10254 2006-09-26  Chris Toshok  <toshok@ximian.com>
10255
10256         * Control.cs (ControlCollection.Remove): reinstate the
10257         value.Hide() call as suggested in bug #79294.
10258
10259 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
10260
10261         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
10262         coordinates (versus a relative move).
10263
10264 2006-09-26  Chris Toshok  <toshok@ximian.com>
10265
10266         * Control.cs: rework child recreation a little bit.  It turns out
10267         that we race between the DestroyNotify the WM_DESTROY message.  If
10268         the parent gets its DestroyNotify before the child gets the
10269         WM_DESTROY message, the child ends up not recreating (since the
10270         parent finishes its recreation on DestroyNotify, and the child
10271         checks ParentIsRecreating.)
10272
10273         So, instead we store off a list of all the child controls which
10274         need to be recreated when the parent control starts to recreate
10275         itself.  Then, when child controls get their WM_DESTROY message we
10276         check to see if they're in the parent's pending recreation list,
10277         and if so, we recreate.  This removes all dependency on ordering
10278         from the code and fixes the initial MonoCalendar upgrade dialog.
10279         
10280 2006-09-26  Jackson Harper  <jackson@ximian.com>
10281
10282         * TextControl.cs: Use the Line to get the length of the line,
10283         since soft line breaks can change the end line.
10284
10285 2006-09-26  Chris Toshok  <toshok@ximian.com>
10286
10287         * Control.cs (ControlCollection.AddImplicit): don't add the
10288         control again if it's already in one of our lists.  This keeps us
10289         from adding controls over and over again for comboboxes when their
10290         handle gets recreated (as the combobox adds implicit controls in
10291         OnHandleCreated).  Fixes the X11 errors in bug #79480.
10292
10293 2006-09-26  Jackson Harper  <jackson@ximian.com>
10294
10295         * TextControl.cs: When deleting characters make sure that any
10296         orphaned zero lengthed tags get deleted.
10297         - Fix ToString for zero lengthed tags.
10298
10299 2006-09-25  Jackson Harper  <jackson@ximian.com>
10300
10301         * TextControl.cs: When getting a tag at the location there can be
10302         multiple tags at the same spot, these are 0-lengthed tags that
10303         appear when extra formatting has been stuck in a location.  We
10304         need to pull out the last of these 0 lengthed tags.
10305
10306 2006-09-25  Jackson Harper  <jackson@ximian.com>
10307
10308         * TextControl.cs: Fix print out in debug method.
10309         * TextBoxBase.cs: When text is set bail if we are setting to the
10310         previous value.
10311         
10312 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
10313
10314         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
10315           It is now possible to change the selected index in a FontXXXListBox
10316           with the up and down arrow keys from the FontXXXTextBoxes.
10317           Also, send the FontXXXTextBox mouse wheel event to the corresponding
10318           FontXXXListBoxes to match ms.
10319
10320 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
10321
10322         * SystemInformation.cs: Return a clone of the theme's MenuFont because
10323         anyone can dispose it, anytime. All other properties returns enums, 
10324         structs or basic types so they don't need such tricks.
10325
10326 2006-09-22  Jackson Harper  <jackson@ximian.com>
10327
10328         * XplatUI.cs:
10329         * XplatUIWin32.cs:
10330         * Clipboard.cs:
10331         * DataFormats.cs:
10332         * XplatUIOSX.cs:
10333         * XplatUIDriver.cs: Update interface to add a primary selection
10334         flag, so the driver can use the primary selection buffer if
10335         needed.
10336         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
10337
10338         * RichTextBox.cs: We need to supply the data object to paste now
10339         (so we can choose to supply CLIPBOARD or PRIMARY).
10340         * TextBoxBase.cs: Supply data object to paste (see above).
10341         - Middle click uses the primary selection data object.
10342         
10343 2006-09-21  Chris Toshok  <toshok@ximian.com>
10344
10345         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
10346         of SetWMStyles.  It's still a rat's nest and is largely
10347         order-dependent which I dislike immensely.  This also fixes the X
10348         button disappearing from toplevel forms.
10349
10350 2006-09-21  Mike Kestner <mkestner@novell.com>
10351
10352         * ListBox.cs: move Jordi's click/dblclick raising code to the
10353         mouse up handler.
10354
10355 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10356
10357         * ListBox.cs: Fixes 79450
10358
10359 2006-09-21  Mike Kestner <mkestner@novell.com>
10360
10361         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
10362         to deal with people updating the TreeNodeCollection after the tree
10363         is disposed.  "Fixes" 79330.
10364
10365 2006-09-20  Jackson Harper <jackson@ximian.com>
10366
10367         * TextControl.cs: Push the cursor record onto the undo stack
10368         before the delete action. This fixes 78651.
10369
10370 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
10371
10372         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
10373         CreateParams. Fixes 79329.
10374
10375 2006-09-19  Chris Toshok  <toshok@ximian.com>
10376
10377         * XplatUIX11.cs: a couple of blanket code massage passes to clean
10378         things up a bit.  First, get rid of the NetAtoms array (and the NA
10379         enum), and just embed the atoms as static fields.  Also, add a
10380         couple of functions (StyleSet and ExStyleSet) to clean up all the
10381         bitmask testing of styles.
10382
10383         * X11Structs.cs: remove the NA enum, not needed anymore.
10384         
10385 2006-09-19  Chris Toshok  <toshok@ximian.com>
10386
10387         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
10388         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
10389         added cleanup to get MessageBox titles appearing again, which were
10390         broken by my earlier fix for caption-less/ControlBox-less windows.
10391
10392 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
10393
10394         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
10395           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
10396           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
10397           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
10398           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
10399           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
10400           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
10401           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
10402           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
10403           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
10404           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
10405             Inital import.
10406         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
10407           ToolStripButton.cs: Stubs needed for above.
10408         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
10409
10410 2006-09-15  Chris Toshok  <toshok@ximian.com>
10411
10412         * XplatUIX11.cs:
10413         - make the MessageQueues hashtable Synchronized.
10414         
10415         - SendMessage: if the Hwnd is owned by a different thread, use the
10416         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
10417         thread.  Fixes bug #79201.
10418
10419 2006-09-15  Chris Toshok  <toshok@ximian.com>
10420
10421         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
10422         ControlBox == false, we disallow maximize/minimize/close.  If the
10423         form Caption is "" we also disallow move (and get rid of the Title
10424         decoration).  Unfortunately, regardless of how things are set,
10425         we're stuck with the Title and WM menu.
10426
10427 2006-09-15  Chris Toshok  <toshok@ximian.com>
10428
10429         * Application.cs: add locking around the static message_filters
10430         ArrayList, part of #79196.
10431
10432 2006-09-15  Chris Toshok  <toshok@ximian.com>
10433
10434         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
10435         Form.ControlBox == false, the window has no titlebar nor resize
10436         handles.  fixes bug #79368.
10437
10438 2006-09-15  Chris Toshok  <toshok@ximian.com>
10439
10440         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
10441         >= 0.  Fixes bug #79370.
10442
10443 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
10444         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
10445         * Control.cs:
10446             Add properties: LayoutEngine, Margin, DefaultMargin.
10447             Add method: GetPreferredSize.
10448             Move layout logic from PerformLayout to layout engines. 
10449
10450 2006-09-13  Chris Toshok  <toshok@ximian.com>
10451
10452         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
10453         fix for #79326 broke #78718, so this change addresses that.
10454
10455         - in SendWMDestroyMessages remove the call to
10456         CleanupCachedWindows, since we might be recreating the control and
10457         need to maintain the references to right Hwnd handles.  Also, set
10458         the zombie flag to true for each of the children in the hierarchy
10459         instead of calling hwnd.Dispose.  This will cause GetMessage to
10460         ignore all events for the window except for DestroyNotify.
10461
10462         - In GetMessage, ignore messages except for DestroyNotify for
10463         zombie hwnds.
10464         
10465         * Control.cs: revert the is_recreating fix from the last
10466         ChangeLog.  It's definitely "right", but it breaks switching from
10467         an MDI form to a non-MDI form.  Will need to revisit that.
10468
10469         * Hwnd.cs: add a zombie flag, which means "the
10470         client_window/whole_window handles are invalid, but we're waiting
10471         for the DestroyNotify event to come in for them".  Set the flag to
10472         false explicitly if setting WholeWindow/ClientWindow, and also
10473         when Disposing.
10474         
10475 2006-09-13  Chris Toshok  <toshok@ximian.com>
10476
10477         * XplatUIX11.cs: rework window destruction slightly.
10478
10479         - when destroying the windows associated with a control, we don't
10480         need 2 separate XDestroyWindow calls.  Just the one for the
10481         whole_window (or for client_window if whole_window is somehow
10482         IntPtr.Zero -- can this happen?) is enough.
10483
10484         - reworked SendWMDestroyMessages slightly, so we always dispose
10485         the child control hwnd's after sending the messages.
10486         
10487         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
10488         the two places it was used (one was even using hwnd.Handle and the
10489         other hwnd.client_window.  ugh), adding another call in
10490         SendWMDestroyMessages.  We need this new call because now the
10491         DestroyNotify events in the queue will be ignored for the child
10492         controls (as their hwnd's were disposed, and the window id's
10493         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
10494
10495         - this fixes bug #79326.
10496
10497 2006-09-13  Chris Toshok  <toshok@ximian.com>
10498
10499         * Control.cs: don't always set is_recreating to false at the end
10500         of RecreateHandle, since sometimes we're not done (and won't be
10501         until WndProc handles the WM_DESTROY message).  Also, set
10502         is_recreating to false in the WM_DESTROY handling code.  Part of
10503         the fix for bug #79326.
10504
10505 2006-09-13  Miguel de Icaza  <miguel@novell.com>
10506
10507         * X11DesktopColors.cs: Start the droppage of debugging messages.
10508
10509         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
10510
10511 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
10512
10513         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
10514
10515 2006-09-12  Chris Toshok  <toshok@ximian.com>
10516
10517         * DataGrid.cs (get_ListManager): if the list_manager is null, try
10518         to create it using SetDataSource.  Fixes bug #79151.
10519
10520 2006-09-11  Chris Toshok  <toshok@ximian.com>
10521
10522         * XEventQueue.cs: add a DispatchIdle property.
10523
10524         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
10525         either the queue is null, or the queue has DispatchIdle set to
10526         true.
10527         (DoEvents): set queue.DispatchIdle to false around the
10528         peek/translate/dispatch message loop in this method.  This keeps
10529         Application.Doevents from emitting idle events.  Part of the fix
10530         for #78823.
10531
10532 2006-09-11  Chris Toshok  <toshok@ximian.com>
10533
10534         * DataGrid.cs (set_DataSource): make this work for both the
10535         winforms/datagrid test and ReportBuilder.  It seems as though when
10536         we've created a ListManager (or maybe it's if we have a
10537         BindingContext?), when we set the DataSource it clears the
10538         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
10539         #79333.
10540
10541 2006-09-11  Chris Toshok  <toshok@ximian.com>
10542
10543         * XplatUIX11.cs: deal with queue being null, which happens in all
10544         the Clipboard functions.  Fixes one of the two problems mentioned
10545         in #78612.
10546
10547 2006-09-11  Chris Toshok  <toshok@ximian.com>
10548
10549         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
10550         button on various spots (including outside the menu) works closer
10551         to MS, and doesn't crash.  Fixes #79343.
10552
10553 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
10554
10555         * ListView.cs: Do not initialize item_sorter in init. To match MS,
10556         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
10557         and the internal comparer is set. When a new ListViewItemSorter is set,
10558         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
10559         was specified. No further processing is necessary if SortOrder is set
10560         to it's current value. If Sorting is modified to None, and View is
10561         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
10562         (either custom or our internal ItemComparer) to null, on 1.0 profile
10563         only set item_sorter to null if its our internal IComparer. If Sorting
10564         is modified to Ascending or Descending, then use our internal IComparer
10565         if none is set, and if the current IComparer is our internal one then:
10566         on 2.0 profile always replace it with one for new Sorting, and on 1.0
10567         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
10568         Enum.IsDefined to verify whether a valid View value is specified in
10569         its setter. Automatically sort listview items when listview is
10570         created. In Sort, do nothing if ListView is not yet created, or if
10571         no item_sorter is set (no Sorting was set, Sorting was explicitly set
10572         to None or ListViewItemSorter was set to null). Added Sort overload
10573         taking a bool to indicate whether the ListView should be redrawn when
10574         items are sorted (we use this in ListViewItemCollection to avoid double
10575         redraws). Modified our internal IComparer to take the sort order into
10576         account. In Add and AddRange methods of ListViewItemCollection, also
10577         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
10578         view), but use overload with noredraw option to avoid double redraw.
10579         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
10580         true when View is Tile, and do the same when attempting to set View to
10581         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
10582         for selected/checked indices, as it involves overhead when sorting is
10583         done while these collections are not used all that often. Instead
10584         we'll build the indices on demand. Modified IList implementation of
10585         CheckedIndexCollection to use public methods if object is int.
10586         Modified CheckedListViewItemCollection to hide checked items if
10587         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
10588         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
10589         IList implementation in SelectedIndexCollection to use public methods
10590         if object is int. Modified SelectedListViewItemCollection to hide
10591         selected items if listview is not yet created.
10592         * ListViewItem.cs: CheckedIndices list no longer needs to be
10593         maintained separately (see ListView changes). Also clone font, fixes
10594         test failure.
10595
10596 2006-09-11  Mike Kestner  <mkestner@novell.com>
10597
10598         * ComboBox.cs: if we are updating the contents of the currently
10599         selected index, refresh the control or the textbox selection.
10600         [Fixes #79066]
10601
10602 2006-09-11  Mike Kestner  <mkestner@novell.com>
10603
10604         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
10605         the 'specified' logic has been moved there.  This seems like a bug 
10606         in Control.cs, since our current SetBoundsCore completely ignores 
10607         the specified parameter.  Peter's commit seems to indicate that is 
10608         the way the MS control implementation works.  [Fixes #79325]
10609
10610 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
10611
10612         * XplatUI.cs: Set default_class_name to be composed
10613         of current domain id. This allows MWF to be loaded in multiple
10614         domains on Win32.
10615
10616 2006-09-09  Miguel de Icaza  <miguel@novell.com>
10617
10618         * X11Keyboard.cs: If we are unable to obtain the input method, do
10619         not call CreateXic to create the input context.   Should fix
10620         #78944/79276.
10621
10622 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
10623
10624         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
10625           Simplified gnome support by adding more pinvokes to get the
10626           icon for a file or mime type.
10627
10628 2006-09-08  Jackson Harper  <jackson@ximian.com>
10629
10630         * MenuAPI.cs: Deslect popup context menu items before closing the
10631         window, so that you don't see the previously selected item
10632         selected when you reopen the menu.
10633         * TextControl.cs: Update the cursor position even if we don't have
10634         focus.  This fixes typing in things like the ComboBox.  I'm not
10635         totally sure we should always set the visibility if we don't have
10636         focus, but couldn't find any corner cases where the cursor showed
10637         up when it shouldn't.
10638
10639 2006-09-08  Chris Toshok  <toshok@ximian.com>
10640
10641         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
10642         our arrays are length 256.  & 0xff before indexing.  Fixes the
10643         crash in bug #78077.
10644         
10645 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10646
10647         * ThemeWin32Classic.cs: 
10648         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
10649         is true. Handle that check box too.
10650
10651 2006-09-07  Chris Toshok  <toshok@ximian.com>
10652
10653         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
10654         79244.
10655
10656 2006-09-07  Chris Toshok  <toshok@ximian.com>
10657
10658         * Control.cs: in set_BackColor only do the work if
10659         background_color != value.
10660
10661         * XplatUIX11.cs: move the clearing of invalid areas (both client
10662         and nc) to the same block of code where we set (nc_)expose_pending
10663         to false.  That is, move it from PaintEventEnd to PaintEventStart,
10664         so things that cause invalidates from within OnPaint will trigger
10665         another call to OnPaint.  Fixes bug #79262.
10666
10667 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
10668
10669         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
10670         * FileDialog.cs: Fix typo
10671
10672 2006-09-07  Jackson Harper  <jackson@ximian.com>
10673
10674         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
10675         for tab pages if they have any.
10676
10677 2006-09-06  Mike Kestner  <mkestner@novell.com>
10678
10679         * Splitter.cs: use the "current" rect when finishing drag handle
10680         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
10681
10682 2006-09-06  Mike Kestner  <mkestner@novell.com>
10683
10684         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
10685         support offset splitters. [Fixes #79298]
10686
10687 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
10688
10689         * Mime.cs: Fixed a bug that could override the global mime type
10690           result.
10691
10692 2006-09-05  Jackson Harper  <jackson@ximian.com>
10693
10694         * TabControl.cs: Better calculation method for setting the slider
10695         pos. Prevents crashes on really wide tabs.
10696         - Draw Image on tab pages if an image list is used.
10697
10698 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10699
10700         * MonthCalendar.cs: When Font changes, the Size should be
10701         updated to fit the new font's space requirements.
10702
10703 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
10704
10705         * ListBox.cs: If the items are cleared with Items.Clear set
10706           top_index to 0.
10707
10708 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10709
10710         * MonthCalendar.cs: Handle arrow keys as input keys. Also
10711         fire DateChanged event instead of DateSelected event when
10712         the date was changed by keyboard interaction.
10713
10714 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10715
10716         * DateTimePicker.cs: Handle DateChanged for the associated
10717         month_calendar control, and set month_calendar.Font from 
10718         OnFontChanged method, as well as resize the height of the
10719         control when needed. Make PreferredHeight proportional.
10720
10721 2006-09-01  Chris Toshok  <toshok@ximian.com>
10722
10723         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
10724         properties.
10725
10726         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
10727
10728 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
10729
10730         * FileDialog.cs: Set ClientSize instead of window size, to allow space
10731           for decorations (Fixes #79219)
10732
10733 2006-09-01  Mike Kestner  <mkestner@novell.com>
10734
10735         * ComboBox.cs: first stab at sorting plus some selection handling
10736         fixes to bring us more in line with MS behavior.  Also switches back
10737         to index based selection.  Alternative patches for index-based 
10738         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
10739         and latency@gmx.de on bug 78848.  I assume they were similar to this
10740         code I've had simmering in my tree forever.
10741         [Fixes #78848]
10742
10743 2006-09-01  Chris Toshok  <toshok@ximian.com>
10744
10745         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
10746         when setting list position guard against ending up with a -1 index
10747         (the other part of the fix for #78812).  Should probably make sure
10748         we don't need the analogous fix in the ItemDeleted case.
10749
10750         * DataGrid.cs:
10751         - in SetDataSource, work around the fact that the way
10752         OnBindingContextChanged is invoked will cause us to re-enter this
10753         method.  I'll remove the hack once I investigate
10754         OnBindingContextChanged.
10755
10756         - fix the logic in set_DataSource and set_DataMember (basically
10757         what to do if the other of the two is null.)
10758         
10759         - in OnListManagerItemChanged, we need to take into account the
10760         edit row when deciding whether or not to call RecreateDataGridRows
10761         (part of the fix for #78812).
10762
10763 2006-09-01  Jackson Harper  <jackson@ximian.com>
10764
10765         * Splitter.cs: Don't do anything if there is no control to affect
10766         (prevents us from crashing in weird tet cases).
10767         * TreeView.cs: Bounding box for the mouse movement reverting
10768         focus/selection back to previously selected node.  This matches
10769         MS, and makes the tree a lot more useable.
10770         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
10771         use clipping so they are not drawn.  This fixes when the control
10772         is set to have a transparent background, or if it was over an
10773         image.
10774
10775 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
10776
10777         * MimeIcon.cs: Improved handling for reading default icons when
10778           using gnome (2.16 made it necessary). Check and read svg icons
10779           first, then 48x48 and then 32x32 icons.
10780
10781 2006-08-31  Chris Toshok  <toshok@ximian.com>
10782
10783         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
10784         visible.
10785
10786         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
10787         ProcessKeyPreview.  Fixes part of #77806.
10788
10789         * DataGrid.cs: big patch.
10790
10791         - revert the queueing up of DataSource/DataMember if inside
10792         BeginInit/EndInit calls.  That's not the way the datagrid achieves
10793         its delayed databinding.  Instead, call SetDataSource in
10794         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
10795         #78811.
10796
10797         - Also, it wasn't mentioned in #78811, but the test case exhibits
10798         behavior that was lacking in our datagrid implementation - Columns
10799         that have mapping names that don't exist in the datasource's
10800         properties aren't shown.  Yuck.  To fix this I added the bound
10801         field to the column style, and basically any calculation to figure
10802         out anything about columns uses a loop to find the bound columns.
10803         still need to investigate if I can cache an array of the bound
10804         columns or if the indices must be the same.
10805
10806         - When setting CurrentCell, we no longer abort if the cell being
10807         edited was in the add row.  This fixes the other part of #77806.
10808
10809         - The new code also fixes #78807.
10810         
10811         * ThemeWin32Classic.cs: perpetrate the same disgusting
10812         column.bound field hack, and only render bound fields.
10813
10814 2006-08-31  Chris Toshok  <toshok@ximian.com>
10815
10816         * DataGridColumnStyle.cs: add bound field.  this field is true if
10817         the datasource has a property corresponding to the mapping name.
10818
10819         * DataGridTableStyle.cs: set the bound field on the column styles
10820         depending on whether or not we have a column for that property.
10821
10822 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
10823
10824         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
10825           splitter control (fixes #79228)
10826
10827 2006-08-31  Chris Toshok  <toshok@ximian.com>
10828
10829         * DataGridColumnStyle.cs: we need to delay the assignment of
10830         property descriptor until the last possible moment due to the lazy
10831         databinding stuff in the datagrid.  Also, fix the exceptions
10832         thrown by CheckValidDataSource to match MS.
10833
10834 2006-08-31  Jackson Harper  <jackson@ximian.com>
10835
10836         * Form.cs: When activated select the active control, if there is
10837         no active control, we select the first control.
10838         * XplatUIX11.cs: If there is no focus control when we get a
10839         FocusIn event, find the toplevel form and activate it.  This
10840         occurs when you popup a window, it becomes the focus window, then
10841         you close that window, giving focus back to the main window.
10842
10843 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10844
10845         * MonthCalendar.cs: 
10846         * ThemeWin32Classic.cs: Cache Font in bold style, as well
10847         as StringFormat with Center alignments in MonthCalendar,
10848         instead of creating new ones when drawing the control. 
10849         Also, draw the month name in bold style.
10850
10851 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10852
10853         * Control.cs:
10854           - PerformLayout(): It would seem MS performs the fill even if the 
10855             control is not visible (part of #79218 fix)
10856           - ResetBackColor(): Use the setter to reset the color, to allow
10857             overriders to catch the change.
10858         * Form.cs:
10859           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
10860           - CreateHandle(): dito (part of $79218 fix)
10861           - Don't set an icon if we have a dialog
10862         * ScrollableControl.cs:
10863           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
10864           - ScrollIntoView(): No need to scroll if control is already visible
10865             (resolves fixme and fixes #79218)
10866
10867 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10868
10869         * MonthCalendar.cs: Change proportions in SingleMonthSize
10870         to match the aspect of the original control.
10871
10872 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
10873
10874         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
10875           get updated when they get maximized.
10876
10877 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10878
10879         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
10880
10881 2006-08-29  Chris Toshok  <toshok@ximian.com>
10882
10883         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
10884
10885 2006-08-29  Jackson Harper  <jackson@ximian.com>
10886
10887         * TreeView.cs: Need to track selected node and highlighted node,
10888         they aren't always the same thing, when the mouse is down on a
10889         node it is hilighted, but not selected yet.
10890         - Do the HideSelection stuff right
10891         - Need to focus on rbutton mouse down. And redraw selection when
10892         right click is mouse upped.
10893
10894 2006-08-29  Mike Kestner  <mkestner@novell.com>
10895
10896         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
10897         when SubItems.Count < Columns.Count.  [Fixes #79167]
10898
10899 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
10900
10901         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
10902
10903 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
10904
10905         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
10906           from X. Only send based on ConfigureNotify if we don't have the
10907           correct location in hwnd (if the window manager moved us)
10908
10909 2006-08-28  Mike Kestner  <mkestner@novell.com>
10910
10911         * ListView.cs: remove a TODO. 
10912         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
10913         [Fixes ListView part of #79166]
10914
10915 2006-08-28  Mike Kestner  <mkestner@novell.com>
10916
10917         * ListView.cs: move wheel handler to parent since it is focused
10918         instead of the item_control now.  [Fixes #79177]
10919
10920 2006-08-28  Mike Kestner  <mkestner@novell.com>
10921
10922         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
10923         when the control is focused. [Fixes #79171]
10924
10925 2006-08-28  Mike Kestner  <mkestner@novell.com>
10926
10927         * ListView.cs: size the item and header controls for empty and
10928         unscrollable views.
10929         * ThemeWin32Classic.cs: draw disabled backgrounds.
10930         [Fixes #79187]
10931
10932 2006-08-28  Chris Toshok  <toshok@ximian.com>
10933
10934         * Form.cs: remove unused "active_form" static field.
10935
10936         * Hwnd.cs: lock around accesses to static windows collection.
10937
10938         * Application.cs: lock threads in Exit ().
10939
10940 2006-08-28  Chris Toshok  <toshok@ximian.com>
10941
10942         * NativeWindow.cs: lock around accesses to window_collection.
10943         
10944 2006-08-28  Chris Toshok  <toshok@ximian.com>
10945
10946         * Control.cs: err, fix this the right way, by locking on controls
10947         when using it.  not by making it synchronized.
10948
10949 2006-08-28  Chris Toshok  <toshok@ximian.com>
10950
10951         * Control.cs: make the static "controls" field synchronized, as it
10952         gets updated from multiple threads.
10953
10954 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
10955
10956         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
10957           Prevent other threads from exiting when calling thread sets quit state.
10958         * XEventQueue.cs: Added PostQuitState property
10959
10960 2006-08-27  Chris Toshok  <toshok@ximian.com>
10961
10962         * AsyncMethodData.cs: add a slot for the window handle.
10963
10964         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
10965         window (the destination control's window, not the foster window).
10966
10967         * Control.cs (BeginInvokeInternal): store the window's handle in
10968         the AsyncMethodData.
10969         
10970
10971 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
10972
10973         * XplatUIX11.cs:
10974           - PostQuitMessage: Removed resetting S.D display handle, we might have
10975             another loop started after calling PostQuitMessage (Fixes #79119)
10976           - Created destructor to reset S.D handle
10977
10978 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
10979
10980         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
10981
10982 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10983
10984         * TextControl.cs (Insert): Update the caret position even if we don't
10985           have a handle yet, just don't call the driver in that case.
10986         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
10987           to the end of the new selection text (Fixes #79184)
10988
10989 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10990
10991         * Form.cs (Activate): Only activate if the handle is created)
10992         * Control.c:
10993           - Mark window as invisible when it's disposed
10994           - Check if window handle is created when setting window visible, 
10995             instead of relying just on the is_created variable
10996           - Check if object is disposed when creating the control (Fixes #79155)
10997
10998 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
10999
11000         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
11001           when allowing layout again. Otherwise we re-generate the anchoring 
11002           distance to the border again and actually alter what the user wanted
11003           This is ugly, it'd be better if we used DisplayRectangle instead of
11004           ClientRectangle for Control.UpdateDistances, but that causes us to
11005           have other problems (initial anchoring positons would be wrong)
11006           (Fixes #78835)
11007
11008 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11009
11010         * Control.cs:
11011           - The size and location setters shouldn't go directly to 
11012             SetBoundsCore, but to SetBounds, which triggers layout on the
11013             parent, then calls SetBoundsCore. (Related to fix for #78835)
11014           - SetBounds: Moved actual location update code into this function
11015             from SetBoundsCore, to match MS. Added call to PerformLayout if
11016             we have a parent (to trigger resizing of anchored parents if the 
11017             child size has changed (see testcase for #78835) 
11018         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
11019           new control code
11020         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
11021
11022 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11023
11024         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
11025           System.Drawing when a toplevel window gets closed; there might
11026           be other toplevel windows belonging to the same app (Fixes #78052)
11027
11028 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
11029
11030         * FileDialog.cs: After reading FileDialog settings from mwf_config
11031           use Desktop prefix only if a real folder doesn't exist anymore.
11032         * FontDialog.cs: Added char sets.
11033           It is now possible to select the font, size or style with the
11034           textboxes.
11035
11036 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
11037
11038         * PrintPreviewDialog.cs: Use assembly name constants.
11039
11040 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11041
11042         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
11043           scrollbar from whacking it's buttons)
11044
11045 2006-08-24  Chris Toshok  <toshok@ximian.com>
11046
11047         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
11048         in this patch (aggregating setting Left/Top/Width/Height to
11049         setting Bounds on the scrollbars), but the crux of the fix is in
11050         Recalculate, where we scroll by the remaining scroll_position if
11051         we're hiding a scrollbar.  The 2*$5 reward in the comment is
11052         serious.
11053
11054 2006-08-24  Jackson Harper  <jackson@ximian.com>
11055
11056         * MdiClient.cs:
11057         * MdiWindowManager.cs: If the form is made a non-mdi window we
11058         need to remove the form closed event so that closing forms works
11059         correctly.
11060
11061 2006-08-24  Jackson Harper  <jackson@ximian.com>
11062
11063         * Control.cs: Make IsRecreating internal so that the driver can
11064         check it
11065         - Temporarily remove the Hide when controls are removed, its
11066         making a whole bunch of things not work because visibility isn't
11067         getting reset elsewhere correctly
11068         * Form.cs: Need to do a full handle recreation when the mdi parent
11069         is set.
11070         * XplatUIX11.cs: If we are recreating handles don't dispose the
11071         HWNDs.  What was happening is the handles were being recreated in
11072         SendWMDestroyMessages, but then flow continued on in that method
11073         and destroyed the new handles.
11074
11075 2006-08-23  Jackson Harper  <jackson@ximian.com>
11076
11077         * Form.cs: MdiClient is always at the back of the bus
11078         * Control.cs: When the order of items in the collection is changed
11079         we need to reset the all_controls array
11080         - do the same sorta setup thats done when adding a control when a
11081         control is set on the collection.
11082
11083 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11084
11085         * TextBoxBase.cs (get_Text): Return an empty array if our document
11086           is empty (fixes #79052)
11087
11088 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11089
11090         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
11091           on WM_SYSCHAR messages (fixes #79053)
11092
11093 2006-08-23  Chris Toshok  <toshok@ximian.com>
11094
11095         * DataGrid.cs: fix flickering when scrolling vertically.
11096
11097 2006-08-23  Chris Toshok  <toshok@ximian.com>
11098
11099         * DataGrid.cs (EndEdit): only invalidate the row header when we
11100         need to.
11101
11102 2006-08-23  Chris Toshok  <toshok@ximian.com>
11103
11104         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
11105         methods.  fixes the flicker when scrolling around.
11106
11107 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11108
11109         * FileDialog.cs: Making sure the control is created before we get a 
11110           chance to use it with BeginInvoke (Fixes #79096)
11111
11112 2006-08-23  Chris Toshok  <toshok@ximian.com>
11113
11114         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
11115         width to use when painting the rows.
11116
11117 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11118
11119         * TextBoxBase.cs:
11120           - Throw ArgumentException if a negative value is passed to SelectionLength
11121           - Update the selection end if start is moved. end needs to be always
11122             after start. (Fixes #79095)
11123           - Track selection length; MS keeps the selection length even if start
11124             is changed; reset on all other operations affection selection
11125
11126 2006-08-22  Jackson Harper  <jackson@ximian.com>
11127
11128         * TreeView.cs: Make sure both scrollbars get displayed and sized
11129         correctly when the other bar is visible.
11130         - Use the original clip rectangle for checking if the area between
11131         the two scrollbars is visible, not the viewport adjusted clipping
11132         rectangle.
11133
11134 2006-08-22  Jackson Harper  <jackson@ximian.com>
11135
11136         * Binding.cs: We don't use IsBinding because it requires the
11137         control to be created, which really shouldn't be necessary just to
11138         set a property on the control.
11139
11140 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11141
11142         * ComboBox.cs: Some CB.ObjectCollection methods must throw
11143         ArgumentNullReferenceException when the argument is null.
11144
11145 2006-08-21  Jackson Harper  <jackson@ximian.com>
11146
11147         * Timer.cs: Track the thread that the timer is started in (NOT
11148         CREATED), this way messages for it will only be triggered on its
11149         queue.
11150         * XEventQueue.cs: Track the timers here, this makes timers per
11151         thread, like MS.
11152         * XplatUIX11.cs: The timers are moved to the XEventQueue.
11153
11154 2006-08-19  Chris Toshok  <toshok@ximian.com>
11155
11156         * XplatUIX11.cs: after further communication with pdb, we get the
11157         best of both worlds.  SetZOrder working for un-Mapped windows, and
11158         no X errors for un-mapped windows.
11159
11160 2006-08-19  Chris Toshok  <toshok@ximian.com>
11161
11162         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
11163         as it was causing pdn toolbars to not have the correct stacking.
11164
11165 2006-08-18  Mike Kestner  <mkestner@novell.com> 
11166
11167         * ListView.cs : guard against negative ClientArea.Width in scrollbar
11168         calculation.  Not sure why control should ever be setting a negative
11169         width though.  Fixes #78931.
11170
11171 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11172
11173         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
11174         null items in ObjectCollection class.
11175         * ListBox.cs.: Likewise.
11176
11177 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
11178
11179         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
11180           as the base method in ThemeWin32Classic should work fine.
11181           Fixed bug #78607.
11182
11183 2006-08-18  Jackson Harper  <jackson@ximian.com>
11184
11185         * Binding.cs: When validating if the value entered doesn't convert
11186         properly reset to the old value.
11187         * RadioButton.cs: Don't fire click when we get focus.
11188
11189 2006-08-18  Jackson Harper  <jackson@ximian.com>
11190
11191         * FileDialog.cs: Paint the selection on the directory combobox the
11192         same way as on MS. 
11193
11194 2006-08-17  Jackson Harper  <jackson@ximian.com>
11195
11196         * ErrorProvider.cs: Don't allow the error control to be selected.
11197         * Control.cs: Don't send the SetFocus messages, the control
11198         activation will do this, and if we do it blindly here validation
11199         does not work.
11200
11201 2006-08-17  Jackson Harper  <jackson@ximian.com>
11202
11203         * Control.cs:
11204         * ContainerControl.cs: Make validation events fire in the correct
11205         order.  TODO: For some reason the first validation event is not
11206         getting fired.
11207
11208 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11209
11210         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
11211
11212 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11213
11214         * ComboBox.cs : implement scroll wheel support for popped-down
11215         state. Fixes #78945. 
11216
11217 2006-08-17  Jackson Harper  <jackson@ximian.com>
11218
11219         * TreeView.cs: Specify treeview actions (old patch that didn't get
11220         committed for some reason).
11221         - Don't let the mouse wheel scroll us too far.  Just want to make
11222         the bottom node visible, not scroll it all the ways to the top.
11223
11224 2006-08-17  Jackson Harper  <jackson@ximian.com>
11225
11226         * XplatUIX11.cs: Mouse wheel events go to the focused window.
11227
11228 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11229
11230         * ComboBox.cs : don't do mouseover selection in simple mode.
11231
11232 2006-08-16  Jackson Harper  <jackson@ximian.com>
11233
11234         * Form.cs: Fire the closing events for all the mdi child windows
11235         when a window is closed.  If the cancel args are set to true, the
11236         main window still gets the event fired, but it doesn't not close.
11237         * MdiWindowManager.cs: Do this closing cleanup in a Closed
11238         handler, instead of when the button is clicked, so cancelling the
11239         close works correctly.
11240         * ComboBox.cs: Send the mouse down to the scrollbar.
11241
11242 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11243
11244         * ListBox.cs: When passing 'null' to SelectedItem,
11245         set SelectedIndex to -1, to unselect items. This is the
11246         observed behaviour in .Net.
11247
11248 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
11249
11250         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
11251           MS flags saying there won't be any. (fixes #78800)
11252         * Control.cs (HandleClick): Made virtual
11253
11254 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
11255
11256         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
11257           cultures. Fixed bug #78399.
11258
11259 2006-08-16  Jackson Harper  <jackson@ximian.com>
11260
11261         * Form.cs: Use the MdiClients MdiChildren property to access
11262         MdiChildren instead of creating the array from the child controls.
11263         * MdiClient.cs: Maintain a separate array of the mdi children, so
11264         that insertion order is maintained when the Z-order is changed.
11265
11266 2006-08-16  Mike Kestner  <mkestner@novell.com> 
11267
11268         * ListView.cs : add an ItemComparer and default to it for sorting.
11269         Fixes #79076, but sorting needs a complete overhaul to be compat with
11270         MS.
11271
11272 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11273
11274         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
11275
11276 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11277
11278         * Hwnd.cs (Mapped): Properly traverse the tree
11279
11280 2006-08-15  Chris Toshok  <toshok@ximian.com>
11281
11282         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
11283         pass manager.Current.GetType() to ParseData.  It has to be the
11284         property type.  So, hold off doing the ParseData until we're in
11285         SetPropertyValue where we know the type.  This fixes the crash in
11286         #78821 but the textbox is still empty.
11287
11288 2006-08-15  Chris Toshok  <toshok@ximian.com>
11289
11290         * DataGrid.cs:
11291         - when we're scrolling, only call Edit() again if the
11292         current cell is still unobscured. Fixes bug #78927.
11293         - when handling mousedown on a cell, ensure the cell is visible
11294         before calling Edit.
11295         - remove the properties from DataGridRow, and remove the
11296         DataGridParentRow class altogether.
11297         
11298
11299 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11300
11301         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
11302           fire OnTextChanged by ourselves. There's no point calling base,
11303           we don't set the base value anywhere else. Fixes #78773.
11304
11305 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11306
11307         * ListBox.cs: Call CollectionChanged when modifying
11308         an item from Items indexer, to update the actual items
11309         in the list box.
11310
11311 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11312
11313         * PrintDialog.cs: Small fixes for focus and a pair of checks,
11314         to match .Net behaviour.
11315
11316 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11317
11318         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
11319
11320 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11321
11322         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
11323
11324 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11325
11326         * MessageBox.cs: Prevent potential NRE exception.
11327         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
11328
11329 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11330
11331         * MessageBox.cs: Calculate the owner of a messagebox, also make
11332           it topmost. Fixes #78753
11333
11334 2006-08-14  Chris Toshok  <toshok@ximian.com>
11335
11336         * XplatUIX11.cs: A couple of fixes so that metacity will let us
11337         programmatically move windows.  first, set the PPosition hint as
11338         well as the USPosition hint.  Second include some code from pdb
11339         that sets the window type to NORMAL when we set the transient for
11340         hint.  This is because, in the absence of a window type, metacity
11341         thinks any window with TransientFor set is a dialog, and refuses
11342         to let us move it programmatically.  fascists.
11343
11344 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11345
11346         * XplatUIX11.cs: When setting normal hints, take into consideration
11347           an different hints previously set so we don't delete them (fixes #78866)
11348
11349 2006-08-12  Chris Toshok  <toshok@ximian.com>
11350
11351         * ToolBarButton.cs: make Layout return a boolean, if something to
11352         do with the button's layout changed.
11353
11354         * ToolBar.cs:
11355         - add another parameter to Redraw, @force, which all existing
11356           calls set to true.
11357         - make the Layout function return a boolean which is true if the
11358           layout has actually changed.  Redraw now uses this (and @force)
11359           to determine when to invalidate.  At present the only place
11360           where @force can be false is the call from OnResize, when
11361           background_image == null.  So, resizing a toolbar when the
11362           layout doesn't change results in no drawing.
11363
11364 2006-08-12  Chris Toshok  <toshok@ximian.com>
11365
11366         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
11367         the VScrollBar and HScrollbar reversed.  oops.
11368
11369         * DataGrid.cs: fix the logic that assigns sizes to the implicit
11370         scrollbars.  we were assigning them twice (once in
11371         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
11372         therefore causing two scrollbar resizes (and redraws?) to happen
11373         per grid resize.
11374
11375 2006-08-12  Chris Toshok  <toshok@ximian.com>
11376
11377         * ToolBarButton.cs: redraw the entire button if the theme tells us
11378         to.
11379
11380         * Theme.cs: add ToolBarInvalidateEntireButton.
11381
11382         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
11383         buttons, just the border.
11384
11385         * ThemeNice.cs: redraw the entire toolbar button since we need to
11386         draw the highlight image.
11387
11388         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
11389         we need to redraw the entire button (not just the border).
11390
11391 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11392
11393         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
11394           for vertical bars. Fixes the mismatches shown by #78513
11395
11396 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
11397
11398         * FileDialog.cs: If a saved/remembered path doesn't exist
11399           anymore, fall back to "Desktop".
11400
11401 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11402
11403         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
11404           parent. It's apparently legal to not have one
11405         * XplatUIX11.cs:
11406           - SetZOrder: Don't try to set Z-Order on an unmapped window
11407           - CreateWindow: 0,0 are legal coordinates for a window. don't move
11408             it unless the coordinates are negative
11409
11410 2006-08-10  Mike Kestner  <mkestner@novell.com>
11411
11412         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
11413         when setting to null per msdn docs.  Fixes #78854.
11414
11415 2006-08-10  Chris Toshok  <toshok@ximian.com>
11416
11417         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
11418         flickering by setting a clip rectangle on the Graphics when we
11419         need to redraw just a particular menuitem.  Also, rename "OnClick"
11420         to "OnMouseDown" to reflect what it actually is.
11421         
11422         * Form.cs: track the OnMouseDown change.
11423
11424 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
11425
11426         * CommonDialog.cs: Properly inherit the CreateParams from the form
11427           and only change what we need. Fixes #78865
11428
11429 2006-08-10  Chris Toshok  <toshok@ximian.com>
11430
11431         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
11432         flickering in flat mode (and most of the flickering in general) by
11433         only invalidating the button border (and not the entire rectangle)
11434         when the state changes.  A couple of cases still flicker:
11435         ToggleButtons, and the dropdown arrow case when the user mouse
11436         ups.
11437
11438 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
11439
11440         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
11441           for german keyboards. Numlock state shouldn't affect the behaviour
11442           of the Del key. Fixes bug #78291.
11443
11444 2006-08-10  Chris Toshok  <toshok@ximian.com>
11445
11446         * ListControl.cs: remove the items.Clear line from BindDataItems,
11447         as this is the first thing done by both subclasses in their
11448         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
11449         passed -1, refresh the list.  This gets databinding working when
11450         the datasource is set on the list before the datasource is
11451         populated (as in wf-apps/ReportBuilder.)
11452
11453         * ComboBox.cs: remove the argument to BindDataItems.  This call
11454         should really go away, and be initiated by the ListControl code.
11455
11456         * ListBox.cs: same.
11457
11458 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11459
11460         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
11461           if no data is in the document when the control is displayed
11462
11463 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
11464
11465         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
11466           yes (fixes #78806)
11467         * TextControl.cs: 
11468           - PositionCaret: Allow positioning of caret but don't call methods 
11469             requiring a handle if the window isn't created yet
11470           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
11471           - owner_HandleCreated: Don't position the caret, just update it's 
11472             location. User might have already set a different position
11473
11474 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11475
11476         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
11477           windows. Screws up the returned coordinates for child windows. 
11478           Fixes #78825. I'm hoping this doesn't break something, since the
11479           code was explicitly put in 8 months ago, but no bug was attached.
11480           Menus still seem to work properly.
11481
11482 2006-08-08  Chris Toshok  <toshok@ximian.com>
11483
11484         * DataGrid.cs: make BeginInit/EndInit actually do what they're
11485         supposed to do - delay data binding until the EndInit call.  Also,
11486         make the table style collection's CollectionChangeAction.Refresh
11487         work properly.
11488
11489         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
11490         (with action = Refresh) when a consituent table's MappingName is
11491         changed.
11492
11493 2006-08-08  Chris Toshok  <toshok@ximian.com>
11494
11495         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
11496         Invalidate, since changing the text can change the size of the all
11497         toolbar buttons.
11498
11499 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11500
11501         * Form.cs (AddOwnedForm): Still need to add the form to our listif
11502           we don't have it yet
11503
11504 2006-08-08  Chris Toshok  <toshok@ximian.com>
11505
11506         * PrintControllerWithStatusDialog.cs: don't .Close() the status
11507         dialog, as this causes X errors later on, since we actually
11508         destroy the window.  Instead, .Hide() it.
11509
11510 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11511
11512         * ComboBox.cs: Added focus reflection for popup window
11513         * XplatUIX11.cs: 
11514           - Removed transient setting for non-app windows for now, not sure it
11515             was needed
11516           - Fixed logic checking if we have captions when deciding 
11517             override_redirect, WS_CAPTION is two bits and a 0 check was not
11518             sufficient
11519           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
11520             complicated
11521         * Form.cs: 
11522           - AddOwnedForm: Don't just add the form to the list, call the property
11523             to ensure the driver is informed about the ownership as well
11524           - CreateHandle: Set the TopMost status in the driver if we have an owner
11525         * XplatUI.cs: Fixed debug statement
11526
11527 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
11528         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11529           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
11530           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
11531           TrackBarRenderer.cs: Make constructor private.
11532         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
11533         * ProfessionalColorTable.cs: Make properties virtual.
11534
11535 2006-08-06  Duncan Mak  <duncan@novell.com>
11536
11537         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
11538         is not changing.
11539
11540 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11541         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11542           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
11543           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
11544           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
11545           Initial import of new 2.0 classes.
11546
11547 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11548         * Application.cs: Add 2.0 VisualStyles properties.
11549
11550 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11551         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11552           XplatUIX11.cs: Create property to allow access to existing private
11553           variable "themes_enabled"
11554
11555 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11556
11557         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
11558         file size, as otherwise our class libraries fail using windows. Fixes
11559         bug #78759.
11560
11561 2006-08-04  Jackson Harper  <jackson@ximian.com>
11562
11563         * Form.cs:
11564         * XplatUIX11.cs: Move the toolwindow window manager creation into
11565         the X11 driver, this way on win32 we can let windows create/handle
11566         the toolwindows.
11567
11568 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11569
11570         * PrintDialog.cs: Remove some redundant checks, add some others,
11571         clean some code, and move the focus to the text boxes when the
11572         values are incorrect.
11573
11574 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
11575
11576         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
11577
11578 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11579
11580         * NumericUpDown.cs: Setting the Minimum and Maximum is now
11581           handled correctly. Fixes bug #79001.
11582
11583 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11584
11585         * PrintDialog.cs: The "Copies" numeric up down must have
11586         set the Minimum property to 1; only if the value is bigger
11587         than 1, activate "Collate" check box. This is the behaviour of .Net.
11588         Also modify the Document elements only if it is not null.
11589
11590 2006-08-03  Jackson Harper  <jackson@ximian.com>
11591
11592         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
11593         length. (We have a larger array then actual node count).
11594                 
11595 2006-08-03  Jackson Harper  <jackson@ximian.com>
11596
11597         * ComboBox.cs: Don't show selection by default.
11598         - The SelectAll isn't needed here, since the focus code should do
11599         that
11600         - DDL style lists to manual selection drawing, so when they
11601         get/lose focus they have to invalidate.
11602
11603 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
11604
11605         * TextBoxBase.cs: Don't always show all selections by default.
11606
11607 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
11608         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
11609           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
11610           Fixed various typos.
11611
11612 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11613
11614         * Control.cs: Removing the controls in a ControlCollection with
11615           Clear now hides the controls as expected. Fixes bug #78804. 
11616
11617 2006-08-03  Jackson Harper  <jackson@ximian.com>
11618
11619         * Control.cs: Revert previous focus patch, it breaks reflector.
11620
11621 2006-08-03  Jackson Harper  <jackson@ximian.com>
11622
11623         * ComboBox.cs: Cleanup selection and focus with the combobox.
11624         This also eliminates some duplicated keyboard code, since now
11625         everything is handled by the main class.
11626         - Make list selection work on mouse up instead of down, to match
11627         MS.
11628
11629 2006-08-02  Jackson Harper  <jackson@ximian.com>
11630
11631         * Control.cs: Setting focus needs to go through the whole
11632         selection mechanism.
11633
11634 2006-08-02  Chris Toshok  <toshok@ximian.com>
11635
11636         * PrintPreviewDialog.cs: change MinimumSize to use
11637         base.MinimumSize so it works.
11638
11639 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
11640
11641         * TextControl.cs:
11642           - UpdateCaret: Added sanity check in case caret isn't defined yet
11643           - Line.Delete: Now updating selection and caret markers if we're
11644             transfering a node (Properly fixes #78323)
11645           - SetSelectionEnd: Added sanity check
11646         * TextBoxBase.cs: Removed broken attempt to fix #78323
11647
11648 2006-08-01  Chris Toshok  <toshok@ximian.com>
11649
11650         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
11651         Close() call is handled in Form, not here.
11652
11653 2006-08-01  Chris Toshok  <toshok@ximian.com>
11654
11655         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
11656         layout/rendering.
11657
11658         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
11659         for sizes < 100% zoom.  The code now aggressively attempts to keep
11660         from calling document.Print (), and tries not to use the scaling
11661         g.DrawImage whenever possible (it still does if you scale to >
11662         100%, since usually that involves huge images).
11663
11664         * PrintPreviewControl.cs: hook up the close button.
11665
11666 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
11667         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
11668           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
11669           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
11670           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
11671           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
11672           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
11673           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
11674           Removed [Serializable] for 2.0 Event Handlers.
11675
11676 2006-07-31  Jackson Harper  <jackson@ximian.com>
11677
11678         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
11679         * TextControl.cs: Uncomment out the body of this method.
11680
11681 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
11682
11683         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
11684           standard cursors.
11685
11686 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11687
11688         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
11689           that embed TextBox and need selections visible even if textbox is not
11690           focused to enforce that behaviour.
11691         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
11692           selection drawing
11693
11694 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11695
11696         * TextControl.cs:
11697           - Added new SetSelectionStart/SetSelectionEnd overloads
11698           - Fixed viewport width assignment to be accurate
11699           - Adjusted alignment line shift calculations to allow cursor on right
11700             aligned lines to be always visible at the right border (like MS)
11701         * TextBoxBase.cs:
11702           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
11703           - TextBoxBase_SizeChanged: recalculating canvas on size changes
11704           - CalculateScrollBars: Use ViewPort size instead of window size, to
11705             properly consider space occupied by the border and scrollbars 
11706             (Fixes #78661)
11707           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
11708             calculations; no longer leaves artifacts
11709           - CaretMoved: Adjusted window scrolling to match MS and fixed several
11710             calculation bugs (Still missing right/center align calculations)
11711
11712 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
11713
11714         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
11715           use of both scroll rect and clip rect, as they do the same.
11716
11717 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11718
11719         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
11720           in the event handler (fixes #78912)
11721
11722 2006-07-31  Chris Toshok  <toshok@ximian.com>
11723
11724         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
11725         grid.ListManager.Count, since grid.ListManager might be null.
11726         This of course begs the question "why are we drawing rows for a
11727         grid with no list manager (and therefor no rows)?"  Fixes the
11728         crash in bug #78929.
11729
11730 2006-07-31  Chris Toshok  <toshok@ximian.com>
11731
11732         * RelatedPropertyManager.cs: Don't always chain up to the parent
11733         ctor.  instead, call SetDataSource if the parent's position is !=
11734         -1.  Fixes the crash in #78822.
11735
11736 2006-07-31  Chris Toshok  <toshok@ximian.com>
11737
11738         * DataGrid.cs (get_ListManager): use field instead of property
11739         accessors for datasource and datamember.
11740         (RowsCount): make internal again.
11741         (OnMouseDown): end edits before resizing columns/rows.
11742         (OnMouseUp): restart edits after resizing columns/rows.
11743
11744 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
11745
11746         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
11747           This fixes the situation where the last set cursor is displayed
11748           whenever the mouse is over scrollbars.
11749
11750 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11751
11752         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
11753         Document properties, as well as initial values.
11754
11755 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
11756
11757         * XplatUIWin32.cs (SetBorderStyle): Setting both border
11758           and ClientEdge results in a 3-pixel border, which is
11759           wrong.
11760
11761 2006-07-28  Jackson Harper  <jackson@ximian.com>
11762
11763         * TreeNodeCollection.cs: Fix the clear method.
11764         - Fix the Shrink also
11765
11766 2006-07-27  Jackson Harper  <jackson@ximian.com>
11767
11768         * TreeView.cs: Make sure the visible order is computed when we
11769         attempt to size the scrollbars (for trees that mess with the
11770         scrolling when they shouldn't.
11771         - Make sure to give the scrollbars valid values.
11772
11773 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11774
11775         * XplatUIX11.cs: Move motion compression code to where it
11776           has less performance impact
11777
11778 2006-07-26  Jackson Harper  <jackson@ximian.com>
11779
11780         * UpDownBase.cs: When the control is selected make the child
11781         controls non selectable, so that a click on them won't do a
11782         focus/unfocus cycle.
11783         - Don't give focus to the text box when the spinner is selected.
11784         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
11785
11786 2006-07-26  Chris Toshok  <toshok@ximian.com>
11787
11788         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
11789         satisfied with this solution.  If the bitmaps are small, we should
11790         just cache them in the PrintPreviewDialog and draw them here.
11791         Also, the layout is broken for the 2-up and 3-up cases.
11792
11793         * Theme.cs: add PrintPReviewControlPaint.
11794
11795         * PrintPreviewDialog.cs: first pass implementation.
11796
11797         * PrintPreviewControl.cs: first pass implementation.  No
11798         scrollbars yet.
11799
11800         * PrintDialog.cs: only validate fields if that particular portion
11801         of the UI is enabled.  Also, set the document's controller to a
11802         PrintControllerWithStatusDialog wrapping the document's print
11803         controller.
11804
11805         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
11806         bring up a SaveFileDialog (i hope we don't want to match the
11807         behavior of the crappy windows file entry) and set the
11808         PrinterSettings.PrintFileName accordingly.
11809
11810 2006-07-26  Jackson Harper  <jackson@ximian.com>
11811
11812         * ContainerControl.cs: Add a field that disables auto selecting
11813         the next control in a container when the container is activated.
11814         * UpDownBase.cs: Don't select the text box when the up down is
11815         selected.
11816
11817 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11818
11819         * XEventQueue.cs: Added methods for peeking (used for compression
11820           of successive events)
11821         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
11822           mouse move events (fixes #78732)
11823
11824 2006-07-25  Jackson Harper  <jackson@ximian.com>
11825
11826         * UpDownBase.cs: Use an internal class for the textbox so that we
11827         can control focus.  the updown control should always have focus,
11828         if either the text area or the buttons are clicked.
11829         - Send the key messages to the textbox, since it never actually
11830         has focus
11831         - Activate and decativate the textbox caret.
11832
11833 2006-07-24  Jackson Harper  <jackson@ximian.com>
11834
11835         * Control.cs: Use the directed select when selecting a control,
11836         this way the container controls override will get called and the
11837         whole ActiveControl chain will get triggered.  TODO: probably need
11838         to make sure this gets done everywhere instead of the old
11839         Select(Control).
11840         * ContainerControl.cs: Implement the directed Select method to
11841         find and activate the correct child control.    
11842         
11843 2006-07-22  Mike Kestner  <mkestner@novell.com>
11844
11845         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
11846         menu handling code so that clicks without a grab work too.
11847         [Fixes #78914]
11848
11849 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
11850
11851         * FileDialog.cs: Enable the BackButton when dirstack has one element.
11852           Added some small optimizations.
11853
11854 2006-07-21  Matt Hargett  <matt@use.net>
11855
11856         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
11857
11858 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
11859
11860         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
11861           tests pass and match MS in some strange border cases.
11862
11863 2006-07-21  Chris Toshok  <toshok@ximian.com>
11864
11865         * ThemeWin32Classic.cs: handle drawing of the relation links and
11866         parent row buttons.
11867
11868         * Theme.cs: change args to DataGridPaintParentRow.
11869
11870         * DataGrid.cs: Don't use controls for the relation links and
11871         parent buttons, so we have to handle all their interactions in
11872         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
11873         when we're navigating through child tables, so we can reinstate
11874         selection, expanded state, current cell, etc.
11875
11876 2006-07-20  Chris Toshok  <toshok@ximian.com>
11877
11878         * ToolBar.cs: When we redraw a button, for whatever reason,
11879         there's no reason to redraw the entire toolbar.  Also, don't call
11880         Control.Refresh from within Redraw, as it's much heavier than
11881         Invalidate (which is really what we want).
11882
11883 2006-07-20  Chris Toshok  <toshok@ximian.com>
11884
11885         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
11886         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
11887         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
11888         traces from within a debug IBindingList datasource
11889         (in mono/winforms/datagrid) for *days*, I've finally gotten things
11890         to work in a similar fashion.
11891
11892 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11893
11894         * ListBox.cs: Don't call Sort () when setting 
11895         the Sorted property to false (avoid an unnecessary sort).
11896
11897 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11898
11899         * ListControl.cs: DataSource should throw an ArgumentException
11900         instead of a normal exception when the argument is not of the 
11901         correct type.
11902
11903 2006-07-20  Mike Kestner  <mkestner@novell.com>
11904
11905         * Control.cs: add InternalPreProcessMessage to allow us to steal
11906         key events before MWF gets its paws on them.  Adapted from a
11907         suggestion by eno.
11908         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
11909         up/down/left/right navigation. Override the new internal control
11910         method to steal the events since they never make it to WndProc.
11911         * ToolBarButton.cs: don't worry about pushed when setting hilight
11912         since the drawing code prefers pushed to hilight. Invalidate on 
11913         Hilight changes. Fixes #78547 and #78525.
11914
11915 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11916
11917         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
11918           the canvas size. Fixes #78868
11919
11920 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
11921
11922         * Splitter.cs: Track requested split position until first layout
11923           is performed. Fixes #78871
11924
11925 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11926
11927         * Application.cs: Removed code that forces 1.x for the version
11928           number if the version started with 0. Not sure why that code was
11929           there and I couldn't find any bugs that indicated we needed it.
11930           Fixes #78869
11931
11932 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
11933
11934         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
11935           ResetDefaults(), just write some output to the console until it's
11936           implemented. Fixes bug #78907 for now. Eliminated two warnings.
11937
11938 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
11939
11940         * PropertyGridView.cs: set StartPosition of drop down forms
11941         so they appear in correct initial spot.  Fixes #78190.
11942
11943 2006-07-19  Mike Kestner  <mkestner@novell.com>
11944
11945         * ThemeWin32Classic.cs: use parent background color when drawing
11946         flat toolbars.  Restructure the conditionals to make sure non-flat
11947         non-Divider toolbars are filled too.  Fixes #78837.
11948
11949 2006-07-19  Mike Kestner  <mkestner@novell.com>
11950
11951         * ListBox.cs: Sort on collection changes even if the handle
11952         isn't created yet.  Fixes #78813.
11953
11954 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11955
11956         * ListControl.cs: DisplayMember should never be null,
11957         and now we assign String.Empty when null is passed to it (this
11958         is the .Net way).
11959
11960 2006-07-17  Mike Kestner  <mkestner@novell.com>
11961
11962         * ListViewItem.cs: restructure Font and subitem Font handling 
11963         to hold a specific font and refer back to owner on null.
11964         Fixes #78761.
11965
11966 2006-07-17  Mike Kestner  <mkestner@novell.com>
11967
11968         * ToolBar.cs: bandaid for side-effect of previous patch which was
11969         discarding explicit heights for non-AutoSize toolbars.  Need to
11970         extend my format tester to deal with AutoSize=false. Fixes #78864.
11971
11972 2006-07-15  Jackson Harper  <jackson@ximian.com>
11973
11974         * LabelEditTextBox.cs:
11975         * TreeView.cs: Use a new LabelEdit class for node editing, this
11976         class automatically 'closes' itself when it gets the enter key or
11977         loses focus.
11978         - Use the client rectangle when setting the trees scrollbars, so
11979         border style is taken into account.
11980         
11981 2006-07-14  Jackson Harper  <jackson@ximian.com>
11982
11983         * TreeNode.cs:
11984         * TreeView.cs: Make the editing work similar to MSs, firing the
11985         events correctly and ending edits correctly.
11986
11987 2006-07-14  Mike Kestner  <mkestner@novell.com>
11988
11989         * ToolBarButton.cs:
11990         * ToolBar.cs: layout restructuring and redraw enhancements to support
11991         formatting changes gracefully, like setting TextAlign, ImageList, 
11992         ButtonSize, and Appearance.  Handles explicit button sizing quirks
11993         of the MS controls.  Things like flat toolbars ignoring button size
11994         but becoming constant sized at the largest button's size.  Normal
11995         toolbars with an image set cannot be shrunk smaller than the image,
11996         but text can be clipped/ignored.
11997         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
11998         is zero.  Seems like DrawString should be smart enough to not put
11999         anything on screen though. Also trim labels and ellipsize at the char
12000         boundary, not word.
12001         Fixes #78711 and #78483.
12002
12003 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12004
12005         * FolderBrowserDialog.cs: Disable "New Folder" button and
12006           "New Folder" contextmenu menuitem if a folder like "My Computer"
12007           is selected.
12008
12009 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12010
12011         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
12012         * FolderBrowserDialog.cs:
12013           - Use MWFConfig to store and read size and position settings
12014           - Added code to create a new folder (button or context menu).
12015             Use TreeView labeledit to change the name of the new folder.
12016
12017 2006-07-14  Jackson Harper  <jackson@ximian.com>
12018
12019         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
12020         when the tree is scrolled we end editing.
12021
12022 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12023
12024         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
12025           Down arrows
12026
12027 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
12028
12029         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
12030         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
12031         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
12032         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
12033         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
12034         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
12035         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
12036         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
12037         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
12038         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
12039         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
12040         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
12041         ListViewItemSelectionChangedEventHandler.cs,
12042         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
12043         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
12044         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
12045         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
12046         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
12047         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
12048         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
12049         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
12050         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
12051         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
12052         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
12053         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
12054         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
12055         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
12056         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
12057         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
12058         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
12059         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
12060         WebBrowserNavigatingEventHandler.cs, 
12061         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
12062
12063 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
12064
12065         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
12066         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
12067         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
12068         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
12069         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
12070         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
12071         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
12072         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
12073         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
12074         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
12075         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
12076         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
12077         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
12078         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
12079         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
12080         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
12081         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
12082         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
12083         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
12084         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
12085         ListViewItemStates.cs, MaskFormat.cs: Added
12086
12087 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
12088
12089         * PropertyGridView.cs: Fix keyboard navigation of drop down.
12090         Patch from eno for bug 78558.
12091         
12092 2006-07-13  Jackson Harper  <jackson@ximian.com>
12093
12094         * TreeView.cs: When an edit is finished make sure that the
12095         selected node is visible.
12096         - When setting the top/bottom use the scrollbars is_visible, so
12097         everything will be set correctly even if the tree isn't visible
12098         yet.
12099
12100 2006-07-13  Jackson Harper  <jackson@ximian.com>
12101
12102         * ComboBox.cs: Revert the item->index part of my previous patch.
12103         * TreeView.cs: Use LostFocus instead of Leave for detecting when
12104         the edit box has lost focus (duh).
12105         - Just make the edit box not visible when we get return, that will
12106         take the focus, which will call EndEdit
12107         * TreeNode.cs When we start editing, notify the treeview.
12108
12109 2006-07-12  Jackson Harper  <jackson@ximian.com>
12110
12111         * ComboBox.cs: Clear out old items before setting the item list.
12112         This prevents databound controls from having their items added
12113         twice.
12114         - Switch the combobox to use indices whereever possible instead of
12115         using Item's.  This allows usto navigate through lists that have
12116         more then one item with the same string value (ie a, b, b, a).
12117         - Scroll the listboxes scrollbar when a non visible item is
12118         highlighted
12119         - Allow keypress to cycle through all the possible values. For
12120         example if you have b1, b2, b3 and hold down the B key all the
12121         values will be cycled through.
12122         
12123 2006-07-12  Jackson Harper  <jackson@ximian.com>
12124
12125         * TextBoxBase.cs:
12126         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
12127         this using the internal methods.
12128         * Control.cs: Add OnGotFocusInternal.  A new method that allows
12129         controls to "override" OnGotFocus and change focus behavior if
12130         needed.
12131         - Same thing for LostFocus
12132         * ComboBox.cs: Pass off focus to the text control properly.
12133
12134 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
12135
12136         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
12137         * FolderBrowserDialog.cs: Almost a complete rewrite.
12138           - Better support for Environment.Specialfolders
12139           - Added support for MWFVFS
12140           - Made setting SelectedPath work
12141
12142 2006-07-12  Jackson Harper  <jackson@ximian.com>
12143
12144         * Control.cs: Optimze getting all the controls.
12145
12146 2006-07-11  Jackson Harper  <jackson@ximian.com>
12147
12148         * ContainerControl.cs: Override SETFOCUS in the container control,
12149         so that it is not selected on mouse click.
12150
12151 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
12152
12153         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
12154           Hopefully we will have a better way once all of focus is complete.
12155
12156 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
12157
12158         * ThemeWin32Classic.cs: Commented out some debug code and fixed
12159           a compile error with csc.
12160
12161 2006-07-11  Jackson Harper  <jackson@ximian.com>
12162
12163         * Control.cs: When hiding a control only select the next control
12164         if the current control was focused.
12165         - Don't handle enter/leave when setting/killing focus, this is
12166         done by the container control.
12167         - Remove is_selected, it's not needed anymore.
12168         - Add utility methods for selecting a child control, and for
12169         firing the Enter/Leave events.
12170         * ContainerControl.cs: When a control is activated fire the
12171         enter/leave events.
12172         - Don't wrap when processing the tab key, so that focus can be
12173         moved outside of the container.
12174         - Use the correct active control
12175
12176 2006-07-11  Jackson Harper  <jackson@ximian.com>
12177
12178         * ComboBox.cs: Remove some debug code that was blinding me.
12179         * UpDownBase.cs: These controls actually aren't implicit, they are
12180         visible to the user.
12181
12182 2006-07-10  Chris Toshok  <toshok@ximian.com>
12183
12184         * DataGrid.cs: move back to the is_adding boolean field.  god i
12185         hate this is_editing/is_adding/is_changing stuff.
12186
12187 2006-07-10  Chris Toshok  <toshok@ximian.com>
12188
12189         * DataGridTableStyle.cs: just check if the property type is bool.
12190         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
12191         Don't use CanRenderType.
12192
12193         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
12194         if our text == NullText.  Remove CanRenderType.
12195
12196         * DataGridBoolColumn.cs: nuke CanRenderType.
12197
12198         * DataGrid.cs: reenable some code to end the current edit inside
12199         of set_CurrentCell.  This fixes the other 1.1.16 regression.
12200         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
12201         Also, remove the visible_row_count arg from CalcRowHeaders, since
12202         we don't need to worry about the actual height of the area.
12203
12204 2006-07-10  Chris Toshok  <toshok@ximian.com>
12205
12206         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
12207         mode, just return.
12208
12209         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
12210         the real sense of the IsInEditOrNavigateMode property (true =
12211         navigate, false = edit).  Also, update OnKeyPress to reflect this.
12212
12213         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
12214         column style exists, we still need to set its property descriptor
12215         to match up with our list manager.
12216
12217 2006-07-10  Chris Toshok  <toshok@ximian.com>
12218
12219         * ThemeWin32Classic.cs: implement the new row/header painting
12220         approach.  The parent row painting will likely go away and
12221         replaced with label controls, but the rest seems to work ok (and
12222         efficiently).
12223
12224         * Theme.cs: change the way we draw datagrid rows.  we don't draw
12225         the row headers as a block now.  Instead we draw them in the
12226         normal draw-row loop.  Add some calls for drawing parent rows and
12227         relation rows.
12228
12229         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
12230         a default table style.  Set the defaults from ThemeEngine.Current,
12231         not SystemColors.  Fix lots of misc issues with property setters.
12232
12233         * DataGrid.cs: move loads of style information out of this class
12234         as it's being duplicated with DataGridTableStyle.  keep track of a
12235         special DataGridTableStyle for the properties we used to mirror
12236         here.  Switch all the style properties to access this table style
12237         instead of instance fields of this class.  Also add a internal
12238         class to represent parent rows (more needs to be stored here, like
12239         the selection state from the parent table, as well as the
12240         expansion state.)  Also, for datasources with relations, do the
12241         right thing for collapse/expand, and add support for the
12242         navigation/parent row buttons.
12243
12244         Lastly, fix the crash in the 1.1.16 build.
12245
12246         * GridTableStylesCollection.cs: make the explicit interface
12247         implementations call the class's methods as opposed to duplicating
12248         them.
12249
12250         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
12251         0 so the text doesn't jump around when we move the cursor.
12252
12253 2006-07-10  Jackson Harper  <jackson@ximian.com>
12254
12255         * TextBoxBase.cs:
12256         * ListBox.cs: Match MS's ToString (this makes debugging focus
12257         stuff infinitely easier).
12258
12259 2006-07-10  Jackson Harper  <jackson@ximian.com>
12260
12261         * Control.cs (SelectNextControl): When checking the control's
12262         parent use this instead of ctrl.parent so that null can be passed
12263         to SelectNextControl. (I have unit tests for this).
12264         - Remove unused var.
12265
12266 2006-07-10  Chris Toshok  <toshok@ximian.com>
12267
12268         * CurrencyManager.cs: correct one regression, the removal of the
12269         finalType field.  Also, add a MonoTODO on CanAddRows, implement
12270         Refresh() correctly, and fix some event emission in
12271         ListChangedHandler.
12272
12273 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12274
12275         * FileDialog.cs: Don't use brackets for new folders if they exist
12276           under *nix. Instead use -(number of existing folders +1).
12277
12278 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12279
12280         * FileDialog.cs:
12281           - Fixed really nasty bug #78771
12282           - Don't block the whole GUI when reading directories with a lot of
12283             entries. Use an other thread instead and call BeginInvoke to
12284             update the ListView in MWFFileView
12285
12286 2006-07-07  Chris Toshok  <toshok@ximian.com>
12287
12288         * Control.cs (Dispose): release any Capture when disposing.
12289
12290 2006-07-07  Chris Toshok  <toshok@ximian.com>
12291
12292         * LinkLabel.cs (Select): if we chain up to the parent, set
12293         focused_index to -1 so we'll search for the first available link
12294         the next time the user tabs into us.  Also, if the direction is
12295         backward and focused_index == -1, start the search from the last
12296         element.
12297
12298 2006-07-07  Chris Toshok  <toshok@ximian.com>
12299
12300         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
12301         is beyond the end of the text, don't do anything.
12302         (CreateLinkPieces): set our ControlStyles.Selectable based on
12303         whether or not we have any links.
12304         (Link.Invalidate): use a loop instead of foreach.
12305         (Link.set_Start): null out owner.sorted_links so it'll be
12306         recreated by CreateLinkPieces.
12307
12308 2006-07-06  Chris Toshok  <toshok@ximian.com>
12309
12310         * LinkLabel.cs: revert the SetStyle change.
12311
12312 2006-07-06  Chris Toshok  <toshok@ximian.com>
12313
12314         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
12315         (OnEnableChanged): s/Refresh/Invalidate
12316         (OnGotFocus): if we have a focused index already, refocus it (so
12317         if we mouse out/in to the window it'll focus the right link).
12318         (OnKeyDown): move the tab handling out of here.
12319         (OnLostFocus): don't set focused_index to -1, so we can refocus it
12320         when we lose focus.
12321         (OnMouseDown): don't Capture here - Control handles it.  Also,
12322         focus the active link.
12323         (OnMouseUp): don't deal with Capture.
12324         (OnPaintBackgroundInternal): remove.
12325         (OnTextAlignChanged): CreateLinkPieces before calling the
12326         superclass's method.
12327         (OnTextChanged): call CreateLinkPieces before calling superclass's
12328         method.
12329         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
12330         move around.
12331         (Select): implement this, moving the selection between different
12332         links, and call parent.SelectNextControl if we don't have another
12333         link to focus in the given direction.
12334         (CreateLinkPieces): call Invalidate instead of Refresh.
12335         
12336 2006-07-06  Chris Toshok  <toshok@ximian.com>
12337
12338         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
12339         new LinkLabel internals.
12340
12341         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
12342         over pieces looking for active/focused/etc links.  also, deal with
12343         runs of text (and links) with embedded \n's in them, and use
12344         MeasureCharacterRanges instead of MeasureString to figure out the
12345         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
12346         two-step.
12347
12348 2006-07-04  Jackson Harper  <jackson@ximian.com>
12349
12350         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
12351         XKB or key auto repeat, do it manually.  Without key auto repeat,
12352         when a key is held down we get key press, key release, key press,
12353         key release, ... with auto repeat we get key press, key press, key
12354         press ..., and then a release when the key is actually released.
12355
12356 2006-07-03  Jackson Harper  <jackson@ximian.com>
12357
12358         * TabControl.cs:
12359         * ThemeWin32Classic.cs: Tabs do not obey normal background color
12360         rules, they are always control color regardless of the background
12361         color.
12362
12363 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
12364
12365         * FileDialog.cs: Added internal class MWFConfig.
12366           Removed Registry support and replaced it with support for the new
12367           MWFConfig class. See MWFConfig comments for more information.
12368
12369 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
12370
12371         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
12372           rectangle. Added some patches from eno from bug #78490 and fixed
12373           the arrow position for small up and down CPDrawScrollButtons.
12374
12375 2006-06-30  Jackson Harper  <jackson@ximian.com>
12376
12377         * InternalWindowManager.cs: Remove some debug code.
12378         * Form.cs: When an MdiParent is set to null, the window is
12379         "detatched" and becomes a normal window.
12380         * MdiClient.cs: Don't bring the new child form to the front until
12381         it is activated (setting it as active does this), this makes the
12382         previously active forms titlebar get redrawn as inactive.
12383
12384 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
12385
12386         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
12387           with later controls
12388
12389 2006-06-29  Mike Kestner  <mkestner@novell.com>
12390
12391         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
12392         arrow in keynav state.  Fixes #78682.
12393
12394 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12395
12396         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
12397           order (fixes #78393)
12398
12399 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
12400
12401         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
12402           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
12403           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
12404           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
12405           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
12406           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
12407           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
12408           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
12409           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
12410           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
12411           enumerations (FlagsAttribute, SerializableAttribute, added/removed
12412           values)
12413
12414 2006-06-28  Mike Kestner  <mkestner@novell.com>
12415
12416         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
12417
12418 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12419
12420         * PropertyGrid.cs,
12421           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
12422           item lines from other area (It also makes BackColor consistent and
12423           compatible with .NET). Fixed bug #78564.
12424
12425 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
12426
12427         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
12428         Patch from Eno for #78555.
12429
12430 2006-06-27  Chris Toshok  <toshok@ximian.com>
12431
12432         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
12433
12434         * DataGridColumnStyle.cs: same.
12435
12436         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
12437         
12438         * DataGridDrawingLogic.cs: nuke.
12439
12440 2006-06-27  Chris Toshok  <toshok@ximian.com>
12441
12442         * DataGridTableStyle.cs: clean up the constructors, and build the
12443         list of child relations for this table.  I have no idea if this is
12444         where we should be doing it (it probably isn't), but since we're
12445         already iterating over the properties..
12446
12447         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
12448         struct and array for keeping track of row information, similar to
12449         what's shown in a hack on
12450         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
12451
12452         * Theme.cs: be consistent about the naming of DataGrid methods,
12453         prefering ColumnWidths and RowHeights over columnsWidths and
12454         RowsHeights.
12455
12456         * ThemeWin32Classic.cs: same, and also add support for variable
12457         sized rows (and the +/- expansion icons for related rows).
12458
12459 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12460
12461         * TextBoxBase.cs: Applied Eno's patch from #78660
12462
12463 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12464
12465         * Form.cs (ScaleCore): We don't want to scale our form if it's
12466           state is minimized or maximized, but we still need to scale our
12467           child windows. Also, added try/finally block to ensure layout
12468           gets reset (Fixes #78697)
12469
12470 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12471
12472         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
12473
12474 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12475
12476         * Form.cs: Fixed c+p error and added check to resize form if minimum
12477           size is bigger than current size (Fixes #78709)
12478
12479 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
12480
12481         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
12482
12483 2006-06-26  Mike Kestner  <mkestner@novell.com>
12484
12485         * ComboBox.cs: only do Keypress handling in the combo when there  
12486         are items in the collection. Fixes #78710.
12487
12488 2006-06-26  Chris Toshok  <toshok@ximian.com>
12489
12490         * Binding.cs: make this work bi-directionally.  also, clear up
12491         other mixups between Push/Pull Data (e.g. we're supposed to pull
12492         data when validating).
12493
12494         * BindingManagerBase.cs: trim some fully qualified collection
12495         types.
12496
12497         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
12498
12499 2006-06-23  Chris Toshok  <toshok@ximian.com>
12500
12501         * PropertyManager.cs: It appears (according to the unit tests)
12502         that PropertyManager doesn't use
12503         PropertyDescriptor.AddValueChanged to track propery value changes
12504         in its datasource, but uses the same scheme as Binding, where it
12505         looks for a <Property>Changed event and binds to it.
12506
12507         Also, according to the docs, IsSuspended always returns false for
12508         a property manager with a non-null datasource.
12509
12510 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
12511
12512         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
12513           need to update the actual DialogResult. (Fixes #78613)
12514
12515 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
12516
12517         * Form.cs (ShowDialog): Release any captures before running the
12518           new message pump (fixes #78680)
12519
12520 2006-06-22  Mike Kestner  <mkestner@novell.com>
12521
12522         * ListView.cs: Layout column widths properly in details mode even 
12523         if HeaderStyle.None is set.  Fixes #78691.
12524
12525 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
12526
12527         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
12528
12529 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
12530
12531         * Control.cs (ContainsFocus): Using new driver method to get focused
12532           window, instead of trying to use internal tracking var, which can
12533           recursion issues (Fixes #78685)
12534         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12535           XplatUIWin32.cs: Added GetFocus method to return focused window
12536
12537 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12538
12539         * ColorDialog.cs: when the mouse button is pressed inside the color
12540         matrix, don't let the cursor move out of it until the button is
12541         released, which is the behavior on windows. Changed 'colours' by
12542         'colors' to use the same word consistently.
12543
12544 2006-06-21  Chris Toshok  <toshok@ximian.com>
12545
12546         * DataGrid.cs: add in some basic navigation stuff (navigating to a
12547         child relation and back, using a stack).  Also, remove
12548         GetDataSource and the code that calls it - it's not needed.  Also,
12549         track CurrencyManager.ListName's removal.
12550
12551 2006-06-21  Chris Toshok  <toshok@ximian.com>
12552
12553         * CurrencyManager.cs: push some of the original type checking from
12554         BindingContext.CreateBindingManager to here, and remove some of
12555         the finalType stuff.  Need more tests to make sure I've got the
12556         ListName part right, and we might need more in SetDataSource.
12557
12558         * PropertyManager.cs: add a ctor that takes just the datasource,
12559         and no property name.  Make SetDataSource work with a null
12560         property_name, and make Current return the data_source if the
12561         property descriptor is null.  this makes 'string foo = "hi";
12562         BindingContext[foo].Current' return "hi" as it should.
12563
12564         * RelatedCurrencyManager.cs: make this code more generic - there's
12565         no reason the parent manager has to be CurrencyManager, and
12566         there's no reason to pass the DataRelation.  It suffices to use a
12567         BindingManagerBase and PropetyDescriptor.
12568
12569         * RelatedPropertyManager.cs: make a similar change here.
12570         
12571         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
12572         flower I knew it could be.
12573
12574 2006-06-20  Chris Toshok  <toshok@ximian.com>
12575
12576         * PropertyManager.cs: the PropertyChangedHandler is invoked when
12577         data in the source has changed and we need to update the control,
12578         so s/PullData/PushData.
12579
12580         * CurrencyManager.cs: Refresh is meant to update the control from
12581         data in the datasource.  So, s/PullData/PushData.
12582
12583         * BindingContext.cs: add more ugliness (we weren't handling the
12584         case where data_source = DataTable and data_member = column_name).
12585
12586         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
12587         from the perspective of the datasource.  PullData pulls from the
12588         control, PushData pushes to the control.
12589
12590 2006-06-20  Chris Toshok  <toshok@ximian.com>
12591
12592         * BindingContext.cs: rewrite the CreateBindingManager code to
12593         handle navigation paths more or less properly.  This could
12594         definitely stand some more work, in particular to push the
12595         recursion up to the toplevel.  But that relies on fixes in other
12596         places (System.Data comes to mind).
12597
12598         Also, move to a flat hashtable (and encode the twolevel nature of
12599         the dictionary into the hash key).  This lets us implement the
12600         IEnumerable.GetEnumerator method.
12601
12602         * RelatedCurrencyManager.cs: new class.  Update our view based on
12603         our relation and our parent CurrencyManager's position.
12604
12605         * CurrencyManager.cs: split out some logic from the ctor into
12606         SetView, so it can be called from the new RelatedCurrencyManager
12607         subclass.
12608
12609         * RelatedPropertyManager.cs: new class.  Update our datasource
12610         based on the position of our parent CurrencyManager.
12611
12612         * PropertyManager.cs: split out some logic from the ctor into
12613         SetDataSource, so it can be called from the new RelatedDataSource
12614         subclass.  Also, make the Current getter return the value
12615         of the PropertyDescriptor, not the data_source.
12616
12617         * Binding.cs: no need to duplicate the string splitting code here.
12618
12619 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12620
12621         * Control.cs:
12622           - set_Enabled: OnEnabledChanged is not called if the inherited state 
12623             of the control is not altered, even though  we might be changing the
12624             internal state of the control (#78458)
12625           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
12626             OnEnabledChanged, to allow easy altering of any child window state
12627           - OnEnabledChanged: Added code to enable/disable driver window state
12628           - OnParentEnabledChanged: Instead of firing the event, call 
12629             OnEnabledChanged, which will fire the event and also a) set driver
12630             window state and pass the enabled state to any grandchildren (#78458)
12631
12632 2006-06-19  Jackson Harper  <jackson@ximian.com>
12633
12634         * InternalWindowManager.cs: We don't set the cursor explicitly
12635         thats done via the response to NCHITTESTs.
12636         - Don't need to adjust for titlebar heights anymore, the
12637         coordinates are coming in the correct coordinates now (see peters
12638         last patch).
12639
12640
12641 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12642
12643         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
12644           being translated relative to whole window, instead of client window.
12645           That caused broken offsets on mouseclick (and caused gas for our
12646           InternalWindowManager)
12647
12648 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12649
12650         * TextControl.cs:
12651           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
12652           - Undo(): Added replay of cursor move on DeleteChars action; added
12653             calling Undo() again if a recorded cursor move is invalid (to
12654             ensure that some action is performed on Undo)
12655         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
12656
12657 2006-06-16  Jackson Harper  <jackson@ximian.com>
12658
12659         * MdiClient.cs: Instead of just sizing maximized windows when
12660         there is a resize we also have to adjust the Y of minimized
12661         windows, so they stay pinned to the bottom of the mdi container.
12662         - Eliminate separate tracking of the active control, we can just
12663         get this from the controls collection.
12664         - Paint the decorations for the newly activated titlebar so we get
12665         a pretty blue bar.
12666         * InternalWindowManager.cs:
12667         * ThemeWin32Classic.cs: Minimized windows get all three buttons
12668         even if they are a tool window.
12669         
12670 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12671
12672         * TextControl.cs (Undo): Handle non-existent cursor locations in the
12673           undo buffer, these can happen when text was deleted and the cursor
12674           was recorded first. Since we will also have a recorded cursor
12675           after the delete this is not an issue. (Fixes #78651)
12676
12677 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
12678
12679         * AccessibleObject.cs: Remove dependence on Control.is_selected;
12680           instead properly track control states internally (allows us to
12681           remove is_selected from Control)
12682
12683 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12684
12685         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
12686         whose width is not a multiple of 8.
12687
12688 2006-06-13  Jackson Harper  <jackson@ximian.com>
12689
12690         * MdiClient.cs:  Only maximize the next child if the current one
12691         is maximized.
12692
12693 2006-06-13  Chris Toshok  <toshok@ximian.com>
12694
12695         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
12696         modified.  Also, guard against grid or grid_drawing being null in
12697         Invalidate.
12698
12699         * DataGrid.cs: Reformat tons of getters/setters.  In the
12700         DataMember setter, just call SetNewDataSource instead of
12701         duplicating some of its functionality.  In SetNewDataSource, don't
12702         check ListManager for null, since the property getter creates the
12703         object if needed.
12704
12705         * DataGridTableStyle.cs: don't set TableStyle or call
12706         SetDataGridInternal on the column here, it's done in
12707         GridColumnStylesCollection.Add.
12708
12709         * GridColumnStylesCollection.cs: fix all the explicit interface
12710         implementations to just call our methods.  Nuke AddInternal() and
12711         move the body of it to Add().  Also, add a call to
12712         column.SetDataGridInternal to Add().
12713
12714         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
12715         base()+duplicate code.  Also, use the Format property instead of
12716         format to generate an Invalidate ala MS.  Lastly, create the
12717         textbox here, unconditionally.
12718         (set_Format): call Invalidate.
12719         (get_TextBox): no need to call EnsureTextBox.
12720         (Commit): remove the message box.
12721         (Edit) remove the call to EnsureTextBox.
12722         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
12723         (EnterNullValue): no need to check textbox for null.
12724         (HideEditBox): no need to check textbox for null.
12725         (SetDataGridInColumn): add the textbox to the grid's controls.
12726         (EnsureTextBox): nuke.
12727         
12728 2006-06-13  Jackson Harper  <jackson@ximian.com>
12729
12730         * MdiWindowManager.cs: Hook up to the maximized menus paint event
12731         and redraw the buttons when needed. Unhook when the window is
12732         unmaximized.
12733         * MainMenu.cs: Add an internal Paint event, the mdi window manager
12734         needs this so that it can redraw its buttons when the menu is
12735         repainted.
12736         * InternalWindowManager.cs:
12737         * Form.cs: The method order has changed for DrawMaximizedButtons,
12738         so that it can be a PaintEventHandler.
12739         
12740 2006-06-13  Jackson Harper  <jackson@ximian.com>
12741
12742         * MdiClient.cs: When we close a maximized mdi window, the next mdi
12743         window is activated and maximized, even if it wasn't before.
12744         - When  a new window is activated repaint the decorations of the
12745         old one, so that it no longer has the Active "look" (the blue
12746         titlebar).
12747         * InternalWindowManager.cs: Open up CreateButtons to base classes
12748         so they can recreate the buttons on state changes.
12749         - If a window is maximized give it all three buttons
12750         * MdiWindowManager.cs: Create the titlebar buttons when the state
12751         is changed, this is needed because a toolwindow will not have all
12752         three buttons until it is maximized.
12753
12754 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
12755
12756         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
12757           Fixed bug #78609.
12758
12759 2006-06-12  Jackson Harper  <jackson@ximian.com>
12760
12761         * KeysConverter.cs: Make sure we handle the Ctrl special case
12762         if its the only key.
12763         
12764 2006-06-12  Jackson Harper  <jackson@ximian.com>
12765
12766         * Theme.cs: Add a method to get the size of a managed window
12767         toolbar button.
12768         * InternalWindowManager.cs: Remove the ButtonSize property, this
12769         should be retrieved from the theme.
12770         * MdiWindowManager.cs: Get the button size from the theme
12771         * ThemeWin32Classic.cs: Make the method to get the managed window
12772         titlebar button size public.
12773         - Handle the different button sizes of maximized toolwindows
12774         (should match any maximized window).
12775         - Get the titlebar height from the theme, not the WM (which gets
12776         it from the theme).
12777
12778 2006-06-12  Jackson Harper  <jackson@ximian.com>
12779
12780         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
12781         event down to the mdi window manager.
12782         - Expose some extra stuff to base classes
12783         - Make sure to end the Capture on an NC Mouse up, so that we can
12784         get double clicks properly, and the sizing doens't stick.
12785         - When doing PointToClient contain it in the workable desktop
12786         area, this prevents windows from changing size when the cursor is
12787         pulled outside of the working area while sizing.
12788         * MdiWindowManager.cs: When we get a double click maximize the
12789         window.
12790         - Reset the cursor after handling mode changes.
12791
12792 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
12793
12794         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
12795           current desktop, instead of just assuming a 0, 0 origin. This
12796           is needed for our internal window manager, to know the top
12797           margin of the desktop
12798
12799 2006-06-12  Chris Toshok  <toshok@ximian.com>
12800
12801         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
12802         we need this to get rid of the selected background in the bool
12803         column.
12804         (CancelEditing): move the ConcedeFocus call to above the Abort
12805         call.  Also, set is_changing to false and invalidate the row
12806         header if we were changing before.
12807         (ProcessKeyPreviewInternal): remove, since noone outside this
12808         class calls it anymore.  Roll the code into ProcessKeyPreview.
12809         (EndEdit): remove the internal version.
12810         (InvalidateCurrentRowHeader): make private.
12811
12812         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
12813         Keys.Escape handling (and with it the last call to
12814         DataGrid.EndEdit from outside the class.)
12815
12816
12817 2006-06-12  Chris Toshok  <toshok@ximian.com>
12818
12819         * DataGridTextBox.cs (.ctor): isedit defaults to false.
12820         (OnKeyPress): set isedit to true.
12821         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
12822         already handled by the grid.
12823
12824         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
12825         right.  ugh.
12826         (set_DataSource): SetDataSource always returns true, so stop
12827         putting it in an if statement.
12828         (EndEdit): get rid of some {}'s
12829         (ProcessGridKey): return true in case Keys.Escape.
12830         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
12831         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
12832         PositionChanged, stopped connecting to CurrentChanged.
12833         (GetDataSource): simplify this a bunch.
12834         (SetDataSource): change return type from bool to void.
12835         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
12836         to this, and make sure we don't set ListManager.Position inside
12837         set_CurrentCell.
12838         (OnListManagerItemChanged): if we're passed an actual index,
12839         redraw that row.
12840
12841         * CurrencyManager.cs (set_Position): don't call PullData here.
12842
12843 2006-06-09  Jackson Harper  <jackson@ximian.com>
12844
12845         * TreeNode.cs:  Recalculate the visible order before doing the
12846         Expand/Collapse Below calls, because those calls generate an
12847         expose.
12848         - Reduce calls to the TreeView property, which is mildly expensive
12849         by using a local var.
12850         * Form.cs: Layout the MDI child windows when creating the parent
12851         form.
12852         - Don't use the internal constructor anymore
12853         * MdiClient.cs: use the parent form width/height (if available)
12854         when laying out the child windows, we do this because the
12855         mdiclient isn't docked yet when the initial layout is done.
12856         - Don't need an internal constructor anymore.
12857
12858 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12859
12860         * FileDialog.cs: handle access errors when trying to create a folder
12861         or changing to a directory. No need to initialize out parameters.
12862
12863 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12864
12865         * FileDialog.cs: Append a number when creating a new folder if the
12866           folder already exists (use parenthesis instead of square brackets)
12867
12868 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12869
12870         * FileDialog.cs:
12871           - Disabled registry support for windows and added better registry
12872             error checking for other systems (need to investigate why it
12873             works perfectly on my system)
12874           - If a folder already exist show an error MessageBox instead of
12875             trying to create an indexed name.
12876           - Fixed a non intentional typo.
12877
12878 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12879
12880         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
12881
12882 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12883
12884         * FileDialog.cs: When creating a new folder don't crash if the
12885           folder already exists.
12886
12887 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12888
12889         * FileDialog.cs: Allmost a complete rewrite.
12890           - added a "virtual" file system that handles the differences
12891             between unix and windows file systems (especially the directory
12892             structure). Moved most of the directory and file handling code
12893             into the vfs.
12894             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
12895             UnixFileSystem and FSEntry.
12896           - Recently used folder/directory, size, location and used file names
12897             (file name ComboBox) are now stored in the registry and get read
12898             before the dialog shows up (fixes part 6 of bug #78446).
12899           - Creation of new folders/directories is now possible (context menu
12900             or ToolBar). Added TextEntryDialog for this that fills in the gap
12901             until ListView.LabelEdit works.
12902           - Fixed cursor handling (bug #78527) and focus handling for
12903             PopupButtonPanel
12904           - Various "Search in" ComboBox enhancements. The content of the
12905             dropdown listbox now almost matches ms.
12906           - Changed the behaviour when the user switches to SpecialFolder
12907             Recent to show the ListView in View.Details.
12908           - Beside using the ToolBar to change the View property of the
12909             file ListView it is now possible to use the context menu too.
12910
12911 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12912
12913         * ComboBox.cs: Don't create a new ObjectCollection when an item
12914           gets inserted. Just insert the item in the existing object_items
12915           ArrayList.
12916
12917 2006-06-08  Jackson Harper  <jackson@ximian.com>
12918
12919         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
12920         that the treeview and root node checks are done also, this fixes a
12921         regression i caused in the unit tests.
12922
12923 2006-06-07  Wade Berrier <wberrier@novell.com> 
12924
12925         * RichTextBox.cs: More ISO8859-1 -> unicode
12926
12927 2006-06-07  Mike Kestner  <mkestner@novell.com>
12928
12929         * ComboBox.cs : use items to hold highlight/selection so that
12930         collection insertions don't require synchronization.
12931
12932 2006-06-07  Jackson Harper  <jackson@ximian.com>
12933
12934         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
12935         routine.  We now always keep the sized edge at the cursor instead
12936         of computing movement and adjusting rects.  There is one buglet
12937         with this method though when the cursor is moved over area that
12938         the window can not expand too (such as the toolbars on the desktop).
12939
12940 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12941
12942         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
12943         here. Fixes crash on startup in AlbumSurfer.
12944
12945 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
12946
12947         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
12948           values
12949
12950 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12951
12952         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
12953         statement to avoid calling XNextEvent which will block if another thread
12954         took the event that we were expecting. Fixes bug #78605.
12955
12956 2006-06-07  Mike Kestner  <mkestner@novell.com>
12957
12958         * ListView.cs : isolated checkbox clicking from the selection logic.
12959         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
12960
12961 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12962
12963         * Form.cs: Check that the value passed to Form.DialogResult
12964         is a valid enum value.
12965
12966 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12967
12968         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
12969         Computer'. Clicking it in the network view goes to 'My Computer'.
12970         Added CIFS filesystem type. Display the mount point of filesystems.
12971         Avoid duplicate mount points (happens for me with CIFS);
12972
12973 2006-06-06  Jackson Harper  <jackson@ximian.com>
12974
12975         * InternalWindowManager.cs: Draw the maximized windows buttons
12976         when resizing.
12977
12978 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12979
12980         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
12981         all other dialogs. Fixes bug #78585.
12982
12983 2006-06-06  Mike Kestner  <mkestner@novell.com>
12984
12985         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
12986         Only invalidate checkbox on checkstate changes to avoid flicker.
12987         * ListBox.cs : avoid unselect/select when clicking selected item.
12988         avoid reselection flicker for already multiselected items.
12989         Fixes #78382.
12990
12991 2006-06-06  Jackson Harper  <jackson@ximian.com>
12992
12993         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
12994         the parent form so that the menu is removed if needed.
12995
12996 2006-06-06  Mike Kestner  <mkestner@novell.com>
12997
12998         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
12999         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
13000
13001 2006-06-06  Mike Kestner  <mkestner@novell.com>
13002
13003         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
13004
13005
13006 2006-06-06  Jackson Harper  <jackson@ximian.com>
13007
13008         * Control.cs: Use the property (instead of the field) to get the
13009         default cursor so it is instantiated correctly.
13010         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
13011         resizes so we need to manually repaint the window decorations here.
13012         - Set the titlebar button locations as soon as they are created,
13013         otherwise they are not set correctly on win32.
13014         
13015 2006-06-06  Chris Toshok  <toshok@ximian.com>
13016
13017         * CurrencyManager.cs (set_Position): call PullData before
13018         OnCurrentChanged.
13019         (AddNew): after calling IBindingList.AddNew, update our
13020         listposition, and call OnCurrentChanged/OnPositionChanged (without
13021         calling PullData).
13022         (OnCurrentChanged): remove the call to PullData from here.
13023         (OnItemChanged): remove the call to PushData from here.
13024         (OnPositionChanged): change the test from == null to != null to
13025         match the other methods.
13026         (ListChangedHandler): the grossest part of the patch.  Implement
13027         this such that it passes the unit tests in CurrencyManagerTest and
13028         the output more or less matches that of MS's implementation.
13029  
13030 2006-06-06  Mike Kestner  <mkestner@novell.com>
13031
13032         * ListView.cs : only update check state on single click.
13033         * ThemeWin32Classic.cs : fix focus drawing for details view without
13034         fullrowselect.  Fixes #78454.
13035         * XplatUIX11.cs : fix for double click emission.
13036
13037 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13038
13039         * PropertyGridView.cs : Applied Atsushi's patch to fix
13040         font dialog bug  (#78197).
13041
13042 2006-06-05  Jackson Harper  <jackson@ximian.com>
13043
13044         * TreeNode.cs: Compute the next node for expanding/collapsing
13045         correctly. We now factor in nodes without a NextNode
13046         correctly. (Fixes somes cases in nunit-gui).
13047         * InternalWindowManager.cs: Set the bounds when updating the
13048         virtual position of a tool window.
13049         
13050 2006-06-05  Chris Toshok  <toshok@ximian.com>
13051
13052         * DataGrid.cs: rename cached_currencymgr to list_manager.
13053         (set_CurrentCell): move SetCurrentCell code here, and clean it up
13054         some.
13055         (CurrentRow, CurrentColumn): single accessors so we can make the
13056         cursor movement code a lot easier to understand.
13057         (CurrentRowIndex): implement this in terms of CurrentRow.
13058         (BeginEdit): clean this up a bit.
13059         (CancelEditing): sort out the is_editing/is_changing/is_adding
13060         stuff a little.
13061         (EndEdit): minor changes.
13062         (OnKeyDown): add a comment about a (most likely) unnecessary
13063         check.
13064         (OnMouseDown): cancel editing when we click on a row header.  And
13065         use the CurrentRow setter, not CurrentCell.
13066         (ProcessDialogKey): directly call ProcessGridKey.
13067         (UpdateSelectionAfterCursorMove): factor out this common block of
13068         code (it's used everywhere that we move the cursor by updating row
13069         or column).
13070         (ProcessGridKey): pretty substantial overhaul.  Use the
13071         CurrentRow/CurrentColumn properties to make the code a lot more
13072         readable.  Only use the CurrentCell property when we have to
13073         modify both row and column at once.  Tab behavior is still broken,
13074         and Delete is untested.
13075         (Select): if we have no selected rows, set selection_start to
13076         @row.
13077         (EditCurrentCell): rename EditCell this.  It was only ever invoked
13078         with CurrentCell as the arg, so drop the arg and rename it.
13079
13080         * DataGridColumnStyle.cs: clean up the constructors a little, and
13081         drop CommonConstructor().
13082
13083         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
13084         actually get notified when the user hits it.
13085         (ProcessKeyMessage): *substantially* simplify this method.
13086         There's no reason (that I can see) for the textbox to be making
13087         calls into the datagrid at all.  Remove all of them but the ones
13088         for Enter handling.  those will take some more work.
13089
13090         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
13091         calling HideEditBox.
13092         (HideEditBox): if we have an active textbox, render it invisible
13093         without causing a re-layout of the datagrid.
13094
13095 2006-06-05  Mike Kestner  <mkestner@novell.com>
13096
13097         * ListView.cs : fix NRE crasher when focuseditem is cleared by
13098         collection changes by resetting it to Items[0].  Fixes #78587.
13099
13100 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13101
13102         * MessageBox.cs: if the height of the text is larger than the icon_size,
13103         use that. Fixes bug #78575.
13104
13105 2006-06-05  Jackson Harper  <jackson@ximian.com>
13106
13107         * TreeView.cs: Fix line drawing when scrolling.  To do this each
13108         node is basically responsible for drawing its entire horizontal
13109         area.  When drawing a node it draws its parent node lines if
13110         needed.
13111         - Adjust the clip area to the viewport rectangle
13112         - Fix Left/Right key handling to match MS. (It expand/collapses
13113         and moves to parents/first child but does not move selection to
13114         sibling nodes).
13115         - Fix SetTop to work with new bound calculation code
13116         - When scrollbars are no longer needed we need to reset scrolling
13117         vars and recalculate the visible order so the redraw is correct
13118         * TreeNode.cs: We can't expand/collapse nodes with no children.
13119
13120 2006-06-03  John Luke  <john.luke@gmail.com> 
13121
13122         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
13123         so the colors work without dev packages
13124         
13125 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
13126
13127         * Control.cs 
13128           - Select: Implemented to just use activate. Seems to match MS 
13129             behaviour closest. Documented to only do actual control walking 
13130             based on it's parameters if in a container control so I moved 
13131             the code there.
13132           - Removed selection check logic from our internal Select() method
13133         * ContainerControl.cs:
13134           - Select: Moved selection logic from Control here, since MS documents
13135             that containers obey the bool arguments. No longer calling base
13136
13137 2006-06-02  Jackson Harper  <jackson@ximian.com>
13138
13139         * TreeView.cs: If the selected node isn't changed when we get
13140         focus update the previously selected node so that we see the
13141         selection box.
13142
13143 2006-06-02  Mike Kestner  <mkestner@novell.com>
13144
13145         * ComboBox.cs: restructure grab and general mouse event handling.
13146         Make the composite control raise mouse events like it was a single
13147         control for leaves/enters/motion/up/down events.  fix dropdown list
13148         coordinate mangling and refactor it into the scrollbar subclass to
13149         reduce code duplication.  Fixes #78282 #78361 and #78457.
13150
13151 2006-06-02  Mike Kestner  <mkestner@novell.com>
13152
13153         * ScrollBar.cs: remove Capture setting/clearing, as it happens
13154         automatically in the Control.WndProc.
13155
13156 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13157
13158         * FileDialog.cs: fix crash when running SharpChess, which sets the
13159         FilterIndex to 2 with only one Filter.
13160
13161 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13162
13163         * ToolBar.cs: add SizeSpecified property.
13164         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
13165         try to figure out our real size, otherwise fallback to what the
13166         container says.
13167
13168 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13169
13170         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
13171         * Control.cs (WndProc): MS always calls the DefWndProc to pass
13172           up the event
13173
13174 2006-06-01  Mike Kestner  <mkestner@novell.com>
13175
13176         * ListView.cs: revamp the focus management in ListView.  It still
13177         causes churn of LostFocus/GotFocus emissions on clicks, but it's
13178         better than not handling focus at all.  Will revisit when pdb feels
13179         the general focus handling is solid.  Fixes #78526.
13180
13181 2006-06-01  Jackson Harper  <jackson@ximian.com>
13182
13183         * TreeView.cs: Set the default border style in the constructor.
13184         - Move painting to use OnPaintInternal instead of capturing
13185         WM_PAINT, this is the correct way of doing things
13186         - UpdateBelow shouldn't invalidate the scrollbar area
13187         - Cap the top on update below in case the node was above the top
13188         of the viewport rectangle.
13189         - ExpandBelow and Collapse below need to obey Begin/End Update.
13190         * TreeNode.cs: Make is_expanded internal so the treenode
13191         collection can change it without firing the whole event chain.
13192         * TreeNodeCollection.cs: When clearing all the child nodes make
13193         sure to recalc the visible order.
13194         - Improve algo for remove the top node
13195
13196 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13197
13198         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
13199           SendMessage directly calling window procedures, which in turn might
13200           call SetFocus()
13201
13202 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
13203
13204         * Control.cs: Don't handle WM_SETFOCUS if the same window already
13205           has focus (works around X11 sending a FocusIn after our SetFocus)
13206         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
13207
13208 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
13209
13210         * Mime.cs: Fix for the NET_2_0 build.
13211           NameValueCollection needs StringComparer now.
13212
13213 2006-05-31  Chris Toshok  <toshok@ximian.com>
13214
13215         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
13216         return (via an out parameter) the starting X of the column.
13217         (UpdateVisibleColumn): track change to FromPixelToColumn.
13218         (HitTest): add a ColumnResize case here.
13219         (DrawResizeLine): new function, probably poorly named.
13220
13221         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
13222         only need to keep one reference.
13223         (set_ListManager): same.
13224         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
13225         Also, add support for HitTestType.ColumnResize.
13226         (OnMouseMove): add column resize behavior here, and change the
13227         cursor to the correct one as we move around the datagrid.
13228         (OnMouseUp): terminate the column resize if we're resizing.
13229         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
13230         for the current cell.
13231         (ConnectListManagerEvents): use cached_currencymgr.
13232         (DisconnectListManagerEvents): fill this in, using
13233         cached_currencymgr.
13234         (SetCurrentCell): remove cached_currencymgr_events handling.
13235         (SetDataMember): only call DisconnectListManagerEvents if
13236         cached_currencymgr is != null.
13237         (SetDataSource): same.
13238         (OnListManagerCurrentChanged): cached_currencymgr_events ->
13239         cached_currencymgr.
13240
13241 2006-05-31  Jackson Harper  <jackson@ximian.com>
13242
13243         * BindingManagerBase.cs: Remove somedebug code that creeped into
13244         SVN.
13245         * TreeNode.cs: We get the indent level dynamically right now, so
13246         don't track it as a member.
13247         * TreeNodeCollection.cs: Make sure all nodes added to the list
13248         have parents, treeviews/topnodes setup properly.
13249         - Don't attempt to track indent level.
13250
13251 2006-05-30  Jackson Harper  <jackson@ximian.com>
13252
13253         * BindingContext.cs: Create the currency manager tables here.
13254         This allows us to more easily create null tables (when bad data
13255         members are used), and more easily create related currency
13256         managers.
13257         * CurrencyManager.cs: All the table creation stuff is done by the
13258         binding context now.
13259         - Current should throw an exception if listposition is -1.
13260         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
13261         been bound yet.
13262
13263 2006-05-30  Mike Kestner  <mkestner@novell.com>
13264
13265         * ListView.cs: allow reexpansion of zero-width column headers.
13266         Fixes #78528.
13267
13268 2006-05-28  Chris Toshok  <toshok@ximian.com>
13269
13270         * CurrencyManager.cs (get_Current): after the late binding
13271         listposition = -1 fix, we need to guard against it here and return
13272         null, otherwise we raise an exception (which is swallowed
13273         elsewhere, and breaks datagrid databinding.)
13274
13275 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13276
13277         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
13278           than WM_SYSKEY, don't throw if get something unexpected (#78507)
13279
13280 2006-05-26  Jackson Harper  <jackson@ximian.com>
13281
13282         * ControlPaint.cs:
13283         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
13284         values, it's faster and it's all we care about (we don't care if
13285         the names aren't equal).
13286         * KeyboardLayouts.cs: Eliminate some dead code.
13287         - Lazy init things
13288         * X11Keyboard.cs: Lazy init keyboard detection.
13289         - Cleanup access modifiers a little.
13290
13291 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13292
13293         * XplatUIX11.cs: Once again, attempting to get layout just right.
13294
13295 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
13296
13297         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
13298           the sizes of each link section, that will result in sizes that
13299           match DrawString's layout (Fixes #78391)
13300
13301 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
13302
13303         * FileDialog.cs: If AddExtension property is true autocomplete the
13304           extensions in SaveFileDialog correctly. Fixes bug #78453.
13305           Set MyNetwork and MyComputer to "C:\" for windows. This should
13306           fix part 8 of bug #78446 for now.
13307
13308 2006-05-26  Chris Toshok  <toshok@ximian.com>
13309
13310         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
13311         invalidate the current row header if we need to, but presumably
13312         we'll invalidate the row corrsponding to the bounds or
13313         editingControl.
13314         (GridHScrolled): switch back to this method, as it's part of the
13315         public api.  *sigh*.
13316         (GridVScrolled): same.
13317         (OnMouseWheel): hack up something that more or less works.  Call
13318         GridHScrolled/GridVScrolled directly, instead of duplicating much
13319         of their code here.
13320         (EnsureCellVisibility): reinstate a bunch of this code, since we
13321         can't just set the scrollbar Value and expect to do all the work
13322         in the ValueChanged handler.  Also, Call Update() after scrolling
13323         in one direction so the other XplatX11.ScrollWindow call has the
13324         proper stuff in the proper places.
13325         (EditCell): set is_editing to true before calling .Edit.
13326
13327         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
13328         don't bother comparing first.
13329         (OnKeyPress): call grid.ColumnStartedEditing before calling
13330         base.OnKeyPress.  this will set is_changing and invalidate the row
13331         header if necessary.
13332         (ProcessKeyMessage): for WM_CHAR messages, call
13333         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
13334         and WM_KEYDOWN.
13335         
13336         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
13337         it's done in the DataGrid.
13338         (NextState): call grid.ColumnStartedEditing, which takes care of
13339         invalidating the row header (and setting is_changing).
13340
13341         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
13342         here.  it's done in the DataGrid.
13343
13344 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13345
13346         * Control.cs: allow changing the cursor when the mouse position is
13347         out of bounds but Capture is set.
13348         * LinkLabel.cs: handle the case when the mouse button is pressed on the
13349         linklabel but released somewhere else.
13350
13351 2006-05-25  Jackson Harper  <jackson@ximian.com>
13352
13353         * TreeView.cs: When we get focus if there is no selected node make
13354         it the top node
13355         - Remove some uneeded setup code from Draw.
13356         * TreeNodeCollection.cs: If the tree doesn't have a top node when
13357         a new node is inserted make the new node the top.
13358         * XplatUIX11.cs:
13359         * Timer.cs: Use Utc time so that no local time zone stuff needs to
13360         be used (should be faster).
13361         
13362 2006-05-25  Chris Toshok  <toshok@ximian.com>
13363
13364         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
13365         problem with the last commit.
13366
13367 2006-05-25  Chris Toshok  <toshok@ximian.com>
13368
13369         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
13370         need the invalidate call here, while scrolling right-to-left via
13371         the left arrow key (i.e. moving the editing cell while scrolling).
13372
13373         * DataGrid.cs (.ctor): remove the initialization of
13374         ctrl_pressed/shift_pressed.  We no longer track them using key
13375         up/down handlers, but by using Control.ModifierKeys.  Also, switch
13376         to using ValueChanged handlers on the scrollbars instead of
13377         Scrolled event handlers.  This simplifies a bunch of the scrolling
13378         code.
13379         (GridHValueChanged): rename from GridHScrolled, and change it to
13380         work with the new event args.
13381         (GridVValueChanged): same.
13382         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
13383         (OnMouseWheel): actually scroll the datagrid.  Don't change the
13384         selected cell.
13385         (ProcessGridKey): correct all the keyboard navigation stuff I
13386         could find.  Ctrl up/down/left/right/home/end work now.
13387         (EnsureCellVisibility): correct method name spelling.  Also,
13388         simplify this a touch by not explicitly calling the
13389         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
13390         scrollbar value.
13391         (OnKeyUpDG): no need for this method now.
13392         
13393 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13394
13395         * LinkLabel.cs: display the OverrideCursor when hovering the label.
13396         Fixes bug #78392.
13397
13398 2006-05-25  Chris Toshok  <toshok@ximian.com>
13399
13400         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
13401         r61019.
13402
13403 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13404
13405         * Application.cs: Moved setting of is_modal and closing to before
13406           we create the control, to allow the event handlers called as a
13407           result of creation affect closing. Also removed Gonzalo's previous
13408           change to setting DialogResult, the behaviour has been moved to 
13409           Form.ShowDialog()
13410         * Form.cs: 
13411           - ShowDialog(): Removed explicit creation of the form, let RunLoop
13412             handle it instead
13413           - ShowDialog(): If no dialog result is set, we need to return Cancel
13414           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
13415             the close is cancelled
13416
13417 2006-05-25  Jackson Harper  <jackson@ximian.com>
13418
13419         * StatusBar.cs: We only need to update the sizes of the other
13420         panels when we have auto size contents.  Also we are only updating
13421         the contents of the panel, not the borders, so compensate for the
13422         border width (TODO: get this width from the theme somehow).
13423         * TreeView.cs: Scrollable is true by default
13424         - Use invalidate instead of refresh where needed
13425         - Factor the scrollable value into scrollbar updating
13426         - Update the scrollbars if the Scrollable property is altered
13427         - Update the selected node if its ImageIndex is changed
13428         - Handle null nodes in UpdateNode (mainly so we don't have to
13429         check if selected is null when updating it
13430         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
13431         are factored into the visible count
13432         - Use VisibleCount for clarity in the code
13433         - When the font is changed we need to recurse through all the
13434         nodes and invalidate their sizes
13435         
13436 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13437
13438         * Application.cs: set the DialogResult to fixed when the main form is
13439         hidden or destroyed while being modal.
13440
13441 2006-05-25  Miguel de Icaza  <miguel@novell.com>
13442
13443         * Theme.cs: Use Tangoified messagebox icons. 
13444
13445         (GetSizedResourceImage): Also cope with width = 0 and do not
13446         trigger a warning in that case (0 means "give me your icon from
13447         the resouce, no special size needed).
13448
13449 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13450
13451         * Application.cs: Leave runloop if the the main modal form is 
13452           hidden (fixes #78484)
13453
13454 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13455
13456         * BindingContext.cs : reject null datasource in Contains() and
13457           Item[].
13458         * CurrencyManager.cs : check data_member validity when data_source
13459           is dataset. When it is late binding, the initial position is -1.
13460
13461 2006-05-24  Jackson Harper  <jackson@ximian.com>
13462
13463         * TreeNodeCollection.cs: Dont't recalculate the visible order on
13464         inserted nodes that aren't visible.  This changes the
13465         max_visible_order which confuses scrollbar settings.
13466         - Use the enumerator to get the prev node instead of duplicating
13467         code.
13468         * TreeView.cs: Use new method for setting scrollbar values
13469         - Don't set the bounds every time the scrollbar is updated
13470         - When updating below the root node use an invalidate instead of a
13471         refresh to prevent the child controls (scrollbars) from being
13472         refreshed. (UpdateBelow still needs to be reworked anyways).
13473         - Reenable SetBottom now that visible orders are set correctly,
13474         added some debug code incase we ever get bad values there again.
13475         - Set the scrollbar max to 2 less then the max value, this
13476         compensates for the max value being one above the node count, and
13477         for scrollbars adding one extra "notch".
13478         - When drawing image nodes if there is an imagelist we draw the
13479         first image in the list if the supplied image index is out of the
13480         image list's bounds.
13481         
13482 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13483
13484         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
13485           we receive a size change from the WM (Fixes #78503)
13486
13487 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
13488
13489         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
13490           rectangle (Fixes #78501)
13491
13492 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13493
13494         * ButtonBase.cs: 
13495           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
13496             as a bitfield.
13497           - Fixed MouseMove to no longer switch pressed state unless the left
13498             mouse button is pressed. Atsushi provided the original patch (#78485)
13499           
13500 2006-05-24  Jackson Harper  <jackson@ximian.com>
13501
13502         * ScrollBar.cs: New internal methods that allow us to change a
13503         couple values on the scrollbar (the most common case is maximum
13504         and large change) without getting multiple invalidates.
13505
13506 2006-05-24  Chris Toshok  <toshok@ximian.com>
13507
13508         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
13509         (Edit): save off the original state in oldState, and set
13510         grid.is_editing to true.
13511         (OnKeyDown): abort editing if escape is pressed.  also, call
13512         NextState if space is pressed.
13513         (OnMouseDown): call NextState.
13514         (NextState): factor out shared code from OnKeyDown and OnMouseDown
13515         here.  Also, only invalidate the row header once (on the initial
13516         is_changing switch) to save on redraws.
13517
13518 2006-05-24  Chris Toshok  <toshok@ximian.com>
13519
13520         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
13521         if the value in the cell is different than it was before.  This
13522         keeps us from triggering a layout when we move around a datarid
13523         with a highlighted cell.
13524         (Edit): suspend layout when creating/positining the text box, and
13525         resume passing false so we don't ever actually re-layout.
13526         (ReleaseHostedControl): same.
13527         (EnsureTextBox): reformat slightly, and set WordWrap to false.
13528
13529         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
13530         control-key sequences should go to the datagrid - remove that
13531         lock.  Also, modify the conditions under which we move between
13532         cells when moving the cursor within a cell, and remove the "this"
13533         and "base" from field accesses.  We weren't even consistent, given
13534         they all were in the base class.
13535
13536 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
13537
13538         * Binding.cs : (.ctor)
13539           An obvious NRE fix for BindingTest.CtorNullTest().
13540
13541 2006-05-23  Chris Toshok  <toshok@ximian.com>
13542
13543         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
13544         them between lines.  This fixes some quirks editing cells in the
13545         datagrid.
13546
13547 2006-05-23  Jackson Harper  <jackson@ximian.com>
13548
13549         * TreeView.cs: Use begin/end update when doing expand/collapse all
13550         so that we don't get flicker on the scrollbar.
13551
13552 2006-05-23  Jackson Harper  <jackson@ximian.com>
13553
13554         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
13555         treenode calculations to be independant of the painting code. To
13556         do this nodes track a visible order which is calculated by the
13557         treeview.
13558         - Call new methods for expanding/collapsing nodes.  These methods
13559         use scrollwindow so we don't have to update everything below the
13560         node.
13561         * TreeView.cs: Refactored drawing and scrolling code.  We don't
13562         need to update nodes when drawing anymore or calculate scrollbar
13563         stuff.
13564         - Added new methods for expanding/collapsing nodes. These methods
13565         use ScrollWindow so as to not have to redraw all the nodes below.
13566         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
13567         we add/remove nodes or sort.
13568         - Handle removing the selected and the top node properly.
13569
13570 2006-05-23  Chris Toshok  <toshok@ximian.com>
13571
13572         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
13573         maybe this should actually happen in the datagrid code?
13574         (EndEdit): no need to invalidate anything, given that
13575         ReleaseHostedControl causes the datagrid to relayout, which
13576         invalidates everything anyway.
13577
13578         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
13579         in SetCurrentCell).
13580         (set_SelectionBackColor): call InvalidateSelection instead of
13581         Refresh.
13582         (set_SelectionForeColor): same.
13583         (BeginEdit): Flesh this out a bit.
13584         (CancelEditing): only do any of this if we're editing/adding.
13585         (EndEdit): same.
13586         (OnMouseDown): there's no need to cancel editing here, it's done
13587         in SetCurrentCell.
13588         (SetCurrentCell): only invalidate the current row header if it's a
13589         different row than the new one.
13590         (ShiftSelection): fix this to work like MS does.
13591         (ResetSelection): factor out the invalidation of selected_rows to
13592         InvalidateSelection.
13593         (SetDataSource): cancel any editing that's going on.
13594
13595         * DataGridColumnStyle.cs
13596         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
13597         call the non-interface version.
13598
13599         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
13600         header rectangle with the clip rectangle so we don't redraw the
13601         entire header for just a small area.  Gets rid of the last flicker
13602         when horizontally scrolling.
13603         (DataGridPaintRow): same.
13604
13605 2006-05-23  Mike Kestner  <mkestner@novell.com>
13606
13607         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
13608         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
13609         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
13610         Critical bug report.
13611
13612 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13613
13614         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
13615           and this fixes #78493
13616
13617 2006-05-23  Miguel de Icaza  <miguel@novell.com>
13618
13619         * Theme.cs (GetSizedResourceImage): Scale images if the proper
13620         size is not found.  
13621         
13622         * FileDialog.cs: Do not change the background for the side bar as
13623         it wont work nicely with the theme, and also reduces the artifacts
13624         in rendering the icons (which I want to fix too).
13625
13626         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
13627         resources, not resgen resources. 
13628
13629         (PlatformDefaultHandler): Pull images using the new API.
13630
13631 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13632
13633         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
13634           a reference to the hwnd and will not remove it unless there are
13635           no pending exposures (fixes #78341)
13636         * XplatUI.cs: Improved debug
13637
13638 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
13639
13640         * MenuAPI.cs : don't handle OnClick event when it was not the left
13641           button. Fixed bug #78487.
13642
13643 2006-05-23  Mike Kestner  <mkestner@novell.com>
13644
13645         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
13646         prefer submenus to the top menu for item lookup, to avoid popping down
13647         top-row items.
13648
13649 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
13650
13651         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
13652           Graphics.FillRectangle as the visual results are really bad (even
13653           on win). We now draw perfect arrows (and perfect shadows when the
13654           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
13655           Pen.DashPattern to draw the dots of each line.
13656
13657 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
13658
13659         * FileDialog.cs: Update the filename combobox when navigating through
13660           the ListView with the cursor keys. Fixes part 7 of bug #78446.
13661
13662 2006-05-22  Mike Kestner  <mkestner@novell.com>
13663
13664         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
13665         Fixes #78463.
13666
13667 2006-05-22  Mike Kestner  <mkestner@novell.com>
13668
13669         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
13670         requests. Fix a misspelled parameter and a copy paste exception error
13671         in Select.
13672
13673 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
13674
13675         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
13676           to get the same width/height (5/13) on X11 as the default font has on
13677           win32. This means that our DefaultFont emSize is smaller than the 
13678           the MS SWF equivalent (even thought the width/height stays the same)
13679
13680 2006-05-20  Jackson Harper  <jackson@ximian.com>
13681
13682         * MdiClient.cs:
13683         * MdiWindowManager.cs:
13684         * InternalWindowManager.cs: Make sure to use the border width from
13685         the theme.
13686
13687 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
13688
13689         * PrintDialog.cs: Implements printer details
13690
13691 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
13692
13693         * FileDialog.cs: Added focus handling for PopupButtonPanel.
13694           Fixes part 1 and 2 of bug #78446
13695
13696 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
13697
13698         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
13699           instead of sticking to the first ever calculated value
13700
13701 2006-05-19  Mike Kestner  <mkestner@novell.com>
13702
13703         * ComboBox.cs: fix mouse motion selection to use MousePosition and
13704         PointToClient, since Capture is set. Fixes #78344.
13705
13706 2006-05-19  Mike Kestner  <mkestner@novell.com>
13707
13708         * ListView.cs: match MS behavior in Details view where items are not
13709         drawn if Columns.Count == 0. 
13710         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
13711         Use a separate pen to draw the check, since changing the width affects
13712         the box as well.  Fixes #78454.
13713
13714 2006-05-18  Miguel de Icaza  <miguel@novell.com>
13715
13716         * ListView.cs: ArgumentOutOfRangeException, single versions of the
13717         exception should throw the name of the invalid argument.
13718
13719         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
13720         there are no files listed. 
13721
13722 2006-05-18  Jackson Harper  <jackson@ximian.com>
13723
13724         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
13725         up.
13726
13727 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13728
13729         * Control.cs: Brought back our old UpdateZOrder method as a private
13730           function and switched our calls from UpdateZOrder to the new one.
13731           This fixes the Paint.Net canvas disappearing bug.
13732
13733 2006-05-18  Jackson Harper  <jackson@ximian.com>
13734
13735         * Theme.cs:
13736         * ThemeWin32Classic.cs:
13737         * InternalWindowManager.cs: Move the drawing into the theme,
13738         expose everything the theme should need from the window manager.
13739
13740 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13741
13742         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
13743           from the call to NativeWindow to avoid walking up the parent chain
13744           further than needed (speeds up setting cursors and avoids setting
13745           the wrong cursor if a parent has another cursor defined)
13746         * Cursor.cs: When loading an icon as cursor, MS uses the center of
13747           the icon as hotspot, not what's contained as hotspot in the icon
13748           file. This fixes the perceived drawing offset seen with Paint.Net
13749         
13750 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13751
13752         * XplatUIX11.cs: 
13753           - Store the calculated rectangle in Hwnd object and use it when 
13754             setting the client size
13755           - Force Toolwindows to always be type Dock, to ensure they're on top
13756
13757 2006-05-18  Mike Kestner  <mkestner@novell.com>
13758
13759         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
13760         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
13761         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
13762         Substantial refactoring to remove confusing nested classes. Coding
13763         standard and Get+Set->property refactorings.  Shift to index based
13764         highlighting in ComboListBox instead of constantly using IndexOf and
13765         Items[]. Add invalidations on resize for DropDownList to fix ugliness
13766         in FileDialog growth.  Draw borders manually since Simple mode needs
13767         to look like two independent controls.  Make listbox border
13768         conditional to DropDownStyle.  Improved OwnerDraw support.
13769
13770 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
13771
13772         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
13773         Don't set the disposed graphics to null, so we can throw the "right"
13774         exception if the graphics is reused later (added a flag to avoid 
13775         double disposing). Some behaviours are different under 2.0 and are
13776         filled under bug #78448.
13777
13778 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13779
13780         * Control.cs: When double-buffering is enabled, we need to reset
13781           our graphics context between paint calls. Otherwise, any 
13782           transformations and other alterations on the context will 
13783           become cumulative (#77734)
13784
13785 2006-05-18  Mike Kestner  <mkestner@novell.com>
13786
13787         * ListView.cs: do focused item selection like MS on clicks. 
13788         Rework focus handling for ItemControl so LostFocus invalidates as
13789         well.
13790         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
13791         the ListView ItemControl has focus.
13792
13793 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
13794
13795         * XplatUIX11.cs: If client_window ends up being width or height zero
13796           due to border settings, move it off window inside whole_window (#78433)
13797
13798 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13799
13800         * Mime.cs: Shrink the mime file cache correctly.
13801
13802 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13803
13804         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
13805
13806 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13807
13808         * XplatUIX11.cs (AddExpose): More sanity checks
13809
13810 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13811
13812         * XplatUIX11.cs:
13813           - AddExpose: Don't add expose ranges outside the size of our
13814             window
13815           - Cast opacity values to Int32 to avoid crashes with certain
13816             values
13817           - Added disabled code paths that protect against illegal cross-
13818             thread painting (Developers.exe)
13819
13820 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13821
13822         * ProgressBar.cs: Invalidate the control when it's resized
13823           since block size is based on control size. (#78388)
13824
13825 2006-05-16  Miguel de Icaza  <miguel@novell.com>
13826
13827         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
13828         of setting the incoming argument to the "reset" value, we set the
13829         this.datamember to string.empty (before we were invalidating the
13830         incoming data).   
13831
13832         Fixes 78420
13833
13834 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13835
13836         * Form.cs: Only apply transparency settings after the form
13837           is created. (Fixes #77800)
13838
13839 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13840
13841         * ApplicationContext.cs: Grab the HandleDestroyed event so
13842           we know when to fire OnMainFormClosed 
13843
13844 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13845
13846         * Application.cs: Introduced sub-class to allow tracking of
13847           threads and centralized triggering of the event mess for
13848           ThreadExit, AppExit, etc..  (#76156)
13849
13850 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
13851
13852         * MimeIcon.cs:
13853           - Do not return a null icon index value for a mime subclass.
13854             Instead try the main mime type class too.
13855           - Seems that some newer distributions don't have a link to some
13856             gnome default icons anymore. So check the default gnome dir too.
13857           
13858
13859 2006-05-16  Jackson Harper  <jackson@ximian.com>
13860
13861         * MdiClient.cs: Don't paint the parent background image if we have
13862         our own background image.
13863
13864 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13865
13866         * Control.cs:
13867           - PerformLayout: Do not shrink space filled by DockStyle.Fill
13868             controls, all filled controls are supposed to overlap (#78080)
13869           - UpdateZOrder is supposed to update the control's z-order in the
13870             parent's z-order chain. Fixed to behave like that
13871           - BringToFront: Removed obsolete code
13872           - SendToBack: Simplyfied
13873           - SetChildIndex: Trigger layout calculations when Z-order changes
13874             since layout is done by z-order
13875
13876 2006-05-16  Chris Toshok  <toshok@ximian.com>
13877
13878         [ fixes bug #78410 ]
13879         * DataGrid.cs (set_AlternatingBackColor): use
13880         grid_drawing.InvalidateCells instead of Refresh().
13881         (set_BackColor): call grid_drawing.InvalidateCells.
13882         (set_BackgroundColor): use Invalidate instead of Refresh.
13883
13884         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
13885         invalidate the cell area.
13886
13887 2006-05-15  Chris Toshok  <toshok@ximian.com>
13888
13889         [ fixes bug #78011 ]
13890         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
13891         on to DataGridPaintRow.
13892         (DataGridPaintRow): take a clip argument, and only draw the cells
13893         which intersect it.  same with the not_usedarea.
13894
13895         * Theme.cs (DataGridPaintRow) add @clip parameter.
13896
13897         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
13898         XplatUI.ScrollWindow.
13899         (ScrollToRow): same.
13900
13901         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
13902         with last column which was causing a gray swath to appear with the
13903         XplatUI.ScrollWindow code.
13904
13905 2006-05-15  Chris Toshok  <toshok@ximian.com>
13906
13907         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
13908         use XplatUI.ScrollWindow.
13909         (VerticalScrollEvent): use XplatUI.ScrollWindow.
13910
13911 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
13912
13913         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
13914
13915 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13916
13917         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
13918           file since there are no equivalent X11 cursors
13919
13920 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13921
13922         * MonthCalendar.cs : DateTimePicker should reflect selected date
13923           on mouse*up*, not mouse*down*. Fixed originally reported part of
13924           bug #76474.
13925
13926 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13927
13928         * TabControl.cs : When argument index is equal or more than tab
13929           count, just ignore. Fixed bug #78395.
13930
13931 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13932
13933         * Control.cs: Dispose all child controls when control is diposed (#78394)
13934
13935 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13936
13937         * ColorDialog.cs: Finally it is possible to select the color with
13938           the text boxes
13939
13940 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13941
13942         * PrintDialog.cs: Fix typo
13943
13944 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13945
13946         * PrintDialog.cs: PrintDialog is not resizable
13947         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
13948           color. Made some ToolBar drawing methods protected virtual.
13949
13950 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
13951
13952         * PrintDialog.cs: Implementation of the PrintDialog
13953
13954 2006-05-12  Chris Toshok  <toshok@ximian.com>
13955
13956         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
13957         thumb, instead use MoveThumb.  This has the side effect of making
13958         most of the other thumb moving machinery use MoveThumb as well.
13959         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
13960         need to actually invalidate the rectangle where the new thumb will
13961         go.
13962         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
13963         We force an Update() after, so it's not as fast as it could be,
13964         but at least there's zero flicker and no droppings.
13965         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
13966         (UpdateThumbPos): add another argument (dirty), which says whether
13967         or not to calculate/add dirty regions which we later invalidate.
13968         For cases where we know we're going to use MoveThumb, we pass
13969         false for this.  Otherwise, pass true.
13970
13971 2006-05-12  Jackson Harper  <jackson@ximian.com>
13972
13973         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
13974         the status bar.
13975         
13976 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
13977
13978         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
13979           and GetClipRegion methods and UserClipWontExposeParent property.
13980         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
13981           overriding UserClipWontExposeParent property, setting to false, since
13982           Win32 handles the required expose messages to draw our clipped parent
13983           areas internally
13984         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
13985           PaintEventStart to set the user clip region if set.
13986         * Control.cs: 
13987           - Now internally tracking the Region for the control since we need to
13988             store it if the handle is not yet created and only set it when it
13989             becomes created. Before setting the region forced handle creation
13990           - Added code to draw the parents underneath a user-clipped region
13991         * Hwnd.cs: Added UserClip property
13992
13993 2006-05-12  Chris Toshok  <toshok@ximian.com>
13994
13995         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
13996         (set_Maximum): same.
13997         (set_Minimum): same.
13998         (set_SmallChange): same.
13999         (OnMouseUpSB): remove the call to refresh when releasing the
14000         thumb.  We shouldn't need it.
14001         
14002 2006-05-12  Miguel de Icaza  <miguel@novell.com>
14003
14004         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
14005         AutoSize set to None, we do not need to relayout everything, we
14006         just need to invalidate the current region.
14007
14008         (Draw): Do not draw the entire ClientArea, just redraw the
14009         clip area being passed.
14010
14011         * MdiClient.cs: Make MdiClient constructor with the Form argument
14012         internal. 
14013
14014 2006-05-12  Jackson Harper  <jackson@ximian.com>
14015
14016         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
14017         parents background image,  but strangely not their own.
14018         - (DrawStatusBarPanel): Take into account horizontal alignment
14019         when drawing the strings and icons.
14020
14021 2006-05-12  Mike Kestner  <mkestner@novell.com>
14022
14023         * ListBox.cs: avoid invalidations for focus when the collection is
14024         empty. 
14025
14026 2006-05-12  Chris Toshok  <toshok@ximian.com>
14027
14028         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
14029         invalidate the entire thumb area.  Call InvalidateDirty which
14030         limits the redraw to the thumb itself and surrounding pixels.
14031
14032         * XplatUIX11.cs (ScrollWindow): optimize copying.
14033         
14034 2006-05-12  Chris Toshok  <toshok@ximian.com>
14035
14036         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
14037         Figure out the positioning/layout in a single pass instead of
14038         multiple recursive invocations.  Speeds up the initial display of
14039         the data grid.  Also, make many things private that were
14040         originally public but unused outside this class.
14041
14042 2006-05-11  Jackson Harper  <jackson@ximian.com>
14043
14044         * MdiClient.cs: Improved layout code.
14045
14046 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
14047
14048         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
14049           not SelectedObject.
14050
14051 2006-05-11  Chris Toshok  <toshok@ximian.com>
14052
14053         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
14054         union of that will always be {0,0,width,height}.
14055
14056 2006-05-11  Jackson Harper  <jackson@ximian.com>
14057
14058         * Form.cs: Match MS's DefaultSize for forms (they must have
14059         changed the size in sp2).
14060
14061 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14062
14063         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
14064
14065 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14066
14067         * TextControl.cs : Fixed bug #78109. This incorrect position
14068           comparison caused crash on automatic line split.
14069         * TextBoxBase.cs : reduce duplicate code.
14070
14071 2006-05-10  Jackson Harper  <jackson@ximian.com>
14072
14073         * MdiClient.cs: Active form is only sent to the back when using
14074         the Next form functionality, when a form is clicked the current
14075         active shouldn't be sent to the back.
14076         - Layout the mdi windows when the container is first made visible.
14077         * Form.cs: Give the MdiClient a ref to the containing form when we
14078         create it.
14079         
14080 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14081
14082         * LinkLabel.cs : link_font could be uninitialized, so populate one
14083           before actual use. Fixed bug #78340.
14084
14085 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14086
14087         * XplatUIX11.cs : clipboard format native value is IntPtr.
14088           Fixed bug #78283.
14089
14090 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14091
14092         * Control.cs: 
14093           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
14094             which is passed up the parent chain by DefWndProc
14095           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
14096             to DefWndProc (#77956)
14097         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
14098
14099 2006-05-10  Jackson Harper  <jackson@ximian.com>
14100
14101         * MdiClient.cs: We need to remove the controls from the mdi
14102         collection, when we close the window.
14103         * MdiWindowManager.cs: Special handling of closing mdi windows.
14104         * InternalWindowManager.cs: Make the close method virtual so the
14105         mdi window manager can handle it specially.
14106
14107 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
14108
14109         * DataGrid.cs:
14110           - Recalculate grid when the data source has changed
14111           - Matches styles provided by user from all data sources types
14112         * DataGridTableStyle.cs: For columns that provided by the user set the
14113         with the preferred value is there was unassigned.
14114         * CurrencyManager.cs: throw OnItemChanged event
14115
14116 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
14117
14118         * PictureBox.cs: Don't animate until handle is created. Start animation
14119           when handle is created.
14120
14121 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14122
14123         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
14124           current codebase.
14125         * XEventQueue.cs: We don't need to provide the extra info
14126
14127 2006-05-10  Jackson Harper  <jackson@ximian.com>
14128
14129         * MdiClient.cs: If the mdi clients parent form has a background
14130         image set, we draw that background image for the mdi area's
14131         background.
14132
14133 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14134
14135         * TextBoxBase.cs: Set IBeam cursor (#78347)
14136
14137 2006-05-10  Mike Kestner  <mkestner@novell.com>
14138
14139         * ToolBar.cs: fix some text padding issues with ButtonSize
14140         calculation. Update the default size to match MS documentation.
14141         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
14142         button size. Fixes #78296.
14143
14144 2006-05-10  Mike Kestner  <mkestner@novell.com>
14145
14146         * ListBox.cs: use is_visible for scrollbar positioning in case the
14147         control isn't on screen yet.  Fix off by one with Right vs Width
14148         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
14149         
14150 2006-05-10  Jackson Harper  <jackson@ximian.com>
14151
14152         * X11Dnd.cs: Drop to a control with another control on top of it.
14153         * ToolBar.cs: Work on a copy of the buttons list, so that it can
14154         be modified in click handlers. TODO: Look for similar problems in
14155         other controls.
14156
14157 2006-05-09  Jackson Harper  <jackson@ximian.com>
14158
14159         * Form.cs: Window managers need the old window state when setting
14160         window state now.
14161         * InternalWindowManager.cs: Allow the base mdi window manager to
14162         handle more of the MDI only stuff (like maximize buttons).
14163         * MdiWindowManager.cs: Fix some snafus in changing the window
14164         state.  Add all the menu functionality, for both popup and
14165         maximized menus.
14166         * MdiClient.cs: When a new form is selected the currently
14167         activated form is sent to the back, this matches MS.
14168         - Implement a new method to activate the next mdi child window.
14169
14170 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
14171
14172         * Control.cs: 
14173           - Added new InternalCapture method to allow controls to prevent
14174             the capture behaviour on the click handlers
14175           - Switched to use InternalCapture
14176         * ComboBox.cs:
14177           - Using InternalCapture to prevent mouse captures from being released
14178             on mouse button release (Fixes #78100)
14179         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
14180           returns Form borders if a caption is present. (Fixes #78310)
14181
14182 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
14183
14184         * TreeNode.cs: Changed serialization .ctor to not require every field
14185           to be present. (#78265)
14186         * OwnerDrawPropertyBag.cs: Added serialization .ctor
14187
14188 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
14189
14190         * MimeIcon.cs: for is faster than foreach for strings.
14191
14192 2006-05-05  Mike Kestner  <mkestner@novell.com>
14193
14194         * CheckedListBox.cs: update check handling code to not use selected.
14195         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
14196         behavior for visual feedback, motion response, shift/ctrl handling,
14197         and properly deal with all 4 selection modes. Updates to bounds
14198         handling logic.  Add scroll wheel support. [Fixes #77842]
14199
14200 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14201
14202         * ListView.cs:
14203           - Moved adding of Implicit controls into .ctor. That way, subsequent
14204             creation of the controls will not cause them to think they are 
14205             toplevel windows (fixes #78200 header problem)
14206           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
14207           - Switched visibility setting of header control to use internal field
14208             to avoid triggering handle creation
14209           - Now checking if handle is created before causing a refresh when items
14210             are added (This makes us now match handle creation time with MS)
14211         * Splitter.cs: Removed loading of private splitter cursor, switched to
14212           Cursors version now that that is loading the right ones
14213         * Cursors.cs: Load proper splitter cursors from resources
14214         * Cursor.cs: Added second method of loading resource cursors for the 
14215           VS.Net users amongst us
14216
14217 2006-05-05  Mike Kestner  <mkestner@novell.com>
14218
14219         * ListView.cs: give header_control a minimum size based on the
14220         ListView size.
14221
14222 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14223
14224         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
14225           window seems to do that with metacity, so set that type. (#78120)
14226
14227 2006-05-05  Mike Kestner  <mkestner@novell.com>
14228
14229         * ListViewItem.cs: fix Details mode checkbox layout bug.
14230         * ThemeWin32Classic.cs: draw a ListView column header for unused space
14231         at the end of the header, if it exists. [Fixes for #78200]
14232
14233 2006-05-04  Jackson Harper  <jackson@ximian.com>
14234
14235         * MdiClient.cs: Add a helper property to get the container form.
14236         * MdiWindowManager.cs: We have to make sure to use the menu origin
14237         when drawing the icons and buttons, this fixes maximized window
14238         icons/buttons on win32.
14239         * InternalWindowManager.cs: Reset the restore captions when a
14240         window goes from Maximized to Minimized and vice versa. Move the
14241         DrawMaximizedButtons into the MdiWindowManager source, tool
14242         windows can't be maximized. NOTE: This could use a little
14243         refactoring if time ever permits.
14244         
14245 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14246
14247         * TextBox.cs: Add MWFCategoryAttributes
14248         * TextBoxBase.cs: Add MWFCategoryAttributes
14249         * Form.cs: Add MWFCategoryAttributes
14250
14251 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14252
14253         * Control.cs: Add MWFCategoryAttributes
14254         * ScrollableControl.cs: Add MWFCategoryAttributes
14255
14256 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
14257
14258         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
14259           Divider is true. Fix a little glitch in PropertyToolBar
14260           drawing code
14261
14262 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
14263
14264         * Control.cs:
14265           - Dispose: Call base.Dispose, this causes the disposed event
14266             to be fired (and probably other, more important stuff)
14267           - SetVisibleCore: Set is_visible to true after creating the
14268             window so that the window still gets created invisible (if
14269             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
14270             to generate a WM_ACTIVE message
14271         * Form.cs: Call Dispose when we want to destroy the window, instead of
14272           just destroying the handle (Dispose will do that for us)
14273         * XplatUIX11.cs:
14274           - RootWindow also needs a queue, so we can properly process the
14275             property change events from RootWindow (like Activate)
14276           - Generatic synthetic WM_ACTIVE message when the active window is
14277             being destroyed
14278
14279 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14280
14281         * LinkLabel.cs: Trigger a recalc of our label dimensions when
14282           bounds are changed
14283
14284 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
14285
14286         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
14287           for determining width and height (image might not be assigned if
14288           we're drawing an imagelist)
14289
14290 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14291
14292         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
14293         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
14294           height from system
14295         * Theme.cs: No longer returns hardcoded menu height, instead calls
14296           new driver method
14297         * Form.cs (OnLoad): Scaling happens before triggering Load events 
14298           on MS (# 78257)
14299
14300 2006-05-01  Mike Kestner  <mkestner@novell.com>
14301
14302         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
14303
14304 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
14305
14306         * TextBoxBase.cs: Removed Fixme
14307         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
14308
14309 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
14310
14311         * XplatUIX11.cs:
14312           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
14313             the rectangle relative to the parent, considering borders. We
14314             don't really want that.
14315           - ScrollWindow: Fixed warning to be more understandable
14316         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
14317           scrollbars and scroll only the visible area
14318         * RichTextBox.cs: Removed debug output
14319
14320 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14321
14322         * NumericUpDown.cs (Text): Just use base
14323         * UpDownBase.cs: Ensure txtView is created before using it
14324
14325 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14326
14327         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
14328           casting to IntPtr to avoid 64bit overflow errors
14329
14330 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14331
14332         * Control.cs:
14333           - AllowDrop: Don't force handle creation.
14334           - CreateHandle: Added call to tell driver if we're allowed to drop
14335
14336 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14337
14338         * FileDialog.cs: Remember the last directory not only for the
14339           current instance but also for new FileDialog instances.
14340
14341 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14342         
14343         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
14344           broke sending async messages
14345
14346 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14347
14348         * XplatUIX11.cs:
14349           - ScrollWindow: Fixed method. We finally generate expose events again
14350             for scrolled areas. This was causing 'garbage' when scrolling
14351             textbox and other controls that used ScrollWindow
14352           - Switched from using the regular queue for paint events to the MS 
14353             model of 'generating' paint events when the queue is empty.
14354             We use the new XQueueEvent.Paint subclass to store which windows
14355             need painting.
14356           - AddExpose now takes the x/y/width/height of the exposed area
14357             and inserts the window into the paint queue if not already there
14358           - InvalidateWholeWindow: Switched to use new AddExpose method
14359           - UpdateMessageQueue: Added which queue to monitor for paint events
14360           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
14361             the unlikely case nothing above handles it. We reset the expose
14362             pending states to get them off the queue.
14363           - GetMessage: Now pulls a paint event if no other events are in the
14364             queue
14365           - Invalidate: Switched to new AddExpose method
14366           - PeekMessage: Updated to understand pending paint events
14367           - UpdateWindow: Fixed logic bug. We were only updating if the window
14368             didn't need updating. Also switched to sending WM_PAINT directly,
14369             like MS does.
14370         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
14371           and random access Remove(). The random access is needed to handle
14372           UpdateWindow() where a WM_PAINT is sent directly without accessing
14373           the queue.
14374         * ScrollBar.cs: Added Update() calls to cause immediate updates to
14375           allow for better feedback when scrolling. Scrollbars are small and
14376           the immediate update should make it 'feel' more responsive without
14377           slowing things down. ScrollBar still needs it's invaliate logic
14378           updated to not always invalidate the whole bar on certain changes.
14379
14380 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14381
14382         * Control.cs:
14383         (BackColor): if the control does not support a transparent background,
14384         return the default backcolor when the parent backcolor is transparent.
14385
14386 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
14387
14388         * Application.cs: Updated to new StartLoop/GetMessage API
14389         * RichTextBox.cs: Provide some output on RTF parsing errors
14390         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
14391           new queue_id argument to GetMessage and PeekMessage to allow faster
14392           handling of per-thread queues in drivers.
14393         * Hwnd.cs: Added Queue tracking and property
14394         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
14395         * XEventQueue.cs: Added thread trackingA
14396         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
14397         * XplatUIX11.cs:
14398           - Implemented new per-thread queue
14399           - GetMessage: Fixed return/break behaviour on several cases. We were
14400             returning stale messages in some cases, instead of just processing
14401             the next message
14402
14403 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14404
14405         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
14406
14407 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
14408
14409         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
14410           fixed off-by-one comparisons between Width/Height and Right/Bottom.
14411
14412 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14413
14414         * PropertyGridView.cs: Fix drop down width.
14415
14416 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14417
14418         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
14419           a mess in DrawToolBar, so I removed one of them.
14420
14421 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14422
14423         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
14424           needed (clip). Otherwise we get artifacts.
14425
14426 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14427
14428         * FixedSizeTextBox.cs: Added constructor to allow specifying which
14429           dimension is fixed
14430         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
14431           and switched FixedSizeTextBox to only be fixed vertical (#78116)
14432         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
14433           if it matches the scale base font (avoids unneeded scaling)
14434
14435 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14436
14437         * X11DesktopColors.cs: One gtk_init_check should be enough
14438
14439 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
14440
14441         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
14442           match MS behaviour
14443
14444 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14445
14446         * TextBoxBase.cs: 
14447           - Generate OnTextChanged for Backspace even if we're only deleting
14448             the current selection
14449           - When setting the Text property, only select all text if the
14450             control does not have focus when it is being set. Otherwise
14451             just place the cursor at the beginning of the control
14452
14453 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14454
14455         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
14456           Added a little helper to draw PropertyGrid ToolBar with a different
14457           border and a different BackColor.
14458         * PropertyGrid.cs: Some background parts didn't get painted with the
14459           correct background color. Added a class that helps us to draw the
14460           correct border for PropertyGridView and a class that helps us to
14461           draw ToolBars with a different backcolor
14462         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
14463
14464 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
14465
14466         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
14467         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
14468
14469 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14470
14471         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
14472           into the palette entries. Also, since we're working on a copy
14473           we needed to copy the palette back onto the bitmap.
14474         * Cursor.cs: Same fix as XplatUIWin32.cs.
14475
14476 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
14477
14478         * ImageListStreamer.cs: Need to read the var (or we're off)
14479
14480 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14481
14482         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
14483           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
14484           TextBoxBase.cs: Unused var fixes
14485         * AxHost.cs: Small 2.0 fix
14486         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
14487           as it seems that is what at least Metacity expects. This will make
14488           icons show up on 64bit platforms. We still have some 64bit size
14489           issues, though, since the startup app window size still won't match.
14490
14491 2006-04-25  Mike Kestner  <mkestner@novell.com>
14492
14493         * *.cs: cleanup newly reported exception var unused warnings.
14494
14495 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14496
14497         * ThemeWin32Classic.cs: Button image alignment now matches exactly
14498           ms
14499
14500 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14501
14502         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
14503           image. The image position is always the same, no matter if the
14504           button is pressed or not.
14505
14506 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14507
14508         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
14509           selection and set the correct filename for SaveFileDialog.
14510           Patch by Emery Conrad.
14511
14512 2006-04-24  Mike Kestner  <mkestner@novell.com>
14513
14514         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
14515         check for item.X outside the ClientRect instead of item.Y. Fixes
14516         #78151.
14517
14518 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14519
14520         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
14521         trust that value blindly and do some sanity check. Fixes bug #77814.
14522
14523 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14524
14525         * ImageListStreamer.cs: save the mask as a 1bpp image.
14526
14527 2006-04-21  Mike Kestner  <mkestner@novell.com>
14528
14529         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
14530         pass Checked and Indeterminate to the Theme Engine. Improve
14531         encapsulation with ListBox.
14532         * ListBox.cs: Keep a StringFormat instead of calculating it every item
14533         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
14534         nested types.  Move all CheckState functionality to CheckedListBox.
14535         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
14536         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
14537         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
14538         single base list. Fix scrollbar sizing and placement to mirror MS.
14539         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
14540         used.
14541         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
14542         for CheckedListBox by using new DrawItemState info.  Center the
14543         checkboxes on the items. Use new StringFormat property.
14544
14545 2006-04-18  Jackson Harper  <jackson@ximian.com>
14546
14547         * Form.cs: MdiChildren don't do default locations the same way as
14548         regular forms.  This prevents a crash when trying to position the
14549         mdi windows.
14550
14551 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
14552
14553         * PropertyGridTextBox.cs: Formatting, copyright
14554         * PropertiesTab.cs: Formatting
14555         * PropertyGrid.cs: Formatting
14556         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
14557           click toggling of values
14558           
14559 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
14560
14561         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
14562         * Control.cs (.ctor): verify_thread_handle is static, don't reset
14563           every time a control is created
14564         * Application.cs: Removed obsolete EnableRTLMirroring method
14565
14566 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
14567
14568         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
14569         SelectedIndex to -1. Fixes bug #78121.
14570
14571 2006-04-17  Jackson Harper  <jackson@ximian.com>
14572
14573         * Binding.cs: Handle null values for Current and BindingContext.
14574         This occurs when binding is a little delayed.
14575         * CurrencyManager.cs: return null for Current when there are no
14576         items in the list.
14577         - Hookup to the listchanged event on the DataView and update
14578         bindings when the list is changed.  This fixes late binding of
14579         controls.
14580
14581 2006-04-17  Jackson Harper  <jackson@ximian.com>
14582
14583         * X11Dnd.cs:
14584         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
14585         Ringenbach.
14586
14587 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
14588
14589         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
14590           place
14591         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
14592           with the correct ButtonState
14593
14594 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
14595
14596         * XplatUIX11.cs: Improved distinguishing between window types to
14597           tell the WM a type closer to what the app wants (Fixes #78107)
14598
14599 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14600
14601         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
14602           GrabHandle
14603
14604 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14605
14606         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
14607           drawing code to reflect the size grip changes
14608
14609 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14610
14611         * ImageListStreamer.cs: fix handling of the mask that follows the main
14612         bitmap when deserializing and serialize it properly. The generated mask
14613         should better be a 1bpp image, but I'll do that later.
14614
14615 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14616
14617         * FileDialog.cs: Show something in the DirComboBox on *nix if the
14618           path doesn't fit into some of our Current.Places
14619
14620 2006-04-13  Jackson Harper  <jackson@ximian.com>
14621
14622         * ComboBox.cs: Use borders instead of drawing our own decorations,
14623         try to obey correct rules for heights.
14624         * Theme.cs:
14625         * ThemeNice.cs:
14626         * ThemeClearLooks.cs:
14627         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
14628         this is now handled by borders.
14629         - Remove unused DrawListBoxDecorationSize method.
14630         
14631 2006-04-13  Mike Kestner  <mkestner@novell.com>
14632
14633         * MenuAPI.cs: null guarding for the disbled click check fixes crash
14634         reported by Alex.
14635
14636 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14637
14638         * ThemeWin32Classic.cs: 
14639           - Fixed CPDrawStringDisabled
14640           - Corrected drawing of disabled menu items
14641           - Fixed drawing of disabled radio buttons (bug #78095)
14642           - Draw check in a disabled CheckBox with color ControlDark 
14643
14644 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14645
14646         * Form.cs: Use the provided width when calculating the menu size;
14647           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
14648           and ClientSize.Width won't be updated yet
14649         * Application.cs: Use Visible instead of Show() to make form visible,
14650           this way we create the handle later and menusize is considered
14651
14652 2006-04-12  Mike Kestner  <mkestner@novell.com>
14653
14654         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
14655         reporting.
14656
14657 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14658
14659         * TextBox.cs: Implemented context menu
14660
14661 2006-04-12  Mike Kestner  <mkestner@novell.com>
14662
14663         * ListView.cs: implement box selection. fixes #77838.
14664         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
14665
14666 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14667
14668         * XplatUIX11.cs: Added setting of window type when transient window
14669           is created (metacity would move it otherwise)
14670         * X11Structs.cs: Added WINDOW_TYPE atoms
14671         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
14672           background (the control is Opaque but still wants transparent
14673           backgrounds)
14674
14675 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14676
14677         * Control.cs: Added OnPaintBackgroundInternal to allow controls
14678           that set Opaque but don't mean it (like all ButtonBase-derived
14679           controls) to still draw their background
14680         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
14681           the background
14682
14683 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14684
14685         * Control.cs (PaintControlBackground): Set the graphics object
14686           on our PaintEvent to null to prevent it from being disposed
14687           when the PaintEvent gets disposed
14688
14689 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
14690
14691         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
14692         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
14693
14694 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14695
14696         * Control.cs: 
14697           - Added transparency check to BackColor property. Transparent
14698             backgrounds are only allowed if the control styles permit it
14699           - Added recursive painting of parent control background and
14700             foreground if a control with a transparent backcolor is drawn
14701             (Thanks to Tim Ringenback for providing his 'hack' as a base
14702              for this patch) Fixes #77985 and #78026.
14703           - Added Opaque style check before calling OnPaintBackground, no
14704             need to draw the background if the control is opaque
14705           - Removed ControlAccessibleObject owner variable (inherited from
14706             base, no need to define again)
14707           - Added some documentation links explaining the drawing events
14708             and styles
14709
14710 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14711
14712         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
14713           that the affected control is the located at the left border of our
14714           parent (Fixes #77936)
14715
14716 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14717
14718         * TextBoxBase.cs: When rendering disabled or readonly controls,
14719           draw the background with 'Control' instead of 'Window' color as
14720           long as the user hasn't specifically set a color
14721
14722 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14723
14724         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
14725           since that won't be updated if the user types text (only if it's
14726           programatically set)
14727
14728 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14729
14730         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
14731           layout changes do to app-triggered resizes will have the proper
14732           display rectangle for layout
14733
14734 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
14735
14736         * ThemeWin32Classic.cs:
14737           - Make use of the SystemBrushes and SystemPens wherever possible
14738           - Corrected some highlight colors
14739           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
14740             drawing
14741         * Theme.cs: Added Empty field to CPColor struct
14742
14743 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14744
14745         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
14746           is displayed when calculating the display rectangle. Thanks to Mike
14747           for teaching me the err of my ways.
14748
14749 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
14750
14751         * ScrollableControl.cs:
14752           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
14753             (instead of 0,0) and we now return the real width/height instead of
14754             just the clientrectangle, adjusted for padding. The rectangle is
14755             now cached and created by the new CalculateDisplayRectangle method.
14756           - Created new CalculateDisplayRectange method, which basically does
14757             what get_DisplayRectangle() did originally, but now using the 
14758             right edge instead of DisplayRectangle to determine the size of
14759             our scrollbars
14760           - get_Canvas(): Fixed it to properly calculate canvas for 
14761             right/bottom controls which seem to be placed to the right/bottom
14762             of any controls that have a fixed location
14763           - Removed TODO that's taken care of
14764           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
14765             and SetDisplayRectLocation according to new MSDN2 docs
14766           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
14767             event when that is called, this is added for compatibility
14768           - ScrollControlIntoView(): Implemented.
14769           - Switched scrollbars to be implicit, they shouldn't be selectable
14770         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
14771           call it when the active control is set/changed
14772         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
14773         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
14774           implicit_control variable (used for native Win32 message generation)
14775         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
14776           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
14777         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
14778         * XplatUIStructs.cs: Added ScrollBarCommands enum
14779
14780 2006-04-10  Jackson Harper  <jackson@ximian.com>
14781
14782         * ButtonBase.cs:
14783         * CheckedListBox.cs:
14784         * ComboBox.cs:
14785         * DataGrid.cs:
14786         * DataGridView.cs:
14787         * Form.cs:
14788         * GroupBox.cs:
14789         * ListBox.cs:
14790         * PrintPreviewControl.cs:
14791         * ProgressBar.cs:
14792         * PropertyGrid.cs:
14793         * Splitter.cs:
14794         * StatusBar.cs:
14795         * TrackBar.cs:
14796         * UpDownBase.cs: Fixup base event overrides.
14797         
14798 2006-04-06  Mike Kestner  <mkestner@novell.com>
14799
14800         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
14801         all user-initiated value changes to min <= value <= max-thumbsz+1.
14802         (set_Value): check for vert/horiz when calculating new thumb position.
14803         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
14804         like MS does.
14805         (OnMouseMoveSB): refactor the thumb dragging code and refine
14806         invalidation logic to reduce flicker.
14807         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
14808         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
14809         (UpdateThumbPosition): small code readability cleanup
14810
14811 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
14812
14813         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
14814           different
14815
14816 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14817
14818         * ThemeNice.cs: Use a better graphics effect when a button is pressed
14819
14820 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14821
14822         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
14823         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
14824           This dramatically reduces the number of Pen.Dispose calls. 
14825           Where possible call ResPool methods only once instead of calling it
14826           over and over again (for example for the same color).
14827
14828 2006-04-06  Mike Kestner  <mkestner@novell.com>
14829
14830         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
14831         Also remove an unused private field on the collection. Fixes #77972.
14832
14833 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14834
14835         * ThemeNice.cs: Added ToolBar drawing code
14836
14837 2006-04-06  Mike Kestner  <mkestner@novell.com>
14838
14839         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
14840         I'm assuming that means we need to look up the toplevel for the
14841         provided control. Fixes the crash trace in #77911 but exposes another
14842         crash in some strange reflection usage in NDocGui.
14843
14844 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14845
14846         * ThemeNice.cs: Gave it a little silver touch and added Images
14847           method
14848         * FontDialog.cs: FontDialog is not resizable
14849         * FileDialg.cs: Added SizeGripStyle.Show
14850
14851 2006-04-05  Jackson Harper  <jackson@ximian.com>
14852
14853         * KeyboardLayouts.cs: Remove warning.
14854
14855 2006-04-05  Jackson Harper  <jackson@ximian.com>
14856
14857         * Control.cs: Enable OnPaintInternal so we can use it for drawing
14858         all of our controls instead of Paint +=.
14859         * ListBox.cs:
14860         * ListView.cs:
14861         * MenuAPI.cs:
14862         * MessageBox.cs:
14863         * NotifyIcon.cs:
14864         * ProgressBar.cs:
14865         * ScrollBar.cs:
14866         * Splitter.cs:
14867         * StatusBar.cs:
14868         * TabControl.cs:
14869         * TextBoxBase.cs:
14870         * ToolBar.cs:
14871         * TrackBar.cs:
14872         * UpDownBase.cs:
14873         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
14874         use OnPaintInternal. Remove Width/Height and Visible checks in
14875         paint handler, this is done at a higher level now.
14876         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
14877         * PaintEventArgs.cs: Add a handled flag so controls that don't
14878         want anymore painting after OnPaintInternal can make sure OnPaint
14879         isn't called.
14880
14881 2006-04-05  Mike Kestner  <mkestner@novell.com>
14882
14883         * Form.cs: fix the menu WndProc hacks to respect the native enabled
14884         state of the form, so that we don't process events when Modal dialogs
14885         are up. Fixes #77922.
14886
14887 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
14888
14889         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
14890           checking is done.
14891
14892 2006-04-05  Mike Kestner  <mkestner@novell.com>
14893
14894         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
14895
14896 2006-04-05  Mike Kestner  <mkestner@novell.com>
14897
14898         * ListView.cs (HeaderMouseMove): null guarding for the over column
14899         when setting up the drag_to_index.  Fixes #78015.
14900
14901 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
14902
14903         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
14904           in the taskbar. Transient windows seem to accomplish that.
14905
14906 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
14907
14908         * Form.cs:
14909           - Re-enabled CreateParams.X/Y code for FormStartPosition
14910           - Added code for manual placement when creating the Control
14911           - Incomplete patch to treat MDI forms differently when
14912             setting the ClientSizeCore. (Still need to figure out handling
14913             x/y coords there)
14914         * XplatUIX11.cs:
14915           - When we're explicitly setting the X/Y position of a non-Child
14916             window, let the WM know. Metacity really wants this.
14917
14918 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14919
14920         * ThemeNice.cs: Added CPDrawButton
14921
14922 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14923
14924         * ThemeNice.cs: Changed the color for focused buttons and activated
14925           the arrows for small scroll buttons.
14926
14927 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14928
14929         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
14930           anymore. Changed some method modifiers to protected (virtual)
14931         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
14932           changes
14933         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
14934           Updated drawing of menus, buttons and progressbars; added
14935           CPDrawBorder3D 
14936
14937 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14938
14939         * ImageListStreamer.cs: implemented serialization/deserialization
14940         of the images.
14941
14942 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
14943
14944         * ThemeWin32Classic.cs:
14945           - Removed all the DrawFrameControl stuff; CPDrawButton,
14946             CPDrawCheckBox and CPDrawRadioButton are now handled directly
14947             inside the methods
14948           - Updated and corrected the drawing code of CPDrawButton,
14949             CPDrawCheckBox and CPDrawRadioButton to better match ms
14950           - Updated theme checkbox and radiobutton code to use the CP*
14951             methods
14952
14953 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14954
14955         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
14956           bug is fixed
14957
14958 2006-03-31  Jackson Harper  <jackson@ximian.com>
14959
14960         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
14961         sometimes.
14962         * UpDownBase.cs: Don't CreateGraphics manually, use a
14963         Refresh. Ideally we would invalidate the correct areas here.
14964
14965 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14966
14967         * XplatUIX11.cs: 
14968           - We now track the mapping state of windows. If a window (or 
14969             one of it's parents) is not mapped we no longer permit
14970             WM_PAINT messages to be generated since we'd otherwise get 
14971             lots of BadMatch X errors. Jackson did all the work figuring
14972             out the problem.
14973           - Destroying the caret if the window it's contained in is 
14974             destroyed. Can't use regular DestroyCaret method since it
14975             might fall into a drawing function (trying to remove the
14976             caret) and with that generate new BadMatch errors. Again,
14977             Jackson tracked this down.
14978           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
14979             make sure we send the messages to all windows. (The old code
14980             would send the WM_DESTROY to the window, and then all child
14981             windows would be 'gone' because the WM_DESTROY handle lookup
14982             would no longer find the destroyed window)
14983         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
14984         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
14985
14986 2006-03-31  Jackson Harper  <jackson@ximian.com>
14987
14988         * ScrollableControl.cs: Dont recalc if we are not visible.
14989
14990 2006-03-31  Mike Kestner  <mkestner@novell.com>
14991
14992         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
14993         the visibility branch.
14994
14995 2006-03-31  Jackson Harper  <jackson@ximian.com>
14996
14997         * ScrollBar.cs: Cap values when incrementing/decrementing.
14998
14999 2006-03-31  Mike Kestner  <mkestner@novell.com>
15000
15001         * MenuAPI.cs: setup menu.tracker for popup/context menus.
15002         * ToolTip.cs: guard against timer expirations with no active control.
15003         Not sure why it happened.
15004
15005 2006-03-31  Mike Kestner  <mkestner@novell.com>
15006
15007         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
15008         text.
15009         * ToolTip.cs: Position the tooltip based on where the cursor is at
15010         popup time, not at MouseEnter time.  Add a Down state so that we don't
15011         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
15012         positioning offset. Lookup DisplaySize at positioning time, since it
15013         can theoretically change during invocation.
15014         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
15015         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
15016
15017 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15018
15019         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
15020           Fixes behaviour when the Text property of the box is String.Empty
15021
15022 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
15023
15024         * XplatUIX11.cs: Only send mouseleave for our client windows, not
15025           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
15026           a window)
15027
15028 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15029
15030         * FileDialog.cs: Visual enhancement for the popup buttons in 
15031           PopupButtonPanel
15032
15033 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15034
15035         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
15036           code
15037
15038 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
15039
15040         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
15041           highlighted menu items to match ms
15042
15043 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
15044
15045         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
15046
15047 2006-03-30  Mike Kestner  <mkestner@novell.com>
15048
15049         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
15050         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
15051         go active to account for HotLight to Selected transition.
15052         * MenuItem.cs: add internal Selected prop. Fill out the Status
15053         property by calculating it from item info. Add HotLight,
15054         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
15055
15056 2006-03-30  Mike Kestner  <mkestner@novell.com>
15057
15058         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
15059
15060 2006-03-29  Jackson Harper  <jackson@ximian.com>
15061
15062         * Form.cs: Implement TODO.
15063
15064 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
15065
15066         * PrintPreviewDialog.cs: Implemented missing methods and events; still
15067           missing proper dialog setup in the constructor
15068
15069 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
15070
15071         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
15072         * Control.cs:
15073           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
15074           - Fixed ResetBindings and removed TODO
15075           - Added check for cross-thread calls to get_Handle()
15076           - Added Marshaller attribute for set_Font to satisfy class status
15077         * FontDialog.cs: Removed TODOs that seemed implemented
15078         * UpDownBase.cs: Removed unneeded TODO and Fixme
15079         * MessageBox.cs: Implemented support for Default button and removed TODO
15080         * FileDialog.cs: Removed obsolete TODO
15081         * DomainUpDown.cs: Removed obsolete TODO
15082         * ButtonBase.cs: Removed obsolete TODO
15083         * XplatUIWin32.cs: Removed obsolete TODO
15084         * Form.cs:
15085           - Removed obsolete TODO
15086           - Calling CheckAcceptButton when the acceptbutton is changed to allow
15087             internal status updates
15088           - Making sure the active control is selected when the control is created
15089         * CurrencyManager.cs: Removed obsolete TODO
15090
15091 2006-03-29  Mike Kestner  <mkestner@novell.com>
15092
15093         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
15094         of PrintPreviewDialog and RichTextBox.
15095
15096 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15097
15098         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
15099           DarkDark, Light and LightLight colors for a specific color
15100         * ThemeWin32Classic.cs:
15101           - Use Button drawing code to draw RadioButtons and CheckBoxes with
15102             Appearance = Button 
15103           - Make use of the new ResPool helper CPColor
15104           - Draw ProgressBar and StatusBar with correct 3D borders
15105
15106 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15107
15108         * ColorDialog.cs: Return selected color. Fixes bug #77940.
15109
15110 2006-03-28  Mike Kestner  <mkestner@novell.com>
15111
15112         * ListView.cs: fix Icon layout to plan for scrollbar widths when
15113         calculating col/row counts.
15114
15115 2006-03-28  Mike Kestner  <mkestner@novell.com>
15116
15117         * ColumnHeader.cs:
15118         * ListView.cs:
15119         * ListViewItem.cs:
15120         * Menu.cs: 
15121         switch to explicit interface method implementation for some methods
15122         corcompare identifies as inconsistent with MS.
15123
15124 2006-03-28  Mike Kestner  <mkestner@novell.com>
15125
15126         * MainMenu.cs: 
15127         * Menu.cs:
15128         add a few missing methods from the class status output.
15129
15130 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
15131
15132         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
15133           correct.
15134
15135 2006-03-28  Mike Kestner  <mkestner@novell.com>
15136
15137         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
15138
15139 2006-03-27  Mike Kestner  <mkestner@novell.com>
15140
15141         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
15142         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
15143
15144 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
15145
15146         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
15147
15148 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15149
15150         * ThemeWin32Classic.cs:
15151           - GroupBox: Inserted a little gap between the text and the lines
15152             on the right side
15153           - Made the code in CPDrawBorder3D more readable
15154           - Corrected the drawing location of the up and down arrows in 
15155             CPDrawScrollButton
15156
15157 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15158
15159         * ControlPaint.cs: Corrected line widths in DrawBorder for
15160           ButtonBorderStyle Inset and Outset
15161
15162 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15163
15164         * ThemeWin32Classic.cs:
15165           - Rewrote the totally broken CPDrawBorder3D method. That was
15166             one of the main problems for the terrific ThemeWin32Classic
15167             look
15168           - Updated and corrected Button drawing
15169           - Correct the dimensions of the SizeGrip to match ms ones
15170           - Removed a small drawing glitch in DrawComboBoxEditDecorations
15171         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
15172           Border3DStyle.Sunken to match ms.
15173
15174 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15175
15176         * ThemeWin32Classic.cs: First small part of the "de-uglify
15177           ThemeWin32Classic" effort, SizeGrip
15178
15179 2006-03-24  Jackson Harper  <jackson@ximian.com>
15180
15181         * XplatUIX11.cs: Give a max idle time of one second, this matches
15182         MS and forces an Idle event every second when there are no other
15183         events in the queue.
15184
15185 2006-03-24  Mike Kestner  <mkestner@novell.com>
15186
15187         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
15188         * ListView.Item.cs: fix layout issues with null image lists and images
15189         smaller than checkbox size.
15190         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
15191         mode like MS does.  It's weird, but consistent.  ;-)
15192         Fixes #77890.
15193
15194 2006-03-24  Mike Kestner  <mkestner@novell.com>
15195
15196         * ListView.cs: Scroll wheel support for the item control.  Fixes
15197         #77839.
15198
15199 2006-03-23  Jackson Harper  <jackson@ximian.com>
15200
15201         * ScrollableControl.cs: Special case negative sized areas, not
15202         zero.
15203         * MonthCalendar.cs: Save the rect of the clicked date so we can
15204         use it for invalidation.
15205         - Try to cut down on the number of invalidates
15206         - Invalidate the rect the mouse is over and was over when moving
15207         the mouse, so we get the focus box following the cursor.
15208
15209 2006-03-23  Mike Kestner  <mkestner@novell.com>
15210
15211         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
15212         focus rectangle drawing. Fixes #77835.
15213
15214 2006-03-23  Mike Kestner  <mkestner@novell.com>
15215
15216         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
15217         the if and else if and reverting back to the original == check on the
15218         None conditional.
15219
15220 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15221
15222         * FontDialog.cs: Update the example panel if the selected index of
15223           the fontListBox changes.
15224
15225 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15226
15227         * FileDialog.cs: Make FileDialog remember which directory it was in
15228           last in the same execution.
15229
15230 2006-03-22  Mike Kestner  <mkestner@novell.com>
15231
15232         * FileDialog.cs: make the DropDownMenu on the toolbar display
15233         RadioChecks since they are mutually exclusive and that's what MS does.
15234
15235 2006-03-22  Mike Kestner  <mkestner@novell.com>
15236
15237         * Theme.cs: add Color param to CPDrawMenuGlyph.
15238         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
15239         checks and radio marks and arrows are visible on highlighted items.
15240         * ControlPaint.cs: update to use new Theme signature.
15241
15242 2006-03-22  Mike Kestner  <mkestner@novell.com>
15243
15244         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
15245         is active. Fixes #77870.
15246
15247 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15248
15249         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
15250           to be focused/selected after startup
15251
15252 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15253
15254         * ColorDialog.cs: 
15255           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
15256             CustomColors and ShowHelp properties
15257           - Some internal rewrites to get better results when using the
15258             ColorMatrix
15259
15260 2006-03-22  Mike Kestner  <mkestner@novell.com>
15261
15262         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
15263         HoverSelection.  Fixes #77836.
15264
15265 2006-03-22  Mike Kestner  <mkestner@novell.com>
15266
15267         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
15268         ToggleButtons.  (De)Sensitize the Back button around a stack count of
15269         1, not 0.  Update ButtonSize based on a pixel count of the win32
15270         control.  Adjust the toolbar size/location for new button size.
15271
15272 2006-03-22  Jackson Harper  <jackson@ximian.com>
15273
15274         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
15275         true.
15276         * ScrollBar.cs: When doing increments and decrements we need to
15277         set the Value property so that ValueChanged gets raised. A
15278         possible optimization here would be to make an internal SetValue
15279         that doesn't invalidate immediately.
15280         * ToolTip.cs: Tooltips get added to their container (when
15281         supplied) so they get disposed when the container is disposed.
15282         - Don't create tooltips for String.Empty. This prevents all these
15283         little 2-3 pixel windows from showing up when running nunit-gui
15284         and driving me mad.
15285         * Form.cs: Don't set topmost when setting the owner if the handles
15286         haven't been created yet.  The topmost set will happen when the
15287         handles are created.
15288
15289 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
15290
15291         * XplatUIX11.cs:
15292           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
15293           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
15294             visible (to allow them to recalculate their sizes)
15295
15296 2006-03-21  Mike Kestner  <mkestner@novell.com>
15297
15298         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
15299         methods. Removed a ton of redundant code.  Still not really happy with
15300         the border rendering, but I think that's mainly because of the
15301         ControlDarkDark being black instead of a dark grey. Depending on how 
15302         close we want to be, we might want to revisit those color choices.
15303         Among the new features added during the refactor were DropDownArrow
15304         pressed rendering, Disabled image rendering.  Proper flat appearance
15305         boundary rendering.  Removed the Divider and Wrapping dividers since I
15306         can't figure out any combination of themes and conditions to make the
15307         MS control draw a horizontal line on a toolbar despite what the
15308         Divider property docs indicate.
15309         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
15310         conditions and incorrect layout.  Updated to coding standard.
15311         * ToolBarButton.cs: refactored layout and positioning code from
15312         ToolBar to here.  Invalidate wherever possible instead of forcing
15313         redraws of the whole toolbar. 
15314         (Known remaining issues: explicit ButtonSize smaller than provided
15315         images.)
15316
15317 2006-03-21  Mike Kestner  <mkestner@novell.com>
15318
15319         * ContextMenu.cs (Show): use the position parameter instead of just
15320         showing at the MousePosition.
15321
15322 2006-03-21  Jackson Harper  <jackson@ximian.com>
15323
15324         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
15325         control handle this.
15326         * TreeNodeCollection.cs: If we are clearing the root node we need
15327         to reset top_node so calcs can still happen.
15328         * ThemeWin32Classic.cs: This is a Flags so we need to check
15329         properly.
15330         
15331 2006-03-21  Jackson Harper  <jackson@ximian.com>
15332
15333         * DataGrid.cs: Create columns when the binding context has been
15334         changed.
15335         * X11Structs.cs: Keysyms are uints.
15336         - Add size to fix build.
15337
15338 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
15339
15340         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15341           XplatUIOSX.cs: 
15342           - Added ResetMouseHover method to allow controls to retrigger
15343             hovering if they need it more than once
15344           - Implemented MouseHoverTime and MouseHoverSize properties
15345         * Timer.cs: Start() must reset the interval
15346         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
15347           properties
15348
15349 2006-03-21  Jackson Harper  <jackson@ximian.com>
15350
15351         * X11Keyboard.cs: improved layout detection. Move the nonchar
15352         tables into this file.
15353         * KeyboardLayouts.cs: Move the tables into resource files.
15354
15355 2006-03-21  Mike Kestner  <mkestner@novell.com>
15356
15357         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
15358
15359 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
15360
15361         * Mime.cs: Various speed optimizations. Looking up mime types
15362           is now 2 times faster than before
15363
15364 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
15365
15366         * CreateParams.cs: Added internal menu field
15367         * Control.cs: 
15368           - Switched call order for UpdateBounds; now we always call
15369             the one that also takes ClientSize, and we're calculating the 
15370             client size via driver method in the others. The previous
15371             method of tracking client size by difference wasn't working
15372             for forms where even the starting client size wouldn't match
15373             the overall form size (due to borders) (Part of fix for #77729)
15374           - CreateParams(): Do not use parent.Handle unless the handle is
15375             already created. Causes havoc with Nexxia and throws off our
15376             creation of controls
15377         * XplatUIX11.cs:
15378           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
15379           - Switched handling of ConfigureNotify over to new PerformNCCalc 
15380             method (consolidates code)
15381           - Changed RequestNCRecalc to use new PerformNCCalc method
15382           - Added calls to RequestNCRecalc when menus and borders are changed
15383             to allow app to set NC size. (Part of fix for #77729) This matches
15384             when MS send a WM_NCRECALC on Win32 windows.
15385           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
15386             (Part of fix for #77729). This matches what MS does, they also
15387             send that message when the form is made visible.
15388           - XException.GetMessage: Improved usability of X errors by including
15389             a translation of the window into Hwnd and Control class
15390           - Improved debug info for window creation, reparenting and destruction
15391           - Created helper method WindowIsMapped() [Currently not used]
15392         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
15393         * Form.cs:
15394           - CreateParams: Now setting our menu on the new internal menu field
15395           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
15396             avoid calculating the same property twice
15397         * Hwnd.cs:
15398           - Improved usability of ToString() for debugging purposes
15399           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
15400             determine the height of the menu, instead of just the font. This
15401             required to also create a graphics context and to keep a bmp 
15402             around (for performance reasons)
15403
15404 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
15405
15406         * MenuAPI.cs: Added OnMouseUp method
15407         * Form.cs:
15408           - Now remembering the requested client size, avoids size errors
15409           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
15410             instead of base if the menu is active. This is required due to
15411             control now capturing and releasing on down/up and it would
15412             prematurely release our menu capture
15413
15414 2006-03-17  Jackson Harper  <jackson@ximian.com>
15415
15416         * KeyboardLayouts.cs: Add the czech layouts.
15417
15418 2006-03-16  Jackson Harper  <jackson@ximian.com>
15419
15420         * Control.cs: Use the viewport space when sizing not the controls
15421         client size, so things like ScrollableControl that effect the
15422         viewport size (when scrollbars are added) are computed correctly.
15423         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
15424         of ManagerEntrys.
15425         - Handle creating BindingManagers for null data sources.
15426         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
15427         source, otherwise when rows are added they are added to the 'fake'
15428         datasource and we will crash when trying to set the position in
15429         those rows.
15430         - Use Implicit scrollbars on the datagrid so they arent
15431         selectable.
15432         
15433 2006-03-16  Jackson Harper  <jackson@ximian.com>
15434
15435         * Binding.cs:
15436         * InternalWindowManager.cs:
15437         * MdiWindowManager.cs:
15438         * X11Keyboard.cs: I really want Mike to love me again (fix
15439         compiler warnings).
15440
15441 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
15442
15443         * DataGrid.cs:
15444           - OnMouseDown: Switch to editing mode when clicking on the cell
15445                          even if we're clicking on the cell that's currently 
15446                          selected
15447           - ProcessGridKey: Left/Right now wrap like MS.Net does
15448           - ProcessGridKey: Tab now knows to add a new row when tab is
15449                             pressed in the cell of the last column of the 
15450                             last row
15451           - ProcessGridKey: Enter now adds another row  if pressed in the last
15452                             row and selectes the new row, same column cell
15453           - ProcessGridKey: Home/End navigate columns, not rows, like 
15454                             originally implemented
15455           - Broke ProcessKeyPreview code out into an extra Internal method
15456             so it can be called from the edit code
15457         * DataGridTextBox.cs (ProcessKeyMessage):
15458           - Switched to accept Tab keypresses
15459           - Added F2 handling to allow jumping to the end of the edited cell
15460           - Added logic to allow moving caret left/right inside edited cell
15461             and making the edited cell jump when the caret hits cell borders
15462           - Tab and Enter are now passed to the datagrid after being handled
15463         * TextBoxBase.cs:
15464           - Removed capture code now that Control handles it
15465           - set_SelectionStart now ensures caret is visible
15466
15467 2006-03-16  Jackson Harper  <jackson@ximian.com>
15468
15469         * TrackBar.cs: Debackwards the increment/decrement for handling
15470         mouse clicks on the bar with vertical trackbars.
15471         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
15472         bottom to match MS.
15473
15474 2006-03-16  Mike Kestner  <mkestner@novell.com>
15475
15476         * ListView.cs: make shift/ctrl keyboard and mouse selection 
15477         consistent with the MS control. Fix a bug in
15478         SelectedListViewItemCollection.Clear that was pissing me off for the
15479         better part of a day because the collection was being altered
15480         underneath us as we walked the list.
15481
15482 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
15483
15484         * Control.cs: Not sure how we could miss this so long, but it seems
15485           that MS.Net has Capture set all the way from before calling 
15486           OnMouseDown through sending the mouse events until after
15487           OnMouseUp. This will fix DataGrid's selection being set to end
15488           at the location of the MouseUp.
15489
15490 2006-03-15  Jackson Harper  <jackson@ximian.com>
15491
15492         * BindingContext.cs: Check the binding after its added so that it
15493           can initialize the binding managers and hookup to events.
15494         * Binding.cs: Data members seem to sometimes include rows/cols in
15495           the format Row.Column we now take this into account.
15496           - Hookup to the position changed event so we can update the
15497           control when the position has changed in the data set.
15498         * CurrencyManager.cs: Take into account the row/col naming
15499           convention when creating dataset tables.
15500         * BindingContext.cs: Using a newer better way of storing
15501           datasource/datamember pairs.  Hopefully this better matches MS for
15502           looking up binding managers.
15503
15504
15505 2006-03-15  Jackson Harper  <jackson@ximian.com>
15506
15507         * BindingContext.cs: The currency manager needs the data member
15508         name, if the member is a data set we use the name to find the
15509         correct table.
15510         * CurrencyManager.cs: When creating the list prefer an IList over
15511         an IListSource.
15512         - Attempt to create a DataTable from a DataSet (TODO: might need
15513         some better error checking here, although MS doesn't seem to have much)
15514         - If we have a DataTable create a view and use it as our list.
15515
15516 2006-03-15  Mike Kestner  <mkestner@novell.com>
15517
15518         * ListView.cs: keep a matrix of the icon mode layout to facilitate
15519         keyboard navigation. Support Up/Down/Left/Right selection correctly
15520         for all 4 View modes.
15521         * ListViewItem.cs: add internal row/col fields for icon layouts.
15522
15523 2006-03-15  Jackson Harper  <jackson@ximian.com>
15524
15525         * TabControl.cs: Redraw the tabs when we resize so their newly
15526         calculated sizes are drawn on screen.
15527         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
15528         composite characters.
15529         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
15530         - filter events so that composite characters can be created
15531         patches by peter
15532         * X11Structs.cs: Add XIMProperties enum.
15533
15534 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15535
15536         * Control.cs (BringToFront, SendToBack): Don't use window or handle
15537           unless it's created
15538
15539 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15540
15541         * Control.cs (PerformLayout): We don't need to consider visiblity
15542           for anchoring, only for docking. This fixes 'whacky' alignment
15543           in listbox and other controls that use implicit scrollbars after
15544           the previous PerformLayout patch
15545         * ListBox.cs: Switched to use implicit scrollbars
15546           
15547 2006-03-14  Mike Kestner  <mkestner@novell.com>
15548
15549         * ToolBar.cs: 
15550         * VScrollBar.cs:
15551         - chain up the "new event" overrides to base and use
15552         OnEvent to raise them.  Part of fix for bug #76509.
15553
15554 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
15555
15556         * FileDialog.cs: Do not select an item in the parent directory
15557           on backspace
15558
15559 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15560
15561         * Control.cs (PerformLayout): It would seem that we considered
15562           invisible windows for our layout. Not quite the right thing
15563           to do. Now we don't any longer, thereby fixing bug #76889.
15564
15565 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15566
15567         * Control.cs (CanFocus): I goofed. A control can have focus 
15568           even though it's not selectable. Made it match MS docs.
15569
15570 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15571
15572         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
15573           center by default (fixes #76895)
15574         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
15575           all uses of Border3DSides.All with the explicit ORd together
15576           Left|Right|Top|Bottom because I assume that nobody was aware 
15577           that All also implies a center fill. Most places I checked had
15578           a fill right above.
15579         * ProgressBarStyle.cs: Added
15580
15581 2006-03-13  Mike Kestner  <mkestner@novell.com>
15582
15583         * ListView.cs: fix breakage in drag shadow header positioning 
15584         from Peter's csc compilation fix.
15585
15586 2006-03-13  Mike Kestner  <mkestner@novell.com>
15587
15588         * ListView.cs: fix NRE produced by backspacing twice in a focused
15589         FileDialog.
15590
15591 2006-03-13  Mike Kestner  <mkestner@novell.com>
15592
15593         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
15594
15595 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15596
15597         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
15598           be changed
15599         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
15600           the allowed size before making programmatic size changes
15601
15602 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
15603
15604         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
15605           set, metacity is broken and will still use the emty sizes in 
15606           the struct. (Fix for #77089)
15607
15608 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15609
15610         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
15611           WindowExStyles and marked both enums as Flags
15612         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
15613           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
15614           to match WindowStyles split
15615         * XplatUIX11.cs:
15616           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
15617           - Updated to match WindowStyles split
15618         * XplatUIWin32.cs:
15619           - Fixed FosterParent creation, was using ExStyle on the Style field
15620             (This should help with Popup focus issues)
15621           - Updated to match WindowStyles split
15622
15623 2006-03-13  Jackson Harper  <jackson@ximian.com>
15624
15625         * MdiWindowManager.cs: Use the system menu height. Fixes some
15626         strange sizing issues.
15627
15628 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15629
15630         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
15631         * TextBoxBase.cs:
15632           - Scroll to caret after inserting text (#77672)
15633           - Make scroll range one pixel higher, fixes off-by-one error (and
15634             makes underlines visible on the last line)
15635
15636 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
15637
15638         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
15639           the keyboard state from being stuck with keys in 'pressed' state when
15640           focus is switched away via keyboard
15641         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
15642           reset the keyboard if no X11 KeyUp events are expected to come
15643         * X11Structs.cs: Switched type of Visible to bool to match driver
15644
15645 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15646
15647         * TextControl.cs:
15648           - Switched caret to be just 1 pixel wide, matches MS and looks less
15649             clunky
15650           - Moved caret display 1 pixel down from the top of the control
15651             to improve view
15652           - InsertCharAtCharet: Update the selection start if moving the caret
15653             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
15654           - No longer always creating the caret when the caret methods are
15655             called. Only the actual ShowCaret/HideCaret will do that now
15656           - Only setting caret visible if the owner control has focus
15657           - UpdateView: Added invalidation-shortcut logic for center and right 
15658             aligned text. Previously we'd update all according to the left
15659             logic which caused drawing errors. Also fixed height of invalidated
15660             areas, now properly invalidating the whole area (was off-by-one)
15661           - owner_HandleCreated: Always generate the document when the
15662             handle is created; this ensures that 
15663         * TextBoxBase.cs:
15664           - Fixed situation where caret would disappear under the right
15665             window border, also improved scrolling behaviour on left-
15666             aligned textboxes
15667           - Fixed right-aligned textboxes to have a border to the
15668             right instead of the caret being under the right border
15669         * XplatUIX11.cs:
15670           - Switched from 'nested' to simple visible/not visible tracking 
15671             for caret (part of fix for #77671)
15672           - No longer passing through translated FocusIn/FocusOut messages
15673             since we were notifying too often and the wrong windows. Instead
15674             we just notify our focussed window of receiving or loosing focus
15675         * XplatUIWin32.cs: Switched from 'nested' show/hide 
15676           counting for caret to simple visible yes/no behaviour (part of 
15677           fix for #77671)
15678
15679 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15680
15681         * Mime.cs: Remove debug code...
15682
15683 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15684
15685         * MimeGenerated.cs: Removed
15686         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
15687           and subclasses) from /usr/(local/)share/mime and
15688           $HOME/.local/share/mime.
15689
15690 2006-03-10  Jackson Harper  <jackson@ximian.com>
15691
15692         * MdiWindowManager.cs: Recalc the NC area when a window is
15693         maximized/restored so that the menu area is drawn on forms that
15694         don't have a menu.
15695
15696 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15697
15698         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
15699           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
15700           us to force a WM_NCCALCRESIZE message being sent. This is needed
15701           for MDI maximizing.
15702
15703 2006-03-10  Jackson Harper  <jackson@ximian.com>
15704
15705         * Form.cs: We need to use the ActiveMenu when calculating menu
15706         height.
15707         - Fix nullref when the window manager hasn't been created yet.
15708         * Control.cs: Fix nullref when we try to bring a control to the
15709         front that has no parent.
15710         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
15711         height.
15712         - Add a dummy item to the maximized menu so it always has the
15713         correct height. Otherwise when there are no menus we don't get our
15714         icon and buttons.
15715         
15716
15717 2006-03-10  Jackson Harper  <jackson@ximian.com>
15718
15719         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
15720         stuff.
15721         * Form.cs: Make the window_state internal so the window managers
15722         can track it.
15723         - When an MDI child is maximized let its window manager create the
15724         main menu (so it can add its icon).
15725         - Notify the window managers of state changes
15726         - Let the window manager paint its buttons and handle button
15727         clicks on the menu when it is maximized.
15728         * InternalWindowManager.cs: Move the prev_bounds into the mdi
15729         window manager, since tool windows don't use it, only mdi windows.
15730         - Tell the main form that we don't want it to handle NCPAINT
15731         itself to avoid extra painting.
15732         - Handle clicks on a maximized windows menu.
15733         - Handle window state changes
15734         - Handle minimize/maximize clicks correctly by setting the window state.
15735         * MdiWindowManager.cs: Add an icon menu that (the menu you get
15736         when clicking on the forms icon).
15737         - New method to create a forms maximized menu. This is its normal
15738         menu + an icon.
15739         - Handle window state changes.
15740         - Handle sizing of maximized windows.  Maximized windows are just
15741         drawn bigger then the parent visible area. All controls are still
15742         there, they are just outside the visible area (this matches windows).
15743         * MdiClient.cs: No scrollbars when a child window is maximized.
15744         - Let the children windows figure out how big they should be when
15745         sizing maximized windows.
15746         - Implement a version of ArrangeIconicWindows somewhat similar to
15747         Windows version.  There are some little differences, but I don't
15748         think any app will rely on the layout of minimized mdi windows.
15749
15750 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15751
15752         * Padding.cs: Several fixes to allow compiling with csc 2.0
15753
15754 2006-03-09  Jackson Harper  <jackson@ximian.com>
15755
15756         * Menu.cs:
15757         * MenuItem.cs: Cheap hack so we can add items to the list without
15758         the events being raised.  This allows adding mdi items during
15759         drawing. TODO: Should probably find a better time to add the items.
15760
15761 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15762
15763         * ThemeWin32Classic.cs:
15764           - CheckBox_DrawText: Added logic to not wrap if not enough space
15765             is available (Fix for bug #77727)
15766           - RadioButton_DrawText: Added logic not to wrap if not enough
15767             space is available (Fix for bug #77727). Also removed some
15768             duplicate code, DrawString always drawing the regular text
15769             before hitting the if statement.
15770
15771 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
15772
15773         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
15774
15775 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15776
15777         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
15778         * ContainerControl.cs: Partial implementation of some 2.0 scaling
15779           methods. Moved the new 2.0 properties into alphabetical order with
15780           other properties and added MonoTODO tags
15781
15782 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15783
15784         * AutoScaleMode.cs: Added. Fix build.
15785
15786 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15787
15788         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15789           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
15790           and was requiring premature handle creation for calls from above
15791         * Form.cs, Control.cs: Removed handle arguments from calls to
15792           CalculateClientRect()
15793
15794 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15795
15796         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
15797           drag_column.column_rect is MarshalByRef and can't be used that way
15798
15799 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15800
15801         * AxHost.cs: Added deserialization constructor for 
15802           AxHost+State (fixes 77743)
15803
15804 2006-03-09  Mike Kestner  <mkestner@novell.com>
15805
15806         * ListView.cs: 
15807         - Added column drag reordering for details view.
15808         - fixed behavior when mouse is dragged off column and
15809         AllowColumnReorder is false.
15810         * ColumnHeader.cs: clone the format too in Clone.
15811         * Theme.cs: add DrawListViewHeaderDragDetails method.
15812         * ThemeWin32Classic.cs:
15813         - impl new method for drawing drag column shadows and targets.
15814         - support column offset for details mode in DrawListViewItem.
15815
15816 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15817
15818         * TextControl.cs: Reset the char_count when the document is cleared
15819           (Fixes bug reported on mono-winforms mailing list)
15820
15821 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15822
15823         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
15824           of calling base we simply process the key ourselves, since both
15825           DefWindowProc and the handled method would set m.Result. 
15826           (Fixes #77732)
15827
15828 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15829
15830         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
15831           method also moves the window; instead implemented a copy of
15832           Control.ScaleCore (Part of fix for #77456)
15833         * TextBoxBase.cs: 
15834           - Created new CreateGraphicsInternal method to allow providing
15835             a graphics context when no handle is created without triggering
15836             handle creation. (Part of fix for #77456)
15837           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15838         * TextControl.cs: 
15839           - Switched Constructor to require TextBoxBase instead of Control (to
15840             allow uncast access to CreateGraphicsInternal)
15841           - Safeguarded use of owner.Handle property. No longer accessing it
15842             unless the handle is already created.
15843           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15844           - Now triggering a recalc when owning control becomes visible
15845         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
15846           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
15847           premature handle creation (Part of fix for #77456)
15848         * Control.cs:
15849           - We now only destroy our double-buffering buffers when the
15850             control is resized or disposed, but not when visibility
15851             changes. (The code even re-created them twice every time)
15852           - Now requiring a redraw of the buffer on visibility changes
15853             (fixes bug 77654 part 2)
15854           - Not passing OnParentVisibleChanged up unless the control
15855             is visible
15856           - CanFocus: Fixed to match MS documentation
15857           - Focus: Fixed to return actual focus state and to check if
15858             setting focus is legal before setting it
15859
15860 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
15861
15862         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
15863           when to draw focus rectangle by looking at parent focus and
15864           selected state instead. This fixes TabPages on Linux sometimes
15865           having none or multiple focus rectangles.
15866         * XplatUIX11.cs (SetFocus): 
15867           - Don't set the focus if the same window already has focus
15868           - Use SendMessage instead of PostMessage (like it's Win32
15869             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
15870             to match MS behaviour
15871         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
15872           are not selectable.
15873
15874 2006-03-07  Jackson Harper  <jackson@ximian.com>
15875
15876         * PictureBox.cs: Revert line I accidently committed last week.
15877
15878 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
15879
15880         * Control.cs: 
15881           - Added new IsRecreating and ParentIsRecreating properties to
15882             allow testing if RecreateHandle has been called on ourselves
15883             or one of our parents
15884           - WndProc(WM_DESTROY): If our control handle is being recreated
15885             we immediately need to create the handle when receiving the
15886             destroy, that way our child windows find a valid parent handle
15887             when they themselves are being recreated upon WM_DESTROY receipt
15888             (fix for bug #77654 part 1)
15889         * XplatUIX11.cs:
15890           - DestroyWindow: WM_DESTROY must be sent to our own window before
15891             notifying any child windows. MS documents that child windows
15892             are still valid when WM_DESTROY is received. (Control now relies on
15893             this behaviour)
15894           - Added some fine-grain debug options
15895
15896 2006-03-06  Jackson Harper  <jackson@ximian.com>
15897
15898         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
15899         box and base calculations off this.
15900         * MdiChildContext.cs:
15901         * MdiWindowManager.cs: Don't need to ensure scrollbars here
15902         anymore.
15903         
15904 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
15905
15906         * Splitter.cs: In situations where the affected control is added
15907           to the parent's control list after the splitter, we would not
15908           populate affected. Now we try populating it on mousedown, if
15909           it's not already set, and force it to be re-set whenever our
15910           parent changes.
15911
15912 2006-03-03  Matt Hargett  <matt@use.net>
15913
15914         * Control.cs: implement Control.Padding
15915         * Padding.cs: -Padding.All returns -1 when constructing with the
15916         implicit default ctor
15917         -Padding.ToString() matches MS.NET
15918         * ContainerControl.cs: implement
15919         ContainerControl.AutoScaleDimensions
15920         * ListControl.cs: implement ListControl.FormattingEnabled
15921         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
15922         * ButtonBase.cs:
15923         * TabPage.cs: Implement UseVisualStyleBackColor.
15924         * PictureBox.cs: Implement PictureBox.InitialImage.
15925
15926 2006-03-03  Mike Kestner  <mkestner@novell.com>
15927
15928         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
15929         event declarations to proxy to base event.
15930         * ListViewItem.cs: update to use ItemControl.
15931         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
15932         * ThemeWin32Classic.cs: update to new ListView theme API and fix
15933         column header label rendering for 0 width columns.
15934
15935 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
15936
15937         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
15938           that causes the control to be created. Fixes #77476.
15939
15940 2006-03-02  Jackson Harper  <jackson@ximian.com>
15941
15942         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
15943         expose_pending.
15944
15945 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
15946
15947         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
15948           passed in for the EventArgs (fixes #77690)
15949
15950 2006-03-01  Jackson Harper  <jackson@ximian.com>
15951
15952         * ScrollBar.cs: Refresh afterbeing resized.
15953
15954 2006-02-28  Mike Kestner  <mkestner@novell.com>
15955
15956         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
15957         Clean up a tracker compile warning.
15958         * MenuItem.cs: add internal PerformPopup method.
15959         [Fixes #77457]
15960
15961 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
15962
15963         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
15964           implicit expose) when the text is set to null
15965
15966 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
15967
15968         * RichTextBox.cs (FlushText): When newline is true, we always
15969           need to split the line, even if no text is on it and we may
15970           never eat newlines. (Fixes #77669)
15971
15972 2006-02-28  Mike Kestner  <mkestner@novell.com>
15973
15974         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
15975         and set Selected instead.
15976         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
15977         collections.
15978
15979 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
15980
15981         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
15982
15983 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
15984
15985         * FontDialog.cs:
15986           - Got rid of the panel. All controls are now directly added to
15987             the dialog form
15988           - It is now possible to set a font with the Font property
15989           - MinSize and MaxSize property do now what they should
15990           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
15991           - Searching and selecting a font with the font textbox works now,
15992             the same applies to the style and size textbox
15993           - Draw the correct 3D border in the example panel
15994           - Fixed a little mem leak (unused fonts didn't get disposed)
15995           - Many other internal updates/rewrites...
15996           - Fix typo
15997
15998 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
15999
16000         * TextControl.cs: 
16001           - InsertRTFFromStream: Added 'number of characters inserted' argument
16002           - set_SelectedRTF: Now using the number of characters to calculate
16003             the new location for the selection and cursor (x/y cannot be used
16004             due to potentially already wrapped text)
16005
16006 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
16007
16008         * TextControl.cs: Added property and implemented means to allow 
16009           disabling recalculation of a document (can be used to speed up
16010           multiple inserts and is needed to make RTF inserts predictable, see
16011           bug #77659)
16012         * RichTextBox.cs: Using the new NoRecalc property of Document to
16013           keep x/y insert locations predictable. Also makes it faster inserting
16014           large chunks of RTF
16015
16016 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
16017
16018         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
16019           it's easier for a child control to handle the other messages without
16020           having to duplicate the special functionality
16021         * TextBoxBase.cs
16022           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
16023             code to handle processing the key ourselves, in order to get 
16024             access to the result of KeyEventArgs.Handled. We now only call 
16025             ProcessKey if they key hasn't been handled already. Fixes #77526.
16026           - set_Text: If null or empty string is given, just clear the 
16027             document. Fixes part of #77526
16028
16029 2006-02-27  Jackson Harper  <jackson@ximian.com>
16030
16031         * SizeGrip.cs: Paint the background color before painting the grip
16032         so things look right.
16033         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
16034
16035 2006-02-27  Mike Kestner  <mkestner@novell.com>
16036
16037         * ListView.cs:
16038           - Restructure layout and invalidation model to remove a ton of
16039           flicker from the control and speed up performance in general.
16040           - Add manual column resize, flickers like crazy, but I already have
16041           some ideas on how I'll fix that. (#76822)
16042           - Merge the three Icon-based views into a single layout method.
16043           - Move item selection interaction logic from the item since 
16044           interaction with the collections is more appropriate to the view.
16045           - Deselection on non-item clicks.
16046         * ListViewItem.cs:
16047           - Encapsulate most of the layout. Add some internal props to trigger
16048           layout.  Move to a model where Items invalidate themselves instead
16049           of just invalidating the whole control every time something changes.
16050           - Invalidate on Text/Caption changes.
16051           - switch to an offset based layout model to avoid having to absolute
16052           position every element on item moves.
16053           - correct checkbox layout to conform to MS layout.
16054         * ThemeWin32Classic.cs:
16055           - refactor some column header drawing code.
16056           - fix string justification for column headers (#76821)
16057           - make SmallIcon labels top justified for compat with MS impl.
16058         * ThemeClearlooks.cs:
16059           - adjust to new ListViewItem internal checkbox bounds api.
16060
16061 2006-02-27  Jackson Harper  <jackson@ximian.com>
16062
16063         * Control.cs:  Change where implicit controls fall in the zorder.
16064         They are now on top of all children.
16065         - Synced AddImplicit code with Add
16066         - Removed unused enumerator.
16067         * SizeGrip.cs: Remove the TODO as its been TODONE.
16068
16069 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
16070
16071         * TextControl.cs(Insert): Combine the last lines unless the insertion
16072           string ends with \n\n, otherwise we leave one line too many (Fixes
16073           something I noticed with the testapp for #77526; the bug itself was
16074           already fixed in the previous checkin)
16075
16076 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
16077
16078         * RichTextBox.cs:
16079           - SelectionColor and SelectionFont methods no longer set absolute
16080             styles. Instead, the keep font or color respectively (This 
16081             resolves a long-standing FIXME in the code)
16082           - When flushing RTF text, the insert code now considers text trailing
16083             behind the insertion point (Fixes the bug where when replacing
16084             the selected text via SelectedRTF the remainder of the line behind 
16085             the selection would stay on the first insertion line)
16086         * TextBoxBase.cs:
16087           - AppendText now updates the selection points after inserting text
16088           - AppendText now ensures that the last tag (sometimes 0-length) of
16089             the document is used for the style information (Fixes part of 
16090             bug #77220)
16091         * TextControl.cs:
16092           - Created new FontDefiniton class to allow describing partial style
16093             changes
16094           - StreamLine() now takes a lines argument, to allow it to decide
16095             whether an encountered zero-length tag is the last in the document
16096             (which must be kept to not loose the font/color contained in it,
16097             for later appends)
16098           - Created Combine() and Split() methods for Marker structs, to 
16099             support marker updates due to reformatted documents (soft line
16100             wraps)
16101           - Implemented Document.CaretTag setter
16102           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
16103             of the last line (Not the cause, but also exposed by bug #77220)
16104           - Added LineTag argument to InsertString method, to allow callers
16105             to force a certain tag to be used (required to force use of the
16106             trailing zero-length tag of a document)
16107           - Now updating markers in Combine(), to avoid stale tag markers
16108           - Added some method descriptions to aid maintenance
16109           - Implemented new FormatText concept, allowing additive/subtractive
16110             formatting by only specifying the components that are to be 
16111             changed. This was needed for resolving the RTB.SelectedColor/
16112             RTB.SelectedFont fixmes
16113           - Added Break() support method to allow breaking up linetags (used
16114             for partial formatting)
16115           - Added GenerateTextFormat() method. It is used for partial 
16116             formatting and allows to generate a full font/color from given
16117             attributes and an existing tag.
16118
16119 2006-02-26  Jackson Harper  <jackson@ximian.com>
16120
16121         * XplatUIX11.cs:  Use the correct caption height.
16122         - Translate hittest coordinates to screen coords to match MS.
16123         * XplatUIWin32.cs: When we create MDI windows we need to reset
16124         some of the style flags, so we get a nice blank window, and can
16125         draw all the decorations ourselves.
16126         - Set a clipping rectangle on the non client paint event, the
16127         window manager drawing code needs one.
16128         * Form.cs: The window manager needs to know when the window state
16129         has been updated.
16130         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
16131         don't need to factor in border and title sizes in these
16132         methods. TODO: Remove the args and fix the call points.
16133         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
16134         properly.
16135         - Let the driver set the cursors.
16136         - Improve active window handling
16137         - Correct sizes for title bars and buttons.
16138         - Match MS drawing better
16139         * MdiWindowManager.cs: We don't need to handle border style
16140         updates specially anymore.
16141         - Check for scrollbars when windows are done moving
16142         - Handle Active properly.
16143         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
16144         correctly. I am spewing the exception though, so we don't hide the
16145         bugs.
16146         
16147 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
16148
16149         * DataGridViewRowPostPaintEventArgs.cs,
16150           DataGridViewCellPaintingEventArgs.cs,
16151           DataGridViewRowCollection.cs,
16152           DataGridViewRowPrePaintEventArgs.cs,
16153           DataGridViewCell.cs: Clear a few warnings and implement a few
16154           exceptions that should be thrown.
16155
16156 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16157
16158         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
16159           'inheriting' our parent's (non-default) cursor. (Part of
16160            the fix for #77479)
16161
16162 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
16163
16164         * XplatUIX11.cs: Fixed cast to make csc happy
16165
16166 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16167
16168         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
16169           it's for the client area (part of fix for #77479 and needed
16170           for MDI window cursor handling)
16171         * XplatUIX11.cs
16172           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
16173             the appropriate default cursors and also passing the message
16174             up the parent chain 
16175           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
16176             for non-client areas
16177
16178 2006-02-15  Jackson Harper  <jackson@ximian.com>
16179
16180         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
16181         is a real MDI window
16182
16183 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
16184
16185         * X11DesktopColors.cs: Instead of checking the desktop session
16186           string for "KDE" check if it starts with "KDE"
16187
16188 2006-02-10  Jackson Harper  <jackson@ximian.com>
16189
16190         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
16191         systems).
16192
16193 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16194
16195         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
16196           errors
16197         * ColorDialog.cs:
16198           - Got rid of the panel. All controls are now directly added to
16199             the dialog form
16200           - Changed to mono coding style
16201
16202 2006-02-10  Jackson Harper  <jackson@ximian.com>
16203
16204         * InternalWindowManager.cs: We don't need the set visibility to
16205         false hack anymore now that peter has written beautiful shutdown
16206         code.
16207
16208 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
16209
16210         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
16211           where already explicitly destroyed
16212
16213 2006-02-10  Jackson Harper  <jackson@ximian.com>
16214
16215         * MdiClient.cs: Handle the case where windows are too high or to
16216         the left and we need scrollbars.
16217
16218 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16219
16220         * MimeIcon.cs: Added some icons
16221         * FileDialog.cs:
16222           - Fixed bug #77477
16223           - Got rid of the panel. All controls are now directly added to
16224             the dialog form
16225           - Changed to mono coding style
16226           - On Linux "My Computer" and "My Network" will now show some
16227             more usefull information. A new class, MasterMount, gathers
16228             this information from /proc/mount. Updated MWFFileView to make
16229             use of this information
16230           - Fixed a bug that caused FileDialog to crash when
16231             ".recently_used" file had a zero size
16232           - FilterIndex does now what it should
16233           - Some Refactoring
16234         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
16235             FileDialog changes
16236
16237 2006-02-09  Jackson Harper  <jackson@ximian.com>
16238
16239         * ComboBox.cs: Don't touch if null.
16240
16241 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
16242
16243         * Cursor.cs: 64bit safeness fix
16244         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
16245
16246 2006-02-09  Jackson Harper  <jackson@ximian.com>
16247
16248         * Form.cs: If a form is made into an MDI form update the styles so
16249         all the props can get set correctly.
16250         - Kill the mdi_container when we dont need it anymore.
16251         * InternalWindowManager.cs: Add missing NOT
16252
16253 2006-02-08  Jackson Harper  <jackson@ximian.com>
16254
16255         * InternalWindowManager.cs: Respek clipping when drawing MDi
16256         decorations.
16257
16258 2006-02-08  Jackson Harper  <jackson@ximian.com>
16259
16260         * Hwnd.cs: Add bits to track non client expose events.
16261         * XplatUIX11.cs: Track non client expose events on the hwnd. This
16262         gives us a proper invalid rect and will allow for some nice
16263         optimizations with NC client drawing
16264         - MDI windows are children windows, so move their style handling
16265         into the child window block.
16266         * InternalWindowManager.cs: Remove a state reset that was
16267         getting invoked at the wrong time. Fixes managed windows getting
16268         into a 'stuck' captured state.
16269
16270 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16271
16272         * TextControl.cs (Document.ctor): Now initializing 
16273           selection_anchor. Fixes #77493
16274
16275 2006-02-07  Jackson Harper  <jackson@ximian.com>
16276
16277         * TrackBar.cs: The increment/decrements were backwards.
16278
16279 2006-02-07  Mike Kestner  <mkestner@novell.com>
16280
16281         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
16282         to the instance itself.
16283
16284 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16285
16286         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
16287           on ulongs and pointers, the size differs between 32bit and 64bit
16288           systems. 
16289
16290 2006-02-07  Mike Kestner  <mkestner@novell.com>
16291
16292         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
16293         for 64 bit platforms to work around a metacity bug. 
16294
16295 2006-02-07  Jackson Harper  <jackson@ximian.com>
16296
16297         * TrackBar.cs: Process the input keys we need, and hookup to
16298         KeyDown instead of using WndProc, so we get key messages.
16299
16300 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
16301
16302         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
16303           machine we're on. 
16304         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
16305           we need to translate the XdndVersion atoms array before sending it
16306
16307 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
16308
16309         * XplatUIX11.cs: 
16310           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
16311             number of bits for the property, not the number of bytes. The
16312             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
16313             but would not crash since it specified 8 bits instead of 4 bits)
16314           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
16315             defined as XID -> long in the C headers)
16316           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
16317             references since those are now IntPtr to begin with
16318           - Switched all Atom.XXX 'int' casts to IntPtr casts
16319           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
16320           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
16321           - Added XChangeActivePointerGrab DllImport (for X11DnD)
16322         * X11Structs.cs:
16323           - Changed 'int' type for Atoms in XEvent structures to IntPtr
16324           - Changed atom in HoverStruct to be IntPtr
16325         * X11DnD.cs:
16326           - Removed local DllImports, switched code to use those from XplatUIX11
16327           - Removed/fixed casts related to the switch of Atom to be a IntPtr
16328
16329 2006-02-06  Mike Kestner  <mkestner@novell.com>
16330
16331         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
16332         method signatures in the import region.  There may still be some
16333         lingering struct marshaling issues, as I didn't drill down into those.
16334         Yet.
16335
16336 2006-02-06  Jackson Harper  <jackson@ximian.com>
16337
16338         * ComboBox.cs: Dont manually set the top_item, this is computed
16339         when the scrollbar position is set.
16340
16341 2006-02-06  Mike Kestner  <mkestner@novell.com>
16342
16343         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
16344         startup crashes on amd64.  There's other fixes needed.  All pinvoke
16345         usage of Atom needs to be mapped to IntPtr for example.  And there are
16346         likely other int/long issues to be addressed.
16347
16348 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
16349
16350         * FileDialog.cs: One more...
16351
16352 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16353
16354         * FileDialog.cs: Next try
16355
16356 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16357
16358         * FileDialog.cs: First part of fix for #77464
16359
16360 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16361
16362         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
16363           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
16364           AcceptButton border drawing.
16365
16366 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
16367
16368         * Form.cs: Moved positioning of form after auto scaling is applied,
16369           otherwise it would possibly use wrong form size.
16370
16371 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
16372
16373         * Control.cs (RecreateHandle): No need to re-create any child
16374           controls, the child windows will get destroyed automatically by
16375           the windowing system or driver, and re-created when the handle
16376           is being accessed the first time. Fixes #77456
16377         * Form.cs: No longer setting the form to closing if the handle is 
16378           being recreated. This seems like the right thing to do, don't
16379           have a bug or testcase for this, though.
16380
16381 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16382
16383         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
16384           controls to avoid unwanted side effects
16385
16386 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
16387
16388         * Control.cs: 
16389           - ScaleCore needs to scale the bounds, not the ClientSize of the 
16390             control. Fixes #77416.
16391           - DefaultSize is 0,0 for control
16392         * TextBoxBase.cs: 
16393           - DefaultSize is 100, 20
16394           - SetBoundsCore: Now enforcing the height, no matter if the provided
16395             height is more or less than the preferred one, as long as AutoSize
16396             is on
16397         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
16398
16399 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16400
16401         * Control.cs:
16402           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
16403             call unless both performLayout is true *and* we have a pending
16404             layout change
16405           - ResumeLayout: MS does not completely nest Suspend and Resume,
16406             they bottom out at 0, fixed our code to match that.
16407           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
16408             SetBoundsCore, we were updating even when we shouldn't. This fixes
16409             swf-anchors mis-anchoring when resizing the app fast and lots.
16410           - UpdateDistances: Now only setting the left and top distance if 
16411             we have a parent and are not suspended, this is based on
16412             a suggestion by Don Edvaldson in bug #77355.
16413           - OnVisibleChanged: Fixed logic when to create the control. We may
16414             not create the control if we have no parent or if it's not visible;
16415             switched to using Visible property instead of is_visible field 
16416             since the property also considers parent states. This fixes a bug
16417             when starting Paint.Net
16418
16419 2006-02-02  Jackson Harper  <jackson@ximian.com>
16420
16421         * Form.cs: If the forms handle hasn't been created yet don't call
16422         into xplatui to make it top most, just set the topmost flag on the
16423         form in CreateParams
16424         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
16425
16426 2006-02-01  Jackson Harper  <jackson@ximian.com>
16427
16428         * ScrollableControl.cs: Refactored the Recalculate method a
16429         little, this wasn't handling all the variants of bottom and right
16430         bars needed to be added and added/removed based on their
16431         counterparts being added/removed (which changes the drawable
16432         size). Also we special case client widths and heights of 0 and
16433         don't add the scrollbar for those.
16434
16435 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
16436
16437         * XplatUIX11.cs: 
16438           - Added method to get AbsoluteGeometry(); currently unused, but might
16439             be used in the future, if we try again to figure out toplevel
16440             coordinates with some more crappy window managers
16441           - Added FrameExtents() method to retrieve the WM set decoration size
16442           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
16443             to deal with at least KDE, FVWM and metacity (Fixes #77092)
16444         * Hwnd.cs: 
16445           - Added whacky_wm tracking var for metacity
16446           - Added logic to have default menu height if the actual menu height
16447             has not yet been calculated (part of fix for #77426)
16448         * Form.cs: Keep track whether client size has been set and re-set 
16449           it if a menu is added/removed afterwards (Fixes #77426)
16450
16451 2006-01-31  Jackson Harper  <jackson@ximian.com>
16452
16453         * Control.cs: When a new Site is set on the component attempt to
16454         pull the AmbientProperties from it.
16455
16456 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
16457
16458         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
16459           in the background of the owning form. Fixes #77332
16460
16461 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16462
16463         * MimeIcon.cs: Fix for #77409
16464
16465 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16466
16467         * XplatUIX11GTK.cs: Initial import
16468
16469 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
16470
16471         * FixedSizeTextBox: fixes class signature
16472
16473 2006-01-30  Jackson Harper  <jackson@ximian.com>
16474
16475         * FixedSizeTextBox.cs: New internal class that represents a
16476         textBox that will not be scaled.
16477         * TreeView.cs:
16478         * ComboBox.cs:
16479         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
16480         standard TextBox.
16481                 
16482 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
16483
16484         * XplatUIX11.cs: Retrieve default screen number instead of
16485           assuming 0. Attempted fix for #77318
16486
16487 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
16488
16489         * XplatUIWin32.cs: 
16490           - GetWindowPos: When a window is parented by FosterParent, use 
16491             the desktop instead of FosterParent as the base to get coordinates
16492           - CreateWindow: Don't make FosterParent the parent window for Popups
16493             if we don't want a taskbar entry, Popups automatically don't get one
16494         * Hwnd.cs: Need to call remove to actually remove the key from the
16495           hash table
16496
16497 2006-01-30  Mike Kestner  <mkestner@novell.com>
16498
16499         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
16500
16501 2006-01-30  Jackson Harper  <jackson@ximian.com>
16502
16503         * TreeView.cs:
16504         * TreeNode.cs: Raise events no matter how the treenode is
16505         checked. Patch by Don Edvalson.
16506
16507 2006-01-30  Jackson Harper  <jackson@ximian.com>
16508
16509         * TreeNode.cs: Signature fix.
16510
16511 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
16512
16513         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
16514
16515 2006-01-20  Mike Kestner  <mkestner@novell.com>
16516
16517         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
16518         event forwarding when menus are active.
16519         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
16520         Most of the patch is pdb's with a little rework.
16521
16522 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16523
16524         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
16525           Removed GetMenuDC and ReleaseMenuDC methods; replaced
16526           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
16527         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
16528         * InternalWindowManager.cs: Added use of PaintEventStart/End to
16529           handling of WM_NCPAINT message, now passing the PaintEventArgs to
16530           the PaintWindowDecorations method
16531         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
16532         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
16533         * MenuAPI.cs: Made tracker window invisible
16534         * XplatUIWin32.cs:
16535           - Removed GetMenuDC and ReleaseMenuDC methods
16536           - Implemented the client=false path for PaintEventStart and
16537             PaintEventEnd
16538
16539 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16540
16541         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
16542         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
16543           styles
16544         * Form.cs: 
16545           - MaximizeBox, MinimizeBox: Recreate the handle when setting
16546             the style
16547           - CreateParams: Reworked the styles to match MS look'n'feel,
16548             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
16549             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
16550
16551 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16552
16553         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
16554           window is not mapped, since otherwise every form that's being 
16555           created is considered minimized, which is wrong.
16556         * Form.cs: Catching the exception and returning our internal value
16557           instead
16558
16559 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16560
16561         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
16562           SetWindowMinMax() to have means to tell the driver about the minimum,
16563           maximum and maximized state window sizes. (Part of the fix for #76485)
16564         * Form.cs:
16565           - Implemented tracking of minimum and maximum window size, now calling
16566             new SetWindowMinMax() driver method to tell the driver (Part of the
16567             fix for #76485)
16568           - Finished handling of WM_GETMINMAXINFO method, now setting all values
16569             (Completes fix for #76485)
16570           - Calling new SetWindowMinMax driver method when the handle for a 
16571             form is created, to make sure the driver knows about it even if
16572             the values have been set before the window was created
16573           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
16574             to avoid messing up our anchoring calculations (partial fix
16575             for #77355)
16576         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
16577         * XplatUIX11.cs:
16578           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
16579           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
16580             (and presumably other freedesktop.org compliant WMs). Left the
16581             assumption unmapped=minimized, needed for SetVisible to work.
16582           - Now setting the window state when creating windows
16583           - Fixed SetVisible to consider/set the window state when mapping
16584             a Form. We cannot set the state before it's mapped, and we cannot
16585             use Form.WindowState once it's mapped (since it would ask the
16586             driver and get 'normal'. Therefore, we grab the state before
16587             mapping, map, and then set state.
16588           - Implmemented SetWindowMinMax method; Metacity does not seem to
16589             honor the ZoomHints, though.
16590         * XplatUIWin32.cs:
16591           - Removed MINMAXINFO (moved to XplatUIStructs)
16592           - Added SetWindowMinMax stub (on Win32 the only way to set that
16593             information is in response to the WM_GETMINMAXINFO message, which
16594             is handled in Form.cs)
16595           - Added logic to SetVisible to set the proper window state when a 
16596             form is made visible (fixes #75720)
16597
16598 2006-01-26  Jackson Harper  <jackson@ximian.com>
16599
16600         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
16601         same way we handle them with Invoke.
16602
16603 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
16604
16605         * Form.cs:
16606           - Added tracking of window state so CreateParams can return
16607             the appropriate style
16608           - Moved setting of WS_CAPTION style in CreateParams to allow
16609             styles without caption
16610         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
16611           control if the TextBox property is accessed. Fixes #77345
16612         * Control.cs:
16613           - get_Created: now uses is_disposed and is_created to determine
16614             return value (suggested by Jackson)
16615           - CreateHandle: No longer exits if the handle is being recreated
16616           - RecreateHandle: If the handle is not yet created call the 
16617             appropriate method to create either control or handle. If the
16618             control is already created CreateHandle will simply exit instead
16619             of just creating the handle
16620         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
16621           now SendMessage WM_DESTROY directly to the control when DestroyWindow
16622           is called.
16623         * XplatUIX11.cs: 
16624           - When DestroyWindow is called, instead of waiting for the 
16625             DestroyNotification from X11, we directly post it to the WndProc
16626             and immediately dispose the hwnd object.
16627             Same applies to DestroyChildWindows, and this obsoletes the
16628             expose_pending tracking. Contrary to Win32 behaviour we destroy our
16629             child windows before our own, to avoid X11 errors.
16630           - Removed the direct sending of WM_PAINT on UpdateWindow
16631         * XplatUIWin32.cs:
16632           - Reworked DoEvents and GetMessage to allow access to internal queue
16633             even when trying non-blocking access to the queue.  Fixes #77335. 
16634             Based on a patch suggestion by Don Edvalson. The new private
16635             GetMessage can now also be used as a backend for a PeekMessage
16636             frontend version.
16637         * XplatUI.cs: Improved debug output for CreateWindow
16638
16639 2006-01-25  Jackson Harper  <jackson@ximian.com>
16640
16641         * Help.cs: Allow param to be null. Patch by Don Edvalson.
16642
16643 2006-01-24  Jackson Harper  <jackson@ximian.com>
16644
16645         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
16646         when we have a MaxDropItems lower then the selected index.
16647
16648 2006-01-24  Jackson Harper  <jackson@ximian.com>
16649
16650         * Control.cs: Don't allow selection of non visible controls, allow
16651         selection of controls without parents.
16652
16653 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16654
16655         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
16656         * DataGridDrawingLogic.cs: Add editing row only when is necessary
16657
16658 2006-01-23  Jackson Harper  <jackson@ximian.com>
16659
16660         * UpDownBase.cs: Make the textbox handle all the selection and
16661         tabbing. This fixes tabing to updown controls.
16662
16663 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16664
16665         * TextBoxBase.cs: fixes exception thown the object was null
16666
16667 2006-01-23  Jackson Harper  <jackson@ximian.com>
16668
16669         * ButtonBase.cs: Just use the base CreateParams. They set
16670         visibility and enabled correctly.
16671         * ComboBox.cs:
16672         * TrackBar.cs:
16673         * MonthCalendar.cs: Lets let the base set as much of the
16674         createparams as possible so we don't have duplicate code all over
16675         the place.
16676
16677 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
16678
16679         * ThemeGtk.cs: Added TrackBar and some experimental code to
16680           get double buffering back
16681
16682 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
16683
16684         * DataGrid.cs: Allows row number set internally higher than the last
16685         when creating a new row. Restores the editing functionality.
16686
16687 2006-01-20  Mike Kestner  <mkestner@novell.com>
16688
16689         * MimeIcon.cs: delay Image creation until the icons are accessed
16690         instead of creating 190 scaled images on GnomeHandler startup.
16691
16692 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
16693
16694         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
16695           first call base before processing the event. Fixes #77279
16696
16697 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
16698
16699         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
16700           that the stride for the GDI bitmap would match the stride of
16701           a DIB or a Cursor.
16702
16703 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
16704
16705         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
16706
16707 2006-01-19  Jackson Harper  <jackson@ximian.com>
16708
16709         * ComboBox.cs: Hookup the text controls keydown event so we get
16710         those when the text control has the focus.
16711
16712 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16713
16714         * Label.cs: Now using the base events instead of defining new ones;
16715           this allows us to just call the base properties without having to
16716           duplicate all base property logic 
16717
16718 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16719
16720         * Label.cs: A label by default is not a tabstop (Fixes one of our
16721           failing nunit tests)
16722
16723 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16724
16725         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
16726         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
16727
16728 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16729
16730         * Cursor.cs: Reimplemented creating cursor bitmaps without using
16731           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
16732           This fixes #77218
16733         * XplatUIWin32.cs: 
16734           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
16735             constructor creates images that can't be saved. Part of the fix
16736             for #76103
16737           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
16738           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
16739             bug fix for handling window state in forms properly)
16740
16741 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16742
16743         * ThemeGtk.cs: Simplify ScrollBar drawing
16744
16745 2006-01-18  Jackson Harper  <jackson@ximian.com>
16746
16747         * Splitter.cs: Set the default dock style for the splitter control
16748         in the constructor.
16749
16750 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16751
16752         * ThemeGtk.cs: Corrected StateType and ShadowType for
16753           gtk_paint_box
16754
16755 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16756
16757         * Control.cs: Make use of Theme.DoubleBufferingSupported
16758         * ThemeGtk.cs:
16759           - Added drawing for flat style buttons
16760           - Added ScrollBar drawing
16761
16762 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16763
16764         * ThemeClearlooks.cs: Removed some unneeded code.
16765         * ThemeGtk.cs: First part of ThemeGtk enhancements.
16766
16767 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16768
16769         * LinkLabel.cs: We need to update the hover drawing when
16770           leaving the control as well.
16771
16772 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
16773
16774         * DataGrid.cs: Clicking on non empty areas in the columns
16775            area was giving an exception
16776
16777 2006-01-17  Jackson Harper  <jackson@ximian.com>
16778
16779         * ThemeWin32Classic.cs:
16780         * ListView.cs: Do not draw/clip the headers when the header style
16781         is None.
16782
16783 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16784
16785         * DataGrid.cs: Fixes 77260
16786         
16787 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16788
16789         * DataGrid.cs: Clicking on a column on a empty grid was giving
16790           an exception
16791
16792 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16793
16794         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
16795           or any keypress will crash the grid.
16796
16797 2006-01-17  Mike Kestner  <mkestner@novell.com>
16798
16799         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
16800         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
16801         invisible/previously-visible items.
16802         [Fixes #76909]
16803
16804 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
16805
16806         * ThemeClearlooks.cs:
16807         - Added CL_Draw_Button method; now other theme controls that are 
16808           not derived from button or do not have a button can draw buttons
16809           too
16810         - Updated ComboBox drawing
16811         - Beautified RadioButton drawing
16812         - Corrected drawing of bottom and left tabs
16813         - Beautified DateTimePicker and MonthCalendar
16814         - Added CPDrawButton and CPDrawRadioButton
16815
16816 2006-01-16  Jackson Harper  <jackson@ximian.com>
16817
16818         * ComboBox.cs: Set the initial value of the scrollbar to the
16819         current index. Reduce the numbers of refreshs and IndexOfs called.
16820
16821 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
16822
16823         * FileDialog.cs: When the file listview is focused hitting the
16824           backspace key moves the fileview to the parent directory
16825
16826 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16827
16828         * Form.cs: 
16829           - Added RecreateHandle call when changing taskbar visibility to 
16830             trigger reparenting in Win32 driver (Fixes #75719)
16831           - If a window has minimize or maximize buttons, it cannot have
16832             a help button
16833         * XplatUIWin32.cs:
16834           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
16835             the toplevel form with FosterParent (A toolwindow not on the
16836             taskbar) (Fixes #75719)
16837           - Made FosterParent a toolwindow
16838
16839 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16840
16841         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
16842
16843 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16844
16845         * ToolTip.cs: If SetToolTip is called from a control and the mouse
16846           is currently over that control, make sure that tooltip_window.Text
16847           gets updated
16848
16849 2006-01-13  Mike Kestner  <mkestner@novell.com>
16850
16851         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
16852
16853 2006-01-13  Jackson Harper  <jackson@ximian.com>
16854
16855         * TreeView.cs: On MS GetNodeAt never actually factors in the X
16856         value passed.  Also redraw the selected node when we recieve
16857         focus, so tabbing between trees works correctly.
16858
16859 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16860
16861         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
16862           ~/.gconf/%gconf-tree.xml, so use
16863           .gconf/desktop/gnome/interface/%gconf.xml
16864
16865 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16866
16867         * TextControl.cs: Draw text in gray if control is disabled
16868
16869 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16870
16871         * TreeView.cs: Draw the focus rectangle outside the highlight, to
16872           make sure it's always visible. Fixes #76680.
16873
16874 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16875
16876         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
16877
16878 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
16879
16880         * PageSetupDialog.cs: Added.
16881         * PrintDialog.cs: Attributes.
16882         * PrintPreviewControl.cs: Updates.
16883         * PrintPreviewDialog.cs: Updates.
16884         
16885 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16886
16887         * Control.cs: Undid my selection check fix, since it's not needed
16888         * TextBoxBase.cs:
16889           - Now considering the presence of hscroll/vscroll when sizing
16890             vscroll/hscroll respectively. Fixed bug #77077
16891           - Added Left/Up/Down/Right to IsInputKey list to prevent
16892             ContainerControl from stealing them. This fixes what I broke
16893             with my last checkin.
16894
16895 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
16896
16897         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
16898           I finally understand how the property can be set without a setter :-)
16899
16900 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16901
16902         * Application.cs:
16903           - Switched RunLoop to use static Message.Create to create a 
16904             Message object
16905           - Added PreProcessMessage call in runloop for keyboard events; this
16906             is part of the fix for #77219, I overlooked this originally in the
16907             MSDN doc for PreProcessMessage
16908         * Control.cs:
16909           - Removed call to PreProcessMessage from handling of keyboard 
16910             messages; it's supposed to be done in the message pump
16911           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
16912             per MSDN documentation.
16913           - IsInputChar: All chars are input chars by default; removed the 
16914             parent calling chain, MS does not document that
16915           - PreProcessMessage: If IsInputChar is true, we want to return false
16916             to allow dispatching of the message
16917           - When selecting the next control, now also check that we're not
16918             selecting ourselves again and therefore return a false positive.
16919         * TextBoxBase.cs:
16920           - Tried to match return values for IsInputKey and ProcessDialogKey
16921             to what MS returns; moved processing of our special keys outside
16922             ProcessDialogKey since MS does not seem to return true on those.
16923           - Moved code that previously was in ProcessDialogKey into new private
16924             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
16925           - Reworked handling of WM_CHAR to not have to duplicate code from
16926             Control.cs anymore, instead we simply call down to base.
16927            
16928 2006-01-12  Jackson Harper  <jackson@ximian.com>
16929
16930         * ComboBox.cs: We always need to refresh the text area when
16931         EndUpdate is called. Fixes the combobox in the file dialog.
16932         * Control.cs: Don't create the creator_thread until the controls
16933         handle is created.  Also in InvokeRequired we check if the
16934         creator_thread is null. This gives the effect of InvokeRequired
16935         returning true if the controls handle is not created yet, and
16936         matches MS.
16937
16938 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16939
16940         * XplatUI.cs:
16941           - Added StartLoop() driver method. This is used to allow drivers to
16942             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
16943             loop for a particular thread
16944           - Added EndLoop() driver method. This is called once the message
16945             pump for the thread is shut down
16946           - Added SupportsTransparency method to allow the driver to indicate
16947             opacity support for windows
16948         * Form.cs:
16949           - Removed TODO attribute, completed AllowTransparency property
16950           - Added documented logic to Opacity
16951         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
16952           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
16953           versions of CompatibleTextRendering
16954         * X11Structs.cs: Added opacity atom to our atom enumeration
16955         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
16956           of a form might be set before it's reparented by the WM, and we need
16957           the opacity value without calling up to Form)
16958         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
16959           SupportsTransparency() driver methods
16960         * Application.cs: Now calling StartLoop and EndLoop driver methods
16961         * XplatUIX11.cs:
16962           - Added opacity atom registration
16963           - Added StartLoop()/EndLoop() methods. They're empty right now but
16964             will need to get implemented when we switch to a per-thread queue
16965           - Implemented SupportsTransparency() method
16966           - Implemented SetWindowTransparency() method
16967           - Added support for setting the opacity value when a window is
16968             reparented (since the opacity needs to be set on the WM frame)
16969         * XplatUIOSX.cs, XplatUIWin32.cs:
16970           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
16971
16972 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
16973
16974         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
16975
16976 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
16977
16978         * FileDialog.cs: Added ToolTip for MWFFileView
16979         * MimeIcon.cs: Rewrote GnomeHandler.
16980           - Get currently used gnome icon theme from
16981             ($HOME)/.gconf/%gconf-tree.xml
16982           - Make use of inherited icon themes
16983           - Support SVG icon themes like Tango via librsvg
16984
16985 2006-01-12  Miguel de Icaza  <miguel@novell.com>
16986
16987         Revert's Jackson's revert which broke 2.0 builds.   Fix both
16988         builds. 
16989         
16990         * Application.cs: Move the use_compatible_text_rendering outside
16991         the NET_2_0 define.  If we ever need to use the
16992         use_compatible_text_rendering on the individual controls they will
16993         access the variable from the common shared code paths.
16994
16995 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16996
16997         * XplatUI.cs:
16998           - Added more granular debug options
16999           - Added method to print both window text and id
17000           - Switched debug output to use new Window() debug method
17001           - Added IsEnabled() driver method
17002           - Added EnableWindow() driver method
17003         * Form.cs:
17004           - Removed end_modal; no longer needed, new loop handles termination
17005             via 'closing' variable
17006           - If form is modal, setting DialogResult will now initiate loop
17007             termination via 'closing' variable
17008           - Added support for is_enabled/WS_DISABLED to CreateParams
17009           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
17010             does all the work
17011           - Removed code that's now in RunLoop from ShowDialog()
17012           - Added various documented sanity checks to ShowDialog()
17013           - Added handling of WM_DESTROY message; we set 'closing' on getting
17014             the message to indicate the message pump to terminate
17015           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
17016             send by the Application.ExitThread method. (We send the message
17017             to destroy the window after all other events have been
17018             processed through the queue, instead of destroying the handle 
17019             directly)
17020           - Moved code from Close() method to WM_CLOSE handler; added logic
17021             to only send close-related events if the form is not displayed
17022             modal
17023         * Splitter.cs (..ctor): Fixed typo in resource name
17024         * Control.cs:
17025           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
17026             brush now
17027           - set_Cursor: Now only setting calling into XplatUI if the handle for
17028             the control is already created; this avoids implict handle creation
17029             or crashes if it's not created
17030           - set_Enabled: Now setting the enabled state via the new driver method
17031             instead of just tracking it
17032           - CreateParams: Added logic to set WS_DISABLED based on enabled state
17033           - CreateControl: Reordered event firing and method calls to more
17034             closely fire events in the order MS does. Now setting the
17035             enabled state in the driver when creating the control.
17036           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
17037             match MS order
17038         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
17039           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
17040         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
17041         * Hwnd.cs:
17042           - Added tracking of window enabled state (get_Enabled/set_Enabled)
17043           - Added EnabledHwnd property to easily allow a driver to find the
17044             handle of the first enabled window in the parent chain (this is
17045             used by drivers to pass up input events of disabled windows)
17046         * XplatUIDriver.cs: Added IsEnabled() method
17047         * Application.cs:
17048           - Removed crude and obsolete exiting tracking variable
17049           - Removed internal ModalRun(); replaced by RunLoop()
17050           - Implemented private CloseForms() method to allow closing all 
17051             windows owned by a particular (or all) threads
17052           - Exit() now properly closes all windows without forcing the message
17053             pump to quit
17054           - Removed obsolete InternalExit() method
17055           - Changed Run() methods to use new RunLoop() message pump
17056           - Implemented new RunLoop() method for both modal and non-modal forms
17057         * CommonDialog.cs:
17058           - get_CreateParams: Added setting of WS_DISABLED
17059           - Simplified ShowDialog(); now all the work is done in RunLoop(),
17060             invoked via Form.ShowDialog()
17061         * NativeWindow.cs: We don't remove the window from the collection when
17062           the handle is destroyed; there might still be messages for it in the
17063           queue (mainly the resulting WM_DESTROY); instead it will be removed
17064           when Control calls InvalidateHandle in the WM_DESTROY handler
17065         * XplatUIX11.cs:
17066           - CreateWindow: Added logic to handle the WS_DISABLED window style
17067           - EnableWindow: Implemented based on Hwnd.Enabled
17068           - GetMessage: Reset PostQuitState so the method can be called again
17069           - Implemented support for disabled windows (passing messages to the
17070             first enabled parent) in handling all input messages
17071           - Added optimizations for handling Expose events
17072           - Implemeted new driver method IsEnabled()
17073           - Now always resetting paint pending tracking vars when we start paint
17074           - Re-implemented UpdateWindow via just sending a WM_PAINT message
17075         * XplatUIOSX.cs: Added IsEnabled method stub
17076         * XplatUIWin32.cs: Implemented new IsEnabled() method
17077
17078 2006-01-11  Jackson Harper  <jackson@ximian.com>
17079
17080         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17081         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
17082         variables a little.
17083         * ColorDialog.cs: Clear out the old form before adding the new
17084         panel.  
17085
17086 2006-01-11  Jackson Harper  <jackson@ximian.com>
17087
17088         * X11Dnd.cs: Make sure to add all the text formats when adding
17089         strings to the data object.
17090         * TreeNodeCollection.cs: When adding to a sorted tree we need to
17091         do some redrawing too.  Also change the UpdateNode to an
17092         UpdateBelow so the newly added node gets painted.
17093         
17094 2006-01-11  Miguel de Icaza  <miguel@novell.com>
17095
17096         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17097         LinkLabel.cs, PropertyGrid.cs: Implement the
17098         UseCompatibleTextRendering property for 2.x
17099
17100         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
17101
17102 2006-01-11  Jackson Harper  <jackson@ximian.com>
17103
17104         * TreeView.cs: Use the property for setting the selected node so
17105         the correct events get raised.
17106         * TreeNode.cs: Update the tree when the fore/back colours of a
17107         node are set.
17108
17109 2006-01-10  Jackson Harper  <jackson@ximian.com>
17110
17111         * TreeView.cs: Allow setting SelectedNode to null.
17112
17113 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17114
17115         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
17116
17117 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17118
17119         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
17120
17121 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17122
17123         * PrintDialog.cs: Added attributes and set default property values.
17124
17125 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17126
17127         * PrintControllerWithStatusDialog.cs: 
17128         Added PrintControllerWithStatusDialog.
17129
17130 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17131
17132         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
17133         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
17134
17135 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17136
17137         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
17138
17139 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
17140
17141         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
17142         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
17143
17144 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17145
17146         * MimeIcon.cs: Added internal class SVGUtil.
17147
17148 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17149
17150         * FileDialog.cs: Don't crash if there are two files with the
17151           same name but different locations.
17152
17153 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
17154
17155         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
17156         dates across multiple month grids. Used to not highlight entire 
17157         month, but does now.
17158         
17159 2006-01-06  Jackson Harper  <jackson@ximian.com>
17160
17161         * MonthCalendar.cs: Removed DoEvents call to prevent a running
17162         message loop. Change timer intervals to numbers that seem more
17163         natural.
17164
17165 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
17166
17167         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
17168           object for location info since screen object is now implemented.
17169
17170 2006-01-05  Jackson Harper  <jackson@ximian.com>
17171
17172         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
17173         * AsyncMethodResult.cs: We no longer use a WeakReference for the
17174         AsyncMethodResult, this is because we ALWAYS want the
17175         ManualResetEvent to get set.
17176         * Control.cs: When disposing use an async invoke to call shutdown
17177         code, so that thigns don't block on the finalizer thread.  Also
17178         check if we even have a message loop before trying to send
17179         messages, if we don't then don't bother sending messages.
17180         - No more weak references for async methods
17181         * XplatUIDriver.cs: No more weak references for async methods.
17182
17183 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17184
17185         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
17186           returns two FontFamily with the same name
17187
17188 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17189
17190         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
17191           drawing disabled text. Instead using the ColorGrayText color
17192
17193 2006-01-04  Jackson Harper  <jackson@ximian.com>
17194
17195         * TreeNode.cs: redraw the node when its image index is changed.
17196
17197 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17198
17199         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
17200           time I checked there are no others like it.
17201
17202 2006-01-04  Jackson Harper  <jackson@ximian.com>
17203
17204         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
17205         this gives the behavoir I was looking for.
17206         * Control.cs: Special case Invoking EventHandlers, this matches MS
17207         and fixes part of bug #76326.
17208
17209 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17210
17211         * ThemeClearlooks.cs, FileDialog.cs:
17212           - Reflect the latest Theme class changes
17213           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
17214             with DateTime
17215             
17216 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17217
17218         * Theme.cs: Cache UI resource images and resize them if needed
17219
17220 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17221
17222         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
17223           is called. This fixes the crash in Nexxia when setting the font
17224           attributes in the chat. [However, RTF needs a look-over to make sure
17225           that all SelectionXXX methods handle the special case that selection
17226           is empty and therefore the change must be applied to all text starting
17227           at the cursor/selection start]
17228
17229 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
17230
17231         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17232           XplatUIOSX.cs: Added SendMessage and PostMessage methods
17233         * X11Keyboard.cs: Switched to new way of calling PostMessage
17234
17235 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17236
17237         * Theme.cs: Added theme interface for images to allow the theme to
17238           control what images are used for things like FileDialog, MessageBox
17239           icons, etc.
17240         * MessageBox.cs: Now uses the new Theme icon/image interfaces
17241
17242 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
17243
17244         * FileDialog.cs:
17245           - Removed some dead code
17246           - Opening a recently used file does work now
17247           - Small UI enhancements
17248           - Refactoring
17249
17250 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17251
17252         * FileDialog.cs: Forgot too add __MonoCS__
17253
17254 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17255
17256         * FileDialog.cs: We are able to read recently used files now let's
17257           go on and write them.
17258
17259 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
17260
17261         * FileDialog.cs: Breathe some life into "last open"/"recently used"
17262           button
17263         * MimeIcon.cs: Do a check for the top level media type also
17264
17265 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17266
17267         * ThemeClearlooks.cs:
17268           - Added CPDrawStringDisabled
17269           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
17270             some chars if the text doesn't fit into text_rect
17271           - DrawListViewItem: If View = View.LargeIcon center the image;
17272             rewrote the drawing of ListViewItem.Text if View = 
17273             View.LargeIcon
17274
17275 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17276
17277         * MimeIcon.cs: Use default KDE icon theme if there is no
17278           "48x48" directory for the current icon theme, fixes #77114
17279         * Mime.cs: Disable not working and actually not used code. 
17280         * ThemeWin32Classic.cs:
17281           - Replace "new SolidBrush" in GetControlBackBrush and
17282             GetControlForeBrush with ResPool.GetSolidBrush
17283           - Changed DrawListViewItem from private to protected virtual
17284         * FileDialog.cs:
17285           - Added form.MaximizeBox = true
17286           - Don't throw an exception if there is a broken symbolic link
17287
17288 2005-12-23  Jackson Harper  <jackson@ximian.com>
17289
17290         * TabControl.cs: Give the panels focus, keyboard navigation is
17291         fixed so this works correctly now.
17292         - We need these key events also.
17293         * ToolBar.cs: Remove some of the poor mans double buffering.
17294         
17295 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
17296
17297         * ComboBox.cs: The internal TextBox now returns the focus.
17298
17299 2005-12-23  Jackson Harper  <jackson@ximian.com>
17300
17301         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
17302
17303 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17304
17305         * Control.cs: Removed debug code
17306         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
17307           implicit children
17308
17309 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
17310
17311         * Control.cs: When creating the control, update the Z-order after
17312           all it's children are created, too. (Fixes nexxia not showing
17313           picturebox bug)
17314
17315 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17316
17317         * Control.cs: Do not update the anchoring distances if layout is
17318           suspended, instead do it once layout is resumed
17319
17320 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
17321
17322         * Control.cs: 
17323           - After many hours of debugging, for both Jackson and
17324             myself, it turns out that it helps to set the parent of a control
17325             if you want to actually see it onscreen. In the spirit of that
17326             discovery, we're now setting the parent of the control and
17327             it's children when the control's handle is created. This fix
17328             will make Lutz Roeder's Reflector run happily. 
17329           - now just creating the handle instead of the whole control when
17330             getting a graphics context for the control.
17331
17332 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17333
17334         * ScrollableControl.cs: When calculating the canvas, don't consider
17335           the scrollbar widths. Instead, predict if horizontal scrollbar
17336           will affect canvas when deciding on vertical display and vice versa.
17337
17338 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17339
17340         * RichTextBox.cs: Set default RTF font for documents that don't
17341           have a font table (Fixes #77076)
17342
17343 2005-12-22  Jackson Harper  <jackson@ximian.com>
17344
17345         * TextBoxBase.cs: It's difficult to do, but you can have an empty
17346         clipboard. This prevents a NullRef in that case.
17347         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
17348         clipboard. PRIMARY is for the currently selected text only. (We
17349         should implement PRIMARY at some point.
17350
17351 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17352
17353         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
17354           a Unicode function with a structure that was defined in Ansi way.
17355           This fixes #76942.
17356
17357 2005-12-21  Jackson Harper  <jackson@ximian.com>
17358
17359         * StatusBar.cs: Statusbar handles its fore/back colours on it's
17360         on. Because thats how it rolls. (and this avoids it using ambient
17361         colours).
17362         * ThemeWin32Classic.cs: Use the proper back color for filling.
17363         * Menu.cs: Use the system menu bar color for drawing menu
17364         bars. Using the window back color will bring ambient colours into
17365         the picture.
17366
17367 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
17368
17369         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
17370           Bitmaps were created and not disposed.
17371
17372 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17373
17374         * Control.cs (CreateControl): Don't do anything if the control is
17375           already created, otherwise we'd fire the OnCreated event more than
17376           once
17377
17378 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17379
17380         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
17381           will always match. Instead return -1. Fixes #76464.
17382
17383 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17384
17385         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
17386           neither the beginning nor the end of the line (Fixes bug #76479)
17387
17388 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17389
17390         * Control.cs:
17391           - ControlNativeWindow.ControlFromHandle(): Now handling situation
17392             where handle is invalid
17393           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
17394             instead of slower linear search
17395         * NativeWindow.cs: Don't remove the window from the hashtable until
17396           after the driver has destroyed it (since the driver might use
17397           Control.FromHandle to lookup the control object
17398         * Hwnd.cs: Added DestroyPending property to track if a window is 
17399           already destroyed as far as the driver is concerned and only hasn't
17400           yet notified the control
17401         * XplatUIX11.cs:
17402           - Activate(): Check if the window is still valid before using the 
17403             handle
17404           - Implemented DestroyChildWindow() method to mark child windows as
17405             destroyed when a window is destroyed. This prevents situations 
17406             where we might call an X method based on queued events for a
17407             window that already has been destroyed but we haven't yet pulled
17408             the destroy method from the queue.
17409           - Added a call to the new DestroyChildWindow() method to the drivers
17410             DestroyWindow code. Also now marking the destroyed window itself
17411             as pending
17412
17413 2005-12-20  Jackson Harper  <jackson@ximian.com>
17414
17415         * StatusBar.cs:
17416         * StatusBarPanel.cs: Don't calculate panel sizes on draw
17417         anymore. Just do them when needed, also track the rects of panels
17418         so that we can optimize refreshing more in the future.
17419
17420 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
17421
17422         * ColorDialog.cs: Fixed focus drawing in small color controls
17423
17424 2005-12-19  Jackson Harper  <jackson@ximian.com>
17425
17426         * InternalWindowManager.cs:
17427         * MdiWindowManager.cs: Cleanup some coordinate system changes so
17428         moving windows works properly.
17429
17430 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
17431
17432         * Control.cs: 
17433           - Removed call to InitLayout() from SetBoundsCore(); doc says
17434             it's only called when a control is added to a container
17435           - Split InitLayout logic, moved to separate UpdateDistances() method
17436             since we need to perform those calculations more often than just
17437             when adding the control to a container. (Needed to fix #77022)
17438           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
17439           - Reduced the OnBindingContextChanged events count, don't send them
17440             unless the control is created, we still aren't totally matching
17441             MS, but I can't quite figure out some of their rules
17442
17443 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17444
17445         * ThemeClearlooks.cs: Corrected distance between ProgressBar
17446           stripes
17447
17448 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17449
17450         * ThemeClearlooks.cs:
17451           - Updated ProgressBar drawing
17452           - Corrected drawing of ScrollBars and scroll buttons
17453           - Some temporary fixes for minor pixel artefacts
17454
17455 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
17456
17457         * Control.cs:
17458           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
17459             cause events to be sent in the same order as MS does.
17460           - Added ChangeParent() method to trigger various OnXXXChanged events
17461             that need to be fired when a parent changes (This is a reworking
17462             of the patch from r54254, with the X11 errors fixed)
17463           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
17464             since on MS we get OnLayoutChanged events when calling Clear()
17465           - Changed Enabled property to consider parent state as well, if a
17466             parent is not enabled, the control will not be either
17467           - Changed Parent property to simply call Controls.Add() since that
17468             now does all the work required, this way we avoid code duplication
17469           - Threw in a few OnBindingsContextChanged calls to try and match
17470             when MS sends them. We seem to send a few too many, though.
17471           - Added call to CreateControl when adding the control to a parent.
17472             We were never calling CreateControl. Still needs some work, in
17473             some places we treat HandleCreated and ControlCreated as equal, 
17474             which is wrong
17475           - Removed obsolete commented out code from UpdateZOrder()
17476
17477 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17478
17479         * ThemeClearlooks.cs: Updated TrackBar drawing.
17480
17481 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17482
17483         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
17484
17485 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17486
17487         * FileDialog.cs: Add the Help button and the open readonly
17488           checkbox only if needed
17489
17490 2005-12-16  Jackson Harper  <jackson@ximian.com>
17491
17492         * Control.cs: Make sure we have an active menu before trying to
17493         process commands on it. Prevents menu-less forms from crashing
17494         when Alt is pressed.
17495         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
17496         Dieter Bremes.
17497         * RichTextBox.cs: Expand statement to help out gmcs and fix the
17498         2.0 build.
17499
17500 2005-12-16  Jackson Harper  <jackson@ximian.com>
17501
17502         * InternalWindowManager.cs: Don't translate tool windows screen
17503         coordinates. This fixes windows 'bouncing' around when being moved.
17504
17505 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17506
17507         * TextBoxBase.cs:
17508           - MaxLength now treats 2^31-1 equal to unlimited length (this is
17509             not quite MS compatible, MS uses that number only for single line
17510             and 2^32-1 for multi-line, but I figure it won't hurt keeping
17511             the limit at 2GB)
17512           - Now enforcing the MaxLength limit when entering characters
17513           - Added argument to internal Paste() method to track if it's called
17514             from programatically or via keyboard, since keyboard driven pastes
17515             need to enforce max-length
17516           - Added logic to Paste to only paste as many chars as MaxLength 
17517             allows
17518         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
17519         * TextControl.cs:
17520           - Added Length property to return number of characters in document
17521           - Added private CharCount property which only tracks actual chars
17522             in the document (no linefeeds) and fires event when CharCount
17523             changes
17524           - Added tracking of character count to all methods that alter it
17525           - Added LengthChanged event to allow applications to subscribe
17526             to any changes to the document
17527
17528 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17529
17530         * TextBox.cs: 
17531           - Removed local password_char field (moved to TextBoxBase)
17532           - Now setting the document's password var when password is
17533             set
17534         * TextBoxBase.cs:
17535           - Added password_char field (needed here so MultiLine can
17536             access it)
17537           - Added logic to MultiLine property setter to set the document's
17538             variable when password display is allowed
17539           - Removed debug code and made some debug code conditional
17540         * TextControl.cs:
17541           - Added RecalculatePasswordLine() method to handle special password
17542             char only lines
17543           - Added PasswordChar property, also added related tracking vars
17544           - Draw() method now uses local text var for grabbing text to draw,
17545             this var is set to line.text unless we're doing password display,
17546             then it is set to the pre-generated all-password-chars line
17547           - Added calling RecalculatePasswordLine() method for password lines
17548
17549 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17550
17551         * Hwnd.cs: 
17552           - Added Reparented property to allow tracking of Window Manager
17553             reparenting actions (which affect X/Y calculations of toplevel 
17554             windows)
17555           - Made ToString() print window handles in hex
17556         * XplatUIX11.cs:
17557           - AddConfigureNotify(): Now uses reparented state off Hwnd to
17558             determine if X/Y needs offsetting
17559           - AddConfigureNotify(): Fixed offset calculations
17560           - Now adds ReparentNotify messages into the queue
17561           - Now processes ReparentNotify messages and causes a 
17562             WM_WINDOWPOSCHANGED message to be sent upstream if a window
17563             is reparented (as most likely it's X/Y coordinates are changed
17564             due to that)
17565
17566 2005-12-14  Jackson Harper  <jackson@ximian.com>
17567
17568         * XplatUIX11.cs: Tool windows still need to respek focus.
17569
17570 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17571
17572         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
17573           have a working release
17574
17575 2005-12-13  Jackson Harper  <jackson@ximian.com>
17576
17577         * Form.cs: Update styles after setting the border style regardless
17578         of whether or not the window is using a window manager.
17579
17580 2005-12-13  Jackson Harper  <jackson@ximian.com>
17581
17582         * Form.cs: We now hook into an internal window manager instead of just an
17583         MDI subsystem, this is so we can have properly behaving tool windows.
17584         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
17585         * InternalWindowManager.cs: New internal class that acts as a
17586         window manager for tool windows and as a base for mdi windows.
17587         * MdiWindowManager.cs: New class that acts as a window manager for
17588         mdi windows.
17589
17590 2005-12-12  Jackson Harper  <jackson@ximian.com>
17591
17592         * Control.cs: Updates so we match behavoir for for implicit
17593         controls. Fixes explosions in MDI.
17594
17595 2005-12-12  Jackson Harper  <jackson@ximian.com>
17596
17597         * Control.cs: Implement Invalidate (Region).
17598
17599 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
17600
17601         * Control.cs: 
17602           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
17603             the same events as MS does. MS fires events for each property 
17604             except, for unknown reasons, Cursor, when the control is reparented. 
17605             I can't seem to totally match add/remove since MS also fires some 
17606             VisibleChanged events, which makes no sense. Consolidated the
17607             parenting code into a separate method so it can be called from
17608             both Add and Remove. set_Parent no longer needs any special logic
17609             as it calls the parent's add method which implicitly fires
17610             all events
17611           - Removed some obsolete code and debug output
17612           - Enabled state is inherited from parents, if this is enabled
17613
17614 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
17615
17616         * Form.cs: Removed commented out code
17617
17618 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
17619
17620         * Control.cs:
17621           - Added internal version of Invoke, with additional argument 
17622             indicating if we're calling it from a Dispose() handler. That
17623             way we can avoid BeginInvoke throwing an exception if we're
17624             calling for an already destroyed window.
17625           - Added a dispose argument to BeginInvokeInternal, and made the
17626             check if a valid window handle chain exists conditional on
17627             it not being a dispose call
17628           - Removed code in DestroyHandle to destroy our children. Since we
17629             now handle the WM_DESTROY message we will catch all our children
17630             being destroyed.
17631           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
17632         * Form.cs:
17633           - Added a field to track the application context of the form.
17634           - No need to set closing variable as response to WM_CLOSE, instead
17635             we destroy the window. We also call PostQuitMessage if the form
17636             has an application context (which makes it the main app form,
17637             which, when closed terminates the app)
17638         * XplatUI.cs:
17639           - Dropped Exit() method, it's naming was confusing
17640           - Added PostQuitMessage() which causes GetMessage to return false
17641             once the message queue is empty
17642         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
17643           PostQuitMessage()
17644         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
17645           no longer a valid XplatUI method, but left it in since it's used
17646           internally. Added empty PostQuitMessage() method.
17647         * MenuAPI.cs: Replaced call to Exit() with call to
17648           PostQuitMessage, even though this is probably no longer needed.
17649         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
17650         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
17651         * Application.cs:
17652           - Replaced call to XplatUI.Exit() with PostQuitMessage()
17653           - Removed old debug code that would call XplatUI for exception
17654             display, enabled standard exception handling (Still not enabled
17655             though, until NativeWindow's ExternalExceptionHandler define
17656             is removed
17657         * NativeWindow.cs:
17658           - Added internal method to allow control to update NativeWindow
17659             after a window has been destroyed
17660           - Added handling of already destroyed windows when calling i
17661             DestroyWindow
17662           - Added removal of handle from list on ReleaseHandle
17663         * XplatUIX11.cs:
17664           - Dropped GetMessageResult var and related code
17665           - Added PostQuitState to field to track if PostQuitMessage has been
17666             called
17667           - Dropped Exit() method
17668           - Added PostQuitMessage() method
17669           - GetMessage now will return false if PostQuitState is set and no
17670             more messages are in the queue.
17671           - Expose handler will no longer generate WM_PAINT messages if we are
17672             in PostQuitState since it's very likely any windows have already
17673             been destroyed, and since Hwnd won't get updated until we have
17674             processed the DestroyNotify we'd be causing X errors.
17675         
17676 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17677
17678         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
17679           Thanks to Mike for pointing out the err of my ways.
17680
17681 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17682
17683         * Control.cs(PreProcessMessage): Moved menu handling back, but
17684           after all other key handling, to match MS (who handles Menu in
17685           DefWndProc)
17686         * Menu.cs (WndProc): Removed my brainfart
17687
17688 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17689
17690         * Control.cs(PreProcessMessage): Removed special menu handling 
17691         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
17692
17693 2005-12-07  Mike Kestner  <mkestner@novell.com>
17694
17695         * Control.cs : special case SYSKEYUP so that we can adjust keynav
17696         state according in tracker.
17697         * Menu.cs : promote tracker field to base class and provide a tracker
17698         lookup capability.  Add/Remove shortcuts dynamically if the top menu
17699         has a tracker. Unparent items that are removed from the collection.
17700         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
17701         * Theme*.cs: add always_show_hotkeys field to support configurability
17702         of mnemonic display.  win32 doesn't show mnemonics until Alt is
17703         pressed.
17704
17705 2005-12-07  Jackson Harper  <jackson@ximian.com>
17706
17707         * MdiChildContext.cs: Use Control.ResetCursor.
17708         * Control.cs: ResetCursor needs to set the property so that the
17709         correct XplatUI call gets made.
17710
17711 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17712
17713         * Control.cs: More fixes to make our key events match MS. We
17714           were not setting the modifier state on KeyData, and we were
17715           not generating any events when Alt was pressed with a key
17716           since handling of WM_SYSxxx was missing for the OnKey methods.
17717
17718 2005-12-07  Jackson Harper  <jackson@ximian.com>
17719
17720         * MdiChildContext.cs: reenable the sizing code.
17721         - When the mouse leaves a window reset its cursor.
17722
17723 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17724
17725         * ThemeClearlooks.cs: Reflect latest Hwnd changes
17726
17727 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17728
17729         * Hwnd.cs: Now using the theme 3d bordersize to calculate
17730           widths of Fixed3D borders
17731
17732 2005-12-07  Jackson Harper  <jackson@ximian.com>
17733
17734         * MdiClient.cs: Fix warnings. Earn Mike's love.
17735
17736 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17737
17738         * ThemeClearlooks.cs:
17739           - Adjusted mouse over button color
17740           - Added first parts of CheckBox drawing
17741           - Added correct color for selected text background
17742           - Fixed ComboBox drawing
17743           - Added CPDrawBorder3D and CPDrawBorder
17744
17745 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17746
17747         * XplatUIX11.cs: Added call to XBell for AudibleAlert
17748
17749 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
17750
17751         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17752           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
17753           alert users via sound. We could add an enum arg with different
17754           types of alerts in the future
17755
17756 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17757
17758         * Control.cs: Fix behaviour problems pointed out by Mike
17759
17760 2005-12-05  Mike Kestner  <mkestner@novell.com>
17761
17762         * StatusBarPanel.cs: add Invalidate method and hook it into all the
17763         prop setters.  Calls parent.Refresh for now, but could be maybe be
17764         optimized with an internal method on StatusBar at some point.
17765         [Fixes #76513]
17766
17767 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
17768
17769         * RichTextBox.cs: Implemented get_SelectionColor
17770
17771 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
17772
17773         * ThemeClearlooks.cs:
17774           - Removed dead code
17775           - Draw black button border only if button is Form.AcceptButton
17776           - Draw correct button color for pressed RadioButton if the mouse 
17777             has entered the button
17778           - Updated ProgressBar drawing!
17779           - Updated CPDrawSizeGrip drawing
17780           - Updated StatusBarPanel drawing
17781
17782 2005-12-05  Mike Kestner  <mkestner@novell.com>
17783
17784         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
17785         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
17786
17787 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
17788
17789         * ThemeClearlooks.cs: Initial check-in, activate with
17790           export MONO_THEME=clearlooks
17791         * ThemeEngine.cs: Added ThemeClearlooks
17792
17793 2005-12-03  Mike Kestner  <mkestner@novell.com>
17794
17795         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
17796         [Fixes #76897]
17797
17798 2005-12-02  Jackson Harper  <jackson@ximian.com>
17799
17800         * Form.cs: If the child form has no menu the default main menu is
17801         used as the active menu.
17802
17803 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
17804
17805         * ListBox.cs: Check if any items exist before trying to resolve 
17806           coordinates into items
17807
17808 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17809
17810         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
17811           as the second color for the background hatch
17812
17813 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17814
17815         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
17816         * RichTextBox.cs: FormatText position arguments are 1-based, now making
17817           sure that what we pass to FormatText is always 1-based. Fixes #76885
17818
17819 2005-11-29  Miguel de Icaza  <miguel@novell.com>
17820
17821         * NumericUpDown.cs (EndInit): When we are done initializing,
17822         reflect any updates on the UI.
17823
17824 2005-12-02  Jackson Harper  <jackson@ximian.com>
17825
17826         * ImplicitHScrollBar.cs:
17827         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
17828         their container controls.
17829         * TreeView.cs: Use the new implicit scrollbars.
17830
17831 2005-12-02  Jackson Harper  <jackson@ximian.com>
17832
17833         * TreeView.cs: Make top_node internal so the TreeNodeCollections
17834         can play with it.
17835         * TreeNodeCollection.cs: If we remove the topnode we need to
17836         update topnode to the next node in line.
17837         - When clearing nodes go through the same process as removing
17838         them, so they get depareneted and checked if they are top node.
17839
17840 2005-12-01  Jackson Harper  <jackson@ximian.com>
17841
17842         * TreeView.cs: When imagelists are used the image area is
17843         selectable as well as the text.
17844         - If there are no selected nodes select the first one.
17845         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
17846         so don't do it more then we need to.
17847
17848 2005-12-01  Jackson Harper  <jackson@ximian.com>
17849
17850         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
17851         that arrows can be scaled.
17852
17853 2005-12-01  Jackson Harper  <jackson@ximian.com>
17854
17855         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
17856         fail. Patch by Dieter Bremes
17857
17858 2005-11-30  Jackson Harper  <jackson@ximian.com>
17859
17860         * Form.cs: Property is 2.0 only
17861         * PrintDialog.cs: Signature fix.
17862
17863 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17864
17865         * TextControl.cs: 
17866           - No longer artificially moves text 2 pixels down (now that we have
17867             borders this is no longer needed)
17868           - Added calcs for left, hanging and right indent
17869
17870 2005-11-23  Mike Kestner  <mkestner@novell.com>
17871
17872         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
17873
17874 2005-11-30  Jackson Harper  <jackson@ximian.com>
17875
17876         * MdiChildContext.cs: Set the cloned menus forms, as these don't
17877         get cloned as part of CloneMenu ().
17878         * Menu.cs: Make sure the parent of the items get set correctly
17879         when they are added.  And the owners are notified of the changes.
17880         * Form.cs: Create an ActiveMenu property, so that when MDI is used
17881         we can change the menu being displayed/handled by the form without
17882         changing the menu assosciated with the form.
17883         - Don't let Mdi children draw/handle menus.
17884         
17885 2005-11-30  Jackson Harper  <jackson@ximian.com>
17886
17887         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
17888         a MenuChanged event. Just to make the API a little more
17889         consistent.
17890         * MainMenu.cs:
17891         * MenuItem.cs: Use the new OnMenuChanged
17892         * MdiChildContext.cs: Handle menu merging.
17893         * Form.cs: Implement MergedMenu.
17894         
17895 2005-11-30  Jackson Harper  <jackson@ximian.com>
17896
17897         * Menu.cs: We were misusing Add. Add goes behind the specified
17898         index according to the docs, and does not replace the specified
17899         index. So I added an Insert method.
17900
17901 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17902
17903         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
17904           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
17905           is for Jackson
17906         * RichTextBox.cs: Added calls to base for DnD events
17907
17908 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
17909
17910         * TextControl.cs:
17911           - Fixed drag-selection related crash; style fixes
17912           - Implemented undo class
17913             o Implemented method to capture document state for specified
17914               range in document tree
17915             o Implemented method to restore captured document state
17916             o Implemented cursor tracking
17917             o Implemented basic undo stack
17918           - Added undo cursor tracking to methods altering cursor location
17919           - Added undo tracking to selection deletion (still missing
17920             other text-altering hookups)
17921         * RichTextBox.cs:
17922           - Added SelectionLength property
17923           - Implemented CanPaste()
17924           - Implemented Paste()
17925           - Added missing protected methods
17926           - Fixed RTF->Document conversion; now uses font index 0 and color 
17927             index 0 as the default font for the parsed text
17928           - Fixed RTF<->Document font size translation
17929           - Fixed RTF generation, now properly handles cross-tag boundaries
17930             for single line selection
17931           - No longer always appends blank line to generated RTF
17932           - Removed TODOs
17933           - Added missing attributes
17934           - Hooked up undo-related methods
17935         * TextBoxBase.cs:
17936           - Implemented Copy()
17937           - Implemented Paste()
17938           - Implemented Cut()
17939           - Fixed caret mis-behaviour on backspace across line-boundaries
17940
17941 2005-11-29  Jackson Harper  <jackson@ximian.com>
17942
17943         * MdiClient.cs: Add a method for activating mdi children. Very
17944         basic right now. I imagine someday it might need more girth.
17945         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
17946         children windows names are added to the menu item.
17947         * ThemeWin32Classic.cs: Draw the arrow if the item is an
17948         mdilist. This happens regardless of whether or not there are any
17949         mdi windows to see in the list, and according to my tests happens
17950         before the items are even added. Also happens if there isn't even
17951         an mdi client to get windows from.
17952
17953 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
17954
17955         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
17956         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
17957
17958 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
17959
17960         * DataGridTableStyle.cs:
17961           - Create always the styles for the missing columns even if they are
17962             provided by the user (not default table style)
17963         * DataGrid.cs:
17964           - Fixes bug 76770
17965           - Fixes SetDataBinding (always re-attach source)
17966           - Fixes SetNewDataSource (only clear styles if they are not for 
17967             this source)
17968          -  Expands OnTableStylesCollectionChanged to handle style refresh 
17969             and remove properly
17970
17971 2005-11-29  Jackson Harper  <jackson@ximian.com>
17972
17973         * FileDialog.cs: Implement missing bits, remove some dead
17974         code.
17975         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
17976         creation of the panel so that the options set on the dialog are
17977         seen when the panel is created.
17978         * TreeView.cs: raise a click when items are clicked.
17979         
17980 2005-11-29  Jackson Harper  <jackson@ximian.com>
17981
17982         * MdiClient.cs: Pass some signature methods through to base.
17983
17984 2005-11-28  Jackson Harper  <jackson@ximian.com>
17985
17986         * ListView.cs: Raise the click event when items are clicked.
17987
17988 2005-11-28  Jackson Harper  <jackson@ximian.com>
17989
17990         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
17991         a nullref.
17992
17993 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
17994
17995         * ThemeNice.cs: - Removed 1 pixel bitmaps
17996           - Use SmoothingMode.AntiAlias where it makes sense
17997             (ScrollButton arrow for example)
17998           - Enhanced Button focus drawing
17999           - Fixed ComboBox drawing (no artefacts anymore, focus
18000             rectangle is back again, reduced size of ComboButton, etc.)
18001           - Fixed RadioButton focus drawing for Appearence.Button
18002           - Slight ScrollButton redesign
18003           - Some LinearGradientBrush size fixes
18004           - GroupBoxes have now rounded edges
18005           - Fixed StatusBar drawing
18006
18007 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
18008
18009         * ThemeNice.cs: - Remove dead code
18010           - use correct background colors for menus, etc.
18011           - Fake pixel drawing with 1 pixel bitmaps
18012
18013 2005-11-24  Jackson Harper  <jackson@ximian.com>
18014
18015         * MdiClient.cs: Size the scrollbars when resizing the window.
18016         - Resize the maximized windows when the client is resized
18017         * Form.cs: Make the child context available
18018         
18019 2005-11-23  Jackson Harper  <jackson@ximian.com>
18020
18021         * MdiChildContext.cs: Don't size windows if they are maximized.
18022
18023 2005-11-23  Mike Kestner  <mkestner@novell.com>
18024
18025         * ContextMenu.cs: use MenuTracker.
18026         * Control.cs: remove menu handle usage.
18027         * Form.cs: remove menu handle usage.
18028         * Hwnd.cs: remove menu handle usage.
18029         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
18030         motion and clicks to the new Tracker handlers.
18031         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
18032         and handle usage.
18033         * MenuAPI.cs: refactored to combine popup and menubar event handling.
18034         Killed the MENU and MENUITEM data types and associated collections
18035         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
18036         MenuTracker class that exposes the leftovers from the old MenuAPI
18037         static methods. Restructured Capture handling so that only one grab is
18038         done for the entire menu hierarchy instead of handing off grabs to
18039         submenus. Tracker now has an invisible control to Capture when active.
18040         * MenuItem.cs: add sizing accessors, kill Create
18041         and handle usage.
18042         * Theme.cs: remove menu handle and MENU(ITEM) usage.
18043         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
18044         MENU(ITEM). remove menu handle usage, use Menu directly.
18045         * XplatUIDriver.cs: remove menu handle usage.
18046         * XplatUIOSX.cs: remove menu handle usage.
18047         * XplatUIWin32.cs: remove menu handle usage.
18048         * XplatUIX11.cs: remove menu handle usage.
18049
18050 2005-11-22  Jackson Harper  <jackson@ximian.com>
18051
18052         * Hwnd.cs: Don't compute the menu size for
18053         DefaultClientRectangle.
18054         - Reenable menu sizes being computed for GetClienRectangle.
18055         * Form.cs: Remove comment of trechery
18056         
18057 2005-11-22  Jackson Harper  <jackson@ximian.com>
18058
18059         * Hwnd.cs: The adjustments for the menu bar are made when it is
18060         attached to the form.
18061
18062 2005-11-19  Jackson Harper  <jackson@ximian.com>
18063
18064         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
18065         (just like on windows).
18066
18067 2005-11-19  Jackson Harper  <jackson@ximian.com>
18068
18069         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
18070         use real buttons anymore because they are in non client area. The
18071         one TODO here is that I need to somehow invalidate a section of
18072         the non client area.
18073
18074 2005-11-18  Jackson Harper  <jackson@ximian.com>
18075
18076         * Control.cs: Put the enum check back in now that MDI doesnt have
18077         to use this to set border styles.
18078         * Form.cs: Only set mdi child windows borders if the handle has
18079         been created.
18080         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
18081         this directly on to the driver.
18082         - Get the move start position before adjusting for the titlebar
18083         height, this fixes the windows "skipping" when they are first
18084         moved.
18085
18086 2005-11-18  Jackson Harper  <jackson@ximian.com>
18087
18088         * XplatUIX11.cs: Just compute the mdi borders separately as they
18089         don't totally match up with normal form borders.
18090
18091 2005-11-18  Jackson Harper  <jackson@ximian.com>
18092
18093         * Control.cs: Set WS_ styles for borders, so that the driver does
18094         not have to retrieve the control instance to figure out what kind
18095         of borders it should have.
18096         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
18097         driver can know its an mdi child easily.
18098         * XplatUIX11.cs: Get the border styles and whether the window is
18099         MDI from the Styles and ExStyles params instead of having to get a
18100         control. This prevents a chicken and egg problem.       
18101
18102 2005-11-18  Jackson Harper  <jackson@ximian.com>
18103
18104         * MdiClient.cs: Fix typo so scrollbars show up correctly.
18105
18106 2005-11-18  Jackson Harper  <jackson@ximian.com>
18107
18108         * MdiClient.cs: Calculate when to add and remove scrollbars
18109         correctly.
18110         * MdiChildContext.cs: Adjust the y position to take the titlebar
18111         into account.
18112         - No height for FormBorderStyle.None
18113
18114 2005-11-18  Jackson Harper  <jackson@ximian.com>
18115
18116         * Control.cs: Allow non enum values to be used for
18117         InternalBorderStyle.  MDI does this to set a special border style.
18118         - New utility methods for converting points to/from client coords
18119         - Add the newly created control to the Controls collection before
18120         updating its style. This way UpdateStyle can walk the control
18121         heirarchy to find the control if needed.
18122         so I don't need to create a new Point object all the time.
18123         * Form.cs: Let MDI windows handle their border styles.
18124         - Set styles on MDI windows so the correct title style is derived.
18125         * MdiChildContext.cs: Move all the painting and window handling
18126         into the non client area.
18127         - Use correct sizing and put correct buttons on frames based on
18128         the FormBorderStyle.
18129         - Notify the mdi client about scrolling
18130         - Need to handle the buttons ourselves now, because they are all
18131         in non client areas and we can't add controls there.
18132         * MdiClient.cs: Halfway to scrolling, this implementation is
18133         somewhat broken though, we need to check to make sure other
18134         windows aren't causing scrolling before removing the bars. Also
18135         the bars need to be drawn on top, maybe I can switch implicit
18136         controls to be on top.
18137         * Hwnd.cs: caption_height and tool_caption_height are now
18138         properties of an hwnd, this way they can be set by the driver
18139         based on the type of window they are.  In X11 the window manager
18140         handles the decorations so caption_height is zero unless its an
18141         MDI window.
18142         - Add 3 pixel borders for MDI windows (0xFFFF).
18143         - Get rid of some code duplication, have DefaultClientRectanle
18144         just call GetClientRectangle.
18145         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
18146         Hwnd now.
18147         - Set border styles differently for mdi windows.
18148         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
18149         Hwnd now.
18150         
18151 2005-11-15  Mike Kestner  <mkestner@novell.com>
18152
18153         * Menu.cs: when adding an item to the collection, if item is already 
18154         parented, remove it from the parent.
18155
18156 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
18157
18158         * X11DesktopColors.cs: Added KDE support
18159
18160 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
18161
18162         * XplatUIWin32.cs: 
18163           - Clipboard methods now can translate Rtf format
18164           - No longer removes clipboard contents whenever a new format is added
18165             to allow placing multiple formats on the clipboard
18166         * Clipboard.cs: Clipboard now supports getting a IDataObject and
18167           will place all formats contained in it onto the clipboard. Also
18168           now cleans the clipboard before placing a new object onto it
18169         * RichTextBox.cs:
18170           - Implemented set_Rtf
18171           - Implemented set_SelectedRtf
18172           - Created InsertRTFFromStream() method to allow single code base
18173             for all properties and methods that insert RTF into document
18174           - Removed debug output
18175         * TextControl.cs:
18176           - Fixed Delete(int) to fix up line numbers
18177           - Fixed ReplaceSelection to combine start and end line
18178           - Fixed serious DeleteChars bug that would leave the document tree
18179             broken
18180           - Improved DumpTree with several logic checks to detect broken
18181             document trees
18182           - Removed debug lines
18183           - Fixed Caret.WordForward/WordBack moving code, now always also 
18184             updates caret.tag (fixes crash when word-selecting across tag
18185             boundaries via keyboard)
18186           - Added Insert() method for inserting multiline text into documents
18187           - Fixed DeleteChars() calculation errors that would cause a broken
18188             tag chain with multiple tag lines
18189           - DeleteChars() no longer crashes on multi-tag lines if not all tags
18190           - Split() no longer moves caret if split is at caret location
18191           - ReplaceSelection() now updates the cursor and re-displays it
18192           - ReplaceSelection() now uses new Insert() method to avoid code
18193             duplication
18194           - FormatText() can now handle formatting partial lines
18195         * TextBoxBase.cs:
18196           - Append now uses new TextControl.Insert() method (this avoids 
18197             duplicate code)
18198           - Implemented Ctrl-X (Cut) (
18199           - Implemented Ctrl-C (Copy)
18200           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
18201             regeneration when pasting text; roundtripping Copy&Paste within
18202             edit control still fails due to some calculation bugs in GenerateRTF)
18203           - The Delete key will now remove the current selection if it is visible
18204         * TextBox.cs: Removed debug lines
18205         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
18206           driver to be initialized and can't therefore be done via a static ctor)
18207
18208 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
18209
18210         * TextControl.cs: Added backend code for finding char arrays and strings
18211         * TextBoxBase.cs:
18212           - Added mouse wheel scroll support
18213           - Added support for VScroll and HScroll events
18214         * RichTextBox.cs:
18215           - Implemented all seven Find() variants
18216           - Implemented GetCharFromPosition()
18217           - Implemented GetCharIndexFromPosition()
18218           - Implemented GetLineFromIndex()
18219           - Implemented GetPositionFromCharIndex();
18220           - Implemented SaveFile for PlainText and UnicodeText
18221           - Fixed set_Font, now setting a new font applies that font to
18222             the whole document
18223           - Implemented generic Document to RTF converter
18224           - Implemented SaveFile for RichText format (still missing unicode
18225             conversion for non-ansi chars)
18226           - Implemented get_Rtf
18227           - Implemented get_SelectedRtf
18228
18229 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
18230
18231         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
18232           to allow any captures to be released before triggering OnClick. This
18233           way a click handler may capture the mouse without interference.
18234         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
18235           This way we send them even though X may not allow a grab (if the window
18236           isn't visible, for example)
18237
18238 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
18239
18240         * DataGridViewRowEventArgs.cs: DataGridView implementation
18241         * DataGridViewElement.cs: DataGridView implementation
18242         * DataGridViewComboBoxCell.cs: DataGridView implementation
18243         * DataGridViewDataErrorContexts.cs: DataGridView implementation
18244         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
18245         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
18246         * ImageLayout.cs: DataGridView implementation
18247         * DataGridViewComboBoxColumn.cs: DataGridView implementation
18248         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
18249         * DataGridViewSelectionMode.cs: DataGridView implementation
18250         * IDataGridViewEditingControl.cs: DataGridView implementation
18251         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
18252         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
18253         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
18254         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
18255         * DataGridViewColumnSortMode.cs: DataGridView implementation
18256         * DataGridView.cs: DataGridView implementation
18257         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
18258         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
18259         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
18260         * Padding.cs: DataGridView implementation
18261         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
18262         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
18263         * DataGridViewRowEventHandler.cs: DataGridView implementation
18264         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
18265         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
18266         * DataGridViewButtonCell.cs: DataGridView implementation
18267         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
18268         * DataGridViewEditMode.cs: DataGridView implementation
18269         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
18270         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
18271         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
18272         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
18273         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
18274         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
18275         * DataGridViewCellEventHandler.cs: DataGridView implementation
18276         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
18277         * DataGridViewCellStyleConverter.cs: DataGridView implementation
18278         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
18279         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
18280         * DataGridViewColumnEventArgs.cs: DataGridView implementation
18281         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
18282         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
18283         * QuestionEventArgs.cs: DataGridView implementation
18284         * IDataGridViewEditingCell.cs: DataGridView implementation
18285         * DataGridViewTriState.cs: DataGridView implementation
18286         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
18287         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
18288         * DataGridViewColumnCollection.cs: DataGridView implementation
18289         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
18290         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
18291         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
18292         * DataGridViewColumn.cs: DataGridView implementation
18293         * DataGridViewCellBorderStyle.cs: DataGridView implementation
18294         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
18295         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
18296         * DataGridViewRow.cs: DataGridView implementation
18297         * DataGridViewImageCellLayout.cs: DataGridView implementation
18298         * DataGridViewImageCell.cs: DataGridView implementation
18299         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
18300         * DataGridViewCheckBoxCell.cs: DataGridView implementation
18301         * DataGridViewHeaderCell.cs: DataGridView implementation
18302         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
18303         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
18304         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
18305         * DataGridViewTextBoxColumn.cs: DataGridView implementation
18306         * QuestionEventHandler.cs: DataGridView implementation
18307         * DataGridViewCellStyleScopes.cs: DataGridView implementation
18308         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
18309         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
18310         * DataGridViewCell.cs: DataGridView implementation
18311         * DataGridViewCellEventArgs.cs: DataGridView implementation
18312         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
18313         * DataGridViewCellStyle.cs: DataGridView implementation
18314         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
18315         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
18316         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
18317         * TextFormatFlags.cs: DataGridView implementation
18318         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
18319         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
18320         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
18321         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
18322         * DataGridViewButtonColumn.cs: DataGridView implementation
18323         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
18324         * HandledMouseEventArgs.cs: DataGridView implementation
18325         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
18326         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
18327         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
18328         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
18329         * DataGridViewRowCollection.cs: DataGridView implementation
18330         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
18331         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
18332         * DataGridViewHitTestType.cs: DataGridView implementation
18333         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
18334         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
18335         * DataGridViewColumnEventHandler.cs: DataGridView implementation
18336         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
18337         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
18338         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
18339         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
18340         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
18341         * DataGridViewContentAlignment.cs: DataGridView implementation
18342         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
18343         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
18344         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
18345         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
18346         * DataGridViewPaintParts.cs: DataGridView implementation
18347         * DataGridViewCellCollection.cs: DataGridView implementation
18348         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
18349         * DataGridViewImageColumn.cs: DataGridView implementation
18350         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
18351         * DataGridViewElementStates.cs: DataGridView implementation
18352         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
18353         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
18354         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
18355         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
18356         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
18357         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
18358         * DataGridViewRowHeaderCell.cs: DataGridView implementation
18359         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
18360         * DataGridViewTextBoxCell.cs: DataGridView implementation
18361         * DataGridViewBand.cs: DataGridView implementation
18362         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
18363         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
18364         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
18365         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
18366         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
18367         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
18368         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
18369         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
18370         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
18371         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
18372         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
18373
18374 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
18375
18376         * ThemeWin32Classic.cs: 
18377           - Draw the outside focus rectangle around buttons
18378           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
18379             doesn't use end caps for every dash of a line anymore. This
18380             workaround ignores the forecolor.
18381
18382 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
18383
18384         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
18385           endian safe.
18386
18387 2005-11-07  Jackson Harper  <jackson@ximian.com>
18388
18389         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
18390
18391 2005-11-07  Jackson Harper  <jackson@ximian.com>
18392
18393         * ScrollableControl.cs: Calculate the maximum and change vars
18394         (more) correctly so that scrollbars appear as a sensible size.
18395
18396 2005-11-04  Jackson Harper  <jackson@ximian.com>
18397
18398         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
18399         collection.
18400         * TreeView.cs: When the tree is sorted null out the top_node so
18401         that it is recalculated.
18402         - Use dotted lines instead of dashed lines to match MS better.
18403
18404 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
18405
18406         * ListView.cs: 
18407           - Implements key search for items. Useful when browsing files with FileDialog
18408           - When changing view mode or when clear the items reset scrollbar positions
18409
18410 2005-11-04  Jackson Harper  <jackson@ximian.com>
18411
18412         * CurrencyManager.cs: Implement the MetaDataChanged event, the
18413         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
18414         as to what the method may do as there is no real way of creating a
18415         derived CurrencyManager and calling the method. 
18416
18417 2005-11-03  Jackson Harper  <jackson@ximian.com>
18418
18419         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
18420         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
18421         method which seems to just be used internally to refresh the tabs.
18422
18423 2005-11-03  Jackson Harper  <jackson@ximian.com>
18424
18425         * TabControl.cs: Implement the remove method. Fix some broken
18426         comments.
18427
18428 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18429
18430         * DateTimePicker.cs:
18431           - Added missing DateTimePickerAccessibleObject class
18432           - Added missing events
18433           - Added OnFontChanged method
18434         * Form.cs: Added missing attributes
18435         * TreeView.cs: Added missing attributes
18436
18437 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
18438
18439         * GridItemCollection.cs: Fix signatures
18440
18441 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18442
18443         * XplatUI.cs: Updated build rev/date
18444         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
18445           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
18446         * Application.cs: Trigger context-specific ExitThread events
18447
18448 2005-11-03  Jackson Harper  <jackson@ximian.com>
18449
18450         * Menu.cs:
18451         * MainMenu.cs:
18452         * GridTableStylesCollection.cs:
18453         * Timer.cs:
18454         * TabPage.cs:
18455         * HelpProvider.cs:
18456         * StatusBar.cs:
18457         * MonthCalendar.cs: Signature fixes
18458
18459 2005-11-03  Jackson Harper  <jackson@ximian.com>
18460
18461         * TreeNodeCollection.cs: Remove should not be virtual.
18462         * TreeView.cs: Implement the last of the missing methods.
18463
18464 2005-11-03  Jackson Harper  <jackson@ximian.com>
18465
18466         * TreeNodeConverter.cs: Implement to get off my class-status back.
18467
18468 2005-11-03  Jackson Harper  <jackson@ximian.com>
18469
18470         * TreeView.cs: Hookup the bits for drag and drop.
18471         * TreeNode.cs: Don't cache the tree_view or index anymore, now
18472         that nodes can be moved from tree to tree easily this just causes
18473         all sorts of problems.
18474         * TreeNodeCollection: Don't need to give treenodes an index and
18475         treeview anymore when they are added, these are computed on the
18476         fly. Also make sure to remove a node before its added.
18477
18478 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18479
18480         * TextControl.cs:
18481           - Added CaretSelection enum
18482           - Added comparison methods to Marker struct, makes selection code
18483             more readable
18484           - Added SelectionStart and SelectionEnd as 'moveable' location for
18485             the CaretDirection enum and handler
18486           - Added selection_prev variable to track optimized invalidation for
18487             word and line selection
18488           - Added SelectionVisible property (returns true if there is a valid 
18489             selection)
18490           - Switched CaretHasFocus to only display the caret if there is no
18491             visible selection
18492           - Avoiding StringBuilder.ToString to retrieve a single char, instead
18493             using the direct character index; should be much faster
18494           - Added various conditional debug statements
18495           - Fixed invalidation calculation for selection ranges
18496           - Added ExpandSelection() method to support word and line selection
18497           - Switched SetSelectionToCaret to use new Marker compare overloads
18498           - Added central IsWordSeparator() method to determine word 
18499             separators/whitespace and FindWordSeparator() to streamline common
18500             usage of IsWordSeparator()
18501         * TextBoxBase.cs:
18502           - Removed unneeded grabbed variable, it was just mirroring
18503             Control.Capture
18504           - No longer firing OnTextChanged event when Text setter is called,
18505             since the base will fire the event for us
18506           - Added handling of Ctrl-Up/Down selection
18507           - Added handling of Shift-Cursorkey selection
18508           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
18509             words
18510           - Added handling of Shift and Ctrl-Shift-Home/End selection
18511           - Removed some debug output
18512           - Added handling for single/double/tripple-click to place caret/
18513             select word/select line respectively (Fixes bug #76031)
18514           - Added support for drag expansion of word/line selection
18515         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
18516           current selection
18517
18518 2005-11-02  Jackson Harper  <jackson@ximian.com>
18519
18520         * X11Dnd.cs: If the drag is going to and from a MWF window just
18521         copy the data instead of sending it out through the X Selection
18522         mechanism.
18523
18524 2005-11-02  Jackson Harper  <jackson@ximian.com>
18525
18526         * X11Dnd.cs:
18527         * XplatUIX11.cs: When in a drag we don't want motion notify
18528         messages to get passed on to the other controls. This prevents
18529         mouse move messages from showing up in the drag source.
18530
18531 2005-11-02  Jackson Harper  <jackson@ximian.com>
18532
18533         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
18534         the correct button is release to end a drag.
18535         * XplatUIX11.cs: Make the button state internal so the drag system
18536         can access it.  Dragging needs to know about all button releases,
18537         not just left button.
18538
18539 2005-11-02  Miguel de Icaza  <miguel@novell.com>
18540
18541         * Form.cs (Icon): If the icon is null, reset the icon to the
18542         default value. 
18543
18544         * Cursor.cs: When writing the AND-mask bitmap do not include the
18545         number of colors, but hardcode those to two (black and white),
18546         fixes the loading of color cursors (Paint Dot Net).
18547
18548         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
18549         turn off autoscaling.
18550
18551         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
18552
18553 2005-11-02  Jackson Harper  <jackson@ximian.com>
18554
18555         * X11Dnd.cs: Make sure to send a status message if the pointer
18556         enters a control that can not accept a drop, otherwise the cursor
18557         isn't updated correctly. Also tried to compress the lines of code
18558         a bit.
18559
18560 2005-11-02  Jackson Harper  <jackson@ximian.com>
18561
18562         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
18563         set actions correctly.  This isn't perfect as XDND and win32 have
18564         some differences on how you allow actions. I'll clear this up by
18565         adding a path for drag from MWF to MWF windows.
18566         * XplatUIX11.cs: Hook into the dnd system.
18567
18568 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
18569
18570         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
18571         previously shown but they are no longer need it. Very obvious when 
18572         browsing files with FileDialog.
18573
18574 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
18575
18576         * Control.cs: We always need to call OnPaintBackground. We pretty much
18577           ignore AllPaintingInWmPaint and always do the painting there, whether 
18578           it's set or not, since we always ignore the WM_ERASEBKGND message 
18579           (which we don't generate on X11). This fixes #76616.
18580         * Panel.cs: Removed unneeded background painting. This happens properly
18581           in Control.cs already
18582
18583 2005-10-31  Mike Kestner  <mkestner@novell.com>
18584
18585         * Menu.cs: Add items to collection before setting their index.
18586         * MenuItem.cs : add range checking with ArgumentException like MS.
18587         [Fixes #76510]
18588
18589 2005-10-31  Jackson Harper  <jackson@ximian.com>
18590
18591         * ListBox.cs: Invalidate if the area is visible at all not just
18592         contained in the visible rect. Fixes unselection of semi visible
18593         items.
18594
18595 2005-10-31  Jackson Harper  <jackson@ximian.com>
18596
18597         * Control.cs: Consistently name the dnd methods. Make them
18598         internal so we can override them to match some MS behavoir
18599         internally.
18600         * Win32DnD.cs: Use the new consistent names.
18601
18602 2005-10-31  Jackson Harper  <jackson@ximian.com>
18603
18604         * TreeView.cs: Don't draw the selected node when we lose focus.
18605
18606 2005-10-31  Jackson Harper  <jackson@ximian.com>
18607
18608         * X11Dnd.cs: We still need to reset the state even though a full
18609         reset isn't being done, otherwise status's still get sent all over
18610         the place.
18611
18612 2005-10-31  Jackson Harper  <jackson@ximian.com>
18613
18614         * Control.cs: Make the dnd_aware flag internal so the dnd
18615         subsystem can check it. Catch exceptions thrown in dnd handlers to
18616         match MS behavoir.
18617         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
18618         * X11Dnd.cs: Handle null data in the converters. Set the XDND
18619         version when sending a XdndEnter. Use the control/hwnd dnd_aware
18620         flags to reduce the number of dnd enters/status's sent.
18621
18622 2005-10-31  Jackson Harper  <jackson@ximian.com>
18623
18624         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
18625
18626 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
18627
18628         * PictureBox.cs: Fixes 76512
18629
18630 2005-10-28  Jackson Harper  <jackson@ximian.com>
18631
18632         * X11Dnd.cs: Early implementation to support winforms being a drag
18633         source for data on X11. Also restructured the converters so they
18634         can go both ways now.
18635         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
18636         
18637 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
18638
18639         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
18640           clipboard requests
18641
18642 2005-10-27  Jackson Harper  <jackson@ximian.com>
18643
18644         * TreeNode.cs: Implement serialization so my DnD examples will work.
18645
18646 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
18647
18648         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
18649           TreeView.cs: Don't dispose objects that are not owned.
18650           
18651 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
18652
18653         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
18654           should retrieve the current cursor and report that, but XplatUI
18655           doesn't (yet) have an interface for that (and I'm not sure I even
18656           can, on X11)
18657         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
18658           until any message loop processing is done (and the WM_SETCURSOR
18659           replaces the cursor to the proper one)
18660         * XplatUIX11.cs: 
18661           - Fixed override behaviour, we can't set the cursor globally on X11, 
18662             just for our windows.
18663           - Invalidating the System.Drawing X11 display handle when we are
18664             shutting down
18665         * Control.cs: Fix to make csc happy
18666
18667 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
18668
18669         * TextBoxBase.cs: 
18670           - get_Text: Add last line (without trailing newline) to returned
18671             value (Fixes 76212)
18672           - get_TextLength: Count last line in returned length
18673           - ToString: Call Text property instead of duplicating code
18674
18675 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
18676
18677         * ImageList.cs: Dispose ImageAttributes objects.
18678
18679 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18680
18681         * ImageList.cs: Use attribute constructors with less arguments where
18682           possible.
18683
18684 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18685
18686         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
18687           Use typeof instead of strings when assembly is referenced. Added
18688           some more comments.
18689
18690 2005-10-21  Jackson Harper  <jackson@ximian.com>
18691
18692         * ListView.cs: Raise a double click event. Also tried to somewhat
18693         fix when the selectedindexchanged event is raised. Its still
18694         broken though.
18695
18696 2005-10-21  Jackson Harper  <jackson@ximian.com>
18697
18698         * TreeView.cs: New method to invalidate the plus minus area of a
18699         node without invalidating the whole node (maybe this can be used
18700         in some more places).
18701         * TreeNodeCollection.cs: When adding to an empty node we need to
18702         invalidate its plus minus area so the little block shows up.
18703         
18704 2005-10-21  Jackson Harper  <jackson@ximian.com>
18705
18706         * TreeView.cs: Make sure that when we invalidate a node the bounds
18707         are big enough to cover the selected box and the focus
18708         rectangle. Use a different colour for the lines connecting nodes
18709         so they show up with all themes.
18710
18711 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18712
18713         * NativeWindow.cs: Don't call anything that could call into the driver,
18714           we might be on a different thread.
18715
18716 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
18717
18718         * Control.cs(Dispose): Since Dispose might run on a different thread,
18719           make sure that we call methods that could call into the driver via
18720           invoke, to avoid thread issues
18721
18722 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18723
18724         * XplatUI.cs: Removed finalizer
18725         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
18726           not allowing to be called on the finalizer thread.
18727
18728 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
18729
18730         * ImageList.cs:
18731           - Reverted r51889 and r51891.
18732           - Added ImageListItem class that stores unmodified image items and image
18733             properties required to create list images until handle is created.
18734           - Added AddItem and moved image creation logic to AddItemInternal.
18735           - Added CreateHandle method that creates images based on unmodified items.
18736           - Added DestroyHandle that changes state to store unmodified items.
18737           - Add and AddStrip methods no more create handle.
18738           - ReduceColorDepth has no return value.
18739           - Dispose destroys handle.
18740           - Modified other methods to reflect the above changes.
18741           - Implemented key support.
18742           - Added profile 2.0 members and attributes.
18743           - Added private Reset and ShouldSerialize methods that provide the same
18744             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
18745             them as they are private.
18746           - Added some more comments about implementation details.
18747
18748 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18749
18750         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
18751
18752 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18753
18754         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
18755
18756 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18757
18758         * DataGridDrawingLogic.cs: Fixes column hit calcultation
18759         * DataGridColumnStyle.cs: Remove debug message
18760
18761 2005-10-20  Jackson Harper  <jackson@ximian.com>
18762
18763         * TreeView.cs: We can always get input keys regardless of whether
18764         or not editing is enabled. They are used for navigation.
18765
18766 2005-10-20  Jackson Harper  <jackson@ximian.com>
18767
18768         * TreeNode.cs: Use the viewport rect for determining if a node
18769         needs to be moved for visibility. Don't use Begin/End edit. This
18770         calls a full refresh when its done.
18771         * TreeView.cs: New SetBottom works correctly.  Make the viewport
18772         rect property internal so the treenodes can see it. When clicking
18773         on a node we need to ensure that its visible because it might just
18774         be partly visible when clicked.
18775
18776 2005-10-20  Jackson Harper  <jackson@ximian.com>
18777
18778         * TreeNodeCollection.cs: Remove debug code.
18779
18780 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18781
18782         * Datagrid.cs: Implements column sorting in Datagrid
18783         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
18784
18785 2005-10-20  Jackson Harper  <jackson@ximian.com>
18786
18787         * TreeNodeCollection.cs: Remove items properly. Update the correct
18788         area after removing them.
18789
18790 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18791
18792         * Datagrid.cs: Should not call base.OnPaintBackground
18793
18794 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18795
18796         * XplatUIX11.cs (GetMessage):
18797           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
18798             window instead of client window
18799           - Now properly calculates NC_xBUTTONUP message coordinates
18800           - ScreenToMenu now properly calculates it's coordinates of whole 
18801             window, since menus are in the whole window, not in the client
18802             window
18803           - Added WholeToScreen coordinate translation method
18804
18805 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
18806
18807         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
18808           want to return a message, loop back to the beginning of the function
18809           and grab the next real message to process instead.
18810
18811 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18812
18813         * Splitter.cs: Properly set limits if no filler control is used
18814
18815 2005-10-19  Jackson Harper  <jackson@ximian.com>
18816
18817         * ColorDialog.cs: Don't show the help button if it is not enabled
18818         instead of disabling it (this is what MS does). Don't create the
18819         panel until the dialog is run, otherwise the vars (such as
18820         ShowHelp) are not set yet.
18821
18822 2005-10-19  Jackson Harper  <jackson@ximian.com>
18823
18824         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
18825         are reduced when adding nodes.
18826         * TreeNode.cs:
18827         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
18828         tree.
18829         
18830 2005-10-19  Jackson Harper  <jackson@ximian.com>
18831
18832         * FolderBrowserDialog.cs: End editing our treeview so the window
18833         actually gets refreshed.
18834
18835 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18836
18837         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
18838           Obsoleted handling of WM_ERASEBKGND, now always draws our background
18839           inside of WM_PAINT
18840
18841 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18842
18843         * MenuAPI.cs: Returns after Hidding window
18844         * XplatUIX11.cs: Added TODO found while debugging menu issues
18845
18846 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18847
18848         * XplatUIX11.cs: Do not re-map the whole window when it's size
18849           becomes non-zero unless it's supposed to be actually visible
18850
18851 2005-10-18  Jackson Harper  <jackson@ximian.com>
18852
18853         * TreeView.cs: We don't need to keep a count anymore.
18854         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
18855         use the Grow method.
18856
18857 2005-10-18  Jackson Harper  <jackson@ximian.com>
18858
18859         * TreeNodeCollection.cs: Insert is not supported on arrays, so
18860         implement it manually here.
18861
18862 2005-10-18  Jackson Harper  <jackson@ximian.com>
18863
18864         * ImageList.cs: Dont kill the list when the colour depth is
18865         changed, just change the colour depth of all the images.
18866         - Same goes for setting the image size. Just resize them all
18867         instead of killing the list softly.
18868
18869 2005-10-18  Jackson Harper  <jackson@ximian.com>
18870
18871         * Control.cs: Don't invalidate empty rectangles.
18872
18873 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18874
18875         * ListViewItem.cs:
18876           - Adds checked item to the Checked/Item lists (where empty before)
18877           - Do not add items to the Selected lists if they are already present
18878         * ListView.cs:
18879           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
18880           - When deleting items make sure that we delete them for the Selected
18881           and Checked list also.
18882
18883 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18884
18885         * Label.cs: Dispose objects no longer used
18886         * ThemeWin32Classic.cs: Dispose objects no longer used
18887
18888 2005-10-18  Jackson Harper  <jackson@ximian.com>
18889
18890         * TabControl.cs: Don't refresh the whole control when the tabs are
18891         scrolled, we just need to refresh the tab area.
18892
18893 2005-10-17  Jackson Harper  <jackson@ximian.com>
18894
18895         * XplatUIX11.cs: Compress code a little bit. Only calculate the
18896         after handle when we need it.
18897
18898 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18899
18900         * Control.cs: When the parent size changes, recalculate anchor 
18901           positions. Partial fix for #76462
18902
18903 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18904
18905         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
18906           drawn. Fixes #76462
18907
18908 2005-10-17  Jackson Harper  <jackson@ximian.com>
18909
18910         * MonthCalendar.cs: Don't create the numeric up down until our
18911         handle is created. Otherwise our handle is created in the
18912         constructor and we don't know if we are a WS_CHILD or WS_POPUP
18913         yet.
18914
18915 2005-10-17  Jackson Harper  <jackson@ximian.com>
18916
18917         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
18918         correctly.
18919
18920 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
18921         * TreeNode.cs : small logical fix (was using local var instead of field)
18922         
18923 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18924
18925         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
18926
18927 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18928
18929         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
18930
18931 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
18932
18933         * Control.cs: 
18934           - Re-implemented anchoring code. My first version was really broken.
18935             This fixes bug #76033. Unlike the previous implementation we will
18936             no longer have round errors since all numbers are calculated from
18937             scratch every time. Removed various anchor-related obsolete vars.
18938           - InitLayout no longer causes layout event firing and layout to be 
18939             performed
18940
18941 2005-10-16  Jackson Harper  <jackson@ximian.com>
18942
18943         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
18944         which was broken).
18945
18946 2005-10-16  Jackson Harper  <jackson@ximian.com>
18947
18948         * TabControl.cs: Remove debug code.
18949
18950 2005-10-16  Jackson Harper  <jackson@ximian.com>
18951
18952         * XEventQueue.cs: Increase the default queue size (very simple
18953         apps needed to grow the queue).
18954         * Hwnd.cs: No finalizer so we don't need to suppress
18955         finalization. Compute the invalid area manually so a new rectangle
18956         does not newto be created.
18957         * ScrollableControl.cs: Don't set any params (otherwise visibility
18958         isn't set correctly).
18959         * MdiChildContext.cs: New constructor takes the mdi parent so it
18960         doesn't have to be computed and avoids a crash on windows. Draw
18961         the window icon properly, and allow the text to be seen.
18962         * Form.cs: Use new MdiChildContext constructor. Make sure the
18963         child context isn't null in wndproc.
18964         * TabControl.cs: Don't set focus, this is muddling keyboard
18965         behavoir. Expand the tab rows when a window size increase will
18966         allow extra tabs to be seen. Don't allow tabs smaller than the
18967         width of a window to be scrolled out of view.
18968         * TreeNode.cs:
18969         * TreeView.cs: Use measure string to calculate a nodes width, the
18970         width is cached and only updated when the text or the font is
18971         changed. Don't check for expand/collapse clicks on the first level
18972         nodes if root lines are disabled.
18973         
18974 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
18975
18976         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
18977
18978 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
18979
18980         * DataGridBoolColumn.cs: fixes warning
18981
18982 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
18983
18984         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
18985         to match more to match more precisely the MS Net behavior
18986
18987 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
18988
18989         * Hwnd.cs: Added field to track if window is mapped
18990         * XplatUIX11.cs: 
18991           - Unmap windows if they become 0-size, re-map when 
18992             they are >0 again; fixes #76035
18993           - Re-set our error handler after initializing X11Desktop
18994             to override any error handlers Gtk or whatever was called
18995             may have set.
18996
18997 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
18998
18999         * CheckedListBox.cs: Removed unused vars
19000         * ListView.cs: Fixed signatures
19001         * RichTextBox.cs: Removed unused vars
19002         * TextBoxBase.cs: Removed unused vars
19003         * XplatUIWin32.cs: Removed unused vars
19004         * XplatUIX11.cs: Removed unused vars
19005         * XplatUI.cs: Updated version and date to latest published
19006
19007 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
19008
19009         * Cursor.cs: Added private .ctor to work around a bug in
19010           resourceset (Thanks to Geoff Norton for the help on this)
19011         * SplitterEventArgs.cs: Made fields accessible so we don't
19012           waste boatloads of objects and can reuse the same one
19013           in Splitter
19014         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
19015           any captions and borders when generating screen coordinates
19016         * Splitter.cs: Reimplemented control, now fully complete, uses
19017           rubberband drawing, supports and obeys all properties, has
19018           proper cursors
19019
19020 2005-10-13  Miguel de Icaza  <miguel@novell.com>
19021
19022         * Form.cs (Form): Setup default values for autoscale and
19023         autoscale_base_size;  Make these instance variables, not static
19024         variables. 
19025
19026         (OnLoad): on the first load, adjust the size of the form.
19027
19028 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
19029
19030         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
19031           width argument to DrawReversibleRectangle()
19032         * XplatUIWin32.cs, XplatUIX11.cs: 
19033           - Implemented width for DrawReversibleRectangle()
19034           - Added logic to DrawReversibleRectangle that recognizes a zero
19035             width or height and only draws a line in that situation
19036         
19037 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
19038
19039         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
19040         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
19041         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
19042           method (it uses our FosterParent window to get a graphics context)
19043
19044 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
19045
19046         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
19047           and SetWindowBackground methods
19048         * Control.cs:
19049           - Setting proper ControlStyles
19050           - We no longer call XplatUI.SetWindowBackground and XplatUI.
19051             EraseWindowBackground, instead we draw the window background
19052             ourselves in PaintControlBackground. This behaviour is
19053             required to match MS, where, when OnPaintBackground is not
19054             called, the background is not drawn.
19055           - Removed unneeded Refresh() in set_Text
19056         * Hwnd.cs: Dropped the ErasePending support. No longer needed
19057         * XplatUIX11.cs:
19058           - Created DeriveStyles method to translate from CreateParams to
19059             FormBorderStyle and TitleStyle, also handles BorderStyle (which
19060             matches FormBorderStyle enum values)
19061           - Consolidated SetHwndStyles and CalculateWindowRect border/title
19062             style calculations into single DeriveStyles method
19063           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
19064             from redrawing the whole window on any resize or expose.
19065           - Fixed CreateWindow usage of SetWindowValuemask. Before not
19066             all styles were applied to our whole/client window appropriately
19067           - Removed EraseWindowBackground() and SetWindowBackground() methods
19068           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
19069             no longer clear/redraw the background through X
19070           - Removed handling of erase_pending bit, we have no use for it (or
19071             so it seems)
19072         * XplatUIOSX.cs:
19073           - Removed generation and handling of WM_ERASEBKGND message
19074           - Removed EraseWindowBackground() and SetWindowBackground() methods
19075           - Removed handling of hwnd.ErasePending flag
19076         * XplatUIWin32.cs:
19077           - Removed EraseWindowBackground() and SetWindowBackground() methods
19078           - We no longer call EraseWindowBackground on PaintEventStart, we 
19079             ignore the fErase flag, erasing is handled in Control in the
19080             background handler
19081         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
19082           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
19083           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
19084           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
19085           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
19086           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
19087           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
19088
19089 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
19090
19091         * PropertyGrids.cs: Get sub properties
19092         * PropertyGridView.cs: Fix drawing code
19093
19094 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19095
19096         * ListBox.cs: Fixes 76383
19097
19098 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19099
19100         * DataGridTextBoxColumn.cs: Sets location and size before attachment
19101         * ThemeWin32Classic.cs: Fixes border drawing and calculations
19102         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
19103
19104
19105 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19106
19107         * ComboBox.cs: Fixes border drawing
19108
19109 2005-10-10  Miguel de Icaza  <miguel@novell.com>
19110
19111         * MimeIcon.cs: Ignore errors if the file can not be read.
19112
19113 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19114
19115         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
19116          - Fixed border calculations
19117          - Fixed horizontal scrolling in single column listboxes
19118          - Fixed drawing issues
19119
19120 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
19121
19122         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
19123           FormBorderStyle enum
19124         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
19125           code to determine FormBorderStyles from CreateParams
19126         * Form.cs:
19127           - Fixed bug where we'd set the wrong window styles if we were
19128             not creating an MDI window
19129           - Added call to XplatUI.SetBorderStyle when form borders are set
19130         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
19131         * Hwnd.cs:
19132           - Removed obsolete edge style
19133           - Switched from BorderStyle to FormBorderStyle
19134         
19135 2005-10-10  Jackson Harper  <jackson@ximian.com>
19136
19137         * Form.cs: Use the property to get the window handle instead of
19138         accessing it directly. Prevents a null reference exception.
19139
19140 2005-10-10  Jackson Harper  <jackson@ximian.com>
19141
19142         * TreeView.cs: Don't adjust the rect given to DrawString now that
19143         our libgdiplus draws correctly.
19144
19145 2005-10-08  Jackson Harper  <jackson@ximian.com>
19146
19147         * TreeView.cs: Don't try to find the clicked on node if there are
19148         no nodes in the tree.
19149
19150 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19151
19152         * RichTextBox.cs:
19153
19154           restore
19155
19156 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19157
19158         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
19159           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
19160           ErrorProvider.cs:
19161           Use ResPool for brushes and dispose System.Drawing objects that
19162           are not used anymore.
19163
19164 2005-10-07  Jackson Harper  <jackson@ximian.com>
19165
19166         * MdiChildContext.cs: Use the new borders instead of drawing them
19167         ourselves.
19168
19169 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19170
19171         * Calling UpdateBounds after changing the window's BorderStyle 
19172         since the style can change the ClientSize
19173
19174 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19175
19176         * Control.cs: Made PaintControlBackground virtual
19177         * Panel.cs: Overriding PaintControlBackground instead of using paint
19178           event; paint event method was interfering with 'real' users of the
19179           event.
19180
19181 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19182
19183         * ThemeWin32Classic.cs: remove border drawing since it is handled
19184         by the base control class now and was causing double border drawing.
19185
19186 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19187
19188         * Panel.cs: Redraw our background on paint. Not a pretty solution,
19189           but it does seem to match MS behaviour. This fixes bug #75324
19190
19191 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19192
19193         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
19194           somewhat hackish looking
19195
19196 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19197
19198         * TextBoxBase.cs:
19199           - We now accept Enter even if AcceptEnter is false, if the containing
19200             form does not have an AcceptButton configured (fixes bug #76355)
19201           - Calculations are now fixed to no longer use Width/Height, but
19202             ClientSize.Width/Height, since we now support borders (this was
19203             a result of fixing borders and therefore bug #76166)
19204           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
19205             true (fixes bug #76354)
19206         
19207 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19208
19209         * Control.cs: 
19210           - Defaulting BorderStyle and setting it in XplatUI when our window 
19211             is created
19212           - Added enum check to InternalBorderStyle setter
19213         * XplatUIX11.cs: 
19214           - Added drawing of window borders
19215           - Now properly calculates WM decorations offset for toplevel 
19216             windows (fixes bug #74763)
19217         * XplatUIWin32.cs: 
19218           - Implemented BorderStyles for windows (we're letting win32 draw 
19219             the border for us)
19220           - Fixed the signature for SetWindowLong
19221         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
19222           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
19223           setting borders
19224         * UpDownBase.cs: Remove drawing of borders, this is handled by
19225           the driver, outside the client area
19226         * ListView.cs: Removed bogus border calculations. The control should
19227           be oblivious to borders, since those are not part of the client
19228           area. 
19229         * X11DesktopColors.cs: Commented out (currently) unneeded variables
19230         * ThemeWin32Classic.cs: Removed border calculations from ListView 
19231           drawing code
19232
19233 2005-10-06  Jackson Harper  <jackson@ximian.com>
19234
19235         * MdiChildContext.cs: Clear out the old virtual position remove
19236         all the unneeded calls to CreateGraphics.
19237
19238 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19239
19240         * TextControl.cs: Use proper color for highlighted text; fixes #76350
19241
19242 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19243
19244         * Form.cs: 
19245           - Added loading and setting of our new default icon
19246           - Only set icon if window is already created
19247
19248 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19249
19250         * Label.cs:
19251           - Do not explicitly set the foreground and background colors, to
19252             allow inheriting from parents (fixes #76302)
19253           - Use Control's InternalBorderStyle property to deal with borders
19254
19255 2005-10-06  Jackson Harper  <jackson@ximian.com>
19256
19257         * MdiChildContext.cs: Use the new xplatui function to draw a
19258         reversible rect.
19259
19260 2005-10-06  Jackson Harper  <jackson@ximian.com>
19261
19262         * Form.cs: Add the parent before creating the child context cause
19263         we need the parent when setting up the child.
19264
19265 2005-10-06  Jackson Harper  <jackson@ximian.com>
19266
19267         * FolderBrowserDialog.cs: redo the tree population code so a
19268         second thread isn't used. Should be a lot faster and more stable
19269         now.
19270
19271 2005-10-05  Jackson Harper  <jackson@ximian.com>
19272
19273         * TreeView.cs: There are no expand/collapse boxes if the node has
19274         no children.
19275
19276 2005-10-05  Jackson Harper  <jackson@ximian.com>
19277
19278         * X11DesktopColors.cs: Get menu colours for the gtk theme.
19279
19280 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
19281
19282         * FileDialog.cs: Fix InitialDirectory
19283
19284 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19285
19286         * ComboBox.cs:
19287                 - Fixes changing between styles
19288                 - Fixes simple mode
19289                 - Fixes last item crashing when navigating with keyboard
19290
19291 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19292
19293         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
19294
19295 2005-10-05  Jackson Harper  <jackson@ximian.com>
19296
19297         * TreeView.cs: If updating the root node do a full refresh.
19298         * TreeNode.cs: The root node should be expanded by default. Also
19299         added a utility prop to tell if we are the root node.
19300         * TreeNodeCollection.cs: Only refresh if the node we are being
19301         added to is expanded. Also added a comment on a potential
19302         optimization.
19303         
19304 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
19305
19306         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
19307           in dispose method. Fixes #76330
19308
19309 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
19310
19311         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
19312
19313                 - Implements vertical and horizontal scrolling using XplatUI
19314                 - Fixes keyboard navagation
19315                 - Fixes EnsureVisible
19316                 - Drawing fixes
19317                 - Handles and draws focus properly
19318
19319
19320 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
19321
19322         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
19323           Create handle. NET_2_0: Destroy handle when value is null.
19324
19325 2005-10-03  Jackson Harper  <jackson@ximian.com>
19326
19327         * ScrollBar.cs: My last scrollbar patch was broken. This is a
19328         revert and a new patch to prevent the thumb from refreshing so
19329         much.
19330
19331 2005-10-02  Jackson Harper  <jackson@ximian.com>
19332
19333         * ScrollBar.cs: Don't update position if it hasn't actually
19334         changed. This occurs when you hold down the increment/decrement
19335         buttons and the thumb gets to the max/min.
19336
19337 2005-10-01  Jackson Harper  <jackson@ximian.com>
19338
19339         * Form.cs:
19340         * MdiChildContext.cs:
19341         * MdiClient.cs: Implement ActiveMdiChild in Form.
19342
19343 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
19344
19345         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
19346
19347 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
19348
19349         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
19350           be found
19351
19352 2005-09-30  Jackson Harper  <jackson@ximian.com>
19353
19354         * ListBox.cs: Don't do a full refresh unless some data has
19355         actually changed.
19356
19357 2005-09-30  Jackson Harper  <jackson@ximian.com>
19358
19359         * TreeView.cs: Make sure that the checkboxes size is factored in
19360         even when not visible.
19361
19362 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19363
19364         * FileDialog.cs: Fix Jordi's build break
19365
19366 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19367
19368         * FileDialog.cs: 
19369                 - Use standard the Windows colours for the combobox as espected
19370                 - Dispose objects that use resouces when no longer need them
19371
19372 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19373
19374         * X11DesktopColors.cs: Initial incomplete implementation
19375         * XplatUIX11.cs: Added call to initialize X11DesktopColors
19376
19377 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
19378
19379         * Theme.cs: 
19380           - Switched Theme color names to match the names defined in 
19381             System.Drawing.KnownColors. Life's hard enough, no need to make 
19382             it harder.
19383           - Added setters to all theme color properties so themes can set
19384             their color schemes. The setters also propagate the color changes
19385             to System.Drawing.KnownColors via reflection
19386         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
19387           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
19388           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
19389           use the new, more logical theme color names
19390         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
19391           post-NT colors
19392         * ThemeWin32Classic.cs:
19393           - Removed code to set the old classic Windows colors. Instead it
19394             now relies on the colors returned by System.Drawing.KnownColors
19395             which will be either modern static colors (Unix) or colors
19396             read from the user's configuration (Win32)
19397           - Updated to use the new, more logical theme color names
19398           - Switched DataGrid drawing code to use only Theme colors instead of
19399             a mix of System.Drawing.KnownColors and Theme colors
19400           - DrawFrameControl(): Removed code that fills the button area, the
19401             fill would overwrite any previous fill done by a control. This
19402             fixes bug #75338 
19403           - Added DrawReversibleRectangle() stub
19404         * ScrollableControl.cs: Set visible state to false when scrollbars
19405           are removed (pdn fix)
19406         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
19407           DrawReversibleRectangle() method to allow drawing primitive 
19408           'rubber bands'
19409         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
19410
19411 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19412
19413         * ImageList.cs: Add(Icon): Create handle.
19414
19415 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19416
19417         * ListView.cs:
19418         * ThemeWin32Classic.cs:
19419                 - Fixes detail mode
19420                 - Sets clippings
19421                 - Issues with drawing
19422
19423 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19424
19425         * ImageList.cs: Moved RecreateHandle back to ImageList as event
19426           source has to be the ImageList.
19427
19428 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19429
19430         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
19431
19432 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19433
19434         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
19435
19436 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19437
19438         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
19439
19440 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
19441         * GridItem.cs: Fixed TODOs
19442         * GridItemCollection.cs: Added ICollection interface
19443
19444 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19445
19446         * ImageList.cs: Resize icons when needed.
19447
19448 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
19449
19450         * ListViewItem.cs
19451                 - Fixes GetBounds and returns on screen rects
19452         * ListView.cs:
19453                 - Fixes vertical and horzintal scrolling of items
19454         * ThemeWin32Classic.cs:
19455                 - Fixes drawing
19456                 
19457 2005-09-29  Raja R Harinath  <harinath@gmail.com>
19458
19459         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
19460
19461 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
19462
19463         * ImageList.cs: Added comments about handle creation. Moved Handle,
19464           HandleCreated and OnRecreateHandle implementations to ImageCollection.
19465           Handle is created in Add methods.
19466
19467 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19468          
19469         * DataGridDrawingLogic.cs: 
19470                 - Takes rows into account on Colum calculations
19471                 - Returns the column when clickig
19472         * DataGrid.cs:
19473                 - Fixes default HitTestInfo values
19474                 - Fixes HitTestInfo.ToString
19475                 - Fixes ResetBackColor          
19476         
19477 2005-09-28  Jackson Harper  <jackson@ximian.com>
19478
19479         * MdiChildContext.cs: Obey rules for fixed sized windows (no
19480         sizing or cursor changes). Also added some temp code to draw the
19481         titlebars text (Makes dev a little easier).
19482
19483 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19484
19485         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
19486
19487 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19488          
19489         * ListBox.cs: Fixes bug 76253
19490
19491 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19492
19493         * ImageList.cs: Added comments about the current implementation. Added
19494           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
19495           Format32bppArgb to preserve transparency and can use Graphics.FromImage
19496           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
19497           with Bitmap.LockBits for better performance. Revised the whole file to
19498           match MS.NET behaviour and provide better performance. Non-public
19499           interface members are calling public members even when they throw
19500           NotSupportedException for better maintainability. Moved ColorDepth,
19501           ImageSize, ImageStream and TransparentColor implementations to
19502           ImageCollection for better performance as these properties are not used
19503           by ImageList.
19504         * ImageListStreamer.cs: Added a new internal constructor that takes an
19505           ImageList.ImageCollection and serializes Images based on
19506           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
19507           match ImageList property name.
19508
19509 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
19510
19511         * ListBox.cs: Fixes IndexFromPoint for last item
19512
19513 2005-09-27  Jackson Harper  <jackson@ximian.com>
19514
19515         * Form.cs: Set the position of new mdi children correctly.
19516
19517 2005-09-27  Jackson Harper  <jackson@ximian.com>
19518
19519         * MdiClient.cs: New mdi children need to be added to the back of
19520         the controls collection so the zorder is set correctly. Also add a
19521         count of all the child windows that have been created.
19522
19523 2005-09-27  Jackson Harper  <jackson@ximian.com>
19524
19525         * Form.cs (CreateParams): Setup MDI forms correctly.
19526
19527 2005-09-27  Jackson Harper  <jackson@ximian.com>
19528
19529         * MdiChildContext.cs:
19530         * MonthCalendar.cs:
19531         * UpDownBase.cs:
19532         * ListBox.cs:
19533         * ListView.cs:
19534         * TextBoxBase.cs:
19535         * TreeView.cs:
19536         * ScrollableControl.cs:
19537         * ComboBox.cs: Add implicit controls using the new implict control
19538         functionality in ControlCollection. Also try to block multiple
19539         control add in a suspend/resume layout to save some cycles.
19540         
19541 2005-09-27  Jackson Harper  <jackson@ximian.com>
19542
19543         * Control.cs: Add functionality to the controls collection to add
19544         'implicit controls' these are controls that are created by the
19545         containing control but should not be exposed to the user. Such as
19546         scrollbars in the treeview.
19547         * Form.cs: The list var of the ControlsCollection is no longer
19548         available because of the potential of implicit controls getting
19549         ignored by someone accessing the list directly.
19550
19551 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
19552
19553         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
19554           loose it's parent. (Fixed bug introduced in r49103 when we added
19555           setting the child parent to null on Remove)
19556
19557 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
19558
19559         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
19560         * Splitter.cs: Added missing attributes for BorderStyle property.
19561         * TextBoxBase.cs: Marked Calculate* methods internal.
19562         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
19563         MS.NET.
19564
19565 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
19566          
19567         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
19568
19569 2005-09-25  Jackson Harper  <jackson@ximian.com>
19570
19571         * TreeView.cs: Update the node bounds correctly regardless of
19572         whether the node is visible.
19573
19574 2005-09-25  Jackson Harper  <jackson@ximian.com>
19575
19576         * ImageList.cs: Don't dispose the image after it is added to the
19577         image list. Only reformat images that need to be resized.
19578
19579 2005-09-25  Jackson Harper  <jackson@ximian.com>
19580
19581         * ImageList.cs: Don't set the format when changing the image.
19582
19583 2005-09-25  Jackson Harper  <jackson@ximian.com>
19584
19585         * TreeView.cs: We can't just assume the node has a font. Use the
19586         treeviews font if no node font is available.
19587
19588 2005-09-25  Jackson Harper  <jackson@ximian.com>
19589
19590         * TreeView.cs: Allow the scrollbars to be reset with negative
19591         values.
19592         - Don't add scrollbars to negative sized windows.
19593
19594 2005-09-23  Jackson Harper  <jackson@ximian.com>
19595
19596         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
19597         old Mono.Posix. Also remove some stray code that shouldn't have
19598         been committed.
19599
19600 2005-09-23  Jackson Harper  <jackson@ximian.com>
19601
19602         * TreeView.cs: Attempt at proper sizing of the horizontal
19603         scrollbar. Also don't resize the scrollbars unless they are
19604         visible.
19605
19606 2005-09-23  Jackson Harper  <jackson@ximian.com>
19607
19608         * TreeView.cs: We don't need to expand the invalid area when the
19609         selection changes, as this is all drawn in the node's bounding
19610         box. The area needs to be expanded (previous typo was contracting
19611         it) when the focus rect moves.
19612
19613 2005-09-23  Jackson Harper  <jackson@ximian.com>
19614
19615         * TreeView.cs: Display the selection box under the correct
19616         circumstances. We were rendering white text with no selection box
19617         before.
19618
19619 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
19620
19621         * TextControl.cs(Split): Now updates selection start/end if it points 
19622           into a line that's being split. Fixes a FIXME and bug #75258
19623
19624 2005-09-23  Jackson Harper  <jackson@ximian.com>
19625
19626         * Binding.cs:
19627         * ListControl.cs: Don't use the path when retrieving binding
19628         managers from the binding context. My bat sense tells me that the
19629         path is only used on insertion.
19630
19631 2005-09-22  Jackson Harper  <jackson@ximian.com>
19632
19633         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
19634
19635 2005-09-22  Jackson Harper  <jackson@ximian.com>
19636
19637         * Splitter.cs: There are special cursors used for splitting.
19638         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
19639
19640 2005-09-22  Jackson Harper  <jackson@ximian.com>
19641
19642         * Splitter.cs: Change the cursor appropriately when the splitter
19643         is moused over, so the user actually knows there is a splitter
19644         there.
19645
19646 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19647
19648        * Label.cs : Fix ToString method to give same output as MS.NET
19649
19650 2005-09-22  Jackson Harper  <jackson@ximian.com>
19651
19652         * TreeView.cs: Create the scrollbars when the handle is created
19653         and add them right away, just make them invisble. Also account for
19654         the window being shrunk vertically to the point that the vert
19655         scrollbar needs to be added.
19656         - Remove some 0.5 adjustments to get around anti aliasing issues.
19657         
19658 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
19659          
19660         * MainMenu.cs: Fixes default value
19661         * MenuItem.cs: Fixes default value
19662
19663 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
19664
19665         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
19666
19667 2005-09-21  Jackson Harper  <jackson@ximian.com>
19668
19669         * Control.cs: Don't try to set the border style on the window if
19670         it hasn't been created. When the window is created the border
19671         style will be used.
19672
19673 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19674
19675         * Control.cs (Update): Don't call XplatUI if we don't have a
19676           window handle yet
19677
19678 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19679
19680         * ContainerControl.cs: Instead of throwing an exception, print
19681           a one-time warning about Validate not being implemented
19682         * XplatUIWin32.cs: Removed debug output
19683
19684 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19685
19686         * Control.cs: Only set XplatUI background if we expect the windowing
19687           system to handle the background. This stops controls that draw their
19688           own background from flickering
19689
19690         * XplatUIX11.cs: Support custom visuals and colormaps for window 
19691           creation. This allows, amongst other things, using MWF X11 windows 
19692           with OpenGL.
19693
19694 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19695
19696         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
19697           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
19698           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
19699           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
19700           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
19701           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
19702           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
19703           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
19704           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
19705           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
19706           GridColumnStylesCollection.cs, 
19707           IDataGridColumnStyleEditingNotificationService.cs,
19708           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
19709           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
19710           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
19711           TreeNodeCollection.cs, AmbientProperties.cs, 
19712           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
19713           DataObject.cs, ErrorProvider.cs, Splitter.cs,
19714           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
19715           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
19716           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
19717           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
19718           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
19719           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
19720           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
19721           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
19722           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
19723           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
19724           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
19725           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
19726           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
19727           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
19728           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
19729           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
19730           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
19731           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
19732           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
19733           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
19734           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
19735           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
19736           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
19737           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
19738           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
19739           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
19740           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
19741           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
19742           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
19743           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
19744           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
19745           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
19746           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
19747           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
19748           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
19749
19750 2005-09-21  Jackson Harper  <jackson@ximian.com>
19751
19752         * TreeNode.cs: Call Before/After Expand not Collapse when
19753         expanding.
19754
19755 2005-09-20  Jackson Harper  <jackson@ximian.com>
19756         
19757         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
19758
19759 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19760          
19761         * ListViewItem.cs:
19762                 - Fixes bug 76120
19763                 - Fixes proper storing of subitems
19764                 - Fixes not updated items
19765
19766 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
19767
19768         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
19769           things if our window handle isn't created yet. Also disabled 
19770           debug for TextBoxBase
19771
19772 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
19773
19774         * MenuAPI.cs: Remove filtering of events to allow menu usage
19775
19776 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19777
19778         * Cursor.cs: Allow null to be passed to Cursor.Current.
19779
19780 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
19781
19782         * ThemeWin32Classic.cs:
19783           - Change some private methods/fields to protected virtual so that 
19784             they can be accessed and overriden in derived classes
19785           - First refactoring of some methods. Derived themes now don't 
19786             need to duplicate the complete code from ThemeWin32Classic
19787         * ThemeNice.cs:
19788           - Added nice StatusBar
19789           - Derive from ThemeWin32Classic and not Theme
19790           - Removed duplicate ThemeWin32Classic code
19791
19792 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19793
19794         * Control.cs (ControlCollection.Add): If the value null is passed
19795         the control is ignored. 
19796
19797         Optimize this loop.
19798
19799 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
19800
19801         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
19802           PostQuitMessage state.
19803         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
19804
19805 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
19806
19807         * Application.cs: Our constructor will never get called, move 
19808           initialization to fields; fixes bug #75933
19809
19810 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19811
19812         * FileDialog.cs :
19813                 - Allow files to be selected properly using file name
19814                 combo box.
19815                 - Add ability to change diretory (absolute / relative)
19816                 using file name combo box.
19817
19818 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19819          
19820         * ListBox.cs: 
19821                 - Fixes Multicolumn listboxes item wrong calculations
19822                 - Allows to click when only one item is in the listbox
19823                 - Fixes crash when no items using keyboard navigation
19824
19825 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
19826
19827         * ComboBox.cs: Reverted almost everything from the latest patch which
19828           broke ComboBox
19829
19830 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
19831         
19832         * ToolTip.cs:
19833                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
19834         * ComboBox.cs:
19835                 - When DropDownStyle is Simple, it does not show scrollbar 
19836                 to the last item of the list.
19837                 - When DropDownStyle is Simple, it crashed when the list was 
19838                 scrolled down with the down cursor key.
19839                 - Fixed a bug that when DropDownStyle is DropDownList, the 
19840                 selected item was not shown.
19841                 - The position of the selected item was not preserved when 
19842                 the next dropdown happened.
19843         * ThemeWin32Classic.cs:
19844                 - Items were wrapped at the right end.
19845         * CheckedListBox.cs:
19846                 - Fixed Add method
19847         * ListBox.cs:
19848                 - Items should be fully shown.
19849                 - When resizing and vertical scrollbar disappeared, the item 
19850                 of index 0 should be on the top of the list.
19851                 - GetItemRectangle should consider the size of ver. scrollbar
19852         * StatusBar.cs:
19853                 - SizingGrip area should not be allocated when it is not 
19854                 displayed.
19855                 - Now it reflects MinWidth of the containing panel and 
19856                 fixed a crash that happens when its width becomes so small.
19857
19858 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19859
19860         * CheckedListBox.cs: Fixes bug 76028
19861         * ListBox.cs: Fixes bug 76028
19862
19863 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19864
19865         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
19866         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
19867
19868 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
19869
19870         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
19871
19872 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19873
19874         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
19875
19876 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19877
19878         * IRootGridEntry.cs: Added
19879         * PropertyGridCommands.cs: Added
19880         * PropertiesTab.cs: Added missing methods and property
19881         * PropertyGridView.cs: Made class internal
19882         * PropertyGridTextBox.cs: Made class internal
19883
19884 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19885
19886         * MimeIcon.cs: Try to check some other environment variables
19887           if "DESKTOP_SESSION" returns "default"
19888
19889 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19890
19891         * ThemeNice.cs: Corrected background colors (e.g. menus)
19892         * ColorDialog.cs: Use correct background colors for controls
19893
19894 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19895
19896         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
19897
19898 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
19899
19900         * RichTextBox.cs: Added initial implementation
19901         * lang.cs: Removed. Was accidentally checked in long time ago
19902         * TODO: Removed. Contents were obsolete
19903
19904 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19905                                                                                 
19906         * PropertiesTab.cs : Added
19907
19908 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19909                                                                                 
19910         * PropertyGrid.cs : Update
19911         * PropertyGridView.cs : Update
19912         * System.Windows.Forms.resx : Added images and strings
19913
19914 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
19915
19916         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
19917  
19918 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
19919
19920         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
19921           a busy loop right after the Ungrab the X11 display is otherwise 
19922           blocked
19923
19924 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
19925
19926         * ThemeWin32Classic.cs: Optimise the use of clipping
19927
19928 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
19929
19930         * DataGrid.cs: fixes recursion bug
19931
19932 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
19933
19934         * ThemeNice.cs: 
19935           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
19936           - Cleanup
19937
19938 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
19939
19940         * ThemeNice.cs: Draw nice ProgressBars
19941
19942 2005-09-01  Miguel de Icaza  <miguel@novell.com>
19943
19944         * VScrollBar.cs: Another buglet found by Aaron's tool. 
19945
19946         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
19947         bug finder.
19948
19949 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
19950
19951         * ThemeNice.cs:
19952           - Added nicer menu drawing
19953           - Updated DrawTab
19954           - some refactoring
19955
19956 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
19957
19958         * CreateParams.cs (ToString): Made output match MS
19959         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
19960             handle is already created (to avoid forcing window creation)
19961         * XplatUIX11.cs: Set window text to caption after creating window,
19962           in case Text was set before window was created
19963         * Form.cs: Use this.Text instead of a static string as caption
19964
19965 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19966
19967         * NotifyIcon.cs: Don't set the window to visible; this screws
19968           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
19969           OnPaint without a bitmap)
19970         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
19971           happen very often anyway; we could add the check to the WM_PAINT 
19972           event generation code
19973
19974 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
19975
19976         * NotifyIcon.cs: Fill the icon area with a background color, to 
19977           avoid 'residue' when transparent icons are drawn
19978         * XplatUIX11.cs:
19979           - Handle whole_window == client_window when destroying windows
19980           - SystrayAdd(): Set client_window to whole_window value to
19981             get mouse and other events passed to NotifyIcon
19982
19983 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19984
19985         * Form.cs: Set proper default for Opacity property
19986         * NotifyIcon.cs:
19987           - ShowSystray(): Don't bother creating telling the OS
19988             about the systray item if no icon is provided
19989           - Now handles WM_NCPAINT message to deal with whole/client window
19990             split
19991           - Create window as visible to not get caught by Expose optimization
19992         * Hwnd.cs: Removed debug message
19993         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
19994           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
19995             PaintEventStart/End to use new client argument
19996         * TextBoxBase.cs:
19997           - Commented out debug messages
19998           - Switched PaintEventStart/End to use new client argument
19999         * XplatUI.cs: Added client window bool to PaintEventStart()/
20000           PaintEventEnd() calls, to support drawing in non-client areas
20001         * XplatUIDriver.cs: 
20002           - Added client window bool to PaintEventStart()/PaintEventEnd() 
20003             calls, to support drawing in non-client areas
20004           - Added conditional compile to allow using MWF BeginInvoke 
20005             on MS runtime
20006         * XplatUIX11.cs:
20007           - Added some conditional debug output
20008           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
20009             whole/client window split
20010           - Implemented handling of client argument to PaintEventStart()/End()
20011         * Control.cs:
20012           - Throw exception if BeginInvoke() is called and the window handle
20013             or one of the window's parent handles is not created
20014           - Added conditional compile to allow using MWF BeginInvoke on
20015             MS runtime
20016           - get_Parent(): Only sets parent if handle is created. This avoids
20017             forcing window handle creation when parent is set.
20018           - Now fires Layout and Parent changed events in proper order
20019           - Switched to use Handle instead of window.Handle for Z-Order setting,
20020             the get_Parent() patch above causes us to possibly get null for 'window'
20021           - Implemented handling of client argument to PaintEventStart()/End()
20022           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
20023             default handling)
20024           - Now sends a Refresh() to all child windows when Refresh() is called
20025
20026 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
20027
20028         * Form.cs: Added (non-functional) Opacity property
20029         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
20030
20031 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
20032         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
20033           use export MONO_THEME=nice to activate it.
20034           Currently supported controls:
20035           - Button
20036           - ComboBox
20037           - ScrollBar
20038           - TabControl (TabAlignment.Top only, other will follow)
20039         * ThemeEngine.cs: Add theme nice
20040         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
20041           if enabled
20042
20043 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
20044
20045         * Splitter.cs: Resize docked control and its neighbor.
20046
20047 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20048         -- Making Windows with Menus layout correctly --
20049         * Form.cs : The first leg of the fix
20050                 Menu setter - adjust Client Size as needed to make space for the menu
20051                 SetClientSizeCore - doesn't call base version to be able to pass the 
20052                         menu handle to XplatUI.CalculateWindowRect
20053         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
20054         * XplatUIX11.cs: The critical second leg of the fix
20055                 GetWindowPos needs to use a recalculated client_rect
20056                 so that resizing the window doesn't break layout of child controls. 
20057                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
20058                 Lots of \t\n killed
20059
20060 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
20061
20062         * Label.cs: Now properly recalculates width and height on Font and Text
20063           changes if AutoSize is set
20064
20065 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20066         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
20067
20068 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
20069
20070         * ImageList.cs: Makes ToString method compatible with MS
20071
20072 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
20073
20074         * MenuAPI.cs: fixes bug 75716
20075
20076 2005-08-11 Umadevi S <sumadevi@novell.com>
20077         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
20078
20079 2005-08-11 Umadevi S <sumadevi@novell.com>
20080         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
20081
20082 2005-08-10  Umadevi S <sumadevi@novell.com>
20083         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
20084
20085 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
20086
20087         * Menu.cs: fixes bug 75700
20088         * MenuAPI.cs: fixes navigation issues
20089
20090 2005-08-09  Umadevi S <sumadevi@novell.com>
20091         * CheckedListBox.cs - simple fix for GetItemChecked.
20092
20093 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
20094
20095         * ComboBox.cs: Serveral fixes
20096         * ListBox.cs: Serveral fixes
20097
20098 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20099
20100         * ComboBox.cs: Fixes FindString methods and GetItemHeight
20101         * ListBox.cs: Fixes FindString methods
20102
20103 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20104
20105         * DataGrid.cs: fixes bugs exposed by new tests
20106
20107 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
20108
20109         * Mime.cs: Compile Mono assembly references only if compiling
20110           with Mono (Allows to build with VS.Net again)
20111
20112 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
20113
20114         * Control.cs (PaintControlBackground): Draw background image
20115         corrrectly.
20116         (CheckForIllegalCrossThreadCalls): Stubbed.
20117         
20118         * Form.cs (OnCreateControl): Center when should be centered.
20119         
20120         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
20121
20122 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
20123
20124         * Binding.cs: Binding to properties should be case unsensitive
20125
20126 2005-07-18 vlindos@nucleusys.com
20127
20128         * DataGrid.cs: fixes setmember order
20129
20130 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
20131
20132         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
20133         * FileDialog.cs: FileDialog is now resizable and uses the new
20134           MimeIconEngine
20135
20136 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
20137
20138         * DataGridTextBoxColumn.cs: default value
20139         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
20140         * GridTableStylesCollection.cs: fixes checking MappingName
20141         * DataGridDrawingLogic.cs: fixes drawing logic issues
20142         * DataSourceHelper.cs: rewritten to make compatible with more data sources
20143         * DataGrid.cs: fixes    
20144
20145 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
20146
20147         * MimeGenerated.cs: Use case sensitive comparer for
20148           NameValueCollections
20149
20150 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
20151
20152         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
20153         * ThemeWin32Classic.cs: bug fixes, code refactoring
20154         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
20155         * DataGrid.cs: bug fixes, code refactoring
20156         * DataGridTextBox.cs: bug fixes, code refactoring
20157         * DataGridColumnStyle.cs:  bug fixes, code refactoring
20158         * Theme.cs:  bug fixes, code refactoring
20159
20160 2005-07-01  Peter Bartok  <pbartok@novell.com> 
20161
20162         * TextControl.cs: Quick fix for the reported crash on ColorDialog
20163           and other text box usage
20164
20165 2005-07-01  Jackson Harper  <jackson@ximian.com>
20166
20167         * TabControl.cs: Make sure the bottom of the tab covers the pages
20168         border.
20169
20170 2005-06-30  Peter Bartok  <pbartok@novell.com> 
20171
20172         * Form.cs (ShowDialog): Assign owner of the dialog
20173         * TextBoxBase.cs: Always refresh caret size when deleting, caret
20174           might have been moved to a tag with different height
20175
20176 2005-06-30  Jackson Harper  <jackson@ximian.com>
20177
20178         * Form.cs: Don't create an infinite loop when setting focus
20179         * MenuItem.cs: Don't dirty the parents if we don't have any
20180
20181 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
20182
20183         * LibSupport.cs: Rename
20184
20185 2005-06-29  Peter Bartok  <pbartok@novell.com>
20186
20187         * TextBoxBase.cs: Re-align caret after deleting a character
20188         * TextControl.cs:
20189           - DeleteChars(): Ensure that tag covers the provided position
20190           - StreamLine(): Drop reference for dropped tag
20191
20192 2005-06-29  Peter Bartok  <pbartok@novell.com> 
20193
20194         * TextControl.cs: 
20195           - Selections now work properly, anchoring at the initial location
20196             and properly extending in either direction (SetSelectionToCaret(),
20197             SetSelectionStart() and SetSelectionEnd())
20198           - No longer redraws the whole control on selection change, now
20199             calculates delta between previous and new selection and only
20200             invalidates/redraws that area
20201           - Fixed FindPos() math off-by-one errors
20202           - Changed DeleteChars() to verify the provided tag covers the
20203             provided position, selections may have a tag that doesn't cover
20204             the position if the selection is at a tag border
20205           - Fixed off-by-one errors in DeleteChars()
20206           - Added missing streamlining check in DeleteChars() to remove
20207             zero-length tags
20208           - Implemented Invalidate() method, now properly calculates exposures
20209             between two given lines/positions
20210           - Implemented SetSelection()
20211           - Obsoleted and removed FixupSelection()
20212           - Improved RecalculateDocument() logic, removing code duplication
20213
20214 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20215
20216         * LibSupport.cs: changes to match different input/output arguments.
20217
20218 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20219
20220         * LibSupport.cs: added libsupport.so init routine.
20221
20222 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
20223         
20224         * ControlBindingsCollection.cs
20225                 - Throws an exception on null datasource when adding
20226                 - Checks for duplicated bindings when adding
20227
20228 2005-06-28  Jackson Harper  <jackson@ximian.com>
20229
20230         * TreeView.cs (OnKeyDown): Support left and right properly
20231         (navigates as well as expanding and collapsing.
20232         - Add support for Multiply, this expands all the selected nodes
20233         children.
20234         - Fix some tabbing.
20235
20236 2005-06-28  Jackson Harper  <jackson@ximian.com>
20237
20238         * TreeView.cs: Implement keyboard navigation, currently supports,
20239         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
20240         support for toggling checkboxes with the space bar.
20241
20242 2005-06-28  Jackson Harper  <jackson@ximian.com>
20243
20244         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
20245         tree.
20246
20247 2005-06-28  Jackson Harper  <jackson@ximian.com>
20248
20249         * TreeView.cs: Add missing event.
20250
20251 2005-06-27  Peter Bartok  <pbartok@novell.com> 
20252
20253         * TextControl.cs:
20254           - Made line ending size configurable (now allows for counting 
20255             lineendings as \n or \r\n)
20256           - Added margin to viewport to keep caret visible on right side
20257           - Fixed translation routines for line/pos to documentpos to consider
20258             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
20259           - Fixed some line-endings to be unix style
20260           - Fixed Document.FormatText to perform it's calculations 1-based
20261           - Added descriptions for a few methods that might otherwise get 
20262             used wrong
20263           - Added NOTE section with some basic conventions to remember at 
20264             the top of the file
20265           - Major fixup for RichTextBox selection drawing:
20266             * Fixed crashes when multiple tags on a single line were selected
20267             * fixed selection box drawing not overlaying text
20268             * fixed bogus offset calculation for tags not starting at index 1
20269             * Switched behaviour from using multiple Substrings of a 
20270               StringBuilder.ToString() to using multiple 
20271               StringBuilder.ToString(start, length) statements, hoping this is
20272               faster (kept original version commented out in the code, in case
20273               original version was faster)
20274         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
20275           alignment != Left
20276         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
20277           call it as well
20278
20279 2005-06-27  Jackson Harper  <jackson@ximian.com>
20280
20281         * TabControl.cs: Move to the left and right with the arrow
20282         keys. These keys don't cycle beyond first and last like
20283         tab. Refresh all the tabs when scrolling them to the left or
20284         right.
20285
20286 2005-06-27  Jackson Harper  <jackson@ximian.com>
20287
20288         * TabControl.cs:
20289           - ToString: Added method
20290           - CreateParams: Remove TODO and comment
20291           - OnKeyDown: Cycle through bounds properly.
20292           - SelectedIndex: Scroll to the right or left if we need to
20293           display the newly selected tab.
20294
20295 2005-06-23  Jackson Harper  <jackson@ximian.com>
20296
20297         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
20298         set.
20299
20300 2005-06-23  Jackson Harper  <jackson@ximian.com>
20301
20302         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
20303         CTRL-SHIFT-TAB, and HOME, END are there any others?
20304
20305 2005-06-23  Jackson Harper  <jackson@ximian.com>
20306
20307         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
20308
20309 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20310         
20311         * DataGridTextBoxColumn.cs: fixes and enhancements
20312         * ThemeWin32Classic.cs: fixes and enhancements
20313         * DataGridBoolColumn.cs:  fixes and enhancements
20314         * DataGridDrawingLogic.cs:  fixes and enhancements
20315         * CurrencyManager.cs: fixes and enhancements
20316         * DataGrid.cs: fixes and enhancements
20317         * DataGridColumnStyle.cs:  fixes and enhancements
20318
20319 2005-06-22  Jackson Harper  <jackson@ximian.com>
20320
20321         * TabControl.cs: Add some missing methods that just call into the
20322         base. Make the TabPageCollection's IList interface behave in the
20323         same manner as the MS implementation.
20324
20325 2005-06-22  Peter Bartok  <pbartok@novell.com> 
20326
20327         * TextControl.cs: Added sanity check
20328         * TextBoxBase.cs: 
20329           - Fixed wrapping behaviour, don't set wrap on single line controls
20330             (this fixes the breakage of colordialog introduced in an earlier
20331              checkin)
20332           - Added rudimentary support for autoscrolling right-aligned controls
20333             (still needs fixing, also, center alignment scroll is missing)
20334
20335 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20336         
20337         * ScrollBar.cs: Fixes thumbpos on Maximum values
20338
20339 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
20340         
20341         * PropertyGridView.cs: Pass context information to UITypeEditors 
20342
20343 2005-06-21  Peter Bartok  <pbartok@novell.com> 
20344
20345         * TextBoxBase.cs:
20346           - Now calling PositionCaret with absolute space coordinates
20347           - Enabled vertical scrolling
20348           - Better tracking of scrollbar changes, tied into WidthChange
20349             event
20350           - Improved cursor tracking
20351           - Removed debug output
20352         * TextControl.cs:
20353           - PositionCaret coordinates are now works in absolute space, not 
20354             the canvas
20355           - Improved tracking of document size
20356           - Added events for width and height changes
20357
20358 2005-06-21  Peter Bartok  <pbartok@novell.com>
20359
20360         * Form.cs: Set focus to active control when form is activated
20361         * TextControl.cs: 
20362           - Added word-wrap functionality to RecalculateLine() 
20363           - Added some short function descriptions for VS.Net to aid in
20364             writing dependent controls
20365           - Added Caret property, returning the current coords of the caret
20366           - Added ViewPortWidth and ViewPortHeight properties
20367           - Added Wrap property
20368           - Added CaretMoved event
20369           - Removed some old debug code
20370           - Split() can now create soft splits
20371           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
20372           - Added method to format existing text
20373           - Fixed size/alignment calculations to use viewport
20374           - RecalculateDocument now can handle changing line-numbers while
20375             calculating lines
20376
20377         * TextBox.cs:
20378           - Added some wrap logic, we don't wrap if alignment is not left
20379           - Added casts for scrollbar var, base class switched types to
20380             also support RichTextBoxA
20381           - Implemented handling of scrollbar visibility flags
20382
20383         * TextBoxBase.cs:
20384           - Switched scrollbars type to RichTextBoxScrollBars to support
20385             RichTextBox
20386           - Added tracking of canvas width/height
20387           - Switched scrollbars to be not selectable (to keep focus on text)
20388           - Added central CalculateDocument() method to handle all redraw
20389             requirements
20390           - Added ReadOnly support
20391           - Added WordWrap support
20392           - Fixed handling of Enter key (we now treat it as a DialogKey)
20393           - Fixed caret positioning when h or v scroll is not zero
20394           - Fixed placing/generation of vertical scrollbar
20395           - Added CalculateScrollBars() method to allow updating scrollbar
20396             limits and visibility
20397           - Fixed handling of horizontal scroll
20398           - Added handling of vertical scroll
20399           - Implemented auto-'jump' when caret moves to close to a left or
20400             right border and there is text to be scrolled into view (currently
20401             there's the potential for a stack overflow, until a bug in
20402             scrollbar is fixed)
20403
20404 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
20405         
20406         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
20407
20408 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
20409
20410         * Mime.cs:
20411         - added inodes.
20412         - return application/x-zerosize for files with size zero
20413           (if no extension pattern matches).
20414         - check matches collection for strings too.
20415         - return only the first mime type if the name value
20416           collection has more than one mime type.
20417
20418 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
20419         
20420         * PropertyGrid.cs: Cleaned up some TODOs
20421         * PropertyGridView.cs: Added support for UITypeEditors
20422
20423 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20424         
20425         * DataGrid.cs: clears cached value
20426
20427 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20428
20429         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
20430         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
20431         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
20432         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
20433         
20434 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
20435
20436         * ThemeWin32Classic.cs: fixes colour
20437
20438 2005-06-15  Peter Bartok  <pbartok@novell.com>
20439
20440         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
20441         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
20442         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
20443         * Control.cs: Added some MWFCategory and MWFDescription attributes
20444         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
20445
20446 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
20447
20448         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
20449         usage
20450
20451 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
20452
20453         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
20454         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
20455         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
20456         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
20457         * DataGrid.cs: default datagrid settings for Default Styles, fixes
20458         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
20459
20460 2005-06-13  Jackson Harper  <jackson@ximian.com>
20461
20462         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
20463         isn't printed when the user enables dropping. (X11 does accept
20464         drops).
20465         
20466 2005-06-13  Jackson Harper  <jackson@ximian.com>
20467
20468         * TreeView.cs: Remove some TODOS.
20469
20470 2005-06-13  Jackson Harper  <jackson@ximian.com>
20471
20472         * Form.cs: Hook into the mdi framework.
20473         * MdiClient.cs: Use the base control collections add method so
20474         parents get setup correctly. Set the default back colour and dock
20475         style.
20476         * MdiChildContext.cs: New class, this bad actor handles an
20477         instance of an MDI window. Right now there is only basic
20478         support. You can drag, close, and resize windows. Minimize and
20479         Maximize are partially implemented.
20480
20481 2005-06-13  Jackson Harper  <jackson@ximian.com>
20482
20483         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
20484         freaky when both vals are negative. NOTE: There are probably other
20485         places in XplatUIX11 that this needs to be done.
20486
20487 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
20488
20489         * DataGrid.cs: implement missing methods, move KeyboardNavigation
20490         * DataGridColumnStyle.cs: fixes signature
20491
20492 2005-06-12  Jackson Harper  <jackson@ximian.com>
20493
20494         * XplatUIX11.cs: Use sizing cursors similar to the ones on
20495         windows.
20496
20497 2005-06-11  Jackson Harper  <jackson@ximian.com>
20498
20499         * StatusBarPanel.cs: Signature cleanups. Implement
20500         BeginInit/EndInit.
20501
20502 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
20503
20504         * DataGridTextBoxColumn.cs: Honors aligment
20505         * GridColumnStylesCollection.cs: Contains is case unsensitive
20506         * GridTableStylesCollection.cs: several fixes
20507         * DataGridTableStyle.cs: default column creation
20508         * DataGridDrawingLogic.cs: fixes
20509         * CurrencyManager.cs: ListName property
20510         * DataGrid.cs: multiple styles support
20511         * DataGridColumnStyle.cs: fixes
20512         
20513
20514 2005-06-10  Peter Bartok  <pbartok@novell.com>
20515
20516         * Control.cs(Select): Moved SetFocus call to avoid potential
20517           loops if controls change the active control when getting focus
20518         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
20519           the up/down buttons
20520
20521 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
20522
20523         * ImageListConverter.cs: Implemented
20524
20525 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20526
20527         * MonthCalendar.cs: Wired in NumericUpDown control for year
20528
20529 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20530
20531         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
20532           DoubleClick events, since they are not meant to be fired.
20533
20534 2005-06-09  Peter Bartok  <pbartok@novell.com>
20535
20536         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
20537           Jonathan's standalone controls into MWF, implemented missing
20538           events, attributes and methods; added xxxAccessible classes
20539         * AccessibleObject.cs: Made fields internal so other classes
20540           can change them if needed
20541
20542 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
20543
20544         * UpDownBase.cs: Complete implementation
20545         * NumericUpDown.cs: Complete implementation
20546         * DomainUpDown.cs: Complete implementation
20547
20548 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
20549
20550         * DataGridTextBoxColumn.cs: drawing fixes
20551         * DataGridCell.cs: fixes ToString method to match MSNet
20552         * DataGridTableStyle.cs: fixes
20553         * DataGridBoolColumn.cs: fixes, drawing
20554         * DataGridDrawingLogic.cs: fixes, new methods
20555         * DataGridTextBox.cs: Keyboard and fixes
20556         * DataGrid.cs:
20557                 - Keyboard navigation
20558                 - Scrolling fixes
20559                 - Row selection (single, multiple, deletion, etc)
20560                 - Lots of fixes
20561         
20562 2005-06-07  Jackson Harper  <jackson@ximian.com>
20563
20564         * ThemeWin32Classic.cs: Clear the background area when drawing
20565         buttons.
20566
20567 2005-06-06  Peter Bartok  <pbartok@novell.com>
20568
20569         * ImageListStreamer.cs: Fixed signature for GetData
20570         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
20571         * ComboBox.cs:
20572           - Added missing ChildAccessibleObject class
20573           - Added missing OnXXXFocus overrides, switched to using those
20574             instead of the event handler
20575         * Control.cs:
20576           - Added Parent property for ControlAccessibleObject
20577           - Fixed signatures
20578           - Fixed attributes
20579           - Added ResetBindings()
20580         * ListBindingConverter.cs: Implemented some methods
20581         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
20582         * ImageList.cs: Implemented basic handle scheme, removed TODOs
20583         * ContainerControl.cs: Fixed signature, now subscribing to the
20584           ControlRemoved event instead of overriding the handler, LAMESPEC
20585         * CurrencyManager.cs: Added missing attribute
20586         * MonthCalendar.cs: Added missing properties
20587
20588 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20589
20590         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
20591         
20592 2005-06-06  Gaurav Vaish and Ankit Jain
20593
20594         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
20595         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
20596         
20597 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20598
20599         * Control.cs: fixes CreateParams Width / Height.
20600
20601 2005-06-05  Peter Bartok  <pbartok@novell.com>
20602
20603         * Win32DnD.cs: Removed compilation warnings
20604
20605 2005-06-05  Peter Bartok  <pbartok@novell.com>
20606
20607         * Control.cs (CreateParams): Since we don't know if one of the
20608           properties we use is overridden, lets make sure if we fail accessing
20609           we continue with a backup plan
20610
20611 2005-06-05  Peter Bartok  <pbartok@novell.com>
20612
20613         * Win32DnD.cs:
20614           - Removed debug output
20615           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
20616             struct
20617           - Plugged resource leak
20618         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
20619           MS size
20620
20621 2005-06-05  Peter Bartok  <pbartok@novell.com>
20622
20623         * XplatUIWin32.cs: Removed DnD code
20624         * Win32DnD.cs: Implemented drop source and drop target functionality
20625
20626 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20627
20628         * UpDownBase.cs: remove duplicate addition of event, enable some code
20629         that was commented out.
20630         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
20631         Validate input when a key is pressed. It works fine now for every
20632         combination of Hexadecimal. Only missing some drawing love when sharing
20633         space with other controls.
20634
20635 2005-06-04  Peter Bartok  <pbartok@novell.com>
20636
20637         * Control.cs:
20638           - We need to pass a window for DragDrop, so enable callback events
20639           - Added DnD callback events when being a DragSource
20640         * XplatUI.cs (StartDrag): Added window handle argument
20641         * XplatUIDriver.cs (StartDrag): Added window handle argument
20642         * QueryContinueDragEventArgs: Made fields internally accessible so
20643           drivers can set them
20644         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
20645           can set them
20646
20647 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
20648
20649         * DataGridTextBoxColumn.cs: column text editing
20650         * DataGridTableStyle.cs: Respect columns styles created by the user
20651         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
20652         * DataGridBoolColumn.cs: bool column editing
20653         * DataGrid.cs: fixes to scrolling, properties, etc
20654         * DataGridTextBox.cs: handle keyboard
20655         * DataGridColumnStyle.cs: fixes
20656
20657 2005-06-02  Jackson Harper  <jackson@ximian.com>
20658
20659         * ImageListStreamer.cs: Somewhat broken implementation of
20660         GetObjectData. The RLE needs some work to match MS properly.
20661
20662 2005-06-02  Jackson Harper  <jackson@ximian.com>
20663
20664         * X11Dnd.cs: Attempting to keep at least one file in MWF
20665         monostyled.
20666
20667 2005-06-02  Peter Bartok  <pbartok@novell.com>
20668
20669         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
20670           that way
20671
20672 2005-06-02  Peter Bartok  <pbartok@novell.com>
20673
20674         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
20675         * XplatUI.cs: Added DoDragDrop() method
20676         * XplatUIDriver.cs: Added DoDragDrop() method
20677
20678 2005-06-02  Jackson Harper  <jackson@ximian.com>
20679
20680         * Splitter.cs: Implement BorderStyle.
20681
20682 2005-06-02  Jackson Harper  <jackson@ximian.com>
20683
20684         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
20685         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
20686         X11 using XDND.
20687
20688 2005-06-02  Peter Bartok  <pbartok@novell.com>
20689
20690         * DataObject.cs:
20691           - Added Data setter
20692           - Fixed broken insertion code for SetData, now also
20693             overwrites any existing entry of the same format name
20694         * Hwnd.cs: Added list of pointers that automatically gets
20695           freed when the window is disposed
20696         * XplatUI.cs: Call driver initialization method when loading
20697           a driver
20698         * Control.cs:
20699           - OnDragLeave takes EventArgs, not DragEventArgs
20700           - Added setting of WS_EX_ACCEPTFILES style when dropping is
20701             supported
20702           - Forces style update when drop state changes
20703         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
20704           not perfect since we cannot (yet) call the IDataObject.GetData()
20705           method, we keep getting 0x80004005 error, dunno why)
20706
20707 2005-06-02  Peter Bartok  <pbartok@novell.com>
20708
20709         * DragEventArgs.cs: Make fields internal so we can cache the
20710           object and re-set the fields from XplatUI
20711
20712 2005-06-02  Jackson Harper  <jackson@ximian.com>
20713
20714         * Control.cs: Add some internal methods so the DnD subsystem can
20715         raise DnD events. Also call into the driver when AllowDrop is set.
20716         * XplatUI.cs:
20717         * XplatUIDriver.cs: New method for setting whether or not a window
20718         is allowed to accept drag and drop messages.
20719                 
20720 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
20721         
20722         * ScrollBar.cs: Make sure that values sent in Scroll events
20723         are always between Maximum and Minimum.
20724
20725 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
20726
20727         * Menu.cs: Call MenuChanged when menuitem visibility has been
20728         changed.
20729         * MenuItem.cs: Rebuild menu when item is (not) visible.
20730         * MainMenu.cs: MainMenu has special MenuChanged.
20731         * Theme.cs: Caption and FrameBorderSize are not fixed.
20732         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
20733         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
20734         * XplatUIX11.cs,
20735         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
20736         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
20737
20738 2005-05-30  Jackson Harper  <jackson@ximian.com>
20739
20740         * DataFormat.cs: We can't statically initialize this stuff because
20741         it calls into the xplatui and could create a loop. So we lazy init
20742         it.
20743
20744 2005-05-28  Jackson Harper  <jackson@ximian.com>
20745
20746         * Control.cs: Proper implementation of Product(Name/Version).
20747
20748 2005-05-27  Jackson Harper  <jackson@ximian.com>
20749
20750         * DataObject.cs: Dont crash if no data is found.
20751
20752 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
20753         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
20754                 as per status page, guessing it should be set to true
20755
20756 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
20757
20758         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
20759         * DataGridTableStyle.cs: set proper formatting text, def header text
20760         * ThemeWin32Classic.cs: new themable paramaters
20761         * DataGridBoolColumn.cs: paint check box, get data, fixes
20762         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
20763         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
20764         * DataGridColumnStyle.cs: fixes
20765         * Theme.cs: new themable paramaters
20766                 
20767 2005-05-26  Peter Bartok  <pbartok@novell.com>
20768
20769         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
20770
20771 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20772         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
20773
20774 2005-05-24  Peter Bartok  <pbartok@novell.com>
20775
20776         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
20777           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
20778           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
20779           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
20780           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
20781           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
20782           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
20783           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
20784           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
20785           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
20786           missing attributes, etc
20787         * DataGridPreferredColumnWidthTypeConverter.cs: Added
20788
20789 2005-05-24  Peter Bartok  <pbartok@novell.com>
20790
20791         * Help.cs: Added, implemented trivial functions, throws up MessageBox
20792           when user tries to get help
20793         * DataObject.cs, DataFormats.cs, LinkArea.cs,
20794           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
20795           to suppress warnings
20796         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
20797           avoid unreachable code warning
20798
20799 2005-05-20  Peter Bartok  <pbartok@novell.com>
20800
20801         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
20802
20803 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20804
20805         * DataGridTextBoxColumn.cs: Basic painting methods
20806         * DataGridTableStyle.cs: Set table style in the column
20807         * ThemeWin32Classic.cs: Use Theme for colors
20808         * DataGridDrawingLogic.cs: Implement more drawing
20809         * DataGrid.cs: drawing, theming, enhacements, fixes
20810         * DataGridColumnStyle.cs: fixes, drawing
20811         * Theme.cs: theming for Datagrid
20812
20813 2005-05-20  Peter Bartok  <pbartok@novell.com>
20814
20815         * Cursor.cs: Implemented GetObjectData() method
20816
20817 2005-05-20  Peter Bartok  <pbartok@novell.com>
20818
20819         * Cursors.cs: Added setting of cursor name
20820         * Cursor.cs:
20821           - Implemented constructors
20822           - Implemented Draw and DrawStretched
20823           - Implemented Current property
20824           - Implemented == and != operators
20825           - Implemented Dispose()
20826           - Implemented ToString
20827           - Added missing attributes
20828         * XplatUIX11.cs:
20829           - Added missing reset for OverrideCursor when DoEvents is called
20830           - Fixed creation of cursor, logic was wrong
20831         * XplatUIWin32.cs:
20832           - Added missing reset for OverrideCursor when DoEvents is called
20833           - Fixed creation of cursor, bit arrays were swapped
20834         * Clipboard.cs: Removed obsolete MonoTODO attribute
20835
20836 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20837
20838         * ComboBox.cs: fixes OnSelectedItemChanged
20839         * ControlBindingsCollection.cs: fixes item range check
20840
20841 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20842
20843         * UpDownBase.cs:
20844                 - Calc preferred height properly
20845                 - Implement missing properties
20846                 
20847         * NumericUpDown.cs: Implement missing events
20848
20849 2005-05-19  Jackson Harper  <jackson@ximian.com>
20850
20851         * TabControl.cs: New method that resizes the tab pages before
20852         redrawing them. This as needed as the control is double buffered
20853         and sizing will not be recalculated unless ResizeTabPages is
20854         called.
20855         * TabPage.cs: Set base.Text instead of Text in the constructor so
20856         that UpdateOwner does not get called. Use the new Redraw method of
20857         TabControl instead of Refresh so the sizing is recalculated.
20858         * ThemeWin32Classic.cs: Draw the text for button tabs.
20859
20860 2005-05-19  Jackson Harper  <jackson@ximian.com>
20861
20862         * Control.cs: Paint control background images. Fix typo where
20863         PaintControlBackground was not getting called correctly.
20864
20865 2005-05-19  Peter Bartok  <pbartok@novell.com>
20866
20867         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
20868           I can investigate, apparently I broke FileDialog
20869
20870 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
20871
20872         * AxHost.cs: Some simple properties.
20873         * Control.cs: window must be accessible after ctor.
20874         * Form.cs: Added TransparencyKey property.
20875         * TextBoxBase.cs: Implemented Clear. Text property can be null.
20876         * XplatUIWin32.cs: SetBorderStyle implemented.
20877
20878 2005-05-18  Peter Bartok  <pbartok@novell.com>
20879
20880         * DataObject.cs: Entries are not global but particular to the
20881           DataObject, now it behaves that way
20882         * XplatUIWin32.cs: Implemented Clipboard methods
20883         * Clipboard.cs: Implemented
20884         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
20885         * XplatUIOSX.cs: Updated to final clipboard prototypes
20886         * XplatUIX11.cs: Implemented Clipboard methods
20887         * XplatUIDriver.cs: Updated to final clipboard prototypes
20888         * XplatUIStructs.cs:
20889           - Added BITMAPINFOHEADER struct
20890           - Added ClipboardFormats enum
20891         * X11Structs.cs:
20892           - Added ClipboardStruct
20893           - Added Atom enum items for clipboard types
20894           - Fixed atom types for Selection event structures
20895         * DataFormats.cs:
20896           - Added internal properties and methods for drivers to enumerate
20897             all known formats
20898           - Switched initialization method to allow drivers to assign their
20899             own IDs even for the MS predefined clipboard IDs
20900         * XplatUI.cs: Updated to final clipboard interface
20901
20902 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20903         * PropertyGridView.cs: Fixed compiler warnings.
20904
20905 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20906         * PropertyGrid.cs: Added some event calls
20907         * PropertyGridView.cs: Change drawing code to use double buffering
20908         * PropertyGridTextBox.cs: Changed Text property name
20909         * GridItem.cs: Added Bounds property.
20910         * GridEntry.cs: Added Bounds property.
20911
20912 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
20913
20914         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
20915         since GetType() may not return the correct type if the object is
20916         a remoting proxy.
20917
20918 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
20919
20920         * TreeNodeCollection.cs: fixes get/set item ranges
20921         
20922 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20923
20924         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
20925                 
20926 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20927
20928         * ComboBox.cs: Fix item range comparation
20929         * ListView.cs: Fix item range comparation
20930
20931 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
20932
20933         * FontDialog.cs:
20934           - Clear example panel when OnPaint is called
20935           - Better solution for displaying the example panel text
20936           - Select default indexes in the ListBoxes
20937
20938 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20939
20940         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
20941
20942 2005-05-11  Peter Bartok  <pbartok@novell.com>
20943
20944         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
20945         * SelectionRangeConverter.cs: Implemented
20946         * PropertyGrid.cs: Fixed attribute value
20947         * Control.cs:
20948           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
20949           - Added Sebastien Pouliot's CAS Stack Propagation fixes
20950         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
20951           that's common to all drivers. First methods to go there are
20952           Sebastien Pouliot's CAS Stack Propagation helper methods
20953         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
20954           Sebastien Pouliot for CAS Stack Propagation
20955
20956 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20957
20958         * OSXStructs.cs:
20959           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
20960
20961 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
20962
20963         * DataGridTextBoxColumn.cs: fixed some members
20964         * GridColumnStylesCollection.cs: indexed column is case insensitive
20965         * DataGridTableStyle.cs: fixes
20966         * ThemeWin32Classic.cs: add new theme parameter
20967         * Theme.cs: add new theme parameter
20968         * DataGridDrawingLogic.cs: Datagrid's drawing logic
20969         * DataGrid.cs: fixes, new internal properties, etc.
20970         * DataGridColumnStyle.cs: allows to set grid value
20971         *
20972
20973 2005-05-10  Peter Bartok  <pbartok@novell.com>
20974
20975         * AccessibleObject.cs:
20976           - Removed MonoTODO attribute on help, method is correct
20977           - Fixed Bounds property
20978         * AxHost.cs: Moved MonoTODO
20979         * ButtonBase.cs: Now setting AccessibleObject properties
20980         * RadioButton.cs: Setting proper AccessibleObject role
20981         * CheckBox.cs: Setting proper AccessibleObject role
20982         * ControlBindingsCollection.cs: Added properties, methods and attributes
20983         * DataFormats.cs: Fixed awkward internal API, and changed to enable
20984           userdefined DataFormats.Format items as well
20985         * ListControl.cs: Removed data_member from the public eye
20986         * OpenFileDialog.cs:
20987           - Made class sealed
20988           - Added missing attributes
20989         * SaveFileDialog.cs: Added missing attributes
20990         * ImageListStreamer.cs: Fixed code that caused warnings
20991         * LinkLabel.cs: Removed unreachable code
20992         * TreeView.cs: Fixed code that caused warnings
20993         * PropertyGridView.cs: Fixed code that caused warnings
20994         * GridColumnStylesCollection.cs: Added missing attributes
20995         * GridTableStylesCollection: Added missing attribute
20996         * PropertyManager: Added .ctor
20997         * SecurityIDType: Added
20998         * DataObject.cs: Implemented class
20999         * LinkArea.cs: Added missing attribute
21000
21001 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
21002
21003         * RadioButton.cs: call base method to allow to fire OnClick event
21004         * UpDownBase.cs: OnMouseUp call base method
21005         * CheckedListBox.cs: call base method before returning
21006         * TrackBar.cs: call base method before returning
21007         
21008
21009 2005-05-10  Peter Bartok  <pbartok@novell.com>
21010
21011         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
21012           for messages
21013
21014 2005-05-10  Peter Bartok  <pbartok@novell.com>
21015
21016         * DataFormats.cs: Implemented
21017         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
21018           XplatUIX11.cs: Added Clipboard APIs
21019         * XplatUIWin32.cs: Implemented Clipboard APIs
21020         * FolderBrowserDialog.cs: Added missing event, attributes
21021
21022 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
21023
21024         * CheckBox.cs: call base method to allow to fire OnClick event
21025
21026 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
21027
21028         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
21029
21030 2005-05-06  Peter Bartok  <pbartok@novell.com>
21031
21032         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
21033         * Screen.cs: Implemented
21034         * HelpNavigator.cs: Added
21035         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
21036           property
21037         * HelpProvider.cs: Implemented all we can do until we have a CHM
21038           help library (which means that "What's This" does work now)
21039
21040 2005-05-06  Jackson Harper  <jackson@ximian.com>
21041
21042         * XplatUIX11.cs: Fix waking up the main loop.
21043                 
21044 2005-05-05  Peter Bartok  <pbartok@novell.com>
21045
21046         * XplatUI.cs: Updated revision
21047         * Form.cs: Removed enless loop
21048         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
21049         * Label.cs (OnPaint): Added call to base.OnPaint()
21050         * ToolTip.cs: Made ToolTipWindow reusable for other controls
21051         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
21052         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
21053         * AxHost.cs: Added
21054         * ButtonBase.cs: Moved base.OnPaint() call to end of method
21055         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
21056           to ToolTip.ToolTipWindow for drawing and size methods; this allows
21057           reuse of ToolTipWindow by other controls
21058         * SizeGrip.cs: Moved base.OnPaint() call to end of method
21059         * XplatUIX11.cs: Now clipping drawing area (experimental)
21060         * PictureBox.cs: Moved base.OnPaint() call to end of method
21061         * Theme.cs: Fixed ToolTip abstracts to match new format
21062         * ErrorProvider.cs: Implemented
21063
21064 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
21065
21066         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
21067         * LinkLabel.cs:
21068                 - Adds cursors
21069                 - Handles focus
21070                 - Implements LinkBehavior
21071                 - Fixes many issues
21072
21073 2005-05-03  Jackson Harper  <jackson@ximian.com>
21074
21075         * ListView.cs: Calculate the scrollbar positioning on resize and
21076         paint, so they get put in the correct place.
21077
21078 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
21079
21080         * ColorDialogs.cs: The small color panels are now handled by
21081           SmallColorControl. This fixes drawing of the focus rectangle
21082           and adds a 3D border.
21083
21084 2005-05-03  Peter Bartok  <pbartok@novell.com>
21085
21086         * Control.cs: Modified version of Jonathan Chamber's fix for
21087           double-buffering
21088
21089 2005-05-03  Jackson Harper  <jackson@ximian.com>
21090
21091         * ListView.cs: Remove redraw variable. Control now handles whether
21092         or not a redraw needs to be done, and will only raise the paint
21093         event if redrawing is needed.
21094
21095 2005-05-03  Jackson Harper  <jackson@ximian.com>
21096
21097         * Splitter.cs: No decorations for the splitter form. Cache the
21098         hatch brush.
21099
21100 2005-05-03  Jackson Harper  <jackson@ximian.com>
21101
21102         * TreeView.cs: Use dashed lines to connect nodes. Use the
21103         ControlPaint method for drawing the focus rect instead of doing
21104         that in treeview.
21105
21106 2005-05-02  Peter Bartok  <pbartok@novell.com>
21107
21108         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
21109
21110 2005-04-29  Jackson Harper  <jackson@ximian.com>
21111
21112         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
21113         entire image buffer. Just clear the clipping rectangle.
21114
21115 2005-04-29  Jackson Harper  <jackson@ximian.com>
21116
21117         * ThemeWin32Classic.cs: Don't draw list view items that are
21118         outside the clipping rectangle.
21119
21120 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
21121
21122         * ListBox.cs: added horizontal item scroll
21123
21124 2005-04-29  Jackson Harper  <jackson@ximian.com>
21125
21126         * ThemeWin32Classic.cs: Remove some old debug code that was
21127         causing flicker with the new double buffering code.
21128
21129 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
21130
21131         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
21132         behave like combobox and comboboxlist (still not sure if this is
21133         correct though).
21134
21135 2005-04-28  Jackson Harper  <jackson@ximian.com>
21136
21137         * ThemeWin32Classic.cs: Don't fill the middle of progress
21138         bars. This fills areas outside of the clip bounds that don't need
21139         to be filled.
21140
21141 2005-04-28  Jackson Harper  <jackson@ximian.com>
21142
21143         * Control.cs: Don't expose functionality to touch the image buffers.
21144         * ProgressBar.cs:
21145         * ListView.cs: We do not need to (and no longer can) manipulate
21146         the image buffers directly. All of this is handled by Control.
21147
21148 2005-04-28  Peter Bartok  <pbartok@novell.com>
21149
21150         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
21151           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
21152           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
21153
21154 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21155
21156         * Combobox:
21157                 - Adjust control's height for non-simple comboboxes (bug fix)
21158                 - Remove dead code
21159         * MenuAPI.cs: remove unused var
21160         * ScrollBar.cs: remove unsed var
21161                  
21162         * ListBox.cs: unselect items when clearing
21163
21164 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21165
21166         * ListControl.cs: honors OnPositionChanged and default Selected Item
21167         * ListBox.cs: unselect items when clearing
21168
21169 2005-04-27  Jackson Harper  <jackson@ximian.com>
21170
21171         * X11Keyboard.cs: Initialize a default keyboard and give a warning
21172         if a "correct" keyboard is not found. This will make us not crash,
21173         but might give some users bad keyboard layouts...seems to be the
21174         same thing rewind does.
21175
21176 2005-04-27  Jackson Harper  <jackson@ximian.com>
21177
21178         * BindingManagerBase.cs: Attach the current/position changed
21179         handlers to their respective events.
21180
21181 2005-04-27  Jackson Harper  <jackson@ximian.com>
21182
21183         * Control.cs: Make sure that the first WM_PAINT does a full draw,
21184         not just a blit.
21185         * ThemeWin32Classic.cs: Don't fill the background for picture
21186         boxes. This could overright user drawing.
21187         * ComboBox.cs: Just fill the clipping rect not the entire client
21188         rect when drawing the background. This prevents pieces of the
21189         image buffer from getting overwritten and is theoretically faster.
21190
21191 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
21192
21193         * ComboBox.cs: Databinding support fixes, fire missing events
21194         * ListControl.cs: implement missing methods and properties, fixes
21195         * ThemeWin32Classic.cs: Databiding support on Drawing
21196         * CheckedListBox.cs: Databinding support fixes, fire missing events
21197         * ListBox.cs: Databinding support fixes, fire missing events
21198         
21199 2005-04-25  Peter Bartok  <pbartok@novell.com>
21200
21201         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
21202
21203 2005-04-25  Jackson Harper  <jackson@ximian.com>
21204
21205         * TreeView.cs: Use the horizontal scrollbars height not width when
21206         determining how much of the client area is available.
21207
21208 2005-04-25  Jackson Harper  <jackson@ximian.com>
21209
21210         * Control.cs: Double buffering is handled differently now. As per
21211         the spec, the extra buffer is created in the WM_PAINT message and
21212         passed down to the control's drawing code.
21213         * GroupBox.cs:
21214         * Label.cs:
21215         * CheckBox.cs:
21216         * ProgressBar.cs:
21217         * RadioButton.cs:
21218         * ColorDialog.cs:
21219         * ComboBox.cs:
21220         * PropertyGridView.cs:
21221         * UpDownBase.cs:
21222         * MessageBox.cs:
21223         * MenuAPI.cs:
21224         * ListView.cs:
21225         * ButtonBase.cs:
21226         * SizeGrip.cs:
21227         * ScrollBar.cs:
21228         * ListBox.cs:
21229         * TrackBar.cs:
21230         * ToolBar.cs:
21231         * PictureBox.cs:
21232         * DateTimePicker.cs:
21233         * StatusBar.cs:
21234         * TreeView.cs: Update to new double buffering system.
21235         * MonthCalendar.cs: Uncomment block, as Capture is now
21236         working. Update to new double buffering
21237         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
21238         * PaintEventArgs.cs: New internal method allows us to set the
21239         graphics object. This is used for double buffering.
21240         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
21241         rectangle. The internal paint_area var has been removed from
21242         StatusBar. The clipping rect should be used instead.
21243         * Theme.cs: Give the PictureBox drawing method a clipping rect.
21244         * TabPage.cs: The RefreshTabs method was removed, so just call the
21245         tab controls Refresh method now.
21246         * TabControl.cs: Update to new double buffering. Make sure the
21247         handle is created before sizing the tab pages, otherwise we will
21248         get stuck in a loop.
21249
21250 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
21251
21252         * LinkLabel.cs: Fix typo, bug #74719; patch
21253           from Borja Sanchez Zamorano
21254
21255 2005-04-22  Jackson Harper  <jackson@ximian.com>
21256
21257         * TreeNode.cs: Implement Handle stuff.
21258         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
21259
21260 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
21261
21262         * DataGridTextBoxColumn.cs: call base constructors, fixes
21263         * GridColumnStylesCollection.cs: missing events, methods, and functionality
21264         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
21265         * DataGridTableStyle.cs: implements create default column styles
21266         * DataGridBoolColumn.cs: which types can handle
21267         * DataGrid.cs: missing methods, fixes, new functionality
21268         * DataGridColumnStyle.cs: fixes
21269
21270 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
21271         * FolderBrowserDialog.cs:
21272         - Use a thread to fill the TreeView
21273         - Adjusted some sizes
21274
21275 2005-04-19  Peter Bartok  <pbartok@novell.com>
21276
21277         * LinkLabel.cs: (Re-)create the pieces when setting the Text
21278           property. Fixes #74360.
21279
21280 2005-04-19  Jackson Harper  <jackson@ximian.com>
21281
21282         * XEventQueue.cs: Lock when getting the lockqueue size.
21283         * PictureBox.cs: Call base OnPaint
21284         
21285 2005-04-19  Peter Bartok  <pbartok@novell.com>
21286
21287         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
21288           messages were no longer being processed (this broke BeginInvoke)
21289
21290           
21291 2005-04-18  Jackson Harper  <jackson@ximian.com>
21292
21293         * TreeView.cs: buglet that caused node images to get drawn
21294         regardless of whether or not they were in the clipping rectangle.
21295
21296 2005-04-18  Jackson Harper  <jackson@ximian.com>
21297
21298         * CurrencyManager.cs: There are four rules for GetItemProperties:
21299         - If the type is an array use the element type of the array
21300         - If the type is a typed list, use the type
21301         - If the list contains an Item property that is not an object, use
21302         that property
21303         - use the first element of the list if there are any elements in
21304         the list.
21305         
21306 2005-04-17  Jackson Harper  <jackson@ximian.oom>
21307
21308         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
21309         click. This handles offsets for scrolling properly and reduces
21310         memory. Also fixed GetNode to not offset now that TopNode works
21311         properly.
21312         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
21313         
21314 2005-04-17  Jackson Harper  <jackson@ximian.com>
21315
21316         * CursorConverter.cs: Initial implementation.
21317
21318 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21319
21320         * ListControl.cs: work towards complex data binding support on ListControl
21321         * CurrencyManager.cs: work towards complex data binding support on ListControl
21322         * ListBox.cs: work towards complex data binding support on ListControl
21323
21324
21325 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21326
21327         * GridTableStylesCollection.cs: fixes name and constructor
21328         * DataGridTableStyle.cs: fixes
21329         * DataGridBoolColumn.cs: fixes names and constructors
21330         * DataGrid.cs: define methods and properties. Some init implementations
21331         * DataGridCell.cs: define methods and properties. Some init implementations
21332         * GridTablesFactory.cs: Define methods and properties
21333
21334 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
21335
21336         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
21337         graphics port changes.  We still want the coordinates in global screen
21338         coordinates.
21339
21340 2005-04-14  Jackson Harper  <jackson@ximian.com>
21341
21342         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
21343         check plus minus or checkbox clicks unless those features are enabled.
21344
21345 2005-04-14  Jackson Harper  <jackson@ximian.com>
21346
21347         * TreeView.cs: Add methods for setting the top and bottom visible
21348         nodes. TreeNode::EnsureVisible uses these methods.
21349         * TreeNode.cs: Implement EnsureVisible
21350
21351 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
21352
21353         * Form.cs: Pospone menu assignation if the window has not been created yet
21354         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
21355         size and position
21356
21357 2005-04-12  Jackson Harper  <jackson@ximian.com>
21358
21359         * TreeView.cs: Set the TopNode properly when scrolling
21360         occurs. This has the added benifit of reducing the amount of
21361         walking that needs to be done when drawing. Also removed an old
21362         misleading TODO.
21363         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
21364         
21365 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
21366
21367         * Timer.cs: fixes interval setting when the timer is already enabled
21368         
21369 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
21370
21371         * FolderBrowserDialog.cs: First approach
21372
21373 2005-04-09  Peter Bartok  <pbartok@novell.com>
21374
21375         * FolderBrowserDialog: Added
21376
21377 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
21378
21379         * LinkLabel.cs: move drawing code into the theme
21380         * ThemeWin32Classic.cs: drawing code and painting background bugfix
21381         * Theme.cs: define DrawLinkLabel method
21382
21383 2005-04-05  Jackson Harper  <jackson@ximian.com>
21384
21385         * BindingContext.cs: Use weak references so these bad actors don't
21386         stay alive longer then they need to.
21387
21388 2005-04-05  Jackson Harper  <jackson@ximian.com>
21389
21390         * ListControl.cs: Basic implementation of complex databinding.
21391         * ComboBox.cs:
21392         * ListBox.cs: Add calls to ListControl databinding methods.
21393
21394 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
21395
21396         * FileDialog.cs:
21397           - Don't change PopupButtonState to Normal when the
21398             PopupButton gets pressed several times.
21399           - Renamed ButtonPanel to PopupButtonPanel
21400
21401 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
21402
21403         * ColorDialog.cs: Use cached objects instead of creating them
21404         * LinkLabel.cs: Use cached objects instead of creating them
21405         * Splitter.cs: Use cached objects instead of creating them
21406         * FontDialog.cs: Use cached objects instead of creating them
21407         * PropertyGridView.cs: Use cached objects instead of creating them
21408         * MessageBox.cs: Use cached objects instead of creating them
21409         * FileDialog.cs: Use cached objects instead of creating them
21410         * ThemeWin32Classic.cs: Use cached objects instead of creating them
21411         * TreeView.cs: Use cached objects instead of creating them
21412         
21413 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
21414
21415         * Control.cs: use Equals to compare the font since no == op
21416         * ScrollBar.cs: use Equals to compare the font since no == op
21417
21418 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
21419
21420         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
21421
21422 2005-04-01  Jackson Harper  <jackson@ximian.com>
21423
21424         * Binding.cs: Implement IsBinding.
21425         * BindingManagerBase.cs:
21426         * PropertyManager.cs:
21427         * CurrencyManager.cs: Add IsSuspended property.
21428
21429 2005-04-01  Jackson Harper  <jackson@ximian.com>
21430
21431         * Binding.cs: Had some IsAssignableFrom calls backwards.
21432
21433 2005-04-01  Jackson Harper  <jackson@ximian.com>
21434
21435         * Binding.cs: Handle null data members when pulling data.
21436         * PropertyManager.cs: Handle the data member being a property that
21437         does not exist.
21438
21439 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21440
21441         * DataGridTextBoxColumn.cs: fixes signature
21442         * DataGrid.cs: calls right constructor
21443
21444 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21445
21446         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
21447         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
21448         * GridTableStylesCollection.cs: implements GridTableStylesCollection
21449         * DataGridTableStyle.cs: implements DataGridTableStyle
21450         * DataGridBoolColumn.cs: implements DataGridBoolColumn
21451         * DataGridTextBox.cs: implements DataGridTextBox
21452         * DataGridColumnStyle.cs: implements DataGridColumnStyle
21453
21454 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
21455
21456         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
21457
21458 2005-03-29  Peter Bartok  <pbartok@novell.com>
21459
21460         * Application.cs:
21461           - Properly implemented CompanyName property
21462           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
21463             returns a path that includes CompanyName, ProductName and
21464             Version (fixes bug #70330)
21465
21466 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
21467
21468         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
21469           fixes bug #72588.
21470
21471 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21472
21473         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
21474         
21475           - Added ReadOnly CheckBox
21476           - Further refactoring: moved some code from Open-/SaveFileDialog
21477             to FileDialog
21478
21479 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21480
21481         * OpenFileDialog.cs: Fixed CheckFileExists
21482         * FileDialog.cs:
21483           Moved FileView and DirComboBox outside FileDialog class.
21484           They can now be used outside FileDialog
21485
21486 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21487
21488         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
21489         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
21490
21491 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21492
21493         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21494           - Added missing CreatePrompt property in SaveDialog
21495           - Overall SaveDialog handling should be better now
21496           - Added non standard ShowHiddenFiles property
21497           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
21498           - Added InitialDirectory and RestoreDirectory support
21499
21500 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
21501
21502         * FileDialog.cs: Made dirComboBox usable
21503
21504 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
21505
21506         * FileDialog.cs: Added Filter support (case sensitiv)
21507
21508 2005-03-24  Jackson Harper  <jackson@ximian.com>
21509
21510         * TabControl.cs: Need a couple more pixels for the lines.
21511
21512 2005-03-23  Jackson Harper  <jackson@ximian.com>
21513
21514         * TabControl.cs: Give the tab page focus when it is selected.
21515
21516 2005-03-23  Jackson Harper  <jackson@ximian.com>
21517
21518         * TabControl.cs: Account for the drawing of tabs borders when
21519         invalidating. If the slider was clicked dont do click detection on
21520         the tabs.
21521
21522 2005-03-23  Jackson Harper  <jackson@ximian.com>
21523
21524         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
21525
21526 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
21527
21528         * CategoryGridEntry.cs: Added
21529         * GridItem.cs: Added helper properties
21530         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
21531         * GridEntry.cs: Updated code for collection
21532         * PropertyGrid.cs: Cleaned up some formatting
21533         * PropertyGridView.cs: Added drop down functionality for enums.
21534         * GridItemCollection.cs: Added enumerator logic
21535         * PropertyGridEntry.cs: Added
21536
21537 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21538
21539         * FileDialog.cs:
21540           - Removed unnecessary commented code
21541           - Fixed handling for entering the filename manually in the combobox
21542
21543 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21544
21545         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
21546
21547 2005-03-18  Peter Bartok  <pbartok@novell.com>
21548
21549         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
21550           them being touching the border
21551
21552 2005-03-18  Peter Bartok  <pbartok@novell.com>
21553
21554         * TextControl.cs: Quick hack to center text better
21555
21556 2005-03-18  Peter Bartok  <pbartok@novell.com>
21557
21558         * ControlPaint.cs:
21559           - Don't throw NotImplemented exceptions, just print a notice once
21560             instead (requested by Miguel). This makes running existing SWF
21561             apps a bit easier
21562         * Control.cs:
21563           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
21564           - Added context menu trigger on right click
21565         * Panel.cs: Trigger invalidate on resize
21566         * StatusBar.cs:
21567           - Removed old double-buffer drawing
21568           - Added ResizeRedraw style to force proper update of statusbar
21569         * ListView.cs:
21570           - Removed debug output
21571         * ThemeWin32Classic.cs:
21572           - Fixed drawing of status bar, now draws Text property if there
21573             are no defined panels
21574
21575 2005-03-18  Jackson Harper  <jackson@ximian.com>
21576
21577         * ImageList.cs: When the image stream is set pull all the images
21578         from it.
21579         * ImageListStreamer.cs: Implement reading image list streams.
21580
21581 2005-03-18  Peter Bartok  <pbartok@novell.com>
21582
21583         * ThemeWin32Classic.cs (DrawPictureBox):
21584           - Fixed calculations for centered drawing
21585           - Fixed drawing for normal mode, not scaling the image on normal
21586
21587 2005-03-18  Peter Bartok  <pbartok@novell.com>
21588
21589         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
21590           textbox
21591         * FileDialog.cs:
21592           - Made Open/Save button the accept button for FileDialog
21593           - Tied the cancel button to the IButtonControl cancel button
21594           - Save/Open now properly builds the pathname
21595           - Now handles user-entered text
21596           - Preventing crash on right-click if no item is selected
21597           - Fixed Text property, now uses contents of textbox
21598           - Fixed SelectedText property, now just returns the text part that
21599             is selected in the text box
21600
21601 2005-03-18  Jackson Harper  <jackson@ximian.com>
21602
21603         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
21604         rect, make sure to de-adjust the interior rect after drawing the
21605         tab text.
21606
21607 2005-03-18  Peter Bartok  <pbartok@novell.com>
21608
21609         * MenuAPI.cs: Remove menu *before* executing selected action to
21610           prevent the menu from 'hanging around'
21611           
21612 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
21613
21614         * XplatUIOSX.cs: Implemented WorkingArea property
21615
21616 2005-03-17  Peter Bartok  <pbartok@novell.com>
21617
21618         * XplatUIX11.cs: Fixed menu coord calculations
21619         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
21620           for calculating offsets
21621
21622 2005-03-17  Peter Bartok  <pbartok@novell.com>
21623
21624         * Hwnd.cs: Do not consider menu presence for default client
21625           rectangle location/size
21626         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
21627           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
21628           translation functions
21629         * FileDialog.cs: Fixed (what I presume is a) typo
21630
21631 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
21632
21633         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
21634           X access (avoids X-Async errors)
21635
21636 2005-03-16  Jackson Harper  <jackson@ximian.com>
21637
21638         * TabControl.cs: Raise the SelectedIndexChanged event.
21639
21640 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
21641
21642         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21643           - Removed vertical ToolBar and replaced it with a custom panel
21644             (desktop and home button already work)
21645           - Added Help button (some controls get resized or relocated then)
21646           - Draw correct text depending on Open or Save.
21647           - Fixed some typos...
21648
21649 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
21650
21651         * ScrollBar.cs:
21652           - Only change Maximum and Minimum when need it (bug fix)
21653
21654 2005-03-15  Peter Bartok  <pbartok@novell.com>
21655
21656         * Form.cs: Use Handle for icon, to trigger creation if
21657           the window does not yet exist
21658         * Control.cs:
21659           - CanSelect: Slight performance improvement
21660           - Focus(): Preventing possible recursion
21661           - Invalidate(): Removed ControlStyle based clear flag setting
21662           - WM_PAINT: fixed logic for calling OnPaintBackground
21663           - WM_ERASEBKGND: Fixed logic, added call to new driver method
21664             EraseWindowBackground if the control doesn't paint background
21665         * XplatUIWin32.cs:
21666           - Moved EraseWindowBackground() method to internal methods
21667           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
21668             is sent via SendMessage on BeginPaint call on Win32
21669         * XplatUIX11.cs:
21670           - Added EraseWindowBackground() method
21671           - No longer sends WM_ERASEBKGND on .Expose, but on call to
21672             PaintEventStart, which more closely matches Win32 behaviour
21673           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
21674           - Fixed SetFocus() to properly deal with client and whole windows
21675         * Hwnd.cs: Added ErasePending property
21676         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
21677         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
21678
21679 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
21680
21681         * XplatUIOSX.cs:
21682           - Fix hard loop when timers exist.
21683           - Fix bugs with middle and right click for 3 button mice.
21684
21685 2005-03-11  Peter Bartok  <pbartok@novell.com>
21686
21687         * XplatUIX11.cs:
21688           - get_WorkingArea: Need to call X directly, GetWindowPos only
21689             returns cached data now
21690           - Added sanity check to GetWindowPos hwnd usage
21691
21692 2005-03-11  Jackson Harper  <jackson@ximian.com>
21693
21694         * BindingManagerBase.cs: This method isn't used anymore as
21695         PullData now updates the data in the control.
21696
21697 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
21698
21699         * Form.cs: fixes menu drawing on X11
21700         * MenuAPI.cs:  fixes menu drawing on X11
21701
21702 2005-03-11  Peter Bartok  <pbartok@novell.com>
21703
21704         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
21705           from Jonathan Gilbert; should fix bug #73606
21706         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
21707           in Screen coordinates. Thanks, Jordi.
21708         * Form.cs: Added missing attribute
21709
21710 2005-03-11  Peter Bartok  <pbartok@novell.com>
21711
21712         * Form.cs:
21713           - Rudimentary Mdi support
21714           - Removed outdated FormParent code
21715           - Implemented lots of missing properties and methods, still missing
21716             transparency support
21717           - Added missing attributes
21718           - Implemented support for MaximumBounds
21719           - Added firing of various events
21720         * XplatUI.cs: Added SetIcon() method
21721         * XplatUIDriver.cs: Added SetIcon() abstract
21722         * XplatUIOSX.cs: Stubbed out SetIcon() method
21723         * XplatUIX11.cs:
21724           - Implemented SetIcon() support
21725           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
21726           - Switched to unix line endings
21727         * XplatUIWin32.cs:
21728           - Made POINT internal so for can access it as part of MINMAX
21729           - Implemented SetIcon() support
21730           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
21731             native Mdi support again, might have to go managed)
21732         * Control.cs: Now fires the StyleChanged event
21733         * MdiClient.cs: Added; still mostly empty
21734
21735 2005-03-10  Peter Bartok  <pbartok@novell.com>
21736
21737         * SaveFileDialog.cs: Added emtpy file
21738
21739 2005-03-08  Peter Bartok  <pbartok@novell.com>
21740
21741         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
21742           in turn triggers OnCreateContro) when creating a handle for the
21743           first time.
21744         * TextControl.cs: Fixed endless loop in certain cases when
21745           replacing the current selection
21746
21747 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
21748
21749         * ScrollBar.cs:
21750           - Honors NewValue changes in Scroll events allowing apps to change it
21751           - Adds First and Last Scroll events
21752           - Fixes Thumb events
21753
21754 2005-03-07  Peter Bartok  <pbartok@novell.com>
21755
21756         * Hwnd.cs: Added DefaultClientRectangle property
21757         * XplatUI.cs: Now using the X11 driver Where() method, which provides
21758           more detailed debug information
21759         * XplatUIX11.cs:
21760           - Fixed size-change feedback loop, where we would pull an old size
21761             off the queue and mistakenly change our window's size to an
21762             earlier value
21763           - Now compressing ConfigureNotify events, to reduce looping and
21764             redraw issues
21765         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
21766           is called
21767
21768 2005-03-07  Jackson Harper  <jackson@ximian.com>
21769
21770         * Binding.cs: Push data pushes from data -> property. Check if the
21771         property is readonly when attempting to set it.
21772
21773 2005-03-07  Jackson Harper  <jackson@ximian.com>
21774
21775         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
21776         instead of IsSubclassOf. Pulling data now sets the value on the
21777         control.
21778         * PropertyManager.cs:
21779         * CurrencyManager.cs: Just need to pull data when updating now,
21780         because PullData will set the value on the control.
21781
21782 2005-03-04  Jackson Harper  <jackson@ximian.com>
21783
21784         * Binding.cs: Implement data type parsing and converting on pulled
21785         data. TODO: Are there more ways the data can be converted?
21786
21787 2005-03-04  Jackson Harper  <jackson@ximian.com>
21788
21789         * Binding.cs: Support <Property>IsNull checks. Also bind to the
21790         controls Validating method so we can repull the data when the
21791         control loses focus.
21792
21793 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
21794
21795         * ColumnHeader.cs:
21796           - Fixes null string format
21797           
21798         * ListView.cs:
21799           - Adds enum type checks
21800           - Fixes redrawing and recalc need after changing some properties
21801           - Fixes on focus_item set after the event
21802           - Fixes adding columns after the control has been created
21803           
21804         * ThemeWin32Classic.cs:
21805           - Fixes CheckBox focus rectangle
21806           - Fixes ColumnHeader drawing
21807
21808
21809 2005-03-03  Jackson Harper  <jackson@ximian.com>
21810
21811         * Binding.cs: Bind to <Property>Changed events so we can detect
21812         when properties are changed and update the data.
21813
21814 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
21815
21816         * ImageList.cs:
21817           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
21818           - Fixes ImageList constructor with ImageList container
21819           - Fixes image scaling (wrong parameters at DrawImage)
21820
21821 2005-02-02  Jackson Harper  <jackson@ximian.com>
21822
21823         * Binding.cs: Make property searches case-insensitive. Eliminate
21824         some duplicated code.
21825
21826 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
21827
21828         * ComboBox.cs:
21829                 - Handle focus event
21830                 - Fix scrollbar events
21831                 - Discard highlighted item if remove it
21832                 - Fixes SelectedItem with strings
21833
21834 2005-03-01  Peter Bartok  <pbartok@novell.com>
21835
21836         * Control.cs:
21837           - Fixed Visible property, now follows (once again) parent chain
21838             to return false if any control in the chain is visible=false
21839           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
21840           - Fixed several places where is_visible instead of Visible was used
21841           - Implemented FIXME related to focus selection when setting focused
21842             control to be invisible
21843
21844         * XplatUIWin32.cs: Now using proper method to find out if window is
21845           visible. Thanks to Jordi for pointing it out
21846
21847 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
21848
21849         * ComboBox.cs: show/hide scrollbar instead of creating it
21850
21851 2005-02-27  Jackson Harper  <jackson@ximian.com>
21852
21853         * CurrencyManager.cs: Add PositionChanged stuff.
21854
21855 2005-02-27  Peter Bartok  <pbartok@novell.com>
21856
21857         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
21858         * XplatUIOSX.cs: Added GetMenuOrigin() stub
21859         * XplatUIWin32.cs: Implemented GetMenuOrigin()
21860         * XplatUIX11.cs:
21861           - Implemented GetMenuDC()
21862           - Implemented GetMenuOrigin()
21863           - Implemented ReleaseMenuDC()
21864           - Implemented generation of WM_NCPAINT message
21865           - Implemented generation and handling of WM_NCCALCSIZE message
21866         * Form.cs: Added debug helper message for Jordi's menu work
21867         * Hwnd.cs:
21868           - Modified ClientRect property; added setter, fixed getter to handle
21869             setting of ClientRect
21870           - Added MenuOrigin property
21871
21872 2005-02-26  Peter Bartok  <pbartok@novell.com>
21873
21874         * XplatUIX11.cs:
21875           - Destroys the caret if a window that's being destroyed contains it
21876           - Ignores expose events coming from the X11 queue for windows that
21877             already are destroyed
21878           - Now uses the proper variable for handling DestroyNotify, before we
21879             marked the wrong window as destroyed
21880           - Improved/added some debug output
21881
21882 2005-02-26  Peter Bartok  <pbartok@novell.com>
21883
21884         * X11Keyboard.cs: Fixes to work on 64bit systems
21885
21886 2005-02-26  Peter Bartok  <pbartok@novell.com>
21887
21888         * Control.cs:
21889           - Now calling OnHandleDestroyed from DestroyHandle()
21890             instead of Dispose()
21891           - Removed bogus call to controls.Remove() from DestroyHandle()
21892
21893 2005-02-26  Peter Bartok  <pbartok@novell.com>
21894
21895         * Control.cs: Properly destroy child windows when our handle is
21896           destroyed
21897
21898 2005-02-25  Peter Bartok  <pbartok@novell.com>
21899
21900         * XplatUI.cs:
21901           - Added 'DriverDebug' define to allow tracing XplatUI API calls
21902           - Alphabetized Static Methods and Subclasses
21903
21904         * XplatUIX11.cs:
21905           - Added XException class to allow custom handling of X11 exceptions
21906           - Created custom X11 error handler, tied into XException class
21907           - Added support for MONO_XEXCEPTIONS env var to allow the user
21908             to either throw an exception on X errors or continue running
21909             after displaying the error
21910           - Added handling of DestroyNotify message
21911           - Added handler for CreateNotify message (still disabled)
21912           - Improved (tried to at least) Where method to provide file and lineno
21913         * X11Structs.cs:
21914           - Added XErrorHandler delegate
21915           - Added XRequest enumeration (to suppor translation of errors)
21916
21917 2005-02-25  Jackson Harper  <jackson@ximian.com>
21918
21919         * PropertyManager.cs: Implement editing features
21920         * CurrencyManager.cs:
21921         * Binding.cs: First attempt at UpdateIsBinding
21922         * BindingManagerBase.cs: Call UpdateIsBinding before
21923         pushing/pulling data.
21924
21925 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
21926
21927         * MenuAPI.cs: Respect disabled items
21928         * ThemeWin32Classic.cs
21929                 - Caches ImageAttributes creation for DrawImageDisabled
21930                 - Fixes vertical menu line drawing
21931                 - Draws disabled arrows in disable menu items
21932
21933 2005-02-24  Peter Bartok  <pbartok@novell.com>
21934
21935         * Hwnd.cs:
21936           - Added UserData property to allow associating arbitrary objects
21937             with the handle
21938           - Fixed leak; now removing Hwnd references from static windows array
21939         * XplatUIWin32.cs:
21940           - Fixed Graphics leak in PaintEventEnd
21941           - Removed usage of HandleData, switched over to Hwnd class
21942         * HandleData.cs: Removed, obsoleted by Hwnd.cs
21943
21944 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21945
21946         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
21947         * ScrollBar.cs: Fixes bug
21948         * TrackBar.cs: removes death code, clipping, mimize refreshes,
21949          keyboard navigation enhancements
21950
21951 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21952
21953         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
21954         * GroupBox.cs: Add control styles
21955         * Label.cs: Add control styles
21956         * UpDownBase.cs: Add control styles
21957         * ListBox.cs: Add control styles
21958         * XplatUIWin32.cs: Fixes wrong parameter order
21959
21960
21961 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
21962
21963         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
21964
21965 2005-02-23  Jackson Harper  <jackson@ximian.com>
21966
21967         * PropertyManager.cs: Implement property binding. This doesn't
21968         seem to work yet though as (I think) there are some bugs in
21969         System.ComponentModel.PropertyDescriptor.
21970         * BindingContext.cs: Use new PropertyManager constructor.
21971
21972 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
21973
21974         * ProgressBar.cs: use clip region in ProgressBar
21975         * ThemeWin32Classic.cs: use clip region in ProgressBar
21976
21977 2004-02-22  Jackson Harper  <jackson@ximian.com>
21978
21979         * BindingsCollection.cs: Remove some debug code.
21980
21981 2005-02-22  Jackson Harper  <jackson@ximian.com>
21982
21983         * BindingContext.cs:
21984         * ControlBindingsCollection.cs:
21985         * CurrencyManager.cs:
21986         * Binding.cs:
21987         * BindingManagerBase.cs: Initial implementation
21988         * BindingsCollection.cs: Add an internal contains method that the
21989         BindingManagerBase uses to ensure bindings aren't added twice to
21990         the collection.
21991         * PropertyManager.cs: Stubbed out.
21992         * Control.cs:
21993         * ContainerControl.cs: Hook up databinding
21994         
21995 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
21996
21997         * XplatUIOSX.cs:
21998           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
21999           Fixed Invalidate/Update chain.
22000           Fixed tons of other minor bugs (this is almost a complete rewrite).
22001
22002 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
22003
22004         * ComboBox.cs: do subcontrol creation when the control is created
22005
22006 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22007
22008         * Label.cs: fixes image drawing (image and imagelist)
22009         * ThemeWin32Classic.cs: cache brushes
22010         
22011 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22012
22013         * Form.cs: Move menu drawing code to Theme class
22014         * ComboBox.cs: Move ComboBox drawing code to Theme class
22015         * MenuItem.cs: Move menu drawing code to Theme class
22016         * MenuAPI.cs: Move menu drawing code to Theme class
22017         * ThemeWin32Classic.cs: New methods
22018         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
22019         * ListBox.cs: Move Listbox drawing code to Theme class
22020         * Theme.cs: New methods
22021
22022 2005-02-20  Peter Bartok  <pbartok@novell.com>
22023
22024         * Control.cs:
22025           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
22026             only process mnemonics on those)
22027           - Fixed event sequence for key handling; first calling
22028             ProcessKeyEventArgs now
22029         * TextBoxBase.cs:
22030           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
22031             for processing non-character keys
22032           - Fixed WM_CHAR to generate proper event sequence before processing
22033         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
22034           generation
22035
22036 2005-02-19  Peter Bartok  <pbartok@novell.com>
22037
22038         * UserControl.cs: Added TextChanged event; added attributes
22039         * SizeGrip.cs: Implemented resizing and optional display of grip
22040         * Form.cs: Fixed attribute
22041         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
22042           Changed meaning of ScrollWindow bool argument; instead of the
22043           clear attribute (which will be true usually anyway), it gives the
22044           option of moving child controls as well.
22045         * XplatUIX11.cs:
22046           - Changed to match new ScrollWindow argument
22047           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
22048             now handles the implicit parent window a WM puts around us
22049         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
22050           to work)
22051         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
22052         * TreeView.cs: Adjusted to new ScrollWindow arguments
22053
22054 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22055
22056         * Form.cs: Menu integration with non-client area
22057         * MenuItem.cs: Menu integration with non-client area
22058         * MenuAPI.cs: Menu integration with non-client area
22059
22060 2005-02-18  Peter Bartok  <pbartok@novell.com>
22061
22062         * MethodInvoker.cs: Added
22063         * MdiLayout.cs: Added
22064         * SendKeys.cs: Started implementation
22065         * ErrorIconAlignment.cs: Added
22066
22067 2005-02-18  Peter Bartok  <pbartok@novell.com>
22068
22069         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
22070         * Form.cs: Added handling for Menu-related Non-client messages
22071
22072 2005-02-17  Peter Bartok  <pbartok@novell.com>
22073
22074         * UpDownBase.cs: Fixed typo, compilation errors
22075         * DomainUpDown.cs: Fixed attribute value
22076
22077 2005-02-16  Miguel de Icaza  <miguel@novell.com>
22078
22079         * UpDownBase.cs: Attach entry events.
22080         Propagate events.
22081         Add ForeColor property, Focused, InterceptArrowKeys (interception
22082         does not work yet).
22083
22084 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
22085
22086         * Form.cs:
22087                 - Redraw non client are on Setmenu
22088                 - Calc proper menu starting point
22089
22090 2005-02-17  Peter Bartok  <pbartok@novell.com>
22091
22092         * Application.cs: Fixed message_filter check
22093
22094 2005-02-17  Peter Bartok  <pbartok@novell.com>
22095
22096         * Application.cs: Now calls registered message filters
22097         * DockStyle.cs: Fixed attribute
22098         * Form.cs: Fixed attribute
22099         * Menu.cs: Fixed attribute
22100         * ToolTip.cs: Fixed attribute
22101         * TreeNode.cs: Added missing attributes and arranged in regions
22102         * PropertyGrid.cs: Fixed signatures
22103         * TreeNodeCollection.cs: Added attributes
22104         * Splitter.cs: Added missing attributes; arranged into regions
22105         * TabPage.cs: Added missing attributes; arranged into regions
22106         * TextBoxBase.cs: Added missing attributes
22107         * TextBox.cs: Added missing attributes
22108         * ArrangeDirection.cs: Added missing attributes
22109         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
22110         * ToolBarButton.cs: Fixed attributes
22111         * AnchorStyles.cs: Fixed attribute
22112         * TrackBar.cs: Fixed attributes
22113         * TabControl.cs: Added missing attributes and arranged into regions
22114         * ToolBar.cs: Fixed attribute
22115         * StatusBar.cs: Fixed signature, organized into regions and added
22116           attributes
22117         * StatusBarPanel.cs: Fixed attributes
22118         * ContentsResizedEventArgs.cs: Implemented
22119         * ContentsResizedEventHandler.cs: Implemented
22120         * DateBoldEventArgs.cs: Implemented
22121         * DateBoldEventHandler.cs: Implemented
22122         * UpDownEventArgs.cs: Implemented
22123         * UpDownEventHandler.cs: Implemented
22124         
22125 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
22126
22127         * Form.cs: first Menu NC refactoring
22128         * MenuAPI.cs: first Menu NC refactoring
22129         
22130 2005-02-16  Peter Bartok  <pbartok@novell.com>
22131
22132         * ImeMode.cs: Added missing attributes
22133         * Menu.cs: Fixed attribute
22134         * GroupBox.cs: Fixed attribute
22135         * Label.cs: Fixed attribute
22136         * ColorDialog.cs (RunDialog): Removed TODO attribute
22137         * ComboBox.cs: Fixed attributes
22138         * ListControl.cs: Added missing attributes
22139         * PropertyGrid.cs: Fixed attributes
22140         * Control.cs: Fixed attributes
22141         * ListViewItem.cs: Added TypeConverter attribute
22142         * NotifyIcon.cs: Fixed attributes
22143         * ListView.cs: Fixed attributes
22144         * ButtonBase.cs: Fixed attribute
22145         * ImageList.cs: Added missing attributes
22146         * ContainerControl.cs: Fixed signature
22147         * CheckedListBox.cs: Fixed attribute; added missing attributes
22148         * Panel.cs: Fixed attributes
22149         * PropertyTabChangedEventArgs.cs: Added missing attribute
22150         * PropertyValueChangedEventArgs.cs: Added missing attribute
22151         * Binding.cs: Fixed attribute
22152         * ListViewItemConverter: Implemented ListViewSubItemConverter class
22153         * ListBox.cs: Fixed attribute; added missing attributes;
22154         * ScrollableControl.cs: Added missing attributes
22155         * PictureBox.cs: Added missing attributes; implemented missing property
22156         * DateTimePicker.cs: Added missing attributes
22157         * Theme.cs (ToolWindowCaptionHeight): Fixed type
22158         * MonthCalendar.cs: Fixed attributes
22159         * StatusBarPanel.cs: Added missing attributes
22160         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
22161
22162 2005-02-16  Peter Bartok  <pbartok@novell.com>
22163
22164         * TextBoxBase.cs: The previous method to enforce height yet remember
22165           the requested high was less than ideal, this is an attempt to do
22166           it better.
22167         * Control.cs: Added comment about possible problem
22168         * Copyright: Updated format
22169         * GridItemType.cs: Fixed swapped values
22170
22171 2005-02-15  Jackson Harper  <jackson@ximian.com>
22172
22173         * BaseCollection.cs: Use property so we never access an
22174         uninitialized list. Also initialize the list in the property.
22175
22176 2005-02-15  Peter Bartok  <pbartok@novell.com>
22177
22178         * GroupBox.cs (ProcessMnemonic): Implemented
22179         * Label.cs (ProcessMnemonic): Implemented
22180         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
22181           hotkeys
22182
22183 2005-02-15  Peter Bartok  <pbartok@novell.com>
22184
22185         * RadioButton.cs (ProcessMnemonic): Implemented
22186         * CheckBox.cs (ProcessMnemonic): Implemented
22187         * Control.cs:
22188           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
22189             handling
22190           - Added internal method to allow calling ProcessMnemonic from other
22191             controls
22192         * ContainerControl.cs:
22193           - Started support for handling validation chain handling
22194           - Implemented ProcessMnemonic support
22195           - Added Select() call to Active, to make sure the active control
22196             receives focus
22197         * Form.cs: Setting toplevel flag for Forms (this was lost in the
22198           FormParent rewrite)
22199         * ThemeWin32Classic.cs:
22200           - DrawCheckBox(): Fixed stringformat to show hotkeys
22201           - DrawRadioButton(): Fixed stringformat to show hotkeys
22202         * CommonDialog.cs: Removed WndProc override, not needed
22203
22204 2005-02-14  Peter Bartok  <pbartok@novell.com>
22205
22206         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
22207           missed those in the rewrite
22208
22209 2005-02-14  Miguel de Icaza  <miguel@novell.com>
22210
22211         * NumericUpDown.cs (Increment, ToString): Add.
22212         (DecimalPlaces): implement.
22213         
22214         Add attributes.
22215         
22216         * UpDownBase.cs: Add the designer attributes.
22217
22218 2005-02-13  Peter Bartok  <pbartok@novell.com>
22219
22220         * Panel.cs: Removed border_style, now in Control
22221         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
22222           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
22223
22224 2005-02-13  Peter Bartok  <pbartok@novell.com>
22225
22226         * MouseButtons.cs: Added missing attributes
22227         * XplatUIStructs.cs: Added enumeration for title styles
22228         * LeftRightAlignment.cs: Added missing attributes
22229         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
22230           it compatible with Graphics.FromHwnd()
22231         * SelectedGridItemChangedEventArgs.cs: Fixed property type
22232         * Keys.cs: Added missing attributes
22233         * SelectionRange.cs: Added missing attributes
22234         * SelectionRangeConverter.cs: Added
22235         * XplatUI.cs:
22236           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
22237             ReleaseMenuDC methods
22238           - Renamed ReleaseWindow to UngrabWindow
22239           - Added proper startup notice to allow version identification
22240         * Form.cs:
22241           - Added missing attributes
22242           - Removed FormParent concept
22243         * Label.cs: Removed border_style field, now in Control
22244         * RadioButton.cs: Now properly selects RadioButton when focus is
22245           received
22246         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
22247         * Control.cs:
22248           - Added missing attributes
22249           - Added borderstyle handling
22250           - Removed FormParent concept support
22251           - Fixed calls to XplatUI to match changed APIs
22252           - Fixed bug that would case us to use disposed Graphics objects
22253           - Removed unneeded internal methods
22254           - PerformLayout(): Fixed to handle DockStyle.Fill properly
22255           - SelectNextControl(): Fixed to properly check common parents
22256         * TextBoxBase.cs: Removed border_style field (now in Control)
22257         * MessageBox.cs:
22258           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
22259             fixed calculations for form size
22260           - Added support for localized strings and icons
22261           - Improved form size calculations, added border
22262         * ListView.cs: Removed border_style field (now in Control)
22263         * X11Structs.cs: Moved several structs from X11 driver here
22264         * X11Keyboard.cs: Changed debug message
22265         * Application.cs: Removed FormParent concept support
22266         * CommonDialog.cs:
22267           - Resetting end_modal flag
22268           - Removed FormParent concept support
22269         * NativeWindow.cs: Removed FormParent concept support
22270         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
22271           Client area and Non-Client whole window to allow support for WM_NC
22272           messages
22273         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
22274           prevent using it until it supports Hwnd as per Geoff Norton's request
22275         * ToolBar.cs: Fixed drawing, was not doing proper drawing
22276         * PictureBox.cs: Removed border_style field, now in Control
22277         * XplatUIWin32.cs: Added new driver methods
22278
22279 2005-02-12  Peter Bartok  <pbartok@novell.com>
22280
22281         * OpacityConverter.cs: Implemented
22282         * Hwnd.cs: Internal class to support drivers that need to emulate
22283           client area/non-client area window behaviour
22284
22285 2005-02-11  Peter Bartok  <pbartok@novell.com>
22286
22287         * KeysConverter.cs: Implemented
22288
22289 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
22290
22291         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
22292         * LinkLabel: Added missing attributes
22293         * MainMenu.cs: fixes ToString
22294         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
22295         * ListBox.cs: fixes event position
22296         * TrackBar.cs: adds missing attributes and events
22297         
22298 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
22299
22300         * MenuItem.cs: Use SystemInformation and bug fixes
22301         * MenuAPI.cs: Use SystemInformation and bug fixes
22302
22303 2005-02-09  Jackson Harper  <jackson@ximian.com>
22304
22305         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
22306         their keystate otherwise things like VK_MENU get stuck "on".
22307
22308 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
22309
22310         * ListBox.cs: Fixes AddRange bug
22311         
22312 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
22313
22314         * ProgressBar.cs
22315                 - Add missing attributes
22316                 - Add missing method
22317                 
22318         * CheckedListBox.cs: Added missing attributes
22319                 - Add missing attributes
22320                 - Remove extra method
22321         
22322         * ComboBox.cs: Added missing attributes
22323         * VScrollBar.cs: Added missing attributes
22324         * ScrollBar.cs:  Added missing attributes
22325         * ListBox.cs: Fixes signature, add missing consts
22326         * LinkArea.cs:   Added missing attributes
22327         
22328
22329 2005-02-08  Peter Bartok  <pbartok@novell.com>
22330
22331         * Menu.cs: Added missing attributes
22332         * MainMenu.cs: Added missing attributes
22333         * GroupBox.cs: Added missing attributes
22334         * Label.cs: Added missing attributes
22335         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
22336         * ColorDialog.cs:
22337           - Added Instance and Options properties
22338           - Added missing attributes
22339         * Cursor.cs: Made Serializable
22340         * NotifyIcon: Added missing attributes
22341         * MenuItem.cs: Added missing attributes
22342         * TextBoxBase.cs: Implemented AppendText() and Select() methods
22343         * Panel.cs: Added Missing attributes
22344         * MonthCalendar.cs: Fixed CreateParams
22345
22346 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22347         
22348         * LinkLabel.cs:
22349                 - Fixes signature
22350                 - Fixes issues with links
22351                 - Adds the class attributes
22352
22353 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22354         
22355         * ComboBox.cs:
22356                 - Fixes button when no items available in dropdown
22357                 - Fixes repainting problems
22358                 - Adds the class attributes
22359                 
22360 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22361
22362         * XplatUIOSX.cs: Detect the menu bar and title bar height from
22363         the current theme.  Cache these on startup.
22364
22365 2005-02-07  Jackson Harper  <jackson@ximian.com>
22366
22367         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
22368         the scrollbar buttons when they are depressed.
22369
22370 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22371
22372         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
22373         Get the display size from the main displayid.  We currently dont
22374         support multiple display configurations.
22375
22376 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22377
22378         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
22379
22380 2005-02-07  Miguel de Icaza  <miguel@novell.com>
22381
22382         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
22383
22384 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
22385
22386         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
22387
22388 2005-02-04  Jackson Harper  <jackson@ximian.com>
22389
22390         * ThemeWin32Classic.cs: Respect the clipping rect when
22391         drawing. Only fill the intersection of clips and rects so there
22392         isn't a lot of large fills.
22393         * ScrollBar.cs: Pass the correct clipping rect to the theme
22394         engine. Remove some debug code.
22395
22396 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
22397         
22398         * DateTimePicker.cs:
22399                 - Fixed crash on DateTime.Parse, use Constructor instead
22400
22401 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22402         
22403         * MenuItem.cs:
22404         * MenuAPI.cs:
22405                 - Owner draw support (MeasureItem and DrawItem)
22406
22407 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22408         
22409         *  Menu.cs:
22410                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
22411                 - Fixes MenuItems.Add range
22412         * MenuItem.cs:
22413                 - MergeMenu and Clone and CloneMenu functions
22414
22415 2005-02-03  Jackson Harper  <jackson@ximian.com>
22416
22417         * ScrollBar.cs: Make abstract
22418         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
22419         is abstract.
22420
22421 2005-02-03  Jackson Harper  <jackson@ximian.com>
22422
22423         * ScrollBar.cs: First part of my scrollbar fixups. This removes
22424         all the unneeded refreshes and uses invalidates with properly
22425         computed rects.
22426
22427 2005-02-03  Peter Bartok  <pbartok@novell.com>
22428
22429         * ComponentModel.cs: Added
22430         * IDataGridEditingService.cs: Added
22431         * Timer.cs: Added missing attributes
22432         * ToolTip.cs: Added missing attributes
22433
22434 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
22435
22436         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
22437
22438 2005-02-03  Peter Bartok  <pbartok@novell.com>
22439
22440         * ListBox.cs: Added missing attributes
22441
22442 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
22443         
22444         * ListBox.cs:
22445                 - Fixes font height after font change
22446                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
22447                 
22448 2005-02-02  Peter Bartok  <pbartok@novell.com>
22449
22450         * HandleData.cs: Introduced static methods to allow class
22451           to be more self-contained and track it's own HandleData objects
22452         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
22453           HandleData to use new static methods
22454
22455 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
22456
22457         * Combobox.cs:
22458                 - Fixes default size and PreferredHeight
22459                 - Missing events
22460                 - ObjectCollection.Insert implementation
22461                 
22462         * ListControl.cs
22463                 - Fixes signature
22464         * ListBox.cs:
22465                 - Several fixes
22466                 - ObjectCollection.Insert implementation
22467                 - No selection after clean
22468                 - Small fixes
22469
22470 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22471
22472         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
22473
22474 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
22475
22476         * Combobox.cs:
22477                 - Caches ItemHeight calculation for OwnerDrawVariable
22478                 - Handles dropdown properly
22479                 - Fixes several minor bugs
22480
22481 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22482
22483         * ListBox.cs:
22484                 - Fixes 71946 and 71950
22485                 - Fixes changing Multicolumn on the fly
22486                 - Fixes keyboard navigation on Multicolumn listboxes
22487
22488 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22489         
22490         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
22491         crash reporter log.
22492
22493 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22494
22495         * XplatUIOSX.cs: Allow applications to actually exit.
22496
22497 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22498
22499         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
22500         their parent at creation time rather than lazily later.  Fixes a major
22501         regression we were experiencing.
22502
22503 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22504
22505         * ThemeWin32Classic.cs: more date time picker painting fixes
22506         * DateTimePicker.cs: more monthcalendar drop down fixes
22507         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
22508
22509 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22510
22511         * ScrollBar.cs:
22512                 - When moving the thumb going outside the control should stop the moving
22513                 - Adds the firing of missing events
22514                 - Fixes no button show if Size is not specified
22515                 - End / Home keys for keyboard navigation
22516
22517 2005-01-30  Peter Bartok  <pbartok@novell.com>
22518
22519         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
22520           sanity check to prevent theoretical loop
22521         * XplatUIWin32.cs (SetVisible): Removed debug output
22522         * XplatUIX11.cs (SystrayChange): Added sanity check
22523         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
22524         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
22525           behaviour, valid until the X11 client window rewrite is done
22526         * TextBox.cs (ctor): Setting proper default foreground and background
22527           colors
22528
22529 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
22530
22531         * Theme: Added DrawDateTimePicker to interface
22532         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
22533         * DateTimePicker.cs: Created (still needs keys and painting code)
22534         * DateTimePickerFormat.cs: added
22535         * MonthCalendar.cs: fixed CreateParams for popup window mode
22536           
22537 2005-01-29  Peter Bartok  <pbartok@novell.com>
22538
22539         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
22540           this should also the calculations for ligher/darker
22541         * Theme.cs: Fixed defaults for ScrollBar widths/heights
22542
22543 2005-01-29  Peter Bartok  <pbartok@novell.com>
22544
22545         * ArrangeDirection.cs: Added
22546         * ArrangeStartingPositon.cs: Added
22547         * SystemInformation.cs: Implemented
22548         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22549           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
22550           used by SystemInformation class
22551         * X11Strucs.cs: Added XSizeHints structure
22552         * MenuAPI.cs:
22553           - Fixed CreateParams to make sure the menu window is always visible
22554           - TrackPopupMenu: Added check to make sure we don't draw the
22555             menu offscreen
22556
22557 2005-01-29  Peter Bartok  <pbartok@novell.com>
22558
22559         * HandleData.cs: Added method for altering invalid area
22560         * TextBoxBase.cs: Implemented TextLength
22561
22562 2005-01-28  Peter Bartok  <pbartok@novell.com>
22563
22564         * XplatUIX11.cs: Improvement over last patch, not sending
22565           the WM_PAINT directly anymore, instead we scroll any pending
22566           exposed areas and let the system pick out the WM_PAINT later
22567
22568 2005-01-28  Peter Bartok  <pbartok@novell.com>
22569
22570         * SWF.csproj: Deleted, no longer used. Instead,
22571           Managed.Windows.Forms/SWF.csproj should be used
22572         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
22573           directly, to avoid a potential race condition with the next
22574           scroll
22575
22576 2005-01-28  Peter Bartok  <pbartok@novell.com>
22577
22578         * XplatUI.cs: Made class internal
22579
22580 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
22581
22582         * CheckedListBox.cs:
22583                 - Draw focus
22584                 - Fixed Drawing
22585                 - Missing methods and events
22586
22587 2005-01-27  Peter Bartok  <pbartok@novell.com>
22588
22589         * Application.cs (Run): Don't use form if we don't have one
22590
22591 2005-01-27  Peter Bartok  <pbartok@novell.com>
22592
22593         * TextBoxBase.cs (get_Lines): Fixed index off by one error
22594
22595 2005-01-27  Peter Bartok  <pbartok@novell.com>
22596
22597         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
22598         * GridItem.cs: Added; Patch by Jonathan S. Chambers
22599         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
22600         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
22601         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
22602         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
22603         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22604         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22605         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22606         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22607         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22608         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22609
22610 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22611
22612         * Combobox.cs:
22613                 - Draw focus on Simple Combobox
22614                 - Fixes drawing issues
22615                 - fixes 71834
22616
22617 2005-01-27  Peter Bartok  <pbartok@novell.com>
22618
22619         * Form.cs:
22620           - Place window in default location, instead of hardcoded 0/0
22621           - Send initial LocationChanged event
22622         * Control.cs:
22623           - UpdateBounds after creation to find out where the WM placed us
22624           - Make sure that if the ParentForm changes location the Form
22625             is notified
22626         * XplatUIX11.cs: XGetGeometry will not return the coords relative
22627             to the root, but to whatever the WM placed around us.
22628             Translate to root coordinates before returning toplevel
22629             coordinates
22630         * XplatUIWin32.cs: Removed debug output
22631         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
22632           flag to GetWindowPos, to allow translation of coordinates on X11
22633
22634 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22635
22636         * ListBox.cs: connect LostFocus Event
22637
22638 2005-01-27  Peter Bartok  <pbartok@novell.com>
22639
22640         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
22641           XplatUIX11.cs: Extended the Systray API
22642         * Form.cs: Removed debug output
22643         * Application.cs: Fixed focus assignment, always need to call
22644           XplatUI.Activate() since Form.Activate() has rules that may
22645           prevent activation
22646         * NotifyIcon.cs: Should be complete now
22647         * ToolTip.cs: Worked around possible timer bug
22648
22649 2005-01-27  Jackson Harper  <jackson@ximian.com>
22650
22651         * TabControl.cs:
22652         - Only invalidate the effected tabs when the
22653         selected index changes. This reduces drawing and gets rid of some
22654         flicker.
22655         - Only refresh if the tabs need to be shifted, otherwise only
22656         invalidate the slider button.
22657         - On windows the tabs are not filled to right if the slider is
22658         visible.
22659         
22660 2005-01-27  Jackson Harper  <jackson@ximian.com>
22661
22662         * TabControl.cs: Only refresh on mouseup if we are showing the
22663         slider. Also only invalidate the button whose state has changed.
22664
22665 2005-01-26  Peter Bartok  <pbartok@novell.com>
22666
22667         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
22668         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
22669           and SystrayRemove() methods
22670         * XplatUIOSX.cs: Stubbed Systray methods
22671         * XplatUIX11.cs:
22672           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
22673             methods
22674           - Fixed broken XChangeProperty calls (marshalling messed up things)
22675         * X11Structs.cs: Added enums and structs required for Size hinting
22676         * NotifyIcon.cs: Added & implemented
22677
22678 2005-01-26  Jackson Harper  <jackson@ximian.com>
22679
22680         * TabControl.cs: Space vertically layed out tabs properly.
22681
22682 2005-01-26  Peter Bartok  <pbartok@novell.com>
22683
22684         * Form.cs (CreateClientParams): Always set the location to 0,0
22685           since we're a child window.
22686
22687         * Control.cs (SetVisibleCore): Always explicitly setting the location
22688           of a toplevel window, apparently X11 doesn't like to move windows
22689           while they're not mapped.
22690
22691 2005-01-26  Jackson Harper  <jackson@ximian.com>
22692
22693         * TabControl.cs: Implement FillToRight size mode with vertically
22694         rendered tabs.
22695
22696 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22697
22698         * ControlPaint.cs, ThemeWin32Classic.cs
22699                 - Fixes DrawFocusRectangle
22700
22701 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22702
22703         * MenuAPI.cs:
22704                 - MenuBar tracking only starts when item is first clicked
22705                 - Fixes menu hidding for multiple subitems
22706                 - Unselect item in MenuBar when item Executed
22707                 - Fixes bug 71495
22708
22709 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
22710
22711         * ListControl.cs:
22712                 - IsInputKey for ListBox
22713         * ListBox.cs:
22714                 - Focus item
22715                 - Shift and Control item selection
22716                 - Implement SelectionMode.MultiExtended
22717                 - Fixes RightToLeft
22718         * ComboBox.cs:
22719                 - IsInputKey implemented
22720                 - Do not generate OnTextChangedEdit on internal txt changes
22721                 
22722 2005-01-23  Peter Bartok  <pbartok@novell.com>
22723
22724         * AccessibleObject.cs: Partially implemented Select()
22725         * MonthCalendar.cs: Added missing attributes and events
22726         * Form.cs: Fixed CreateParams behaviour, now controls derived from
22727           form can properly override CreateParams.
22728         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22729           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
22730           Control performs Invalidate & Update
22731         * NativeWindow (CreateHandle): Added special handling for Form
22732           and Form.FormParent classes to allow overriding of From.CreateParams
22733         * Control.cs:
22734           - ControlNativeWindow: Renamed 'control' variable to more intuitive
22735             name 'owner'
22736           - ControlNativeWindow: Added Owner property
22737           - Removed usage of Refresh() on property changes, changed into
22738             Invalidate(), we need to wait until the queue is processed for
22739             updates, direct calls might cause problems if not all vars for
22740             Paint are initialized
22741           - Added call to UpdateStyles() when creating the window, to set any
22742             styles that CreateWindow might have ignored.
22743           - Added support for Form CreateParent overrides to UpdateStyles()
22744         * MessageBox.cs: Removed no longer needed FormParent override stuff,
22745           CreateParams are now properly overridable
22746         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
22747           CreateParams are now properly overridable
22748
22749 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
22750
22751         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
22752         OnTextBoxChanged.
22753
22754         Capture LostFocus and OnTextBoxChanged.  The later introduces a
22755         recursive invocation that I have not figured out yet.
22756
22757         Reset the timer when not using (it was accumulating).
22758
22759
22760         (OnTextBoxChanged): Set UserEdit to true here to track whether the
22761         user has made changes that require validation.
22762
22763         Reset changing to avoid loops.
22764
22765 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
22766
22767         * NumericUpDown.cs: Display value at startup.
22768
22769         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
22770         ValidateEditText.
22771
22772         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
22773         filled in.  Added some basic parsing of text.
22774
22775         Still missing the OnXXX method overrides, and figuring out the
22776         events that must be emitted.
22777
22778         * UpDownBase.cs: Handle UserEdit on the Text property.
22779         
22780 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
22781
22782         * ComboBox.cs:
22783           - Fixes IntegralHeight
22784           - ToString method
22785
22786 2005-01-21  Jackson Harper  <jackson@ximian.com>
22787
22788         * TabControl.cs: Set the SelectedIndex property when SelectedTab
22789         is set so that the page visibility is updated and the tabs are
22790         sized correctly.
22791
22792 2005-01-21  Jackson Harper  <jackson@ximian.com>
22793
22794         * TabControl.cs: Use cliping rectangle for blitting. Give the
22795         theme the clipping rect so we can do clipping while
22796         drawing. Remove some debug code.
22797
22798 2005-01-21  Jackson Harper  <jackson@ximian.com>
22799
22800         * TabPage.cs: Add a new method so tab pages can force the tab
22801         control to recalculate the tab page sizes.
22802         * TabControl.cs: UpdateOwner needs to make the tab control recalc
22803         sizes.
22804
22805 2005-01-20  Jackson Harper  <jackson@ximian.com>
22806
22807         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
22808
22809 2005-01-20  Jackson Harper  <jackson@ximian.com>
22810
22811         * TreeView.cs: Set the bounds for nodes properly. They were
22812         getting screwed up when checkboxes were not enabled, but images
22813         were.
22814
22815 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
22816
22817         * ListBox.cs:
22818                 - Owner draw support
22819                 - Fixes
22820                 
22821 2005-01-20  Jackson Harper  <jackson@ximian.com>
22822
22823         * XplatUIStructs.cs: More misc keys
22824         * X11Keyboard.cs: Ignore some control keys.
22825
22826 2005-01-20  Jackson Harper  <jackson@ximian.com>
22827
22828         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
22829         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
22830
22831 2005-01-19  Peter Bartok  <pbartok@novell.com>
22832
22833         * Control.cs: Un-selecting the control when it is loosing focus
22834
22835 2005-01-19  Jackson Harper  <jackson@ximian.com>
22836
22837         * TreeView.cs: Hook up to the text controls leave event so we can
22838         end editing when the users clicks outside the text box.
22839         
22840 2005-01-19  Jackson Harper  <jackson@ximian.com>
22841
22842         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
22843         get set in the conversion array.
22844
22845 2005-01-19  Peter Bartok  <pbartok@novell.com>
22846
22847         * Application.cs (ModalRun): Added a call to CreateControl to ensure
22848           focus is properly set
22849         * Button.cs:
22850           - Added missing attributes
22851           - removed styles, those are already set in the base class
22852         * ButtonBase.cs:
22853           - Added missing attributes
22854           - Added clip window styles
22855         * CheckBox.cs: Added missing attributes
22856         * CommonDialog.cs:
22857           - FormParentWindow.CreateParams: Added required clip styles
22858         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
22859           also filters modifier keys
22860         * MessageBox.cs:
22861           - Added assignment of Accept and Cancel button to enable Enter
22862             and Esc keys in MessageBox dialogs
22863           - FormParentWindow.CreateParams: Added required clip styles
22864         * RadioButton.cs: Added missing attributes
22865         * TextControl.cs: No longer draws selection if control does not
22866           have focus
22867         * TextBoxBase.cs:
22868           - Now draws simple rectangle around test area to make it obvious
22869             there's a control. This is a hack until we properly support borders
22870           - A few simple fixes to support selections better, now erases selected
22871             text when typing, and resets selection when using movement keys
22872
22873 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
22874
22875         * UpDownBase.cs: Added some new properties.
22876
22877         * DomainUpDown.cs: Implement a lot to get my test working.
22878
22879 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22880
22881         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
22882
22883 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22884
22885         * OSXStructs (WindowAttributes): Fixed csc complaints
22886
22887 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22888
22889         * XplayUIOSX.cs:
22890           OSXStructs.cs: Initial refactor to move enums and consts into
22891           OSXStructs and use them in the driver for greater readability.
22892
22893 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22894
22895         * XplatUIOSX.cs: Initial support for Standard Cursors.
22896         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
22897
22898 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
22899
22900         * ComboBox.cs: ability to change style when the ctrl is already
22901         created, missing methods and events, bug fixes, signature fixes
22902
22903 2005-01-19  Peter Bartok  <pbartok@novell.com>
22904
22905         * Cursors.cs (ctor): Added ctor to fix signature
22906
22907 2005-01-18  Peter Bartok  <pbartok@novell.com>
22908
22909         * Button.cs: Implemented DoubleClick event
22910         * ButtonBase.cs:
22911           - Fixed keyboard handling to behave like MS, where the press of
22912             Spacebar is equivalent to a mousedown, and the key release is
22913             equivalent to mouseup. Now a spacebar push will give the same
22914             visual feedback like a mouse click.
22915           - Added missing attributes
22916           - Added ImeModeChanged event
22917           - Added support for generating DoubleClick event for derived classes
22918         * CheckBox.cs:
22919           - Implemented DoubleClick event
22920           - Added missing attributes
22921         * CommonDialog.cs: Added missing attribute
22922         * ContextMenu.cs: Added missing attributes
22923         * RadioButton.cs:
22924           - AutoChecked buttons do not allow to be unselected when clicked
22925             (otherwise we might end up with no selected buttons in a group)
22926           - Added missing attributes
22927           - Implemented DoubleClickEvent
22928         * ThreadExceptionDialog.cs: Enabled TextBox code
22929
22930 2005-01-18  Peter Bartok  <pbartok@novell.com>
22931
22932         * Form.cs: Removed debug output
22933         * Button.cs: Added support for DoubleClick method
22934
22935 2005-01-18  Peter Bartok  <pbartok@novell.com>
22936
22937         * Form.cs:
22938           - Added method to parent window that allows triggering size
22939             calculations when a menu is added/removed
22940           - set_Menu: Cleaned up mess from early days of Form and Control,
22941             now properly triggers a recalc when a menu is added/removed
22942           - Added case to select form itself as focused form if no child
22943             controls exist
22944           - Added PerformLayout call when showing dialog, to ensure properly
22945             placed controls
22946         * Control.cs:
22947           - Select(): Made internal so Form can access it
22948           - Focus(): Only call Xplat layer if required (avoids loop), and sets
22949             status
22950         * Application.cs (Run): Removed hack and calls PerformLayout instead
22951           to trigger calculation when Form becomes visible
22952
22953 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
22954
22955         * ComboBox.cs: fixes for ownerdraw
22956
22957 2005-01-18  Peter Bartok  <pbartok@novell.com>
22958
22959         * TextControl.cs:
22960           - Sentinel is no longer static, each Document gets it's own, this
22961             avoids locking or alternatively overwrite problems when more
22962             than one text control is used simultaneously.
22963           - Switched to use Hilight and HilightText brushes for text selection
22964
22965         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
22966
22967 2005-01-18  Peter Bartok  <pbartok@novell.com>
22968
22969         * Control.cs:
22970           - Hooked up the following events:
22971                 o ControlAdded
22972                 o ControlRemoved
22973                 o HandleDestroyed
22974                 o ImeModeChanged
22975                 o ParentChanged
22976                 o TabStopChanged
22977                 o Invalidated
22978                 o SystemColorsChanged
22979                 o ParentFontChanged
22980                 o Move
22981           - Removed debug output
22982           - Added a call to the current theme's ResetDefaults when a color change
22983             is detected
22984         * Form.cs: Now setting the proper ImeMode
22985         * Theme.cs: Defined a method to force recreation of cached resources
22986           and rereading of system defaults (ResetDefaults())
22987         * ThemeWin32Classic.cs: Added ResetDefaults() stub
22988
22989 2005-01-17  Peter Bartok  <pbartok@novell.com>
22990
22991         * Control.cs: Added missing attributes
22992
22993 2005-01-17  Jackson Harper  <jackson@ximian.com>
22994
22995         * TreeNode.cs: Implement editing. Add missing properties selected
22996         and visible.
22997         * TreeView.cs: Implement node editing. Also some fixes to use
22998         Invalidate (invalid area) instead of Refresh when selecting.
22999
23000 2005-01-17  Peter Bartok  <pbartok@novell.com>
23001
23002         * Control.cs:
23003           - Implemented InvokeGotFocus() method
23004           - Implemented InvokeLostFocus() method
23005           - Implemented InvokePaint() method
23006           - Implemented InvokePaintBackground() method
23007           - Implemented InvokeClick() method
23008           - Implemented FindForm() method
23009           - Implemented RectangleToClient() method
23010           - Implemented ClientToRectangle() method
23011           - Implemented ResetBackColor() method
23012           - Implemented ResetCursor() method
23013           - Implemented ResetFont() method
23014           - Implemented ResteForeColor() method
23015           - Implemented ResetImeMode() method
23016           - Implemented ResetLeftToRight() method
23017           - Implemented ResetText() method
23018           - Implemented Scale() methods
23019           - Implemented ScaleCore() method
23020           - Implemented Update() method
23021           - Removed unused variables
23022           - Stubbed AccessibilityNotifyClients and
23023             ControlAccessibleObject.NotifyClients() methods (dunno what to do
23024             with those yet)
23025           - Now setting proper default for RightToLeft property
23026           - Fixed bug in SetClientSizeCore that would cause windows to get
23027             really big
23028           - Now sending Click/DoubleClick events
23029           - Now selecting controls when left mouse button is clicked on
23030             selectable control
23031         * AccessibleEvents.cs: Added
23032         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
23033         * XplatUIOSX.cs: Stubbed UpdateWindow() method
23034         * XplatUIWin32.cs: Implemented UpdateWindow() method
23035         * XplatUIX11.cs: Implemented UpdateWindow() method
23036         * Form.cs: Removed stray semicolon causing CS0162 warning
23037         * ThemeWin32Classic.cs: Fixed unused variable warnings
23038         * ScrollableControl.cs: Now calls base method for ScaleCore
23039         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
23040           style to avoid interference with internal click handler (which is
23041           different than standard Control click handling)
23042         * RadioButton.cs:
23043           - Now unchecks all sibling radio buttons when control is
23044             selected (Fixes #68756)
23045           - Removed internal tabstop variable, using the one inherited from
23046             Control
23047
23048 2005-01-17  Jackson Harper  <jackson@ximian.com>
23049
23050         * NavigateEventArgs.cs: Fix base type.
23051         * LinkLabel.cs: Sig fix
23052         
23053 2005-01-17  Jackson Harper  <jackson@ximian.com>
23054
23055         * TreeView.cs: Only invalidate the effected nodes bounds when
23056         selecting nodes.
23057
23058 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23059
23060         * XplatUIWin32.cs: fixes Win32 marshaling
23061         * XplatUIX11.cs: fixes method signature
23062
23063 2005-01-17  Peter Bartok  <pbartok@novell.com>
23064
23065         * XplatUIX11.cs: Clean up resources when we no longer need them
23066
23067 2005-01-17  Peter Bartok  <pbartok@novell.com>
23068
23069         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
23070           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
23071           and DestroyCursor() methods.
23072         * Cursor.cs: Partially implemented, now supports standard cursors;
23073           still contains some debug code
23074         * Cursors.cs: Implemented class
23075         * Control.cs:
23076           - WndProc(): Added handling of WM_SETCURSOR message, setting the
23077             appropriate cursor
23078           - Implemented Cursor property
23079           - Replaced break; with return; more straightforwar and possibly
23080             faster
23081           - Now properly setting the result for WM_HELP
23082         * X11Structs.cs: Added CursorFontShape enum
23083         * XplatUIStructs.cs:
23084           - Added StdCursor enum (to support DefineStdCursor() method)
23085           - Added HitTest enum (to support sending WM_SETCURSOR message)
23086         * XplatUIX11.cs:
23087           - Now sends the WM_SETCURSOR message
23088           - Implemented new cursor methods
23089         * XplatUIOSX.cs: Stubbed new cursor methods
23090         * XplatUIWin32.cs:
23091           - Implemented new cursor methods
23092           - Added GetSystemMetrics function and associated enumeration
23093
23094 2005-01-15  Peter Bartok  <pbartok@novell.com>
23095
23096         * Control.cs:
23097           - WndProc(): Now handles EnableNotifyMessage
23098           - SelectNextControl(): Fixed bug where if no child or sibling
23099             controls exist we looped endlessly
23100
23101 2005-01-14  Jackson Harper  <jackson@ximian.com>
23102
23103         * TreeView.cs: Recalculate the tab pages when a new one is added
23104         so that the proper bounding rects are created.
23105
23106 2005-01-14  Jackson Harper  <jackson@ximian.com>
23107
23108         * TreeView.cs: Draw a gray box instead of a grip in the lower
23109         right hand corner when there are both horizontal and vertical
23110         scroll bars.
23111
23112 2005-01-14  Jackson Harper  <jackson@ximian.com>
23113
23114         * Control.cs: When erasing backgrounds use FromHwnd instead of
23115         FromHdc when there is a NULL wparam. This occurs on the X driver.
23116         * XplatUIX11.cs: Set the wparam to NULL.
23117
23118 2005-01-13  Jackson Harper  <jackson@ximian.com>
23119
23120         * PictureBox.cs: Implement missing methods (except ToString, need
23121         to test that on windows) and events. When visibility is changed we
23122         need to redraw the image because the buffers are killed. When size
23123         is changed refresh if the sizemode needs it.
23124
23125 2005-01-13  Peter Bartok  <pbartok@novell.com>
23126
23127         * Control.cs (SelectNextControl): Was using wrong method to select
23128           a control
23129
23130 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23131
23132         * ComboBox.cs: fixes dropstyle
23133
23134 2005-01-13  Peter Bartok  <pbartok@novell.com>
23135
23136         * Form.cs:
23137           - Implemented Select() override
23138           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
23139           - Now sets keyboard focus on startup
23140         * Control.cs (SelectNextControl): Now properly handles directed=true
23141         * TextBoxBase.cs:
23142           - WndProc: Now passes tab key on to base if AcceptTabChar=false
23143           - Added (really bad) focus rectangle (mostly for testing)
23144         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
23145           to enforce redraw on focus changes
23146         * ContainerControl.cs:
23147           - Fixed detection of Shift-Tab key presses
23148           - Fixed traversal with arrow keys
23149         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
23150           gonna keep this or if it's complete yet
23151         
23152 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23153
23154         * ComboBox.cs: missing properties, fixes
23155
23156 2005-01-13  Peter Bartok  <pbartok@novell.com>
23157
23158         * Panel.cs (ctor): Setting Selectable window style to off
23159         * Splitter.cs (ctor): Setting Selectable window style to off
23160         * GroupBox.cs (ctor): Setting Selectable window style to off
23161         * Label.cs (ctor): Setting Selectable window style to off
23162
23163 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
23164
23165         * UpDownBase.cs (InitTimer): If the timer has been already
23166         created, enable it.
23167
23168         Use a TextBox instead of a Label.
23169
23170 2005-01-12  Jackson Harper  <jackson@ximian.com>
23171
23172         * TreeView.cs: Refresh the tree after sorting the nodes. Always
23173         draw the connecting node lines (when ShowLines is true).
23174         * TreeNode.cs: The nodes index can now be updated. This is used
23175         when a node collection is sorted.
23176         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
23177         insert or an existing unsorted node collection can be sorted.
23178         
23179 2005-01-12  Peter Bartok  <pbartok@novell.com>
23180
23181         * ContainerControl.cs: Implemented ProcessDialogKeys()
23182
23183 2005-01-12  Peter Bartok  <pbartok@novell.com>
23184
23185         * Control.cs:
23186           - Implemented SelectNextControl() method
23187           - Several focus related bug fixes
23188           - Fixed Docking calculations to match MS documentation and
23189             behaviour
23190
23191 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
23192
23193         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
23194         bug fixes
23195
23196 2005-01-12  Peter Bartok  <pbartok@novell.com>
23197
23198         * Control.cs:
23199           - Fixed broken Contains() method
23200           - Implemented GetNextControl() method. Finally. This is the pre-
23201             requisite for focus handling.
23202
23203 2005-01-12  Peter Bartok  <pbartok@novell.com>
23204
23205         * OSXStrucs.cs: Added
23206
23207 2005-01-12  Peter Bartok  <pbartok@novell.com>
23208
23209         * XplatUIWin32.cs:
23210           - Removed PeekMessageFlags
23211           - Implemented SetWindowStyle() method
23212         * XplatUIStructs.cs: Added PeekMessageFlags
23213         * X11Structs: Added missing border_width field to XWindowChanges struct
23214         * XplatUIX11.cs:
23215           - PeekMessage: Now throws exception if flags which are not yet
23216             supported are passed
23217           - Implemented SetWindowStyle() method
23218           - Fixed SetZOrder to handle AfterHwnd properly
23219         * XplatUI.cs: Added SetWindowStyle() method
23220         * XplatUIDriver.cs: Added SetWindowStyle() abstract
23221         * Control.cs:
23222           - Implemented UpdateStyles() method
23223           - Implemented UpdateZOrder() method
23224         * XplatUIOSX.cs: Added SetWindowStyle() stub
23225
23226 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
23227
23228         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
23229         button mouse).
23230
23231
23232 2005-01-11  Jackson Harper  <jackson@ximian.com>
23233
23234         * TreeView.cs: Still need to draw lines to siblings even if out of
23235         the current node is out of the clip.
23236
23237 2005-01-11  Jackson Harper  <jackson@ximian.com>
23238
23239         * TreeView.cs: When setting the hbar/vbar/grip position use
23240         SetBounds so that perform layout is only called once. Also suspend
23241         and resume layout so layout is only done once for all controls.
23242         - Removed some debug fluff
23243         * SizeGrip.cs: Call base implmentation in overriding methods.
23244         - When visibility is changed the drawing buffers are killed so we
23245         need to redraw.
23246
23247 2005-01-11  Jackson Harper  <jackson@ximian.com>
23248
23249         * TreeView.cs: Calculate the open node count while drawing. This
23250         saves us an entire tree traversal for every paint operation. Use
23251         a member var for the open node count so less vars are passed around.
23252
23253 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
23254
23255         * MonthCalendar.cs:
23256         - fixed selection to use mousemove, not mouse polling on timer
23257         * ThemeWin32Classic.cs
23258         - removed redundant unused variable "no_more_content"
23259         
23260 2005-01-11  Peter Bartok  <pbartok@novell.com>
23261
23262         * XplatUIX11.cs (DoEvents): Needs to return when no more events
23263           are pending, so it now calls PeekMessage instead of GetMessage;
23264           implemented a incomplete version of PeekMessage
23265         
23266 2005-01-11  Peter Bartok  <pbartok@novell.com>
23267
23268         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
23269           I18n issues
23270         * TextBoxBase.cs: Added sending of TextChanged event
23271
23272 2005-01-10  Jackson Harper  <jackson@ximian.com>
23273
23274         * TreeView.cs: Try not to draw outside the clipping rectangle on
23275         each node element.
23276
23277 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
23278
23279         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
23280
23281 2005-01-10  Jackson Harper  <jackson@ximian.com>
23282
23283         * TreeView.cs:
23284         - Implement fast scrolling. Now only the newly
23285         exposed nodes are drawn and the old image is moved using the
23286         XplatUI::ScrollWindow method.
23287         - Factor in height of nodes when calculating whether or not the
23288         node is in the clipping rect.
23289
23290 2005-01-10  Jackson Harper  <jackson@ximian.com>
23291
23292         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
23293
23294 2005-01-10  Peter Bartok  <pbartok@novell.com>
23295
23296         * Application.cs: Added temporary hack to resolve all our resize
23297           required issues on startup. This will get fixed properly at
23298           some point in the future
23299
23300 2005-01-10  Jackson Harper  <jackson@ximian.com>
23301
23302         * SizeGrip.cs: New internal class that is used as a sizing
23303         grip control...hence the name.
23304
23305 2005-01-10  Peter Bartok  <pbartok@novell.com>
23306
23307         * Control.cs: Implemented proper TabIndex handling, now assigning
23308           a tabindex when a control is added to a container
23309         * GroupBox.cs (ctor): Now sets the Container style bit, required
23310           for Control.GetNextControl()
23311
23312 2005-01-09  Jackson Harper  <jackson@ximian.com>
23313
23314         * TextBoxBase.cs: Clear window when scrolling (fixes build).
23315
23316 2005-01-09  Peter Bartok <pbartok@novell.com>
23317
23318         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
23319           XplatUIX11.cs: Added ability to control ScrollWindow expose and
23320           an overload for ScrollWindow to allow only scrolling a rectangle
23321
23322 2005-01-09  Peter Bartok <pbartok@novell.com>
23323
23324         * Form.cs:
23325           - Implemented SetDesktopBounds method
23326           - Implemented SetDesktopLocation method
23327
23328 2005-01-08  Jackson Harper  <jackson@ximian.com>
23329
23330         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
23331         the node count has changed, this removes to VScroll::Refresh calls
23332         when drawing.
23333
23334 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
23335
23336         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
23337
23338 2005-01-07  Jackson Harper  <jackson@ximian.com>
23339
23340         * TreeNode.cs: Just update the single node when it is
23341         checked. Don't refresh after toggling, the Expand/Collapse already
23342         handles this.
23343         * TreeView.cs: Respect clipping a little more when drawing. Try
23344         not to redraw things that don't need to be redrawn. Just hide the
23345         scrollbars when they are no longer needed instead of removing
23346         them, so they don't have to be created again and again.
23347         
23348 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
23349
23350         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
23351         coordinates to window space to place the caret properly, FIXED.
23352         Implement GetWindowState & SetWindowState
23353
23354 2005-01-06  Peter Bartok <pbartok@novell.com>
23355
23356         * Form.cs:
23357           - Implemented ClientSize property
23358           - Implemented DesktopBounds property
23359           - Implemented DesktopLocation property
23360           - Implemented IsRestrictedWindow property
23361           - Implemented Size property
23362           - Implemented TopLevel property
23363           - Implemented FormWindowState property
23364         * Control.cs:
23365           - Implemented GetTopLevel() method
23366           - Implemented SetTopLevel() method
23367         * X11Structs.cs (Atom):
23368           - Added AnyPropertyType definition
23369           - Added MapState definiton and updated XWindowAttribute struct
23370         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
23371         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
23372         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
23373         * XplatUIWin32.cs:
23374           - Implemented GetWindowState() and SetWindowState() methods
23375           - Fixed Win32GetWindowLong return type
23376         * XplatUIX11.cs:
23377           - Introduced central function for sending NET_WM messages
23378           - Implemented GetWindowState() and SetWindowState() methods
23379         * TextBoxBase.cs (set_Lines):
23380           - Now uses Foreground color for text added via Text property (Duh!)
23381           - Added code to remember programmatically requested size (fixes
23382             behaviour when Multiline is set after Size)
23383           - Added AutoSize logic
23384
23385 2005-01-06  Jackson Harper  <jackson@ximian.com>
23386
23387         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
23388
23389 2005-01-06  Jackson Harper  <jackson@ximian.com>
23390
23391         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
23392         set to less then 0.
23393
23394 2005-01-06  Jackson Harper  <jackson@ximian.com>
23395
23396         * ScrollableControl.cs: Lazy init the scrollbars.
23397         
23398 2005-01-06  Jackson Harper  <jackson@ximian.com>
23399
23400         * Theme.cs: Speed up getting pens and solid brushes, by using
23401         their ARGB as a hash instead of tostring and not calling Contains.
23402
23403 2005-01-06  Peter Bartok <pbartok@novell.com>
23404
23405         * Form.cs:
23406           - Implemented OnActivated and OnDeactivate event trigger
23407           - Implemented Activate() method
23408           - Fixed ShowDialog() to activate the form that was active before
23409             the dialog was shown
23410         * XplatUIX11.cs:
23411           - Added global active_window var that tracks the currently active
23412             X11 window
23413           - Now always grabs Property changes from the root window to always
23414             catch changes on the active window property
23415           - Added code to PropertyNotify handler to send Active/Inactive
23416             messages when state changes. This puts X11 and Win32 en par on
23417             WM_ACTIVATE notifications (except for double notifications when
23418             the user clicks away from our modal window to another one of our
23419             windows)
23420
23421 2005-01-05  Jackson Harper  <jackson@ximian.com>
23422
23423         * ImageList.cs: Implment ctor
23424
23425 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23426
23427         * XplatUIOSX.cs: Implement Activate/SetTopmost
23428
23429 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23430
23431         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
23432
23433 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23434
23435         * XplatUIOSX.cs: Implement GetActive/SetFocus.
23436
23437 2005-01-05  Peter Bartok <pbartok@novell.com>
23438
23439         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
23440           XplatUIOSX.cs: Added GetActive method to return the currently
23441           active window for the application (or null, if none is active)
23442         * Form.cs:
23443           - Implemented ActiveForm
23444           - Commented out owner assignment for modal dialogs (causes problems
23445             on Win32, since the owner will be disabled)
23446           - Reworked some Active/Focus handling (still incomplete)
23447         * CommonDialog.cs: Commented out owner assignment for modal dialogs
23448           (causes problems on Win32, since the owner will be disabled)
23449         * IWin32Window: Added ComVisible attribute
23450
23451 2005-01-05  Peter Bartok <pbartok@novell.com>
23452
23453         * ToolTip.cs (WndProc): Enable setting focus now that we have the
23454           required XplatUI functions.
23455
23456 2005-01-05  Peter Bartok <pbartok@novell.com>
23457
23458         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
23459           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
23460           to implement focus and activation handling; still incomplete and
23461           with debug output
23462
23463 2005-01-04  Peter Bartok <pbartok@novell.com>
23464
23465         * TextBoxBase.cs: Changed access level for Document property to
23466           match switch to internal for TextControl
23467
23468 2005-01-04  Peter Bartok <pbartok@novell.com>
23469
23470         * AccessibleObject: Added ComVisible attribute
23471
23472 2005-01-04  Jackson Harper  <jackson@ximian.com>
23473
23474         * X11Keyboard.cs: Remove unneeded var.
23475
23476 2005-01-04  Jackson Harper  <jackson@ximian.com>
23477
23478         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
23479         but PAINT.
23480         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
23481         ClientMessage. This makes apps exit cleanly (more often).
23482         
23483 2005-01-04  Jackson Harper  <jackson@ximian.com>
23484
23485         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
23486         handling focus, return correct colors and fonts,
23487         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
23488         handle selection, horizontal scrolling, and mouse interaction.
23489
23490 2005-01-04  Peter Bartok <pbartok@novell.com>
23491
23492         * ICommandExecutor.cs: Added
23493         * IDataGridColumnStyleEditingNotificationService.cs: Added
23494         * IFeatureSupport.cs: Added
23495         * IFileReaderService.cs: Added
23496         * IDataObject.cs: Added ComVisible attribute
23497         * AmbientProperties.cs: Added
23498         * BaseCollection.cs: Added missing attributes
23499         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
23500         * BaseCollection.cs: Added missing attributes
23501         * Binding.cs: Added TypeConverter attribute
23502         * BindingContext.cs: Added DefaultEvent attribute
23503         * BindingsCollection.cs: Added DefaultEvent attribute
23504         * Button.cs: Added DefaultValue attribute
23505         * DragEventArgs.cs: Added ComVisible attribute
23506         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
23507         * KeyEventArgs.cs: Added ComVisible attribute
23508         * KeyPressEventArgs.cs: Added ComVisible attribute
23509         * MouseEventArgs.cs: Added ComVisible attribute
23510         * NavigateEventArgs.cs: Added
23511         * NavigateEventHandler.cs: Added
23512         * FeatureSupport.cs: Added
23513         * OSFeature.cs: Added
23514         * Theme.cs: Added abstract Version property to support OSFeature
23515         * ThemeWin32Classic.cs: Added Version property to
23516           support OSFeature.Themes
23517         * ProgressBar.cs: Removed OnPaintBackground override, not required since
23518           the proper styles to avoid background drawing are set, also doesn't
23519           match MS signature
23520         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
23521         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
23522         * ScrollEventArgs.cs: Added ComVisible attribute
23523         * SplitterEventArgs.cs: Added ComVisible attribute
23524         * AccessibleSelection.cs: Added Flags attribute
23525         * Appearance.cs: Added ComVisible attribute
23526         * Border3DSide.cs: Added ComVisible attribute
23527         * Border3DStyle.cs: Added ComVisible attribute
23528         * BorderStyle.cs: Added ComVisible attribute
23529         * DragAction.cs: Added ComVisible attribute
23530         * ErrorBlinkStyle.cs: Added
23531         * ScrollEventType.cs: Added ComVisible attribute
23532         * AnchorStyles.cs: Added Editor attribute
23533         * DockStyle.cs: Added Editor attribute
23534         * HorizontalAlignment.cs: Added ComVisible attribute
23535         * HelpEventArgs.cs: Added ComVisible attribute
23536         * PaintEventArgs.cs: Added IDisposable
23537
23538 2005-01-04  Peter Bartok <pbartok@novell.com>
23539
23540         * TextControl.cs: Switched Line, LineTag and Document classes to
23541           internal
23542
23543 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23544
23545         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
23546         Simple mode, fixes, IntegralHeight, etc.
23547
23548 2005-01-04  Peter Bartok <pbartok@novell.com>
23549
23550         * TextBoxBase.cs: Using proper font variable now
23551
23552 2005-01-04  Peter Bartok <pbartok@novell.com>
23553
23554         * Form.cs (ShowDialog): Set parent to owner, if provided
23555         * GroupBox.cs: Removed unused vars
23556         * TextControl.cs:
23557           - Added GetHashCode() for Document and LineTag classes
23558           - Removed unused variables
23559           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
23560             to allow translation between continuous char position and line/pos
23561         * CheckBox.cs: Removed vars that are provided by base class
23562         * RadioButton.cs: Removed vars that are provided by base class, added
23563           new keyword where required
23564         * LinkLabel.cs: Added new keyword where required
23565         * Control.cs (WndProc): Removed unused variable
23566         * TextBoxBase.cs:
23567           - Finished SelectionLength property
23568           - Implemented SelectionStart property
23569           - Implemented Text property
23570           - Removed unused vars
23571         * MessageBox.cs: Added new keyword where required
23572         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
23573           WndProc signature
23574         * MenuAPI.cs: Added new keyword where required
23575         * ButtonBase.cs: Removed vars that are provided by base class, added
23576           new keyword where required
23577         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
23578           argument to double, to allow compiling with csc 2.0 (Atsushi ran
23579           into this)
23580         * Application.cs (Run): Now triggers the ThreadExit event
23581         * CommonDialog.cs: Added new keyword where required; now properly sets
23582           parent (owner) for dialog
23583         * XplatUIX11.cs: Commented out unused vars
23584         * StatusBar.cs: Fixed signature for Text property
23585         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
23586
23587 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23588
23589         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
23590         TrackBar.cs, MonthCalendar.cs: remove unused vars
23591
23592 2005-01-03  Jackson Harper  <jackson@ximian.com>
23593
23594         * ThemeWin32Classic.cs:
23595         * X11Keyboard.cs: Remove unused vars.
23596
23597 2005-01-03  Peter Bartok  <pbartok@novell.com>
23598
23599         * TextBox.cs:
23600           - set_Text: Tied into TextControl
23601           - set_TextAlignment: Tied into TextControl
23602         * TextControl.cs:
23603           - Added alignment properties and implemented alignment handling
23604             and drawing (still has a bug, not generating proper expose events)
23605           - Added new Line() constructor to allow passing the line alignment
23606           - Fixed selection setting, properly handling end<start now
23607           - Added aligment considerations to RecalculateDocument()
23608         * TextBoxBase.cs:
23609           - Now properly enforces control height for single line controls
23610           - Added support for CharacterCasing
23611           - Added IsInputKey override
23612           - Fixed Keys.Enter logic
23613           - Added SetBoundsCore override
23614           - Fixed mouse selection handling
23615
23616 2005-01-03  Jackson Harper  <jackson@ximian.com>
23617
23618         * TreeView.cs:
23619           - Collapse and uncheck all nodes when CheckBoxes is disabled.
23620           - Checkboxes are always aligned to the bottom of the node,
23621           regardless of item height.
23622           - Use the node bounds to draw the text so we can center it when
23623           the item height is greater then the font height.
23624           - Node::Bounds are only the text part of the node.
23625         * TreeNode.cs: New method to combine collapsing and unchecking all
23626           nodes recursively.
23627
23628 2005-01-02  Jackson Harper  <jackson@ximian.com>
23629
23630         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
23631         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
23632         tree when a check is changed. TODO: Only refresh the checked node.
23633
23634 2004-12-30  Jackson Harper  <jackson@ximian.com>
23635
23636         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
23637         * TreeNode.cs: When collapsing make sure to never collapse the
23638         root node.
23639
23640 2004-12-29  Jackson Harper  <jackson@ximian.com>
23641
23642         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
23643         
23644 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
23645
23646         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
23647
23648 2004-12-28  Peter Bartok  <pbartok@novell.com>
23649
23650         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
23651           not yet assigned
23652
23653 2004-12-28  Peter Bartok  <pbartok@novell.com>
23654
23655         * Control.cs (WndProc): Added WM_HELP handler, now generates
23656           HelpRequested event
23657         * Form.cs: Added HelpButton property and required support code
23658         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
23659
23660 2004-12-28  Peter Bartok  <pbartok@novell.com>
23661
23662         * CommonDialog.cs:
23663           - Made DialogForm.owner variable internal
23664           - Added check to ensure owner form is set before setting
23665             owner properties in CreateParams
23666
23667 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
23668
23669         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
23670           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
23671           GetCursorPos.  Fix major visibility issues.  Rework the windowing
23672           system to support borderless/titleless windows (implements menus).
23673           Fix GetWindowPos.  Implement initial background color support for
23674           views.
23675
23676 2004-12-28  Peter Bartok  <pbartok@novell.com>
23677
23678         * Form.cs (get_CreateParams): Make sure we have an owner before using
23679           the owner variable. Implement proper default if no owner exists
23680
23681 2004-12-28  Peter Bartok  <pbartok@novell.com>
23682
23683         * In preparation for making Managed.Windows.Forms the default build target
23684           for System.Windows.Forms, the following stubbed files were added.
23685           Dialogs are currently being implemented by contributors and are only
23686           short-term place holders.
23687         * ColorDialog.cs: Initial check-in (minmal stub)
23688         * DataGrid.cs: Initial check-in (minimal stub)
23689         * DataGridLineStyle.cs: Initial check-in (minimal stub)
23690         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
23691         * DataGridTableStyle.cs: Initial check-in (minimal stub)
23692         * FontDialog.cs: Initial check-in (minimal stub)
23693         * FileDialog.cs: Initial check-in (minimal stub)
23694         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
23695         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
23696         * OpenFileDialog: Initial check-in (minimal stub)
23697         * IComponentEditorPageSite.cs: Initial check-in
23698         * Splitter.cs: Initial check-in (for Jackson)
23699         * SplitterEventArgs.cs: Initial check-in (for Jackson)
23700         * SplitterEventHandler.cs: Initial check-in (for Jackson)
23701         * TextBox.cs: Initial check-in; still needs some wiring to
23702           TextControl backend
23703         * Form.cs: Implemented ControlBox property
23704         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
23705         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
23706         * TextControl.cs: Added selection functionality; added todo header
23707         * TextBoxBase.cs:
23708           - Implemented Lines property
23709           - Implemented TextHeight property
23710           - Implemented SelectedText property
23711           - Implemented SelectionLength property
23712           - Implemented SelectAll method
23713           - Implemented ToString method
23714           - Removed and cleaned up some debug code
23715           - Implemented (still buggy) mouse text selection
23716
23717 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
23718
23719         * ComboBox.cs: Complete DropDownList implementation, fixes.
23720
23721 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
23722
23723         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
23724         * ComboBoxStyle.cs: ComboBoxStyle enum
23725         * ComboBox.cs: Initial work on ComboBox control
23726
23727 2004-12-21  Peter Bartok  <pbartok@novell.com>
23728
23729         * Control.cs (ctor, CreateParams): Moved setting of is_visible
23730           forward so that anything that creates a window gets the default,
23731           also no longer uses Visible property in CreateParams to avoid
23732           walking up the parent chain and possibly get the wrong visible
23733           status. Fixed IsVisible to no longer walk up to the parent.
23734
23735 2004-12-21  Peter Bartok  <pbartok@novell.com>
23736
23737         * Form.cs (ShowDialog): Unset modality for the proper window
23738  
23739 2004-12-20  Peter Bartok  <pbartok@novell.com>
23740
23741         * CommonDialog.cs: Initial check-in
23742
23743 2004-12-20  Peter Bartok  <pbartok@novell.com>
23744
23745         * Control.cs (Visible): Now uses the parent window instead of the
23746           client area window for the property
23747
23748         * Form.cs
23749           - ShowDialog(): Now uses the proper window for modality
23750           - The default visibility state for the form parent is now false. This
23751             will prevent the user from seeing all the changes to the form and
23752             its controls before the application hits Application.Run()
23753           - Removed some stale commented out code
23754
23755         * NativeWindow.cs:
23756           - Added FindWindow() method to have a method to check for existence
23757             of a window handle
23758           - Added ability to override default exception handling (for example
23759             when debugging with VS.Net; to do this the ExternalExceptionHandler
23760             define must be set
23761           - Removed some useless debug output
23762
23763         * XplatUIX11.cs:
23764           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
23765             not working as expected
23766           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
23767             property to allow switching back to the modal window if focus is
23768             given to another one of our windows (Application Modal)
23769           - Now only sets override_redirect if we create a window
23770             without WS_CAPTION
23771           - Moved EventMask selection before mapping of newly created window
23772             so we can catch the map event as well
23773           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
23774           - Added various Atom related DllImports
23775           - Implemented Exit() method
23776           - .ctor() : No longer shows window if WS_VISIBLE is not defined
23777             in the CreateParams
23778
23779         * MessageBox.cs: Now properly deals with the FormParent window by
23780           providing an override the FormParent CreateParams property to
23781           set as POPUP instead of OVERLAPPED window.
23782
23783 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23784
23785         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
23786         Minor code cleanup.
23787
23788 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23789         
23790         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
23791
23792 2004-12-18  Peter Bartok  <pbartok@novell.com>
23793
23794         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
23795           implementing SetModal() method
23796
23797 2004-12-18  Peter Bartok  <pbartok@novell.com>
23798
23799         * X11Structs.cs (XGCValues): Fixed type of function element
23800         * XplatUI.cs: Added ScrollWindow() method
23801         * XplatUIDriver.cs: Added ScrollWindow() abstract
23802         * XplatUIWin32.cs: Implemented ScrollWindow() method
23803         * XplatUIX11.cs: Implemented ScrollWindow() method
23804         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
23805
23806 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23807
23808         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
23809         Some more keyboard support (INCOMPLETE)
23810
23811 2004-12-17  Peter Bartok  <pbartok@novell.com>
23812
23813         * TextControl.cs:
23814         - Added color attribute to line tags.
23815         - Added color argument to all functions dealing with tags
23816         - Added color argument support to various functions
23817         - Fixed miss-calculation of baseline/shift in certain circumstances
23818
23819         * TextBoxBase.cs: Added new color option to test code
23820
23821 2004-12-17  Jackson Harper  <jackson@ximian.com>
23822
23823         * TreeNode.cs:
23824         * MonthCalendar.cs: Signature fixes
23825
23826 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23827
23828         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
23829         keyboard event moved it.  Create a new graphics context for each paint resolves this
23830
23831 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23832
23833         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
23834         Make caret exist and go blink blink.  Initial keyboard support.
23835         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
23836         works.
23837
23838 2004-12-17  Jackson Harper  <jackson@ximian.com>
23839
23840         * XplatUIStructs.cs: Updated set of virtual keycodes.
23841         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
23842
23843 2004-12-17  Jackson Harper  <jackson@ximian.com>
23844
23845         * XplatUIX11.cs: Prune old keyboard code.
23846
23847 2004-12-17  Jackson Harper  <jackson@ximian.com>
23848
23849         * XplatUIX11.cs: When generating mouse wparams get the modifier
23850         keys from the ModifierKeys property.
23851
23852 2004-12-17  Jackson Harper  <jackson@ximian.com>
23853
23854         * X11Keyboard.cs: Send up/down input when generating
23855         messages. Remove some unused vars.
23856
23857 2004-12-17  Jackson Harper  <jackson@ximian.com>
23858
23859         * TabControl.cs:
23860         * TreeView.cs: get rid of warnings.
23861
23862 2004-12-17  Jackson Harper  <jackson@ximian.com>
23863
23864         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
23865
23866 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
23867
23868         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
23869           CheckedListBox.cs: Implementation
23870
23871 2004-12-17  Peter Bartok  <pbartok@novell.com>
23872
23873         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
23874
23875 2004-12-16  Peter Bartok  <pbartok@novell.com>
23876
23877         * TextControl.cs:
23878           - InsertCharAtCaret(): Fixed start pos fixup
23879           - CaretLine_get: No longer derives the line from the tag, the tag
23880             could be stale if lines in the document have been added or deleted
23881           - RebalanceAfterDelete(): Fixed bug in balancing code
23882           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
23883           - Line.Streamline(): Now can also elminate leading empty tags
23884           - DumpTree(): Added a few more tests and prevented exception on
23885             uninitialized data
23886           - Added Debug section for Combining lines
23887           - Delete(): Now copies all remaining properties of a line
23888           
23889         * TextBoxBase.cs:
23890           - Left mousebutton now sets the caret (and middle button still acts
23891             as formatting tester, which must go away soon)
23892           - Added Debug section for Deleting/Combining lines
23893           - Fixed calculations for UpdateView after Combining lines
23894
23895 2004-12-16  Peter Bartok  <pbartok@novell.com>
23896
23897         * TextControl.cs: Now properly aligns text on a baseline, using the
23898           new XplatUI.GetFontMetrics() method. Simplified several calculations
23899         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
23900           defined
23901
23902 2004-12-16  Peter Bartok  <pbartok@novell.com>
23903
23904         * XplatUI.cs: Added GetFontMetrics() method
23905         * XplatUIDriver.cs: Added GetFontMetrics() abstract
23906         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
23907           into libgdiplus, our private GetFontMetrics function
23908         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
23909         * XplatUIWin32.cs: Implemented GetFontMetrics() method
23910
23911 2004-12-16  Jackson Harper  <jackson@ximain.com>
23912
23913         * XplatUIStruct.cs: Add enum for dead keys
23914         * X11Keyboard.cs: Map and unmap dead keys.
23915
23916 2004-12-16  Jackson Harper  <jackson@ximian.com>
23917
23918         * X11Keyboard.cs: Detect and use the num lock mask.
23919
23920 2004-12-16  Peter Bartok  <pbartok@novell.com>
23921
23922         * Control.cs (CreateGraphics): Added check to make sure the
23923           handle of the window exists before calling Graphics.FromHwnd()
23924
23925 2004-12-16  Peter Bartok  <pbartok@novell.com>
23926
23927         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
23928           contains a lot of code that's not supposed to be there for the
23929           real thing, but required for developing/testing the textbox
23930           backend.
23931
23932 2004-12-16  Peter Bartok  <pbartok@novell.com>
23933
23934         * TextControl.cs:
23935         - Fixed Streamline method
23936         - Added FindTag method to Line
23937         - Added DumpTree method for debugging
23938         - Added DecrementLines() method for deleting lines
23939         - Fixed UpdateView to update the cursor to end-of-line on single-line
23940           updates
23941         - Added PositionCaret() method
23942         - Fixed MoveCaret(LineDown) to move into the last line, too
23943         - Added InsertChar overload
23944         - Fixed InsertChar tag offset calculations
23945         - Added DeleteChar() method
23946         - Added Combine() method for folding lines
23947         - Fixed Delete() method, no longer allocates wasted Line object and
23948           now copies all properties when swapping nodes
23949         - Delete() method now updates document line counter
23950
23951 2004-12-15  Jackson Harper  <jackson@ximian.com>
23952
23953         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
23954         * X11Keyboard.cs: Expose the currently selected modifier keys
23955         through a property.
23956
23957 2004-12-15  Peter Bartok  <pbartok@novell.com>
23958
23959         * TextControl.cs: Initial check-in. Still incomplete
23960
23961 2004-12-15  Jackson Harper  <jackson@ximian.com>
23962
23963         * TreeNode.cs:
23964         * TreeView.cs: Fix build on csc (second time today ;-))
23965
23966 2004-12-15  Jackson Harper  <jackson@ximian.com>
23967
23968         * TreeView.cs: Store the treenodes plus/minus box bounds when it
23969         is calculated and use this for click testing.
23970         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
23971
23972 2004-12-15  Jackson Harper  <jackson@ximian.com>
23973
23974         * TreeView.cs: Pass the nodes image index to the image list when
23975         drawing that image.
23976
23977 2004-12-15  Jackson Harper  <jackson@ximian.com>
23978
23979         * X11Keyboard.cs: Set messages hwnd.
23980         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
23981         post_message calls.
23982
23983 2004-12-15  Jackson Harper  <jackson@ximian.com>
23984
23985         * X11Keyboard.cs: Fix to compile with csc.
23986         
23987 2004-12-15  Jackson Harper  <jackson@ximian.com>
23988
23989         * X11Structs.cs: Add key mask values
23990         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
23991         * X11Keyboard.cs: New file - Extrapolates and interpolates key
23992         down/up foo into WM_CHAR foo
23993         * KeyboardLayouts.cs: Common keyboard layouts
23994         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
23995         post messages into the main queue.
23996
23997 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
23998
23999         * Button.cs: implement ProcessMnemonic
24000         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
24001           brushes everytime
24002         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
24003         * ButtonBase.cs: Show HotkeyPrefix (not the &)
24004
24005 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
24006         
24007         * MonthCalendar.cs: Implemented click-hold for next/previous month
24008           and date selection
24009           
24010 2004-12-11  Peter Bartok  <pbartok@novell.com>
24011
24012         * X11Structs.cs:
24013           - Added XKeyboardState (moved from XplatUIX11.cs)
24014           - Added XCreateGC related enums and structures
24015           - Added GXFunction for XSetFunction
24016
24017         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
24018
24019         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
24020           CaretVisible() calls
24021
24022         * ToolTip.cs: Added code to prevent stealing focus from app windows
24023
24024         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
24025           DestroyCaret, SetCaretPos and CaretVisible)
24026
24027         * XplatUIX11.cs:
24028           - Added implementation for caret functions
24029           - Moved hover variables into a struct, to make it a bit easier
24030             on the eyes and to debug
24031           - Removed XKeyboardState (moved to XplatUIX11.cs)
24032           - Moved Keyboard properties into the properties region
24033
24034         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
24035           call to get a graphics context for our control
24036
24037         * XplatUIOSX.cs: Added empty overrides for the new caret functions
24038
24039         * TreeView.cs: Fixed bug. No matter what color was set it would always
24040           return SystemColors.Window
24041
24042         * XplatUIWin32.cs: Implemented caret overrides
24043
24044 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
24045
24046         * ListBox.cs: fire events, implement missing methods and properties,
24047         sorting.
24048
24049 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
24050
24051         * MonthCalendar.cs: invalidation bug fixing
24052         * ThemeWin32Classic.cs: paint fixing
24053
24054 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
24055
24056         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
24057         prepare the CGContextRef there now.
24058
24059 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
24060
24061         * MonthCalendar.cs:
24062           - optimisationL only invalidate areas that have changed
24063         * ThemeWin32Classic.cs:
24064           - only paint parts that intersect with clip_area
24065
24066 2004-12-09  Peter Bartok  <pbartok@novell.com>
24067
24068         * Application.cs: Undid changes from r37004 which cause problems
24069         on X11
24070
24071 2004-12-09  Ravindra  <rkumar@novell.com>
24072
24073         * ToolBar.cs: Added support for displaying ContextMenu
24074         attached to a button on ToolBar.
24075         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
24076         property.
24077
24078 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24079
24080         * Label.cs: autosize works in text change and removes unnecessary
24081         invalidate
24082
24083 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24084
24085         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
24086         remove warnings
24087
24088 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
24089
24090         * XplatUIOSX.cs: Added mouse move/click/grab support
24091         Remove some debugging WriteLines not needed anymore.
24092         Add window resizing/positioning.
24093         Fix visibility on reparenting.
24094
24095 2004-12-08  Peter Bartok  <pbartok@novell.com>
24096
24097         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
24098
24099 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
24100
24101         * XplatUIOSX.cs: Initial checkin
24102         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
24103
24104 2004-12-03  Ravindra <rkumar@novell.com>
24105
24106         * ListView.cs: Added some keybindings and fixed scrolling.
24107         ScrollBars listen to ValueChanged event instead of Scroll
24108         Event. This would let us take care of all changes being
24109         done in the scrollbars' values programmatically or manually.
24110         * ListView.cs (CanMultiselect): Added a check for shift key.
24111         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
24112         * ListViewItem.cs (Clone): Fixed. We need to make a copy
24113         of ListViewSubItemCollection as well.
24114
24115 2004-12-06  Peter Bartok <pbartok@novell.com>
24116
24117         * Control.cs (Parent): Added check and exception to prevent
24118         circular parenting
24119
24120 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
24121
24122         * ListBox.cs: implemented clipping, selection single and multiple,
24123         bug fixing
24124
24125 2004-12-03  Ravindra <rkumar@novell.com>
24126
24127         * ListView.cs (ListView_KeyDown):
24128         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
24129         when CTRL key is pressed.
24130         * ListViewItem.cs (Selected): Fixed setting the property.
24131
24132 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24133
24134         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
24135
24136         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
24137         MinimizeBox, ShowInTaskbar, TopMost properties.
24138
24139         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
24140         will be implemented).
24141
24142 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24143
24144         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
24145
24146         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
24147         tests.
24148         
24149         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
24150         
24151         * TreeView.cs: BackColor is Colors.Window.
24152
24153 2004-12-01  Jackson Harper  <jackson@ximian.com>
24154
24155         * TreeView.cs: When resizing the tree if the user is making it
24156         smaller we don't get expose events, so we need to handle adding
24157         the horizontal scrollbar in the size changed handler as well as
24158         the expose handler.
24159
24160 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
24161
24162         * DrawItemState.cs: fixes wrong enum values
24163
24164 2004-12-01  Jackson Harper  <jackson@ximian.com>
24165
24166         * TreeView.cs: Resize the hbar as well as the vbar on resize.
24167
24168 2004-12-01  Jackson Harper  <jackson@ximian.com>
24169
24170         * NodeLabelEditEventArgs.cs:
24171         * NodeLabelEditEventHandler.cs:
24172         * OpenTreeNodeEnumerator.cs:
24173         * TreeNode.cs:
24174         * TreeNodeCollection.cs:
24175         * TreeView.cs:
24176         * TreeViewAction.cs:
24177         * TreeViewCancelEventArgs.cs:
24178         * TreeViewCancelEventHandler.cs:
24179         * TreeViewEventArgs.cs:
24180         * TreeViewEventHandler.cs: Initial implementation.
24181
24182 2004-12-01  Ravindra <rkumar@novell.com>
24183
24184         * ListView.cs (CalculateListView): Fixed scrolling related
24185         calculations. Also, removed some debug statements from other
24186         places.
24187         * ListViewItem.cs: Changed access to 'selected' instance variable
24188         from private to internal.
24189         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
24190
24191 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
24192
24193         * ThemeWin32Classic.cs: remove cache of brush and pens for
24194         specific controls and use the global system, fixes scrollbutton
24195         bugs (for small sizes, disabled, etc)
24196         
24197         * ScrollBar.cs: does not show the thumb for very small controls
24198         (as MS) and allow smaller buttons that the regular size
24199
24200 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
24201
24202         * UpDownBase.cs: Add abstract methods for the interface.
24203         Add new virtual methods (need to be hooked up to TextEntry when it
24204         exists).
24205         Add override methods for most features.
24206         Computes the size, forces the height of the text entry.
24207
24208         * NumericUpDown.cs: Put here the current testing code.
24209
24210         * Set eol-style property on all files that do not have mixed line
24211         endings, to minimize the future problems.  There are still a few
24212         files with mixed endings, and someone should choose whether they
24213         want to move it or not.
24214
24215 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
24216
24217         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
24218         System.Colors
24219         
24220 2004-11-30  Ravindra <rkumar@novell.com>
24221
24222         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
24223         drawing and replaced use of SystemColors by theme colors.
24224         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
24225         * ListView.cs (ListViewItemCollection.Add): Throw exception when
24226         same ListViewItem is being added more than once.
24227
24228 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
24229
24230         * MonthCalendar.cs:
24231           - ControlStyles love to make the control not flicker
24232           
24233 2004-11-30  Peter Bartok  <pbartok@novell.com>
24234
24235         * CharacterCasing.cs: Added
24236
24237 2004-11-29  Peter Bartok  <pbartok@novell.com>
24238
24239         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24240           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
24241           I am removing these files as they conflict with already completed
24242           work. While it is fantastic to get contributions to MWF, I
24243           respectfully ask that everyone please coordinate their contributions
24244           through mono-winforms-list or #mono-winforms at this time. We're
24245           explicitly avoiding stubbing and don't want controls that don't have
24246           their basic functionality implemented in svn. Please also see
24247           http://www.mono-project.com/contributing/winforms.html
24248
24249
24250 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
24251
24252         * Application.cs (ModalRun): Don't hang after exit.
24253
24254         * Theme.cs: New TreeViewDefaultSize property.
24255
24256         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
24257         with less hardcoded SystemColors constant.
24258         Implemented TreeViewDefaultSize.
24259
24260         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24261         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
24262
24263
24264 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
24265
24266         * MonthCalendar.cs:
24267           - Fix NextMonthDate and PrevMonthDate click moving calendar
24268
24269 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24270
24271         * MonthCalendar.cs:
24272           - Fix usage of ScrollChange Property when scrolling months
24273
24274 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
24275
24276         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
24277          - Fixes menu destroying
24278          - Support adding and removing items on already created menus
24279
24280 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24281
24282         * MonthCalendar.cs:
24283           - Re-worked all bolded dates handling to match win32
24284         * ThemeWin32Classic.cs:
24285           - Fixed rendering with bolded dates
24286
24287 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
24288
24289         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
24290         - Horizontal scroolbar
24291         - Multicolumn
24292         - Fixes
24293
24294
24295 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
24296
24297         * MonthCalendar.cs:
24298           - Fix Usage of MaxSelectionCount from SelectionRange
24299           - Fixed Shift + Cursor Selection
24300           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
24301           - Fixed normal cursor selection to be compat with win32
24302           - Fixed Shift + Mouse Click selection
24303
24304 2004-11-24  Peter Bartok <pbartok@novell.com>
24305
24306         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
24307         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
24308         * XplatUIX11.cs:
24309           - CreatedKeyBoardMsg now updates keystate with Alt key
24310           - Added workaround for timer crash to CheckTimers, Jackson will
24311             develop a proper fix and check in later
24312           - Implemented DispatchMessage
24313           - Removed calling the native window proc from GetMessage (call
24314             now moved to DispatchMessage)
24315
24316         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
24317           the keydata (Fixes bug #69831)
24318
24319         * XplatUIWin32.cs:
24320           - (DispatchMessage): Switched to return IntPtr
24321           - Added DllImport for SetFocus
24322
24323 2004-11-24  Ravindra <rkumar@novell.com>
24324
24325         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
24326         background drawing.
24327         * ListViewItem.cs: Fixed various properties, calculations
24328         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
24329         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
24330         and some internal properties. Fixed MouseDown handler and Paint
24331         method.
24332
24333 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24334
24335         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
24336
24337 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24338
24339         * ContainerControl.cs: correct accidental check in of local changes
24340
24341 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24342
24343         * ThemeWin32Classic.cs:
24344                 - Fixed Drawing Last month in grid (sometimes not showing)
24345         * MonthCalendar.cs:
24346                 - Fixed title width calculation bug (makeing title small)
24347
24348 2004-11-23  Peter Bartok <pbartok@novell.com>
24349
24350         * XplatUIX11.cs:
24351           - Added generation of WM_MOUSEHOVER event
24352           - Added missing assignment of async_method atom
24353           - Fixed WM_ERASEBKGND; now only redraws the exposed area
24354
24355 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24356
24357         * ThemeWin32Classic.cs:
24358                 - Fixed Drawing of today circle when showtodaycircle not set
24359                 - fixed drawing of first and last month in the grid (gay dates)
24360         * MonthCalendar.cs:
24361                 - Fixed Drawing of today circle
24362                 - Fixed drawing of grady dates
24363                 - Fixed HitTest for today link when ShowToday set to false
24364                 - Fixed DefaultSize to obey ShowToday
24365
24366 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24367
24368         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
24369         * System.Windows.Forms/Theme.cs
24370         * MonthCalendar.cs: added for MonthCalendar
24371         * SelectionRange.cs: added for MonthCalendar
24372         * Day.cs: added for MonthCalendar: added for MonthCalendar
24373         * DateRangeEventArgs.cs: added for MonthCalendar
24374         * DateRangeEventHandler.cs: added for MonthCalendar
24375
24376 2004-11-22  Ravindra <rkumar@novell.com>
24377
24378         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
24379         property.
24380
24381 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
24382
24383         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
24384         event handler.
24385         
24386         * NumericUpDown.cs: Added new implementation.
24387         * UpDownBase.cs: Added new implementation.
24388
24389         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
24390         implementations.
24391         
24392         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
24393         implementations.
24394
24395         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
24396         methods.
24397
24398 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
24399
24400         * Timer.cs  (Dispose): Should call the base dispose when
24401         overriding.
24402
24403 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24404
24405         * ScrollBar.cs: updates thumb position when max, min or increment
24406         is changed
24407
24408 2004-11-21  Ravindra <rkumar@novell.com>
24409
24410         * ListView.cs: Implemented item selection, activation and
24411         column header style. Fixed properties to do a redraw, if
24412         required. Added support for MouseHover, DoubleClick, KeyDown
24413         and KeyUp event handling and some minor fixes.
24414         * ListViewItem.cs: Fixed constructor.
24415         * ThemeWin32Classic.cs: Improved drawing for ListView.
24416
24417 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24418
24419         * ThemeWin32Classic.cs: initial listbox drawing code
24420         * DrawMode.cs: new enumerator
24421         * ListControl.cs: stubbed class
24422         * ListBox.cs: initial implementation
24423         * Theme.cs: new methods definitions
24424         * SelectionMode.cs: new enumerator
24425
24426 2004-11-17  Peter Bartok  <pbartok@novell.com>
24427
24428         * XplatUIWin32.cs: Added double-click events to the class style
24429         * Control.cs (WndProc):
24430           - Added handling of click-count to MouseDown/ MouseUp events.
24431           - Added handling of middle and right mouse buttons
24432           - Removed old debug code
24433
24434 2004-11-17  Jackson Harper  <jackson@ximian.com>
24435
24436         * XplatUIX11.cs: Use the new Mono.Unix namespace.
24437
24438 2004-11-17  Ravindra <rkumar@novell.com>
24439
24440         * ListView.cs: Added event handling for MouseMove/Up/Down.
24441         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
24442         * ThemeWin32Classic.cs: We need to clear the graphics context and
24443         draw column header in a proper state.
24444
24445
24446 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
24447
24448         *  Menu.cs: fixes signature
24449
24450 2004-11-16  Peter Bartok  <pbartok@novell.com>
24451
24452         * XplatUIX11.cs (GetMessage): Implemented generation of
24453           double click mouse messages
24454
24455 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
24456
24457         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
24458         not by menu
24459
24460 2004-11-11  Peter Bartok  <pbartok@novell.com>
24461
24462         * HandleData.cs: Added Visible property
24463         * XplatUIX11.cs (IsVisible): Now uses Visible property from
24464           HandleData
24465         * XplatUIX11.cs: Removed old debug leftovers
24466         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
24467         * Control.cs (WndProc): Removed old debug leftovers,
24468           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
24469           needed WM_SIZE handling
24470
24471 2004-11-11  Jackson Harper  <jackson@ximian.com>
24472
24473         * OwnerDrawPropertyBag.cs:
24474         * TreeViewImageIndexConverter.cs: Initial implementation
24475
24476 2004-11-10  Jackson Harper  <jackson@ximian.com>
24477
24478         * ThemeWin32Classic.cs:
24479         * TabControl.cs: instead of moving tabs by the slider pos just
24480         start drawing at the tab that is offset by the slider. This way
24481         scrolling always moves by exactly one tab.
24482
24483 2004-11-10  Jackson Harper  <jackson@ximian.com>
24484
24485         * TabControl.cs: You can only scroll left when the slider has
24486         already ben moved right.
24487         
24488 2004-11-10  Jackson Harper  <jackson@ximian.com>
24489
24490         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
24491         the clip area.
24492         
24493 2004-11-10  Jackson Harper  <jackson@ximian.com>
24494
24495         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
24496         clip area.
24497         
24498 2004-11-09  Jackson Harper  <jackson@ximian.com>
24499
24500         * TabControl.cs (CalcXPos): New helper method so we can determine
24501         the proper place to start drawing vertical tabs.
24502         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
24503         
24504 2004-11-09  Jackson Harper  <jackson@ximian.com>
24505
24506         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
24507         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
24508         and Bottom, left and right are illegal values for this and
24509         multiline is enabled when the alignment is set to left or right.
24510         (DrawTab): Each alignment block should draw the text itself now
24511         because Left requires special love. Also add rendering for Left
24512         aligned tabs.
24513         
24514 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
24515
24516         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
24517         does not destroy the windows, removes debugging messages
24518
24519 2004-11-09  jba  <jba-mono@optusnet.com.au>
24520
24521         * ThemeWin32Classic.cs
24522         (DrawButtonBase): Fix verticle text rect clipping in windows
24523         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24524         rendering and incorrect text rect clipping
24525         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24526         rendering and incorrect text rect clipping
24527         
24528 2004-11-08  Jackson Harper  <jackson@ximian.com>
24529
24530         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
24531         bottom when they are bottom aligned so the bottoms of the tabs get
24532         displayed.
24533         * TabControl.cs (DropRow): Move rows up instead of down when the
24534         tab control is bottom aligned.
24535
24536 2004-11-08 13:59  pbartok
24537
24538         * XplatUIX11.cs:
24539           - Added handling for various window styles
24540           - Added handling for popup windows
24541           - Added SetTopmost handling
24542
24543 2004-11-08 13:55  pbartok
24544
24545         * XplatUIWin32.cs:
24546           - Added argument to SetTopmost method
24547           - Fixed broken ClientToScreen function
24548
24549 2004-11-08 13:53  pbartok
24550
24551         * XplatUIStructs.cs:
24552           - Added missing WS_EX styles
24553
24554 2004-11-08 13:53  pbartok
24555
24556         * XplatUI.cs, XplatUIDriver.cs:
24557           - Added argument to SetTopmost
24558
24559 2004-11-08 13:52  pbartok
24560
24561         * X11Structs.cs:
24562           - Added XSetWindowAttributes structure
24563           - Improved XWindowAttributes structure
24564           - Added SetWindowValuemask enum
24565           - Added window creation arguments enum
24566           - Added gravity enum
24567           - Added Motif hints structure
24568           - Added various Motif flags and enums
24569           - Added PropertyMode enum for property functions
24570
24571 2004-11-08 13:50  pbartok
24572
24573         * Form.cs:
24574           - Fixed arguments for updated SetTopmost method
24575
24576 2004-11-08 13:49  pbartok
24577
24578         * ToolTip.cs:
24579           - Fixed arguments for updated SetTopmost function
24580           - Fixed usage of PointToClient
24581
24582 2004-11-08 13:44  pbartok
24583
24584         * MenuAPI.cs:
24585           - Added Clipping of children and siblings
24586
24587 2004-11-08 13:41  pbartok
24588
24589         * MainMenu.cs:
24590           - Removed SetMenuBarWindow call. We do this in Form.cs
24591
24592 2004-11-08 13:40  jackson
24593
24594         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
24595           scrolling jimmi in the correct location with bottom aligned tabs
24596
24597 2004-11-08 13:36  pbartok
24598
24599         * ContainerControl.cs:
24600           - Implemented BindingContext
24601           - Implemented ParentForm
24602
24603 2004-11-08 12:46  jackson
24604
24605         * TabControl.cs: Put bottom rendered tabs in the right location
24606
24607 2004-11-08 07:15  jordi
24608
24609         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
24610           removes dead code
24611
24612 2004-11-05 17:30  jackson
24613
24614         * TabControl.cs: When selected tabs are expanded make sure they
24615           don't go beyond the edges of the tab control
24616
24617 2004-11-05 14:57  jackson
24618
24619         * TabControl.cs: Reset show_slider so if the control is resized to
24620           a size where it is no longer needed it's not displayed anymore
24621
24622 2004-11-05 13:16  jackson
24623
24624         * TabControl.cs: Make tab pages non visible when added to the
24625           control
24626
24627 2004-11-05 12:42  jackson
24628
24629         * TabControl.cs: Implement SizeMode.FillToRight
24630
24631 2004-11-05 12:16  jackson
24632
24633         * Control.cs: Do not call CreateHandle if the handle is already
24634           created
24635
24636 2004-11-05 11:46  jackson
24637
24638         * TabControl.cs: Remove superflous call to CalcTabRows
24639
24640 2004-11-05 09:07  jackson
24641
24642         * XplatUIX11.cs: Update for Mono.Posix changes
24643
24644 2004-11-05 07:00  ravindra
24645
24646         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
24647           scrolling.
24648
24649 2004-11-04 22:47  jba
24650
24651         * ThemeWin32Classic.cs:
24652           - Fix Button rendering for FlatStyle = Flat or Popup
24653           - Fix RadioButton and CheckBox rendering when Appearance = Button
24654             (normal and flatstyle).
24655           - Correct outer rectangle color when drawing focus rectangle
24656           - Adjust button bounds to be 1 px smaller when focused
24657           - Make button not draw sunken 3d border when pushed (windows compat)
24658           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
24659           - Offset the text in RadioButton and Checkbox when being rendered as
24660           a button.
24661           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
24662           radiobuttons
24663           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
24664           - Fixed disabled text rendering for normally rendered radiobuttons
24665
24666 2004-11-04 10:26  jackson
24667
24668         * TabControl.cs: Recalculate tab rows when resizing
24669
24670 2004-11-04 07:47  jordi
24671
24672         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
24673           collection completion, drawing issues, missing features
24674
24675 2004-11-04 05:03  ravindra
24676
24677         * ScrollBar.cs:
24678                 - We need to recalculate the Thumb area when
24679                 LargeChange/maximum/minimum values are changed.
24680           - We set the 'pos' in UpdatePos() method to minimum, if it's less
24681                 than minimum. This is required to handle the case if large_change is
24682                 more than max, and use LargeChange property instead of large_change
24683                 variable.
24684           - We return max+1 when large_change is more than max, like MS does.
24685
24686 2004-11-04 04:29  ravindra
24687
24688         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
24689                 - Changed default value signatures (prefixed all with ListView).
24690                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
24691                 ListView.
24692           - Fixed calculations for ListViewItem and implemented Clone()
24693           method.
24694
24695 2004-11-04 04:26  ravindra
24696
24697         * Theme.cs, ThemeWin32Classic.cs:
24698                 - Changed default ListView values signatures (prefixed all with
24699                 ListView).
24700           - Fixed default size values for VScrollBar and HScrollBar.
24701                 - Fixed DrawListViewItem method.
24702
24703 2004-11-04 04:05  ravindra
24704
24705         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
24706
24707 2004-11-04 04:04  ravindra
24708
24709         * ImageList.cs: Implemented the missing overload for Draw method.
24710
24711 2004-11-03 19:29  jackson
24712
24713         * TabControl.cs: Handle dropping rows on selection properly
24714
24715 2004-11-03 11:59  jackson
24716
24717         * TabControl.cs: remove debug code
24718
24719 2004-11-03 11:52  jackson
24720
24721         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
24722           the scrolly widgerywoo
24723
24724 2004-11-02 13:52  jackson
24725
24726         * TabControl.cs: Resize the tab pages and tabs when the tab control
24727           is resized
24728
24729 2004-11-02 13:40  jackson
24730
24731         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
24732           selected tab to the bottom
24733
24734 2004-11-02 13:39  jackson
24735
24736         * TabPage.cs: Store the tab pages row
24737
24738 2004-11-02 12:33  jordi
24739
24740         * MenuItem.cs: fixes handle creation
24741
24742 2004-11-02 11:42  jackson
24743
24744         * TabControl.cs: signature fix
24745
24746 2004-11-02 08:56  jackson
24747
24748         * TabControl.cs: Calculate whether the tab is on an edge properly.
24749           Remove top secret debugging code
24750
24751 2004-11-01 19:57  jackson
24752
24753         * TabControl.cs: Add click handling, and proper sizing
24754
24755 2004-11-01 19:47  jackson
24756
24757         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
24758           tab controls
24759
24760 2004-11-01 19:39  jackson
24761
24762         * TabPage.cs: add internal property to store the bounds of a tab
24763           page
24764
24765 2004-10-30 04:23  ravindra
24766
24767         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
24768           values.
24769
24770 2004-10-30 04:21  ravindra
24771
24772         * ListView.cs, ListViewItem.cs: Added support for scrolling and
24773           fixed calculations.
24774
24775 2004-10-30 03:06  pbartok
24776
24777         * XplatUIX11.cs:
24778           - Removed extension of DllImported libs
24779
24780 2004-10-29 09:55  jordi
24781
24782         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
24783           navigation, itemcollection completion, menu fixes
24784
24785 2004-10-27 22:58  pbartok
24786
24787         * XplatUIX11.cs:
24788           - Now throws a nice error message when no X display could be opened
24789
24790 2004-10-26 13:51  jordi
24791
24792         * ListView.cs: removes warning
24793
24794 2004-10-26 03:55  ravindra
24795
24796         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
24797           ThemeWin32Classic.cs: Some formatting for my last checkins.
24798
24799 2004-10-26 03:36  ravindra
24800
24801         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
24802           control and default values.
24803
24804 2004-10-26 03:35  ravindra
24805
24806         * Theme.cs: Added some default values for ListView control.
24807
24808 2004-10-26 03:33  ravindra
24809
24810         * ToolBar.cs: ToolBar should use the user specified button size, if
24811           there is any. Added a size_specified flag for the same.
24812
24813 2004-10-26 03:33  ravindra
24814
24815         * ColumnHeader.cs: Added some internal members and calculations for
24816           ColumnHeader.
24817
24818 2004-10-26 03:32  ravindra
24819
24820         * ListViewItem.cs: Calculations for ListViewItem.
24821
24822 2004-10-26 03:31  ravindra
24823
24824         * ListView.cs: Added some internal members and calculations for
24825           ListView.
24826
24827 2004-10-22 13:31  jordi
24828
24829         * MenuAPI.cs: speedup menus drawing
24830
24831 2004-10-22 13:16  jackson
24832
24833         * XplatUIX11.cs: Make sure to update exposed regions when adding an
24834           expose event
24835
24836 2004-10-22 11:49  jackson
24837
24838         * Control.cs: oops
24839
24840 2004-10-22 11:41  jackson
24841
24842         * Control.cs: Check to see if the window should have its background
24843           repainted by X when drawing.
24844
24845 2004-10-22 11:31  jackson
24846
24847         * XplatUIX11.cs: When invalidating areas only use XClearArea if
24848           clear is true, this way we do not get flicker from X repainting the
24849           background
24850
24851 2004-10-22 11:28  jackson
24852
24853         * XEventQueue.cs: Queue properly
24854
24855 2004-10-21 09:38  jackson
24856
24857         * XEventQueue.cs: Fix access modifier
24858
24859 2004-10-21 09:36  jackson
24860
24861         * XEventQueue.cs: Don't loose messages
24862
24863 2004-10-21 09:22  jackson
24864
24865         * XEventQueue.cs: Don't loose messages
24866
24867 2004-10-20 04:15  jordi
24868
24869         * BootMode.cs: enum need it by SystemInfo
24870
24871 2004-10-19 21:58  pbartok
24872
24873         * XplatUIWin32.cs:
24874           - Small sanity check
24875
24876 2004-10-19 21:56  pbartok
24877
24878         * Form.cs:
24879           - Added private FormParentWindow class which acts as the container
24880             for our form and as the non-client area where menus are drawn
24881           - Added/Moved required tie-ins to Jordi's menus
24882           - Fixed/Implemented the FormStartPosition functionality
24883
24884 2004-10-19 21:52  pbartok
24885
24886         * Control.cs:
24887           - Removed unneeded locals
24888           - Added code to all size and location properties to understand and
24889             deal with the parent container of Form
24890
24891 2004-10-19 21:33  pbartok
24892
24893         * Application.cs:
24894           - Fixed to deal with new Form subclasses for menus
24895
24896 2004-10-19 17:48  jackson
24897
24898         * XEventQueue.cs: commit correct version of file
24899
24900 2004-10-19 16:50  jackson
24901
24902         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
24903
24904 2004-10-19 16:15  jordi
24905
24906         * MenuAPI.cs: MenuBarCalcSize returns the height
24907
24908 2004-10-19 08:31  pbartok
24909
24910         * Control.cs:
24911           - Added missing call to PreProcessMessage before calling OnXXXKey
24912           methods
24913
24914 2004-10-19 00:04  ravindra
24915
24916         * ToolTip.cs: Fixed constructor.
24917
24918 2004-10-18 09:31  jordi
24919
24920         * MenuAPI.cs: menuitems in menubars do not have shortcuts
24921
24922 2004-10-18 09:26  jordi
24923
24924         * MenuItem.cs: fixes MenuItem class signature
24925
24926 2004-10-18 08:56  jordi
24927
24928         * MenuAPI.cs: prevents windows from showing in the taskbar
24929
24930 2004-10-18 00:28  ravindra
24931
24932         * ToolTip.cs: Suppressed a warning message.
24933
24934 2004-10-18 00:27  ravindra
24935
24936         * Control.cs: Default value of visible property must be true.
24937
24938 2004-10-17 23:19  pbartok
24939
24940         * ToolTip.cs:
24941           - Complete implementation
24942
24943 2004-10-17 23:19  pbartok
24944
24945         * XplatUIX11.cs:
24946           - Added EnableWindow method
24947           - Added SetModal stub
24948           - Added generation of WM_ACTIVATE message (still needs testing)
24949           - Added SetTopMost stub
24950           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
24951
24952 2004-10-17 23:17  pbartok
24953
24954         * XplatUIWin32.cs:
24955           - Removed VirtualKeys to XplatUIStructs
24956           - Implemented SetTopMost method
24957           - Implemented EnableWindow method
24958           - Bugfix in ScreenToClient()
24959           - Bugfixes in ClientToScreen()
24960
24961 2004-10-17 22:51  pbartok
24962
24963         * XplatUIStructs.cs:
24964           - Added WS_EX styles to WindowStyles enumeration
24965
24966 2004-10-17 22:50  pbartok
24967
24968         * XplatUI.cs, XplatUIDriver.cs:
24969           - Added method for enabling/disabling windows
24970           - Added method for setting window modality
24971           - Added method for setting topmost window
24972
24973 2004-10-17 22:49  pbartok
24974
24975         * ThemeWin32Classic.cs:
24976           - Added ToolTip drawing code
24977
24978 2004-10-17 22:49  pbartok
24979
24980         * Theme.cs:
24981           - Added ToolTip abstracts
24982
24983 2004-10-17 22:47  pbartok
24984
24985         * Form.cs:
24986           - Fixed Form.ControlCollection to handle owner relations
24987           - Added Owner/OwnedForms handling
24988           - Implemented Z-Ordering for owned forms
24989           - Removed unneeded private overload of ShowDialog
24990           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
24991             so I hope)
24992           - Fixed Close(), had wrong default
24993           - Added firing of OnLoad event
24994           - Added some commented out debug code for Ownership handling
24995
24996 2004-10-17 22:16  pbartok
24997
24998         * Control.cs:
24999           - Fixed/implemented flat list of controls
25000
25001 2004-10-17 22:14  pbartok
25002
25003         * Application.cs:
25004           - Added code to simulate modal dialogs on Win32
25005
25006 2004-10-17 16:11  jordi
25007
25008         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
25009           mouse event
25010
25011 2004-10-17 13:39  jordi
25012
25013         * MenuAPI.cs: menu drawing fixes
25014
25015 2004-10-15 09:10  ravindra
25016
25017         * StructFormat.cs: General Enum.
25018
25019 2004-10-15 09:09  ravindra
25020
25021         * SizeGripStyle.cs: Enum for Form.
25022
25023 2004-10-15 09:08  ravindra
25024
25025         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
25026           in Theme for ListView.
25027
25028 2004-10-15 09:06  ravindra
25029
25030         * ColumnHeader.cs: Flushing some formatting changes.
25031
25032 2004-10-15 09:05  ravindra
25033
25034         * ListViewItem.cs: Implemented GetBounds method and fixed coding
25035           style.
25036
25037 2004-10-15 09:03  ravindra
25038
25039         * ListView.cs: Implemented Paint method and fixed coding style.
25040
25041 2004-10-15 07:34  jordi
25042
25043         * MenuAPI.cs: fix for X11
25044
25045 2004-10-15 07:32  ravindra
25046
25047         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
25048                 - Renamed Paint() method to Draw() for clarity. Also, moved
25049                 DrawImage() to OnPaint().
25050
25051 2004-10-15 07:25  ravindra
25052
25053         * CheckBox.cs, RadioButton.cs:
25054                 - Removed Redraw (), we get it from ButtonBase.
25055                 - Implemented Paint (), to do class specific painting.
25056
25057 2004-10-15 07:16  ravindra
25058
25059         * ButtonBase.cs:
25060                 - Redraw () is not virtual now.
25061                 - Added an internal virtual method Paint (), so that
25062                 derived classes can do their painting on their own.
25063                 - Modified OnPaint () to call Paint ().
25064
25065 2004-10-15 06:43  jordi
25066
25067         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
25068           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
25069
25070 2004-10-15 00:30  ravindra
25071
25072         * MessageBox.cs:
25073                 - MessageBox on windows does not have min/max buttons.
25074                 This change in CreateParams fixes this on Windows. We
25075                 still need to implement this windowstyle behavior in
25076                 our X11 driver.
25077
25078 2004-10-14 05:14  ravindra
25079
25080         * ToolBar.cs:
25081                 - Changed Redraw () to do a Refresh () always.
25082                 - Fixed the MouseMove event handling when mouse is pressed,
25083                 ie drag event handling.
25084                 - Replaced the usage of ToolBarButton.Pressed property to
25085                 ToolBarButton.pressed internal variable.
25086
25087 2004-10-14 05:10  ravindra
25088
25089         * ToolBarButton.cs:
25090                 - Added an internal member 'inside' to handle mouse move
25091                 with mouse pressed ie mouse drag event.
25092                 - Changed 'Pressed' property to return true only when
25093                 'inside' and 'pressed' are both true.
25094                 - Some coding style love.
25095
25096 2004-10-14 00:17  ravindra
25097
25098         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
25099           public method.
25100
25101 2004-10-14 00:15  ravindra
25102
25103         * ButtonBase.cs: Redraw () related improvements.
25104
25105 2004-10-14 00:14  ravindra
25106
25107         * MessageBox.cs: Moved InitFormSize () out of Paint method and
25108           removed unnecessary calls to Button.Show () method.
25109
25110 2004-10-13 17:50  pbartok
25111
25112         * XplatUIX11.cs:
25113           - Formatting fix
25114           - Removed destroying of window until we solve the problem of X
25115             destroying the window before us on shutdown
25116
25117 2004-10-13 16:32  pbartok
25118
25119         * ButtonBase.cs:
25120           - Now Redraws on MouseUp for FlatStyle Flat and Popup
25121
25122 2004-10-13 14:18  pbartok
25123
25124         * XplatUIX11.cs:
25125           - Added code to destroy the X window
25126
25127 2004-10-13 14:18  pbartok
25128
25129         * XplatUIWin32.cs:
25130           - Added code to destroy a window
25131
25132 2004-10-13 14:12  pbartok
25133
25134         * ButtonBase.cs:
25135           - Added the Redraw on Resize that got dropped in the last rev
25136
25137 2004-10-13 09:06  pbartok
25138
25139         * ThemeWin32Classic.cs:
25140           - Path from John BouAntoun:
25141             * Fix check rendering (centre correctly for normal style, offset
25142               correctly for FlatStyle).
25143             * Fix border color usage (use backcolor) for FlatStyle.Popup
25144             * Use checkbox.Capture instead of checkbox.is_pressed when
25145               rendering flatstyle states.
25146
25147 2004-10-12 21:48  pbartok
25148
25149         * ThemeWin32Classic.cs:
25150           - Removed all occurences of SystemColors and replaced them with the
25151             matching theme color
25152
25153 2004-10-12 21:41  pbartok
25154
25155         * ThemeWin32Classic.cs:
25156           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
25157             him using the function for flatstyle drawing
25158           - Changed functions to use the new version of CPDrawBorder3D
25159
25160 2004-10-12 21:15  pbartok
25161
25162         * ControlPaint.cs:
25163           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
25164             match MS documentation. They need to return defined colors if the
25165             passed color matches the configured control color. Thanks to John
25166             BouAntoun for pointing this out.
25167
25168 2004-10-12 20:57  pbartok
25169
25170         * Control.cs:
25171           - Fix from John BouAntoun: Raise ForeColorChanged event when text
25172             color is changed
25173
25174 2004-10-12 20:46  pbartok
25175
25176         * CheckBox.cs:
25177           - Fix from John BouAntoun: Now properly sets the Appearance property
25178
25179 2004-10-12 20:45  pbartok
25180
25181         * ThemeWin32Classic.cs:
25182           - Fixes from John BouAntoun: now handles forecolors and backcolors
25183             for flatstyle rendered controls much better; It also fixes normal
25184             checkbox rendering when pushed or disabled.
25185
25186 2004-10-08 02:50  jordi
25187
25188         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
25189           work
25190
25191 2004-10-07 08:56  jordi
25192
25193         * ThemeWin32Classic.cs: Removes deletion of cached brushes
25194
25195 2004-10-06 03:59  jordi
25196
25197         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
25198           XplatUIWin32.cs: removes warnings from compilation
25199
25200 2004-10-05 12:23  jackson
25201
25202         * RadioButton.cs: Fix ctor
25203
25204 2004-10-05 11:10  pbartok
25205
25206         * MessageBox.cs:
25207           - Partial implementation by Benjamin Dasnois
25208
25209 2004-10-05 10:15  jackson
25210
25211         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
25212           by John BouAntoun
25213
25214 2004-10-05 03:07  ravindra
25215
25216         * ToolBar.cs:
25217                 - Removed a private method, Draw ().
25218                 - Fixed the ButtonDropDown event handling.
25219                 - Fixed MouseMove event handling.
25220
25221 2004-10-05 03:04  ravindra
25222
25223         * ThemeWin32Classic.cs:
25224                 - Added DrawListView method and ListViewDefaultSize property.
25225                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
25226                 - Changed DOS style CRLF to Unix format (dos2unix).
25227
25228 2004-10-05 03:03  ravindra
25229
25230         * Theme.cs:
25231                 - Added DrawListView method and ListViewDefaultSize property.
25232
25233 2004-10-05 02:42  ravindra
25234
25235         * ToolBarButton.cs: Added an internal member dd_pressed to handle
25236           clicks on DropDown arrow.
25237
25238 2004-10-04 22:56  jackson
25239
25240         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
25241           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
25242           Control handle the buffers, derived classes should not have to
25243           CreateBuffers themselves.
25244
25245 2004-10-04 21:20  jackson
25246
25247         * StatusBar.cs: The control handles resizing the buffers now.
25248
25249 2004-10-04 21:18  jackson
25250
25251         * Control.cs: When resizing the buffers should be invalidated. This
25252           should be handled in Control not in derived classes.
25253
25254 2004-10-04 14:45  jackson
25255
25256         * TabPage.cs: oops
25257
25258 2004-10-04 02:14  pbartok
25259
25260         * LeftRightAlignment.cs:
25261           - Initial check-in
25262
25263 2004-10-04 01:09  jordi
25264
25265         * ThemeWin32Classic.cs: fixes right button position causing right
25266           button not showing on horizontal scrollbars
25267
25268 2004-10-02 13:12  pbartok
25269
25270         * XplatUIX11.cs:
25271           - Simplified the Invalidate method by using an X call instead of
25272             generating the expose ourselves
25273           - Added an expose when the window background is changed
25274           - Implemented ClientToScreen method
25275
25276 2004-10-02 13:08  pbartok
25277
25278         * XplatUIWin32.cs:
25279           - Added Win32EnableWindow method (test for implementing modal
25280           dialogs)
25281           - Added ClientToScreen method and imports
25282
25283 2004-10-02 13:07  pbartok
25284
25285         * XplatUI.cs, XplatUIDriver.cs:
25286           - Added ClientToScreen coordinate translation method
25287
25288 2004-10-02 13:06  pbartok
25289
25290         * KeyPressEventArgs.cs:
25291           - Fixed access level for constructor
25292
25293 2004-10-02 13:06  pbartok
25294
25295         * NativeWindow.cs:
25296           - Changed access level for the window_collection hash table
25297
25298 2004-10-02 13:05  pbartok
25299
25300         * Form.cs:
25301           - Added KeyPreview property
25302           - Added Menu property (still incomplete, pending Jordi's menu work)
25303           - Implemented ProcessCmdKey
25304           - Implemented ProcessDialogKey
25305           - Implemented ProcessKeyPreview
25306
25307 2004-10-02 13:02  pbartok
25308
25309         * Control.cs:
25310           - Added private method to get the Control object from the window
25311           handle
25312           - Implemented ContextMenu property
25313           - Implemented PointToScreen
25314           - Implemented PreProcessMessage
25315           - Implemented IsInputChar
25316           - Implemented IsInputKey
25317           - Implemented ProcessCmdKey
25318           - Completed ProcessKeyEventArgs
25319           - Fixed message loop to call the proper chain of functions on key
25320           events
25321           - Implemented ProcessDialogChar
25322           - Implemented ProcessDialogKey
25323           - Implemented ProcessKeyMessage
25324           - Implemented ProcessKeyPreview
25325           - Added RaiseDragEvent stub (MS internal method)
25326           - Added RaiseKeyEvent stub (MS internal method)
25327           - Added RaiseMouseEvent stub (MS Internal method)
25328           - Added RaisePaintEvent stub (MS Internal method)
25329           - Added ResetMouseEventArgs stub (MS Internal method)
25330           - Implemented RtlTranslateAlignment
25331           - Implemented RtlTranslateContent
25332           - Implemented RtlTranslateHorizontal
25333           - Implemented RtlTranslateLeftRight
25334           - Added generation of KeyPress event
25335
25336 2004-10-02 05:57  ravindra
25337
25338         * ListViewItem.cs: Added attributes.
25339
25340 2004-10-02 05:32  ravindra
25341
25342         * ListView.cs: Added attributes.
25343
25344 2004-10-01 11:53  jackson
25345
25346         * Form.cs: Implement the Close method so work on MessageBox can
25347           continue.
25348
25349 2004-09-30 14:06  pbartok
25350
25351         * XplatUIX11.cs:
25352           - Bug fixes
25353
25354 2004-09-30 11:34  jackson
25355
25356         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
25357
25358 2004-09-30 07:26  ravindra
25359
25360         * ListViewItemConverter.cs: Converter for ListViewItem.
25361
25362 2004-09-30 07:26  ravindra
25363
25364         * SortOrder.cs: Enum for ListView control.
25365
25366 2004-09-30 07:25  ravindra
25367
25368         * ColumnHeader.cs: Supporting class for ListView control.
25369
25370 2004-09-30 07:24  ravindra
25371
25372         * ListView.cs, ListViewItem.cs: Initial implementation.
25373
25374 2004-09-30 07:20  ravindra
25375
25376         * ItemActivation.cs: Enum for ListView Control.
25377
25378 2004-09-29 20:29  pbartok
25379
25380         * XplatUIX11.cs:
25381           - Added lookup of pixel value for background color; tries to get a
25382             color 'close' to the requested color, it avoids having to create a
25383             colormap.  Depending on the display this could mean the used color
25384             is slightly off the desired color. Might have to change it to a more
25385             resource intensive colormap approach, but it will work as a
25386           workaround to avoid red screens.
25387
25388 2004-09-29 14:27  jackson
25389
25390         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
25391
25392 2004-09-28 12:44  pbartok
25393
25394         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
25395           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
25396           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
25397           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
25398           TrackBar.cs, VScrollBar.cs:
25399           - Streamlined Theme interfaces:
25400             * Each DrawXXX method for a control now is passed the object for
25401               the control to be drawn in order to allow accessing any state the
25402               theme might require
25403
25404             * ControlPaint methods for the theme now have a CP prefix to avoid
25405               name clashes with the Draw methods for controls
25406
25407             * Every control now retrieves it's DefaultSize from the current
25408             theme
25409
25410 2004-09-28 12:17  jackson
25411
25412         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
25413           drawing
25414
25415 2004-09-24 14:57  jackson
25416
25417         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
25418           Gives us a nice little performance boost.
25419
25420 2004-09-24 12:02  jackson
25421
25422         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
25423           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
25424           Control and supporting classes. Initial checkin
25425
25426 2004-09-23 13:08  jackson
25427
25428         * Form.cs: Temp build fixage
25429
25430 2004-09-23 01:39  ravindra
25431
25432         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
25433           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
25434           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
25435           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
25436           EventHandlers needed by ListView Control.
25437
25438 2004-09-22 14:12  pbartok
25439
25440         * ScrollableControl.cs:
25441           - Implemented DockPadding property
25442           - Implemented AutoScroll property
25443           - Implemented AutoScrollMargin property
25444           - Implemented AutoScrollMinSize property
25445           - Implemented AutoScrollPosition property
25446           - Implemented DisplayRectangle property (still incomplete)
25447           - Implemented CreateParams property
25448           - Implemented HScroll property
25449           - Implemented VScroll property
25450           - Implemented OnVisibleChanged property
25451
25452 2004-09-22 14:09  pbartok
25453
25454         * Form.cs:
25455           - Added Form.ControllCollection class
25456           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
25457             RemoveOwnedForm (still incomplete, missing on-top and common
25458             minimize/maximize behaviour)
25459           - Added StartPosition property (still incomplete, does not use when
25460             creating the form)
25461           - Added ShowDialog() methods (still incomplete, missing forcing the
25462             dialog modal)
25463
25464 2004-09-22 14:05  pbartok
25465
25466         * Application.cs:
25467           - Added message loop for modal dialogs
25468
25469 2004-09-22 14:02  pbartok
25470
25471         * GroupBox.cs:
25472           - Fixed wrong types for events
25473
25474 2004-09-22 14:00  pbartok
25475
25476         * Shortcut.cs, FormWindowState.cs:
25477           - Fixed wrong values
25478
25479 2004-09-22 12:01  jackson
25480
25481         * Control.cs: Text is never null
25482
25483 2004-09-20 22:14  pbartok
25484
25485         * XplatUIWin32.cs:
25486           - Fixed accessibility level for Idle handler
25487
25488 2004-09-20 18:54  jackson
25489
25490         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25491           XplatUIX11.cs: New message loop that uses poll so we don't get a
25492           busy loop
25493
25494 2004-09-17 10:43  pbartok
25495
25496         * ScrollBar.cs:
25497           - Fixed behaviour of arrow buttons. Now properly behaves like
25498             Buttons (and like Microsoft's scrollbar arrow buttons)
25499
25500 2004-09-17 10:14  pbartok
25501
25502         * ScrollBar.cs:
25503           - Added missing release of keyboard/mouse capture
25504
25505 2004-09-17 06:18  jordi
25506
25507         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
25508           Theme.cs: Very early menu support
25509
25510 2004-09-16 17:45  pbartok
25511
25512         * XplatUIWin32.cs:
25513           - Fixed sending a window to the front
25514           - Added overload for SetWindowPos to avoid casting
25515
25516 2004-09-16 17:44  pbartok
25517
25518         * Control.cs:
25519           - Added SendToBack and BringToFront methods
25520
25521 2004-09-16 07:00  ravindra
25522
25523         * Copyright: Added Novell URL.
25524
25525 2004-09-16 07:00  ravindra
25526
25527         * ToolBar.cs: Invalidate should be done before redrawing.
25528
25529 2004-09-15 21:19  ravindra
25530
25531         * ColumnHeaderStyle.cs: Enum for ListView Control.
25532
25533 2004-09-15 21:18  ravindra
25534
25535         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
25536           ListView Control.
25537
25538 2004-09-13 18:26  jackson
25539
25540         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
25541           properly
25542
25543 2004-09-13 18:13  jackson
25544
25545         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
25546           a second thread and post messages into the main threads message
25547           queue. This makes timing much more consistent. Both win2K and XP
25548           have a minimum timer value of 15 milliseconds, so we now do this
25549           too.
25550
25551 2004-09-13 15:18  pbartok
25552
25553         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25554           XplatUIX11.cs:
25555           - Added Z-Ordering methods
25556
25557 2004-09-13 10:56  pbartok
25558
25559         * Form.cs:
25560           - Fixed #region names
25561           - Moved properties and methods into their proper #regions
25562
25563 2004-09-13 10:51  pbartok
25564
25565         * Form.cs:
25566           - Added Accept and CancelButton properties
25567           - Added ProcessDialogKey() method
25568
25569 2004-09-13 08:18  pbartok
25570
25571         * IWindowTarget.cs:
25572           - Initial check-in
25573
25574 2004-09-10 21:50  pbartok
25575
25576         * Control.cs:
25577           - Added DoDragDrop() [incomplete]
25578           - Properly implemented 'Visible' handling
25579           - Added SetVisibleCore()
25580           - Implemented FindChildAtPoint()
25581           - Implemented GetContainerControl()
25582           - Implemented Hide()
25583
25584 2004-09-10 19:28  pbartok
25585
25586         * Control.cs:
25587           - Moved methods into their appropriate #regions
25588           - Reordered methods within regions alphabetically
25589
25590 2004-09-10 18:57  pbartok
25591
25592         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
25593           - Added method to retrieve text from window
25594
25595 2004-09-10 18:56  pbartok
25596
25597         * Control.cs:
25598           - Moved some internal functions into the internal region
25599           - Implemented FontHeight
25600           - Implemented RenderRightToLeft
25601           - Implemented ResizeRedraw
25602           - Implemented ShowFocusCues
25603           - Implemented ShowKeyboardCues
25604           - Implemented FromChildHandle
25605           - Implemented FromHandle
25606           - Implemented IsMnemonic
25607           - Implemented ReflectMessage
25608           - All public and protected Static Methods are now complete
25609
25610 2004-09-10 16:54  pbartok
25611
25612         * Control.cs:
25613           - Implemented remaining missing public instance properties
25614           - Alphabetized some out of order properties
25615
25616 2004-09-10 05:51  ravindra
25617
25618         * PictureBox.cs: Added a check for null image.
25619
25620 2004-09-10 00:59  jordi
25621
25622         * GroupBox.cs: remove cvs tag
25623
25624 2004-09-09 05:25  ravindra
25625
25626         * ToolBar.cs: Make redraw accessible from ToolBarButton.
25627
25628 2004-09-09 05:23  ravindra
25629
25630         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
25631           parent redraw.
25632
25633 2004-09-09 02:28  pbartok
25634
25635         * ThemeWin32Classic.cs:
25636           - Improve disabled string look
25637
25638 2004-09-09 01:15  jordi
25639
25640         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
25641           args and handler
25642
25643 2004-09-08 23:56  ravindra
25644
25645         * ItemBoundsPortion.cs: It's enum, not a class!
25646
25647 2004-09-08 23:47  ravindra
25648
25649         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
25650           Enums for Form.
25651
25652 2004-09-08 21:13  ravindra
25653
25654         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
25655           ListView control.
25656
25657 2004-09-08 21:03  ravindra
25658
25659         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
25660           avoid crash.
25661
25662 2004-09-08 21:01  ravindra
25663
25664         * ScrollableControl.cs: Removed unreachable code.
25665
25666 2004-09-08 06:45  jordi
25667
25668         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
25669
25670 2004-09-08 01:00  jackson
25671
25672         * XplatUIX11.cs: Only run the timers when updating the message
25673           queue. This effectively gives X messages a higher priority then
25674           timer messages. Timers still need love though
25675
25676 2004-09-07 14:01  jackson
25677
25678         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
25679           this for us and the handle is no longer valid.
25680
25681 2004-09-07 13:59  jackson
25682
25683         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
25684           loop that manages to not crash. TODO: Add poll and cleanup timers
25685
25686 2004-09-07 11:12  jordi
25687
25688         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
25689
25690 2004-09-07 03:40  jordi
25691
25692         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
25693           fixes, methods, multiple links
25694
25695 2004-09-06 06:55  jordi
25696
25697         * Control.cs: Caches ClientRectangle rectangle value
25698
25699 2004-09-05 02:03  jordi
25700
25701         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
25702           certain situations
25703
25704 2004-09-04 11:10  jordi
25705
25706         * Label.cs: Refresh when font changed
25707
25708 2004-09-02 16:24  pbartok
25709
25710         * Control.cs:
25711           - Added sanity check to creation of double buffer bitmap
25712
25713 2004-09-02 16:24  pbartok
25714
25715         * ButtonBase.cs:
25716           - Fixed selection of text color
25717           - Fixed handling of resize event; now properly recreates double
25718             buffering bitmap
25719           - Added missing assignment of TextAlignment
25720           - Added proper default for TextAlignment
25721
25722 2004-09-02 14:26  pbartok
25723
25724         * RadioButton.cs:
25725           - Added missing RadioButton.RadioButtonAccessibleObject class
25726
25727 2004-09-02 14:26  pbartok
25728
25729         * Control.cs:
25730           - Added missing Control.ControlAccessibleObject class
25731           - Started to implement Select()ion mechanisms, still very incomplete
25732
25733 2004-09-02 14:25  pbartok
25734
25735         * AccessibleObject.cs:
25736           - Added missing methods
25737
25738 2004-09-02 14:23  pbartok
25739
25740         * AccessibleNavigation.cs, AccessibleSelection.cs:
25741           - Initial check-in
25742
25743 2004-09-02 10:32  jordi
25744
25745         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
25746           pool for pens, brushes, and hatchbruses
25747
25748 2004-09-01 15:30  jackson
25749
25750         * StatusBar.cs: Fix typo
25751
25752 2004-09-01 14:44  pbartok
25753
25754         * RadioButton.cs:
25755           - Fixed state
25756
25757 2004-09-01 14:39  pbartok
25758
25759         * Button.cs, RadioButton.cs:
25760           - Functional initial check-in
25761
25762 2004-09-01 14:01  pbartok
25763
25764         * CheckBox.cs:
25765           - Added missing default
25766           - Added missing region mark
25767
25768 2004-09-01 09:10  jordi
25769
25770         * Label.cs: fixes method signatures, new methods, events, fixes
25771           autosize
25772
25773 2004-09-01 07:19  jordi
25774
25775         * Control.cs: Init string variables with an empty object
25776
25777 2004-09-01 04:20  jordi
25778
25779         * Control.cs: fires OnFontChanged event
25780
25781 2004-08-31 20:07  pbartok
25782
25783         * ButtonBase.cs:
25784           - Enabled display of strings
25785
25786 2004-08-31 20:05  pbartok
25787
25788         * Form.cs:
25789           - Added (partial) implementation of DialogResult; rest needs to be
25790             implemented when the modal loop code is done
25791
25792 2004-08-31 19:55  pbartok
25793
25794         * CheckBox.cs:
25795           - Fixed to match the removal of the needs_redraw concept
25796
25797 2004-08-31 19:55  pbartok
25798
25799         * ButtonBase.cs:
25800           - Removed the rather odd split between 'needs redraw' and redrawing
25801           - Now handles the events that require regeneration (ambient
25802             properties and size)
25803
25804 2004-08-31 19:41  pbartok
25805
25806         * Control.cs:
25807           - Added firing of BackColorChanged event
25808           - Added TopLevelControl property
25809           - Fixed handling of WM_ERASEBKGRND message
25810
25811 2004-08-31 12:49  pbartok
25812
25813         * ButtonBase.cs:
25814           - Removed debug
25815           - Minor fixes
25816
25817 2004-08-31 12:48  pbartok
25818
25819         * CheckBox.cs:
25820           - Finished (famous last words)
25821
25822 2004-08-31 04:35  jordi
25823
25824         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
25825           scrolling bugs, adds new methods
25826
25827 2004-08-30 14:42  pbartok
25828
25829         * CheckBox.cs:
25830           - Implemented CheckBox drawing code
25831
25832 2004-08-30 14:42  pbartok
25833
25834         * ButtonBase.cs:
25835           - Made Redraw() and CheckRedraw() virtual
25836           - Improved mouse up/down/move logic to properly track buttons
25837
25838 2004-08-30 09:44  pbartok
25839
25840         * CheckBox.cs:
25841           - Updated to fix broken build. Not complete yet.
25842
25843 2004-08-30 09:28  pbartok
25844
25845         * CheckState.cs:
25846           - Initial checkin
25847
25848 2004-08-30 09:17  pbartok
25849
25850         * Appearance.cs:
25851           - Initial check-in
25852
25853 2004-08-27 16:12  ravindra
25854
25855         * ToolBarButton.cs: Added TypeConverter attribute.
25856
25857 2004-08-27 16:07  ravindra
25858
25859         * ImageIndexConverter.cs: Implemented.
25860
25861 2004-08-27 14:17  pbartok
25862
25863         * Control.cs:
25864           - Removed unneeded stack vars
25865           - First attempt to fix sizing issues when layout is suspended
25866
25867 2004-08-25 15:35  jordi
25868
25869         * ScrollBar.cs: more fixes to scrollbar
25870
25871 2004-08-25 14:04  ravindra
25872
25873         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
25874           Added the missing divider code and grip for ToolBar Control.
25875
25876 2004-08-25 13:20  pbartok
25877
25878         * Control.cs:
25879           - Control now properly passes the ambient background color to child
25880             controls
25881
25882 2004-08-25 13:20  jordi
25883
25884         * ScrollBar.cs: small bug fix regarding bar position
25885
25886 2004-08-25 12:33  pbartok
25887
25888         * Timer.cs:
25889           - Now only calls SetTimer or KillTimer if the enabled state has
25890           changed
25891
25892 2004-08-25 12:33  pbartok
25893
25894         * XplatUIWin32.cs:
25895           - Fixed timer handling, now seems to work
25896           - Improved error message for window creation
25897
25898 2004-08-25 12:32  pbartok
25899
25900         * Control.cs:
25901           - Fixed generation of MouseUp message
25902
25903 2004-08-25 12:29  jordi
25904
25905         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
25906           and fixes for progressbar
25907
25908 2004-08-24 18:43  ravindra
25909
25910         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
25911           in ToolBar control.
25912
25913 2004-08-24 17:15  pbartok
25914
25915         * Panel.cs:
25916           - Added #region
25917           - Added missing events
25918           - Alphabetized
25919
25920 2004-08-24 17:14  pbartok
25921
25922         * StatusBar.cs, PictureBox.cs:
25923           - Now uses Control's CreateParams
25924
25925 2004-08-24 16:36  pbartok
25926
25927         * XplatUIX11.cs:
25928           - Fixed background color handling
25929           - Fixed sending of enter/leave events on a grab
25930
25931 2004-08-24 16:35  pbartok
25932
25933         * X11Structs.cs:
25934           - Refined definitions for CrossingEvent
25935
25936 2004-08-24 12:37  jordi
25937
25938         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
25939           formmating, methods signature, and adds missing events
25940
25941 2004-08-24 12:24  jordi
25942
25943         * Control.cs: fire OnEnabledChanged event
25944
25945 2004-08-24 11:17  pbartok
25946
25947         * XplatUIWin32.cs:
25948           - Implemented SetTimer() and KillTimer()
25949
25950 2004-08-24 11:16  pbartok
25951
25952         * XplatUIX11.cs:
25953           - Now uses Remove instead of Add to kill the timer
25954
25955 2004-08-24 10:16  jackson
25956
25957         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
25958           picture boxes in the theme now. Draw picture box borders and obey
25959           sizing modes
25960
25961 2004-08-24 05:49  jackson
25962
25963         * Timer.cs: Remove top secret debugging code
25964
25965 2004-08-24 05:34  jackson
25966
25967         * PictureBox.cs: Temp hack to make picture boxes draw their full
25968           image
25969
25970 2004-08-24 05:29  jackson
25971
25972         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25973           XplatUIX11.cs: Move timers to the driver level. On X they are
25974           queued by the driver and checked on idle.
25975
25976 2004-08-24 01:07  jackson
25977
25978         * XplatUIX11.cs: Use a queue for async messages instead of passing
25979           them as ClientMessages since that was totally broken. Also simply
25980           check for events and return an idle message if none are found. This
25981           gives us an idle handler, and prevents deadlocking when no messages
25982           are in the queue.
25983
25984 2004-08-23 18:19  ravindra
25985
25986         * XplatUIWin32.cs: Removed the unwanted destructor.
25987
25988 2004-08-23 17:27  pbartok
25989
25990         * ButtonBase.cs:
25991           - Finishing touches. Works now, just needs some optimizations.
25992
25993 2004-08-23 16:53  jordi
25994
25995         * ScrollBar.cs: small fix
25996
25997 2004-08-23 16:45  pbartok
25998
25999         * Application.cs:
26000           - Removed debug output
26001           - Simplifications
26002
26003 2004-08-23 16:43  jordi
26004
26005         * ScrollBar.cs: [no log message]
26006
26007 2004-08-23 16:10  pbartok
26008
26009         * Form.cs:
26010           - Fixed handling of WM_CLOSE message
26011           - Removed debug output
26012
26013 2004-08-23 16:09  pbartok
26014
26015         * Application.cs:
26016           - Added handling of Idle event
26017           - Added handling of form closing
26018           - Fixed reporting of MessageLoop property
26019           - Removed some unneeded code, should provide a bit of a speedup
26020
26021 2004-08-23 15:22  pbartok
26022
26023         * Control.cs:
26024           - Added InitLayout() method
26025           - Added code to properly perform layout when Anchor or Dock property
26026             is changed
26027           - Changed 'interpretation' of ResumeLayout. MS seems to have a
26028             LAMESPEC, tried to do it in a way that makes sense
26029
26030 2004-08-23 14:10  jordi
26031
26032         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
26033           properties and methods
26034
26035 2004-08-23 13:55  pbartok
26036
26037         * Control.cs:
26038           - Properly fixed Jordi's last fix
26039           - Now uses Cursor's Position property instead of calling XplatUI
26040           directly
26041
26042 2004-08-23 13:44  jordi
26043
26044         * PaintEventHandler.cs: Adding missing attribute
26045
26046 2004-08-23 13:39  pbartok
26047
26048         * Cursor.cs:
26049           - Implemented Position property
26050
26051 2004-08-23 13:39  pbartok
26052
26053         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26054           - Added method to move mouse cursor
26055
26056 2004-08-23 13:39  pbartok
26057
26058         * XplatUIX11.cs:
26059           - Fixed setting of background color
26060           - Added method to move mouse cursor
26061
26062 2004-08-23 13:16  jordi
26063
26064         * Control.cs: avoids null exception
26065
26066 2004-08-22 17:46  jackson
26067
26068         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
26069           PictureBox
26070
26071 2004-08-22 17:40  jackson
26072
26073         * XplatUIX11.cs: Add some missing locks
26074
26075 2004-08-22 15:10  pbartok
26076
26077         * Control.cs, Form.cs:
26078           - Removed OverlappedWindow style from Control, instead it's default
26079             now is child
26080           - Made form windows OverlappedWindow by default
26081
26082 2004-08-22 13:34  jackson
26083
26084         * ScrollBar.cs: Update the position through the Value property so
26085           the OnValueChanged event is raised.
26086
26087 2004-08-22 12:04  pbartok
26088
26089         * SWF.csproj:
26090           - Added Cursor.cs and UserControl.cs
26091
26092 2004-08-22 12:03  pbartok
26093
26094         * Cursor.cs:
26095           - Started implementation, not usable yet
26096
26097 2004-08-22 12:00  pbartok
26098
26099         * UserControl.cs:
26100           - Implemented UserControl (complete)
26101
26102 2004-08-21 19:20  ravindra
26103
26104         * ToolBar.cs: Correcting the formatting mess of VS.NET.
26105
26106 2004-08-21 18:49  ravindra
26107
26108         * ToolBar.cs: Probably this completes the missing attributes in
26109           toolbar control.
26110
26111 2004-08-21 18:03  ravindra
26112
26113         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
26114           Fixed toolbar control signatures.
26115
26116 2004-08-21 16:32  pbartok
26117
26118         * LinkLabel.cs:
26119           - Signature Fixes
26120
26121 2004-08-21 16:30  pbartok
26122
26123         * Label.cs:
26124           - Signature fixes
26125
26126 2004-08-21 16:19  pbartok
26127
26128         * Control.cs, Label.cs:
26129           - Signature fixes
26130
26131 2004-08-21 15:57  pbartok
26132
26133         * ButtonBase.cs:
26134           - Added loads of debug output for development
26135           - Fixed typo in method name
26136
26137 2004-08-21 15:52  pbartok
26138
26139         * ToolBarButtonClickEventArgs.cs:
26140           - Added missing base class
26141
26142 2004-08-21 14:53  pbartok
26143
26144         * Control.cs:
26145           - Updated to match new GrabWindow signature
26146
26147 2004-08-21 14:51  pbartok
26148
26149         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26150           - Added method to get default display size
26151
26152 2004-08-21 14:23  pbartok
26153
26154         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26155           - Added method to query current grab state
26156           - Added argument to allow confining a grab to a window
26157
26158 2004-08-21 14:22  pbartok
26159
26160         * Keys.cs:
26161           - Added [Flags] attribute so that modifiers can be used in bitwise
26162           ops
26163
26164 2004-08-21 14:21  pbartok
26165
26166         * TrackBar.cs, ScrollBar.cs:
26167           - Replaced direct XplatUI calls with their Control counterpart
26168
26169 2004-08-21 13:32  pbartok
26170
26171         * Control.cs:
26172           - Implemented Created property
26173
26174 2004-08-21 13:28  pbartok
26175
26176         * Control.cs:
26177           - Implemented ContainsFocus
26178
26179 2004-08-21 13:26  pbartok
26180
26181         * Control.cs:
26182           - Implemented CausesValidation
26183
26184 2004-08-21 13:21  pbartok
26185
26186         * Control.cs:
26187           - Implemented CanFocus
26188           - Implemented CanSelect
26189           - Implemented Capture
26190
26191 2004-08-21 12:35  pbartok
26192
26193         * XplatUIWin32.cs:
26194           - Fixed bug with Async message handling
26195           - Implemented getting the ModifierKeys
26196
26197 2004-08-21 12:32  jackson
26198
26199         * AsyncMethodResult.cs: Make sure we have the mutex before we
26200           release it. Fixes BeginInvoke on windows
26201
26202 2004-08-21 11:31  pbartok
26203
26204         * XplatUIWin32.cs, XplatUIX11.cs:
26205           - Drivers now return proper mouse state
26206
26207 2004-08-21 10:54  jackson
26208
26209         * Control.cs: Implement EndInvoke
26210
26211 2004-08-21 10:48  jackson
26212
26213         * Timer.cs: Remove unneeded finalizer
26214
26215 2004-08-20 19:52  ravindra
26216
26217         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
26218           in mouse event handling in the ToolBar control.
26219
26220 2004-08-20 19:50  ravindra
26221
26222         * ImageList.cs: Changed draw method to use the arguments passed in
26223           to draw the image.
26224
26225 2004-08-20 18:58  pbartok
26226
26227         * XplatUIStructs.cs:
26228           - Added private message for async communication
26229
26230 2004-08-20 17:38  ravindra
26231
26232         * Control.cs: Made RightToLeft property virtual and removed a
26233           Console.WriteLine.
26234
26235 2004-08-20 14:39  jordi
26236
26237         * ThemeGtk.cs: use style_attach
26238
26239 2004-08-20 14:39  pbartok
26240
26241         * XplatUIWin32.cs:
26242           - Added jackson's Async code from X11 to Win32
26243
26244 2004-08-20 14:09  pbartok
26245
26246         * SWF.csproj:
26247           - Added all new files
26248
26249 2004-08-20 14:09  pbartok
26250
26251         * Control.cs:
26252           - Added call to set window background color
26253
26254 2004-08-20 14:03  pbartok
26255
26256         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26257           - Added method for setting the window background
26258
26259 2004-08-20 14:02  pbartok
26260
26261         * XplatUIWin32.cs:
26262           - Added method for setting the background color
26263           - Added handling for erasing the window background
26264
26265 2004-08-20 13:45  jordi
26266
26267         * TrackBar.cs: fixes timer, new properties and methods
26268
26269 2004-08-20 13:34  jackson
26270
26271         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
26272           correct thread
26273
26274 2004-08-20 13:22  jackson
26275
26276         * Timer.cs: Timer Tick events are now handed through Controls Async
26277           mechanism so the callbacks are executed in the same thread as X
26278
26279 2004-08-20 13:19  jackson
26280
26281         * XplatUIDriver.cs: Expose functionality to send async messages
26282           through the driver
26283
26284 2004-08-20 13:18  jackson
26285
26286         * Control.cs: Implement Begininvoke
26287
26288 2004-08-20 13:14  jackson
26289
26290         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
26291           messages through the driver
26292
26293 2004-08-20 13:12  jackson
26294
26295         * XplatUIX11.cs: Lock before all X operations. Also added Async
26296           method functionality through XSendEvent
26297
26298 2004-08-20 13:11  jackson
26299
26300         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
26301           This will screw up on 64 bit systems)
26302
26303 2004-08-20 13:10  jackson
26304
26305         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
26306           Async messages through X/Win32
26307
26308 2004-08-19 19:39  pbartok
26309
26310         * XplatUIX11.cs:
26311           - Updated code to match new HandleData.DeviceContext type
26312
26313 2004-08-19 19:38  pbartok
26314
26315         * HandleData.cs:
26316           - Made DeviceContext a generic object to allow usage from various
26317           drivers
26318           - Added support for queueing Windows messages
26319
26320 2004-08-19 19:37  pbartok
26321
26322         * XplatUIWin32.cs:
26323           - Added generation of MouseEnter, MouseLeave and MouseHover events
26324           - Added cleanup on EndPaint
26325
26326 2004-08-19 19:17  pbartok
26327
26328         * Control.cs:
26329           - Added handling of WM_MOUSEHOVER
26330           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
26331           code
26332
26333 2004-08-19 18:55  jordi
26334
26335         * ThemeGtk.cs: fixes button order
26336
26337 2004-08-19 18:12  jordi
26338
26339         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
26340
26341 2004-08-19 17:09  pbartok
26342
26343         * Control.cs:
26344           - Added Right property
26345           - Added RightToLeft property
26346
26347 2004-08-19 16:27  jordi
26348
26349         * ThemeGtk.cs: experimental GTK theme support
26350
26351 2004-08-19 16:26  jordi
26352
26353         * ITheme.cs, Theme.cs: move themes from an interface to a class
26354
26355 2004-08-19 16:25  jordi
26356
26357         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
26358           theme enhancaments
26359
26360 2004-08-19 16:04  pbartok
26361
26362         * XplatUIX11.cs:
26363           - Added colormap basics
26364           - Added a way to re-initialize with a different display handle
26365           - Fixed setting of the window background color
26366           - Added various X11 imports related to colors and colormaps
26367
26368 2004-08-19 15:51  pbartok
26369
26370         * X11Structs.cs:
26371           - Removed packing hints (Paolo suggested this a while back)
26372           - fixed colormap type
26373           - Added default Atom types
26374           - Added Screen and color structs and enums
26375
26376 2004-08-19 15:39  pbartok
26377
26378         * ImageList.cs:
26379           - Added missing Draw() method
26380           - Added missing RecreateHandle event
26381
26382 2004-08-19 15:30  pbartok
26383
26384         * Form.cs:
26385           - Added handling of WM_CLOSE
26386
26387 2004-08-18 13:16  jordi
26388
26389         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
26390           a table
26391
26392 2004-08-18 09:56  jordi
26393
26394         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
26395
26396 2004-08-17 15:31  ravindra
26397
26398         * SWF.csproj: Updated project.
26399
26400 2004-08-17 15:25  pbartok
26401
26402         * Control.cs:
26403           - Drawing improvement; don't call UpdateBounds if we are not visible
26404             (or have been minimized)
26405
26406 2004-08-17 15:24  pbartok
26407
26408         * XplatUIWin32.cs:
26409           - Finished IsVisible
26410           - Added Win32GetWindowPlacement
26411
26412 2004-08-17 15:08  jackson
26413
26414         * Panel.cs: Initial checkin of the Panel
26415
26416 2004-08-17 14:25  pbartok
26417
26418         * Control.cs:
26419           - Fixed broken handling of default window sizes
26420
26421 2004-08-17 13:29  jackson
26422
26423         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
26424           has a large startup time.
26425
26426 2004-08-17 10:25  jackson
26427
26428         * HandleData.cs: union areas properly
26429
26430 2004-08-17 10:12  jackson
26431
26432         * HandleData.cs: union areas properly
26433
26434 2004-08-16 20:00  ravindra
26435
26436         * ToolBar.cs, ToolBarButton.cs: Added attributes.
26437
26438 2004-08-16 18:48  ravindra
26439
26440         * ToolBar.cs: Added attributes.
26441
26442 2004-08-16 17:17  ravindra
26443
26444         * SWF.csproj: Updated project.
26445
26446 2004-08-16 17:16  jackson
26447
26448         * XplatUIX11.cs: Check for more expose events before sending a
26449           WM_PAINT so they can all be grouped together. This makes dragging a
26450           window across another window redraw in a sane way.
26451
26452 2004-08-16 15:47  pbartok
26453
26454         * Control.cs:
26455           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
26456             support OnMouseEnter/Leave()
26457           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
26458             exposure handling
26459
26460 2004-08-16 15:46  pbartok
26461
26462         * XplatUIStructs.cs, XplatUIX11.cs:
26463           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
26464           OnMouseEnter/Leave()
26465
26466 2004-08-16 15:34  jackson
26467
26468         * XplatUIX11.cs: Group multiple expose events in HandleData, make
26469           sure messages get the message field set to WM_NULL if they are not
26470           handled.
26471
26472 2004-08-16 15:24  jackson
26473
26474         * HandleData.cs: HandleData is used for storing message information
26475           for window handles
26476
26477 2004-08-15 17:23  ravindra
26478
26479         * ColorDepth.cs: Added attribute.
26480
26481 2004-08-15 17:23  ravindra
26482
26483         * SWF.csproj: Updated project for ToolBar Control.
26484
26485 2004-08-15 17:20  ravindra
26486
26487         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
26488           control and also dos2unix format.
26489
26490 2004-08-15 17:13  ravindra
26491
26492         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
26493           ToolBarButtonClickEventArgs.cs,
26494           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
26495           ToolBarTextAlign.cs: First Implementation of ToolBar control.
26496
26497 2004-08-15 15:31  pbartok
26498
26499         * ButtonBase.cs:
26500           - First (mostly) working version
26501
26502 2004-08-13 16:15  pbartok
26503
26504         * Control.cs:
26505           - Fixed Anchor default
26506
26507 2004-08-13 15:43  pbartok
26508
26509         * Control.cs:
26510           - Changed GetCursorPos signature
26511
26512 2004-08-13 15:42  pbartok
26513
26514         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26515           - Changed signature for GetCursorPos
26516
26517 2004-08-13 15:25  pbartok
26518
26519         * XplatUIX11.cs:
26520           - Cleanup
26521           - Fixed resizing/exposure handling
26522
26523 2004-08-13 15:22  jordi
26524
26525         * ThemeWin32Classic.cs: removes redundant code and fixes issues
26526           with tickposition
26527
26528 2004-08-13 14:55  jordi
26529
26530         * TrackBar.cs: change from wndproc to events
26531
26532 2004-08-13 13:00  jordi
26533
26534         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26535           XplatUIX11.cs: implements PointToClient (ScreenToClient)
26536
26537 2004-08-13 12:53  pbartok
26538
26539         * XplatUIWin32.cs:
26540           - Changed GetWindowPos to also provide client area size
26541           - Fixed broken prototypes for several win32 functions
26542
26543 2004-08-13 12:53  pbartok
26544
26545         * XplatUI.cs, XplatUIDriver.cs:
26546           - Changed GetWindowPos to also provide client area size
26547
26548 2004-08-13 12:52  pbartok
26549
26550         * XplatUIX11.cs:
26551           - Added generation of WM_POSCHANGED
26552           - Changed GetWindowPos to also provide client area size
26553
26554 2004-08-13 12:52  pbartok
26555
26556         * Control.cs:
26557           - Added Dispose() and destructor
26558           - Fixed resizing and bounds calculation
26559           - Fixed Layout
26560           - Added memory savings for invisible windows
26561
26562 2004-08-13 12:46  jordi
26563
26564         * TrackBar.cs: adds timer and grap window
26565
26566 2004-08-13 10:25  jackson
26567
26568         * Timer.cs: SWF Timer
26569
26570 2004-08-12 16:59  pbartok
26571
26572         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26573           - Implemented method to get current mouse position
26574
26575 2004-08-12 14:29  jordi
26576
26577         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
26578           enhancement, fix mouse problems, highli thumb, etc
26579
26580 2004-08-12 13:31  pbartok
26581
26582         * Control.cs:
26583           - Fixed Anchoring bugs
26584
26585 2004-08-12 13:01  jackson
26586
26587         * StatusBar.cs: Don't forget things
26588
26589 2004-08-12 12:54  jackson
26590
26591         * ThemeWin32Classic.cs: Handle owner draw status bars
26592
26593 2004-08-12 12:54  jackson
26594
26595         * StatusBar.cs: Implement missing properties, events, and methods.
26596           Handle mouse clicking
26597
26598 2004-08-12 10:19  jackson
26599
26600         * StatusBarPanelClickEventArgs.cs,
26601           StatusBarPanelClickEventHandler.cs: Classes for handling status
26602           bar panel click events
26603
26604 2004-08-12 10:10  jackson
26605
26606         * Control.cs: Add missing properties
26607
26608 2004-08-12 09:46  pbartok
26609
26610         * BindingsManagerBase.cs:
26611           - Name changed to BindingManagerBase.cs
26612
26613 2004-08-12 09:25  jordi
26614
26615         * ScrollableControl.cs: calls ctrlbase instead of exeception
26616
26617 2004-08-11 16:28  pbartok
26618
26619         * InputLanguageChangingEventArgs.cs:
26620           - Never check in before compiling. Fixes the last check-in
26621
26622 2004-08-11 16:26  pbartok
26623
26624         * InputLanguageChangingEventArgs.cs:
26625           - More signature fixes
26626
26627 2004-08-11 16:20  pbartok
26628
26629         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
26630           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
26631           ImageListStreamer.cs, InputLanguage.cs,
26632           InputLanguageChangedEventArgs.cs,
26633           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
26634           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
26635           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
26636           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26637           - Signature fixes
26638
26639 2004-08-11 16:16  pbartok
26640
26641         * Application.cs:
26642           - Fixed Signature
26643           - Added .Net 1.1 method
26644
26645 2004-08-11 15:25  pbartok
26646
26647         * SWF.csproj:
26648           - Fixed BindingManagerBase.cs filename
26649
26650 2004-08-11 15:22  pbartok
26651
26652         * BindingManagerBase.cs:
26653           - Was checked in with wrong filename
26654
26655 2004-08-11 14:50  pbartok
26656
26657         * SWF.csproj:
26658           - Updated
26659
26660 2004-08-11 13:41  jordi
26661
26662         * XplatUIWin32.cs: Fixes ClientRect
26663
26664 2004-08-11 13:19  pbartok
26665
26666         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26667           XplatUIX11.cs:
26668           - We had SetWindowPos and MoveWindow to set window positions and
26669             size, removed MoveWindow. We have GetWindowPos, so it made sense to
26670             keep SetWindowPos as matching counterpart
26671           - Added some X11 sanity checking
26672
26673 2004-08-11 12:59  pbartok
26674
26675         * Control.cs:
26676           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
26677             (It seems that SetBounds is just a front for SetBoundsCore and
26678              SetBoundsCore updates the underlying window system and
26679              UpdateBounds is responsible for updating the variables associated
26680              with the Control and sending the events)
26681           - Major cleanup of Size handling; we now have two sizes, client_size
26682             and bounds. Bounds defines the window with decorations, client_size
26683             without them.
26684
26685 2004-08-11 12:55  pbartok
26686
26687         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26688           - Added method to calculate difference between decorated window and
26689             raw client area
26690
26691 2004-08-11 12:54  pbartok
26692
26693         * Label.cs:
26694           - Forcing redraw on resize
26695
26696 2004-08-11 11:43  pbartok
26697
26698         * ImageList.cs:
26699           - Removed disposing of the actual images when the list is disposed
26700
26701 2004-08-11 09:13  pbartok
26702
26703         * Control.cs:
26704           - Now properly reparents windows
26705
26706 2004-08-11 08:37  pbartok
26707
26708         * Control.cs:
26709           - Duh!
26710
26711 2004-08-11 07:47  pbartok
26712
26713         * Control.cs:
26714           - Rewrote the collection stuff. Might not be as fast now, not
26715             keeping the number of children around and accessible directly, but
26716             it's more straightforward
26717
26718 2004-08-11 07:44  pbartok
26719
26720         * AccessibleObject.cs:
26721           - Fixed to match ControlCollection rewrite
26722
26723 2004-08-11 07:43  pbartok
26724
26725         * ImageList.cs:
26726           - Added missing creation of the collection list
26727
26728 2004-08-10 20:08  jackson
26729
26730         * StatusBar.cs: Get the paint message from WndProc
26731
26732 2004-08-10 19:31  jackson
26733
26734         * ThemeWin32Classic.cs: Create Brushes as little as possible
26735
26736 2004-08-10 19:20  jackson
26737
26738         * UICues.cs: Add Flags attribute
26739
26740 2004-08-10 19:19  jackson
26741
26742         * StatusBarPanel.cs: Signature cleanup
26743
26744 2004-08-10 19:10  jackson
26745
26746         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
26747           Initial implementation of status bar item drawing
26748
26749 2004-08-10 17:27  jordi
26750
26751         * TrackBar.cs: add missing methods, properties, and restructure to
26752           hide extra ones
26753
26754 2004-08-10 16:24  jackson
26755
26756         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
26757           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
26758           attribute
26759
26760 2004-08-10 13:21  jordi
26761
26762         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
26763           enhancements and standarize on win colors defaults
26764
26765 2004-08-10 12:52  jackson
26766
26767         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
26768           ThemeWin32Classic.cs: Implement DrawItem functionality
26769
26770 2004-08-10 12:47  jordi
26771
26772         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
26773
26774 2004-08-10 12:32  jordi
26775
26776         * Control.cs: throw ontextchange event
26777
26778 2004-08-10 11:43  pbartok
26779
26780         * Control.cs:
26781           - Added more to the still unfinished Dock/Anchor layout code
26782
26783 2004-08-10 11:39  pbartok
26784
26785         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26786           - Added GetWindowPos method
26787
26788 2004-08-10 11:36  pbartok
26789
26790         * XplatUIWin32.cs:
26791           - Implemented several methods
26792
26793 2004-08-10 09:47  jackson
26794
26795         * TrackBar.cs: Allow control to handle buffering
26796
26797 2004-08-10 09:41  jackson
26798
26799         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
26800
26801 2004-08-10 09:24  jackson
26802
26803         * Label.cs, LinkLabel.cs: Let Control handle buffering.
26804
26805 2004-08-10 09:09  jackson
26806
26807         * StatusBar.cs: Let Control handle all the buffering.
26808
26809 2004-08-10 09:08  jackson
26810
26811         * Control.cs: Control will now handle the buffering code, so each
26812           control does not have to implement this.
26813
26814 2004-08-10 08:34  jackson
26815
26816         * XplatUIDriver.cs: Use default colors from the theme
26817
26818 2004-08-09 17:12  pbartok
26819
26820         * ImageList.cs:
26821           - Fixed several bugs Ravindra pointed out
26822
26823 2004-08-09 16:11  pbartok
26824
26825         * Control.cs:
26826           - Added incomplete dock layout code
26827           - Added support for mouse wheel
26828
26829 2004-08-09 16:09  pbartok
26830
26831         * XplatUIX11.cs:
26832           - Added handling for middle and right mousebutton
26833           - Added handling for mouse wheel
26834           - Added handling for key state and mouse state and position
26835           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
26836           messages
26837
26838 2004-08-09 15:40  jackson
26839
26840         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
26841           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
26842           checkin
26843
26844 2004-08-09 15:37  jackson
26845
26846         * StatusBar.cs: Initial implementation of StatusBar
26847
26848 2004-08-09 15:36  jackson
26849
26850         * ITheme.cs: Add support for drawing status bar and getting status
26851           bar item sizes
26852
26853 2004-08-09 15:35  pbartok
26854
26855         * MouseButtons.cs:
26856           - Fixed values
26857
26858 2004-08-09 15:34  jackson
26859
26860         * ThemeWin32Classic.cs: Add support for drawing status bar and get
26861           status bar item sizes
26862
26863 2004-08-09 15:21  jackson
26864
26865         * ThemeWin32Classic.cs: Use known colors for default control
26866           colours
26867
26868 2004-08-09 15:12  jackson
26869
26870         * ThemeWin32Classic.cs: Make the default font static, it is static
26871           in control so this doesn't change functionality and creating fonts
26872           is sloooooow.
26873
26874 2004-08-09 14:56  pbartok
26875
26876         * X11Structs.cs:
26877           - Added GrabMode enum
26878
26879 2004-08-09 14:55  pbartok
26880
26881         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26882           - Removed Run method, was only required for initial development
26883
26884 2004-08-09 14:51  pbartok
26885
26886         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26887           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
26888           capture
26889
26890 2004-08-09 13:48  pbartok
26891
26892         * XplatUIX11.cs:
26893           - Fixed default sizing for child windows
26894
26895 2004-08-09 12:56  pbartok
26896
26897         * XplatUIX11.cs:
26898           - Added generation of WM_DESTROY message
26899           - Added handling of window manager induced shutdown
26900
26901 2004-08-09 11:31  jackson
26902
26903         * ThemeWin32Classic.cs: New names for control properties
26904
26905 2004-08-09 11:25  jackson
26906
26907         * Control.cs: Use new color names
26908
26909 2004-08-09 11:02  jackson
26910
26911         * XplatUI.cs: Get default window properties from the theme
26912
26913 2004-08-09 11:01  jackson
26914
26915         * ITheme.cs: The theme engine now controls default window
26916           properties
26917
26918 2004-08-09 11:00  jackson
26919
26920         * ThemeWin32Classic.cs: Add default window color properties
26921
26922 2004-08-09 10:17  jackson
26923
26924         * ThemeWin32Classic.cs: Use correct default back color
26925
26926 2004-08-09 10:05  jackson
26927
26928         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
26929           the theme now.
26930
26931 2004-08-09 09:56  jackson
26932
26933         * XplatUI.cs: Remove defaults, these are handled by the theme now.
26934
26935 2004-08-09 09:54  jackson
26936
26937         * Control.cs: Get default properties from the theme.
26938
26939 2004-08-09 09:53  jackson
26940
26941         * ITheme.cs: Themes now handle default control properties
26942
26943 2004-08-09 09:53  jackson
26944
26945         * ThemeWin32Classic.cs: Themes now handle default control
26946           properties so coloring will be consistent
26947
26948 2004-08-08 16:54  jordi
26949
26950         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
26951
26952 2004-08-08 15:08  jordi
26953
26954         * XplatUIX11.cs: fixes keyboard crash
26955
26956 2004-08-08 13:47  jordi
26957
26958         * Label.cs: add cvs header info
26959
26960 2004-08-08 12:09  jackson
26961
26962         * ThemeWin32Classic.cs: Add pen_buttonface
26963
26964 2004-08-08 11:52  jordi
26965
26966         * Label.cs, LinkLabel.cs: [no log message]
26967
26968 2004-08-08 11:34  jordi
26969
26970         * ThemeWin32Classic.cs: Use Windows Standard Colours
26971
26972 2004-08-07 17:32  jordi
26973
26974         * TrackBar.cs: throw exceptions of invalid enums values
26975
26976 2004-08-07 17:31  jordi
26977
26978         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
26979           draw method name
26980
26981 2004-08-07 16:56  jackson
26982
26983         * HorizontalAlignment.cs: Initial checkin
26984
26985 2004-08-07 13:16  jordi
26986
26987         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
26988           methods
26989
26990 2004-08-07 13:05  jordi
26991
26992         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
26993           GetSysColor defines
26994
26995 2004-08-06 18:01  pbartok
26996
26997         * ThemeWin32Classic.cs:
26998           - Fixed some rounding issues with float/int
26999
27000 2004-08-06 18:00  jackson
27001
27002         * DockStyle.cs, AnchorStyles.cs:
27003
27004                   Add flags and serializable attributes.
27005
27006 2004-08-06 17:46  pbartok
27007
27008         * XplatUIX11.cs:
27009           - Implemented GetParent
27010
27011 2004-08-06 17:18  pbartok
27012
27013         * TrackBar.cs:
27014           - Fixed some rounding issues with float/int
27015
27016 2004-08-06 17:17  pbartok
27017
27018         * X11Structs.cs, XplatUIX11.cs:
27019           - Fixed Refresh and Invalidate
27020
27021 2004-08-06 15:30  pbartok
27022
27023         * Control.cs, X11Structs.cs, XplatUIX11.cs:
27024           - Fixed recursive loop when resizing
27025           - Improved/fixed redrawing on expose messages
27026
27027 2004-08-06 09:53  jordi
27028
27029         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
27030           keyboard navigation
27031
27032 2004-08-06 08:02  pbartok
27033
27034         * X11Structs.cs, XplatUIX11.cs:
27035           - Fixed reparenting
27036           - Fixed window border creation
27037
27038 2004-08-05 15:38  pbartok
27039
27040         * XplatUIX11.cs:
27041           - Attempted fix for reparenting problems
27042
27043 2004-08-04 15:14  pbartok
27044
27045         * Control.cs:
27046           - Fixed Invalidation bug (calculated wrong client area)
27047           - Added ClientSize setter
27048
27049 2004-08-04 15:13  pbartok
27050
27051         * Form.cs:
27052           - Added AutoScale properties
27053
27054 2004-08-04 15:13  pbartok
27055
27056         * SWF.csproj:
27057           - Added latest files
27058
27059 2004-08-04 14:11  pbartok
27060
27061         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27062           XplatUIX11.cs:
27063           - Added Invalidate handling
27064
27065 2004-08-03 17:09  jordi
27066
27067         * XplatUIDriver.cs: fixes spelling mistake
27068
27069 2004-07-27 09:53  jordi
27070
27071         * TrackBar.cs: fixes trackbar events, def classname, methods
27072           signature
27073
27074 2004-07-27 09:29  jordi
27075
27076         * ScrollBar.cs: fixes scrollbar events
27077
27078 2004-07-27 04:38  jordi
27079
27080         * Control.cs: changes to be able to run winforms samples
27081
27082 2004-07-26 11:42  jordi
27083
27084         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
27085           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
27086
27087 2004-07-26 05:41  jordi
27088
27089         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
27090           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
27091           implementation
27092
27093 2004-07-22 09:22  jordi
27094
27095         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
27096           check link overlapping, implement events, and fixes
27097
27098 2004-07-21 10:28  jordi
27099
27100         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
27101
27102 2004-07-21 10:19  jordi
27103
27104         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
27105           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
27106           LinkLabelLinkClickedEventArgs.cs,
27107           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
27108           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
27109           implementation
27110
27111 2004-07-19 13:09  jordi
27112
27113         * Control.cs, Label.cs: label control re-written: added missing
27114           functionlity, events, and properties
27115
27116 2004-07-19 10:49  jordi
27117
27118         * Control.cs: fixes SetBounds logic
27119
27120 2004-07-19 01:29  jordi
27121
27122         * Control.cs: Call RefreshWindow only if the window has created
27123
27124 2004-07-15 14:05  pbartok
27125
27126         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
27127           - Implemented ImageList and ImageList.ImageCollection classes
27128           - Added ColorDepth enumeration
27129           - Updated SWF VS.Net project
27130
27131 2004-07-15 11:06  jordi
27132
27133         * XplatUIStructs.cs: added MsgButons enum
27134
27135 2004-07-15 11:03  jordi
27136
27137         * Control.cs: added basic mouse handeling events
27138
27139 2004-07-15 03:38  jordi
27140
27141         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
27142           Vertical TrackBar control implementation
27143
27144 2004-07-13 09:33  jordi
27145
27146         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
27147
27148 2004-07-13 09:31  jordi
27149
27150         * Control.cs, Form.cs: commit: new properties and fixes form size
27151           problems
27152
27153 2004-07-09 14:13  miguel
27154
27155         * ProgressBar.cs: Spelling
27156
27157 2004-07-09 11:25  pbartok
27158
27159         * ProgressBar.cs:
27160           - Removed usage of Rectangle for drawing. Miguel pointed out it's
27161           faster
27162
27163 2004-07-09 11:17  miguel
27164
27165         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
27166
27167                 * ProgressBar.cs: Fixed spelling for `block'
27168
27169                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
27170                 style guidelines.
27171
27172                 Avoid using the += on rect.X, that exposed a bug in the compiler.
27173
27174 2004-07-08 23:21  pbartok
27175
27176         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
27177           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
27178           BaseCollection.cs, Binding.cs, BindingContext.cs,
27179           BindingMemberInfo.cs, BindingsCollection.cs,
27180           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
27181           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
27182           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
27183           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
27184           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
27185           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
27186           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
27187           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
27188           FrameStyle.cs, GiveFeedbackEventArgs.cs,
27189           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
27190           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
27191           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
27192           InputLanguageChangedEventArgs.cs,
27193           InputLanguageChangedEventHandler.cs,
27194           InputLanguageChangingEventArgs.cs,
27195           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
27196           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
27197           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
27198           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
27199           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
27200           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
27201           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
27202           QueryAccessibilityHelpEventArgs.cs,
27203           QueryAccessibilityHelpEventHandler.cs,
27204           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
27205           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
27206           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
27207           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
27208           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
27209           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
27210           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
27211           XplatUIX11.cs, lang.cs:
27212           - Initial check-in
27213
27214