* TextBoxBase.cs: These seem to be the correct values.
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-05-31  Jackson Harper  <jackson@ximian.com>
2
3         * TextBoxBase.cs: These seem to be the correct values.
4
5 2007-05-31  Everaldo Canuto  <ecanuto@novell.com>
6
7         * FileDialog.cs: When close dialog with ok set filterindex using combobox
8         value. Fixes #81784.
9
10 2007-05-31  Jonathan Pobst  <monkey@jpobst.com>
11
12         * Control.cs: Implement 2.0 scaling methods.
13
14 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
15
16         * ProgressBar.cs, WebBrowserBase.cs, Control.cs, MaskedTextBox.cs,
17           MessageBox.cs, PropertyGrid.cs, RichTextBox.cs: Fix warnings and
18           corcompare issues.
19
20 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
21
22         * ProgressBar.cs: Implemented missing 2.0 members.
23
24 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
25
26         * Control.cs: Corcompare issues.
27         * MessageBox.cs: Implemented missing 2.0 functions.
28
29 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
30
31         * CheckedListBox.cs, ListBox.cs, ListControl.cs, ComboBox.cs:
32           Implemented more 2.0 members.
33
34 2007-05-31  Rolf Bjarne Kvinge <RKvinge@novell.com> 
35
36         * Application.cs: Try to avoid NRE when Assembly.GetEntryAssembly is
37           null (strange, but it seems to happen when running unit tests).
38
39 2007-05-30  Andreia Gaita  <avidigal@novell.com>
40
41         * ContainerControl.cs: Set active_control even earlier, before 
42         firing any events, and undo it if validation returns false.
43
44 2007-05-30  Andreia Gaita  <avidigal@novell.com>
45
46         * ContainerControl.cs: Raise Validation and Enter/Leave events
47         even if there is no Form and set active_control earlier, just
48         before firing Enter events (toshok's patches). Fixes #80647.
49
50 2007-05-30  Jackson Harper  <jackson@ximian.com>
51
52         * TextControl.cs: Redid the pageup/pagedown a little to simplify
53         things and fix bug #81311.
54
55 2007-05-30  Jackson Harper  <jackson@ximian.com>
56
57         * X11Dnd.cs: Now that we have our own event loop, we need to
58         cancel when we get a mouseup but it won't be accepted.
59
60 2007-05-30  Chris Toshok  <toshok@ximian.com>
61
62         * DataGrid.cs (set_CurrentCell): guard against negative
63         column/row.
64
65         * DataGridColumnStyle.cs (CheckValidDataSource): just use the
66         array index syntax instead of looping over the property names.
67
68         * DataGridTextBoxColumn.cs: add a changed handler on the textbox,
69         and set IsInEditOrNavigateMode to false there.
70
71 2007-05-30  Jackson Harper  <jackson@ximian.com>
72
73         * TreeView.cs: Make sure we don't get a bad visible order when
74         setting to the top node.  Fixes some misc crashing in
75         ControlInspector.
76
77 2007-05-30  Andreia Gaita  <avidigal@novell.com>
78
79         * UserControl.cs: Add 2.0 AutoSizeMode
80
81 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
82
83         * DataGridTextBoxColumn.cs: Fix textbox horizontal offset.
84
85 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
86
87         * DataGridTextBoxColumn.cs: Fix textbox position to prevent override grid
88         lines. Fixes #80285. 
89
90 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
91
92         * DataGridColumnStyle.cs: Add char trimming column header text format. 
93
94 2007-05-29  Everaldo Canuto  <ecanuto@novell.com>
95
96         * DataGridColumnStyle.cs: Fix grid header arrow drawing over column name. 
97         Fixes #80147.
98
99 2007-05-29  Jackson Harper  <jackson@ximian.com>
100
101         * TreeNode.cs: Fix off by one on calculating whether or not a node
102         is visible.
103
104 2007-05-29  Jonathan Pobst  <monkey@jpobst.com>
105
106         * Control.cs: ResumeLayout(false) should recalculate anchor distances.
107         * ScrollableControl.cs: Force an UpdateDistances when we move the
108         scrollbars.
109         [Fixes bug #80605]
110
111 2007-05-29  Andreia Gaita  <avidigal@novell.com>
112
113         * PageSetupDialog.cs: Fix #80728 - Changing the printer doesn't
114         update the page setup screen.
115
116 2007-05-29  Andreia Gaita  <avidigal@novell.com>
117
118         * PageSetupDialog.cs: Fix landscape mode.
119
120 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
121
122         * SystemInformation.cs: Add 2.0 IconSizeVerticalSpacing and
123         IconSizeHorizontalSpacing.
124
125 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
126
127         * ListView.cs: The declaration of prev_tooltip_item should be inside
128         a NET_2_0 conditional (avoid a warning).
129
130 2007-05-28  Andreia Gaita  <avidigal@novell.com>
131
132         * PageSetupDialog.cs: Implement PrintPreview control to display
133         the preview thumbnail. Change unit conversion to use 
134         PrinterUnitConvert methods.
135         
136         Note: there is a huge bug in ms.net where the default margins are 
137         interpreted as centimeters (?), when in fact they are set in inches. When 
138         loading the page setup dialog initially (ms.net), the default margins 
139         are set to 1 inch, and the dialog shows them with value 10, when in fact 
140         it should be 25 (properly converted). Our dialog doesn't have this bug.
141         
142         * Theme.cs, ThemeWin32Classic.cs: Add a CPDrawBorder override for 
143         RectangleF.
144         * ControlPaint.cs: Add a DrawBorder internal method for RectangleF.
145
146 2007-05-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
147
148         * ListView.cs:
149         * ListViewItem.cs: Implement 2.0 ToolTipText support for listview
150         items.
151
152 2007-05-28  Andreia Gaita  <avidigal@novell.com>
153
154         * X11Dnd.cs: A direct cast to VirtualKeys is not allowed from
155         an IntPtr on csc (it builds fine on mcs, could it be a compiler
156         bug?), convert the ptr to Int32 first.
157
158 2007-05-28  Jackson Harper  <jackson@ximian.com>
159
160         * X11Dnd.cs: Add a timer, so after drop, if a finish is not
161         recieved, we will exit the dnd tracking loop.
162
163 2007-05-28  Jackson Harper  <jackson@ximian.com>
164
165         * X11Dnd.cs: Keep tracking until the xdnd finished event is
166         recieved. TODO: I should probably stick a timer on the dropped
167         event, and finish the drag if the XDND Finished event never shows
168         (because some apps don't seem to send it).
169
170 2007-05-28  Everaldo Canuto  <ecanuto@novell.com>
171
172         * ToolBar.cs: Fix toolbar default width for button with image. Fixes
173         #81733.
174
175 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
176
177         * MonthCalendar.cs: Only mark the keypresses we actually handle as
178           handled.
179
180 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
181
182         * MonthCalendar.cs: Set the size after initializing all the relevant
183           variables. Fixes #81742.
184
185 2007-05-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
186
187         * KeyEventArgs.cs: Fix typo.
188
189 2007-05-28  Gert Driesen  <drieseng@users.sourceforge.net>
190
191         * DateTimePicker.cs: Changed exceptions thrown by MinDate and MaxDate
192         to match MS. Fixed MinDate to only accept value less than or equal
193         to MaxDate on 2.0 profile and less than MaxDate on 1.0 profile.
194         Removed TODO's that are now verified by unit tests.
195
196 2007-05-27  Gert Driesen  <drieseng@users.sourceforge.net>
197
198         * TreeNodeCollection.cs: Minor corrections to exceptions to match
199         MS.
200
201 2007-05-25  Jackson Harper  <jackson@ximian.com>
202
203         * X11Dnd.cs: Rework to make StartDrag a blocking call that runs
204         it's own message loop.
205         * XplatUIX11.cs: Remove some of the dnd hooks
206
207 2007-05-25  Gert Driesen  <drieseng@users.sourceforge.net>
208
209         * XplatUIX11.cs: Change MinimumWindowSize to {Width=0,Height=0}
210         instead of MinimizedWindowSize.
211
212 2007-05-25  Jackson Harper  <jackson@ximian.com>
213
214         * TextBoxBase.cs: Raise textchanged when cutting and pasting text.
215
216 2007-05-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
217
218         * KeyEventArgs.cs: Added SuppressKeyPress.
219         * Control.cs: Added support for SuppressKeyPress.
220
221 2007-05-24  Andreia Gaita  <avidigal@novell.com>
222
223         * NumericUpDown.cs: Refactor code to fix regressions on #79950 and
224         problems with PieChart. suppress_validation should not be a counter,
225         if there are several BeginInit calls, the first EndInit will 
226         activate validation. Fix exceptions thrown by set_Value.
227         * UpDownBase.cs: ValidateText only if it's the user editing it.
228
229 2007-05-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
230
231         * ListControl.cs: FilterItemOnProperty should return the filtered
232         item proeprty even if DataSource is null. The same applies for
233         GetItemText. Fixes #80427.
234
235 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
236
237         * Control.cs: If a control doesn't have a parent when it's Dock is
238         set, but it has children, it needs to do a layout.  Fixes some nested
239         controls issues.  [Fixes bug #81199]
240
241 2007-05-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
242
243         * ComboBox.cs: If there are few items in the drop down list, make it
244           the exact size the items need, no bigger. Fixes #81612.
245
246 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
247
248         * Application.cs: When we have captured the keyboard for a menu,
249         check for mouse down events in case we need to close the menu.
250         * Control.cs, Form.cs: Remove mouse down checks for menus.
251
252 2007-05-24  Jackson Harper  <jackson@ximian.com>
253
254         * TextControl.cs: Handle tabs in non multiline mode a little
255         differently.
256
257 2007-05-24  Jackson Harper  <jackson@ximian.com>
258
259         * TextControl.cs: We need to manually break apart tabbed text and
260         move the tabs, since the system.drawing tabbing mechanism relies
261         on tab stops.
262         * TextBoxBase.cs: Move the caret properly when the user enters a
263         tab.
264
265 2007-05-24  Jonathan Pobst  <monkey@jpobst.com>
266
267         * ContainerControl.cs: Don't check CanSelect before calling
268         ProcessMnemonic.
269         * ToolStrip.cs: Only do implicit mnemonics on MenuStrips.  Don't
270         release a KeyboardActive on click if it's not ours.
271
272 2007-05-23  Andreia Gaita  <avidigal@novell.com>
273
274         * ColumnHeader.cs: Add TypeConverter
275
276 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
277
278         * LinkLabel.cs: Implement LinkCollection.Add with Link parameter (2.0).
279
280 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
281
282         * LinkLabelLinkClickedEventArgs.cs, LinkLabel.cs: Implement Button property.
283
284 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
285
286         * LinkLabel.cs: Implement public Padding property.
287
288 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
289
290         * LinkLabel.cs: Implement public FlatStyle.
291
292 2007-05-23  Jonathan Pobst  <monkey@jpobst.com>
293
294         * Control.cs: Apply patch from George to call parent.PerformLayout
295         when Visible is changed.  [Fixes bugs #81118, 81718]
296
297 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
298
299         * MainMenu.cs, MenuAPI.cs: Implement Collapse event for MainMenu (2.0).
300
301 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
302
303         * ContextMenu.cs: Implement ProcessCmdKey with control parameter.
304
305 2007-05-23  Everaldo Canuto  <ecanuto@novell.com>
306
307         * ContextMenu.cs: Implement Collapse.
308
309 2007-05-23  Rolf Bjarne Kvinge <RKvinge@novell.com>
310
311         * ToolBarButton.cs: Implement Name.
312
313 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
314
315         * ToolBar.cs: Fix OnButtonDropDown to save item used in dropdown instead of
316         use current_item, it prevents some NRE. Fixes #81675.  
317
318 2007-05-22  Andreia Gaita  <avidigal@novell.com>
319
320         * NumericUpDown.cs: Fix PieChart by not returning from UpdateEditText
321         without updating the text.
322
323 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
324
325         * XplatUIWin32.cs: Plug a GDI leak caused by calling Font.ToHfont ()
326         without calling DeleteObject.  [Should fix bug #81709]
327
328 2007-05-22  Jackson Harper  <jackson@ximian.com>
329
330         * RichTextBox.cs: Set the line endings correctly, when flushing
331         RTF text.
332
333 2007-05-22  Gert Driesen  <drieseng@users.sourceforge.net>
334
335         * XplatUIX11.cs: MinimumWindowSize on X11 is actually
336          {Width=0,Height=0}.
337
338 2007-05-22  Jackson Harper  <jackson@ximian.com>
339
340         * TreeView.cs: Setting top with a null node should set to the very
341         top.
342
343 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
344
345         * Form.cs: ShowDialog: destroy the handle when message loop is
346           finished, matches MS behaviour. Refactor parts of WmClose into
347           RaiseCloseEvents, that only raises events if they haven't already
348           been raised. Fixes #81688 and #81521.
349         * Application.cs: Don't call close on the form when exiting a modal
350           loop, it will raise all the (Form)Closed/Closing events again if
351           WM_CLOSE has been sent earlier on, instead call RaiseCloseEvent,
352           which doesn'r raise any events it they have been raised before.
353
354 2007-05-22  Jonathan Pobst  <monkey@jpobst.com>
355
356         * Control.cs: Add OnPrint.
357         * ToolStrip.cs: Add GetChildAtPoint.
358         * ToolStripContainer.cs: Add OnRightToLeftChanged.
359         * ToolStripRenderer.cs: Make CreateMirrorImage internal.
360
361 2007-05-22  Everaldo Canuto  <ecanuto@novell.com>
362
363         * MenuAPI.cs: Prevent context menu to be typed as MainMenu. Fixes #81509.  
364
365 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
366
367         * InternalWindowManager.cs: ToolTipShow: Don't show tooltip if the form
368           isn't visible anymore. Fixes #81651.
369
370 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
371
372         * Control.cs: WmShowWindow: Update children's z-order after setting
373           their parent. SetParent may show the window, thereby corrupting
374           z-order, since the window will be shown on top.
375         * XplatUIWin32.cs: SetParent: don't call SetVisible on forms. Prevents
376           multiple (and redundant) WM_SHOWWINDOW messages.
377         * MdiWindowManager.cs: RaiseDeactivate: only raise after an Activate
378           event has already been raised.
379         * Form.cs: Change is_changing_visible_state to a counter, since
380           SetVisibleCore can be called recursively. CreateHandle: when
381           creating mdi children, send (De)Activated events.
382         * MdiClient.cs: Update use of is_changing_visible_state.
383         * Application.cs: OnThreadException: Surround exception handling with
384           try/finally to ensure we always reset the error-handling state
385           before leaving.
386
387 2007-05-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
388
389         * ThemeWin32Classic.cs: DrawProgressBar: Avoid a DivideByZero exception
390           (#81704).
391
392 2007-05-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
393
394         * ListView.cs: Use Theme.ListViewHorizontalSpacing for List and
395         SmallIcon views, now that we have a standarized horizontal spacing.
396
397         * ThemeWin32Classic.cs: ListViewHorizontalSpacing now has a value of
398         4, just like the other views (Match .Net).
399
400 2007-05-21  Jonathan Pobst  <monkey@jpobst.com>
401
402         * Control.cs: Delay calculating anchor distances until we actually layout.
403         Always query the WM for the actual size and location it put us at instead of
404         only when we send negative values.
405         [Fixes bugs #81694, 81695]
406
407 2007-05-21  Rolf Bjarne Kvinge <RKvinge@novell.com> 
408
409         * Application.cs: Avoid a possible stack overflow when trying to exit
410           the application.
411
412 2007-05-19  Marek Safar  <marek.safar@gmail.com>
413
414         * Theme.cs (GetHatchBrush): A key uses internal value instead of formated
415         enum value.
416
417 2007-05-19  Andreia Gaita  <avidigal@novell.com>
418
419         * NumericUpDown.cs: Added 2.0 methods (spin acceleration)
420         * NumericUpDownAcceleration.cs, 
421           NumericUpDownAccelerationCollection.cs: Added 2.0
422           implementation.
423
424 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
425
426         * RichTextBox.cs: Recalculate the document after the ScrollBars
427         property is changed. Fixes bug #81681.
428
429 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
430
431         * DataObject.cs: Implement 2.0 methods.
432
433 2007-05-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
434
435         * ThemeWin32Classic.cs: Draw the check marks in ListViewItems
436         in the center of the checkbox, not in the left-top corner. 
437         Fixes #80037.
438
439 2007-05-18  Jackson Harper  <jackson@ximian.com>
440
441         * RichTextBox.cs: Recalculate the document after the scrollbars
442         property is changed.
443         * TextBoxBase.cs: ScrollBars is not a flags enum...This fixes
444         81486.
445
446 2007-05-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
447
448         * CreateParams.cs: Make HasWindowManager marginally faster.
449         * XplatUIX11.cs, Hwnd.cs: CreateWindow: Move the default location code
450           into Hwnd so that other drivers can use it as well.
451         * XplatUIWin32.cs: CreateWindow: If the window has a window manager get
452           the default location from Hwnd. Fixes MDI client windows always
453           showing up at (0,0) in Windows (Win32 won't set the default
454           location since the window styles aren't correct).
455
456 2007-05-18  Gert Driesen  <drieseng@users.sourceforge.net>
457
458         * TreeView.cs: Modified DoubleBuffered to just use the base
459         implementation.
460
461 2007-05-18  Jackson Harper  <jackson@ximian.com>
462
463         * TreeView.cs: Set the top node to the last child node when
464         expanding all
465         - When we get focus, if there is no selected node, use the top
466         node.
467
468 2007-05-18  Jonathan Pobst  <monkey@jpobst.com>
469
470         * KeysConverter.cs: Add CanConvertTo.
471         * LinkLabel.cs: Add some 2.0 constructors and properties to LinkLabel.Link.
472         * LinkConverter.cs: Added.
473
474 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
475
476         * Cursor.cs: Apply Sebastien patch from #81669 to open file in read mode,
477         it prevents error when file dont have write access. Fixes #81669 and #81667.  
478
479 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
480
481         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw toolbar 
482         button text. Fixes #79640.  
483
484 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
485
486         * Control.cs: According to MSDN controls created in the designer theres 
487         keyboard accelerators visible by default. So included check for design
488         in ShowKeyboardCuesInternal.  
489
490 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
491
492         * ThemeWin32Classic.cs: Check for ShowKeyboardCues true when draw combobox 
493         text. Fixes #81621.  
494
495 2007-05-18  Everaldo Canuto  <ecanuto@novell.com>
496
497         * Control.cs: ShowKeyboardCuesInternal add to expose ShowKeyboardCues
498         for 1.0, becuse ShowKeyboardCues is protected on 1.0.  
499
500 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
501
502         * Control.cs: Finish implementation of UI State using WmChangeUIState
503         to send WM_UPDATEUISTATE to all child controls. Some hack will be needed
504         in some controls to check for show_keyboard_cues to draw accell keys "_".  
505
506 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
507
508         * ListBox.cs: When calculating the horizontal scrollbar
509         in single column mode, don't use values less than 0 for
510         Maximum. Fixes #81474.
511
512 2007-05-17  Carlos Alberto Cortez <calberto.cortez@gmail.com>
513
514         * ListBox.cs: Throw the some missing exceptions in
515         ListBox.ObjectCollection methods.
516
517 2007-05-17  Jackson Harper  <jackson@ximian.com>
518
519         * TextBoxBase.cs: Recalculate the document when the word wrap
520         value has changed. This fixes 81488.
521
522 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
523
524         * Clipboard.cs: Implement missing GetText overload.
525
526 2007-05-17  Chris Toshok  <toshok@ximian.com>
527
528         * Control.cs (CheckDataBindings): remove the binding_context arg
529         to binding.Check.
530
531         * CurrencyManager.cs (OnItemChanged): fix this now that
532         BindingManagerBase is fixed. also remove the comment telling where
533         the fix should go.  We set transfering_data to true/false around
534         the call to PushData to keep UpdateIsBinding from being called.
535         (ListChangedHandler): remove the extra OnMetaDataChanged call for
536         PropertyDescriptorAdded in the 1.1 case.  The extra call is
537         actually generated by System.Data generating 2 metadata changed
538         events of its own per column add.  The fix should go there.  Add a
539         comment to that affect in our test's Assert.Ignore.
540
541         * BindingManagerBase.cs: Rework PullData and PushData slightly.
542         we keep a boolean flag (transfering_data) that keeps us from
543         calling UpdateIsBinding multiple times if we re-enter either of
544         them.
545
546         * ControlBindingsCollection.cs (AddCore): remove the
547         binding_context arg to binding.Check.
548
549         * Binding.cs (IsBinding): don't check if we're binding here, just
550         return our cached value.  we update it in UpdateIsBinding.
551         (Check): don't take the binding_context arg, we'll just use our
552         control's.  Also, for some reason MS doesn't use the data member
553         field when getting the bindingmanager for this binding.  it just
554         uses the datasource.  Make this method callable multiple times,
555         and only do the is_null_desc stuff if manager.Position != -1 (so
556         we don't get an exception accessing manager.Current).
557         (UpdateIsBinding): move the code from IsBinding here.
558         (PositionChangedHandler): call Check here to we can initialize
559         things that require a non- -1 position.
560
561 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
562
563         * Form.cs: When alt keys is pressed send WM_CHANGEUISTATE to top level
564         control.
565
566 2007-05-17  Andreia Gaita  <avidigal@novell.com>
567
568         * TabControl.cs: Add 2.0 methods and events, including
569         OnEnter / OnLeave and raises it for tabpages (fixes #79869)
570         * TabPage.cs: Add 2.0 methods
571
572 2007-05-17  Everaldo Canuto  <ecanuto@novell.com>
573
574         * Control.cs: Implement WmUpdateUIState, show_focus_cues and
575         keyboard_cues is properly handled by message method.  
576
577 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
578
579         * TreeViewImageIndexConverter.cs: Add 2.0 methods.
580
581 2007-05-17  Jonathan Pobst  <monkey@jpobst.com>
582
583         * ToolStripTextBox.cs: Wire up new 2.0 Textbox methods/properties.
584
585 2007-05-16  Everaldo Canuto  <ecanuto@novell.com>
586
587         * Control.cs: 
588         - WmUpdateUIState added to handle state changes, it make call to
589         OnChangeUICues event.
590         - Fixed ShowKeyboardCues to check for MenuAccessKeysUnderlined in
591         SystemInformation.
592
593 2007-05-16  Jonathan Pobst  <monkey@jpobst.com>
594
595         * ImageKeyConverter.cs: Added.
596         * TreeViewImageKeyConverter.cs: Added.
597
598 2007-05-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
599         
600         * ToolTips.cs: Update Text if SetToolTip is called for a control
601         already showing the tooltip, as well as restarting its timer; show
602         tooltip if we are inside the control bounds by the time of calling
603         SetToolTip. Inside ShowTooltip remove the check to not show the 
604         tooltip again for the active control (it is allowed by .Net to 
605         show the tooltip on the same control multiple times).
606
607 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
608
609         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
610
611 2007-05-16  Andreia Gaita <avidigal@novell.com> 
612
613         * ContainerControl.cs: only process tab key if there are no 
614         modifier keys present, otherwise the control does the 
615         tab processing, if it needs to. Fixes #81622
616         * TabControl.cs: Fixes calculation for which tab to select on
617         shift+ctrl+tab.
618
619 2007-05-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
620
621         * MaskedTextBox.cs: Small fix for Text that fixes a broken test.
622
623 2007-05-15  Jonathan Pobst  <monkey@jpobst.com>
624
625         * Control.cs: Make IsInputCharInternal to allow controls to
626         override it and still match MS API.
627         * TextBoxBase.cs: Override IsInputCharInternal and always
628         return true.
629         [Fixes bug #81616]
630
631 2007-05-15  Jackson Harper  <jackson@ximian.com>
632
633         * TextBox.cs: Disable some of the menu options when using a
634         readonly textbox.
635
636 2007-05-15  Jackson Harper  <jackson@ximian.com>
637
638         * TextBox.cs:
639         * TextBoxBase.cs:
640         * RichTextBox.cs: Some new 2.0 methods
641
642 2007-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
643
644         * FileDialog.cs: On 1.0 profile, do not support multidotted 
645         extensions.
646
647 2007-05-14  Jackson Harper  <jackson@ximian.com>
648
649         * TextBoxBase.cs: Implement some of the new 2.0 methods.
650         * RichTextBox.cs: We need to override these methods on 2.0.
651         * MaskedTextBox.cs: These are implemented now
652         * TextControl.cs: This was off by one.
653
654 2007-05-14  Jackson Harper  <jackson@ximian.com>
655
656         * TextControl.cs: Because the line endings are including in the
657         text, we don't need to add them in anymore.
658
659 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
660
661         * ToolBar.cs: Fix autosize and get it working only after hadle is created,
662         also prevent redraw in set_autosize if handle is not created. Fixes #81523.
663
664 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
665
666         * ToolBar.cs: Adjust size to default size when button theres no text and
667         image, it fixes remaining issues from #81524.
668
669 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
670
671         * ToolBar.cs: 
672         - When not flat call redraw to recalculate sizes on creare handle to match
673         win32 behavior.
674         - Revert 77220 because it causes some regressions in toobar
675         button.
676
677 2007-05-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
678
679         * MaskedTextBox.cs: Update the base text whenever the text changes. MTB
680           now actually enters a usable state.
681
682 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
683
684         * ToolBar.cs: Check for handle created in redraw to prevent unneeded size
685         calculations, it reduces the size cauculation from 7 to 3 on a toolbar with
686         3 buttons.
687
688 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
689
690         * ToolBar.cs: Save default_size on create handle to use later for buttons
691         without text, needed to mimic win32 behavior.
692
693 2007-05-11  Everaldo Canuto  <everaldo@simios.org>
694
695         * ToolBar.cs: Fix button layour to best fit width or height according to
696         vertical or not. Fixes #81524.
697
698 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
699
700         * ToolBarButton.cs: When change style call ToolBar.Redraw to update
701         toolbar size info because different styles theres different sizes.
702         Fixes #81522.
703
704 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
705
706         * ThemeWinClassic.cs: For .Net 2.0 don't draw any image
707         if we are using checkboxes, checked is true, and we have less
708         than two images in StateImageList; for the 1.1 in the same scenario
709         draw the first image if we have at least one image in StateImageList.
710         Fixes part of #81191.
711
712 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
713
714         * ToolStrip.cs, ToolStripManager.cs: We need to remove items from
715         the owner's Items collection on merge.
716
717 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
718
719         * ToolStrip.cs: Use new internal ToolStripItemCollection constructor.
720         * ToolStripItemCollection.cs: Lots of fixes to when events get called
721         and parent/owner gets changed based on gert's unit tests.
722
723 2007-05-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
724
725         * MaskedTextBox.cs: Started implementing parts of it.
726
727 2007-05-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
728
729         * ListView.cs: When clicking the checkbox on the items
730         take into account the double clicks even if we have only
731         one image in StateImageList (only for 1.0/1.1). Also 
732         generate an extra change of checked state when we receive
733         the second click on checkbox (match .Net behaviour). 
734         Fixes part of #81191.
735
736 2007-05-10  Everaldo Canuto  <everaldo@simios.org>
737
738         * ThemeWin32Classic.cs: Fix text rectangles in Tooltips.
739
740 2007-05-10  Jonathan Pobst  <monkey@jpobst.com>
741
742         * Form.cs: Move some of OnLoad to OnLoadInternal so it gets called
743         even if OnLoad is overriden and base.OnLoad is not called.
744         [Fixes bug #81582]
745
746 2007-05-10  Andreia Gaita  <avidigal@novell.com>
747
748         * TableLayoutSettings.cs: A big doh! fix and bowing down of head in 
749         shame. (I blame my ever-persisting and annoying cold)
750
751 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
752
753         * ListView.cs: Don't eat navigation keys.  Let them flow through to
754         KeyDown/KeyPress routines.  [Fixes bug #81569]
755
756 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
757
758         * ListView.cs: When handling keys for selecting the item based off
759         keyboard input, do not consider keys pressed with Alt or Control.  Also,
760         correctly handle keys when the Shift key is down. [Fixes bug #81578]
761
762 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
763
764         * Control.cs: When using UseWaitCursor, we have to store the requested
765         Cursor to use when UseWaitCursor is turned off.
766
767 2007-05-09  Jonathan Pobst  <monkey@jpobst.com>
768
769         * Control.cs: Implement PreProcessControlMessage.  Default IsInputChar
770         to false.
771         * Application.cs: Use PreProcessControlMessage instead of
772         PreProcessMessage.
773         * PreProcessControlMessage.cs: Make internal for 1.1.
774
775 2007-05-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
776
777         * Control.cs: Add InternalContains focus property, which hast the same
778         functionality of ContainsFocus, but also including implicit controls.
779         * ListViewItem.cs: Use InternalContainsFocus instead of ContainsFocus,
780         since we need to know if the focus is contained in our implicit
781         ItemControl when calculating Layout. Fixes part of #80888.
782
783 2007-05-08  Everaldo Canuto  <everaldo@simios.org>
784
785         * ToolTip.cs: Remove center form string alignment as it must be align to
786         left.
787
788 2007-05-08  Jonathan Pobst  <monkey@jpobst.com>
789
790         * ToolStripItemCollection.cs: Set the new item's parent and owner
791         in Insert like we do in Add.  [Fixes bug #81568]
792
793 2007-05-08  Jackson Harper  <jackson@ximian.com>
794
795         * TreeView.cs: GotFocus differences between 1.1 and 2.0.
796         - Off by one error in SetTop
797         - Disable DoubeBuffering
798         
799 2007-05-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
800
801         * ScrollableControl.cs: ScrollIControlntoView: we now only move the
802           control as much as necessary in order to make it entirely visible,
803           instead of centering the control in the container (matches MS
804           behaviour). CalculateCanvasSize: we need to take the current scroll
805           position into account when calculating the maximum canvas,
806           otherwise the following scenario will fail: resize so that the
807           scrollbars appear, use the scrollbars to scroll, resize again
808           smaller, and now the canvas size is too small. Recalculate: when
809           showing scrollbars make sure they start off at 0, and try to scroll
810           the active control into view. Fixes #79540. HandleScrollBar: don't
811           scroll anywhere if the scrollbar isn't visible.
812
813 2007-05-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
814
815         * ListView.cs: When focus changed, call Layout/Invalidate
816         in the focused item to update the selected state (should show
817         entire label when ListView is focused, and a part of it if is not).
818         * ListViewItem.cs: When doing layout for LargeIcon, take into account
819         for displaying the entire label not only the Focused state of the
820         item, but also the Focused state of the ListView (match .Net
821         behaviour).
822
823 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
824
825         * Control.cs: Stub CanRaiseEvents, IsMirrored, and NotifyClients.
826         Implement UseWaitCursor. 
827
828 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
829         Applying contributed patch from Sergey Volk.
830
831         * Clipboard.cs: Implement SetDataObject retry logic and new overload
832         of SetDataObject.
833         * XplatUIWin32.cs: Throw an ExternalException if the clipboard set fails.
834
835 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
836
837         * Control.cs: Implement DrawToBitmap.
838
839 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
840         Applying contributed patch from Stefan Noack.
841         
842         * Control.cs: Add [Get|Set]AutoSizeMode.
843
844 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
845
846         * MdiClient.cs: Unmerge menus when the last child is closed.
847
848 2007-05-07  Jonathan Pobst  <monkey@jpobst.com>
849
850         * ToolStrip.cs: Do not call BeginMerge on DropDowns.
851         * ToolStripManager.cs: Call Merge on DropDowns.
852         [Fixes bug #81477]
853
854 2007-05-07  Rolf Bjarne Kvinge <RKvinge@novell.com> 
855
856         * XplatUIWin32.cs: Changed Win32CreateWindow to take enums instead of
857           uints.
858         * Form.cs: CreateParams: don't set WS_VISIBLE if we're changing
859           visibility. We can't create forms visible, since we have to set the
860           owner before making the form visible (otherwise Win32 will do
861           strange things with task bar icons). The problem is that we set the
862           internal is_visible to true before creating the control, so
863           is_changing_visible_state is the only way of determining if we're
864           in the process of creating the form due to setting Visible=true -
865           this works because SetVisibleCore explicitly makes the form
866           visibile afterwards anyways. Fixes #80775.
867
868 2007-05-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
869
870         * ThemeWin32Classic.cs: When drawing ListViewItems,
871         use StringTrimming.EllipsisCharacter if the view is Tile, Details,
872         or LargeIcon _and_ item is not focused (match .Net behaviour).
873
874 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
875
876         * Control.cs, Form.cs: Fix some obsolete method warnings.
877
878 2007-05-04  Jonathan Pobst  <monkey@jpobst.com>
879
880         * Control.cs: Implement GetChildAtPoint and OnParentCursorChanged.
881         * GetChildAtPointSkip.cs: Make internal for 1.1 profile.
882
883 2007-05-04  Andreia Gaita  <avidigal@novell.com>
884
885         * ContainerControl.cs: Fix active_control attribution when going
886         up the parent chain so that the first parent container gets the control
887         and the rest of the parent containers get the child containers (skips
888         non-containers). Fixes #80729
889
890 2007-05-04  Randolph Chung  <tausq@debian.org>
891
892         * FileDialog.cs: Implement the SupportMultiDottedExtensions property.
893         [Fixes bug #81499]
894
895 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
896
897         * XplatUIX11.cs: Add a TranslateWindowSizeToXWindowSize overload that
898           takes a size parameter, since the CreateParam's size isn't true for
899           minimized forms. Fixes #81518,
900
901 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
902
903         * Form.cs: Add OnDeactivateInternal.
904         * MdiClient.cs: Raise Deactivate event. Fixes #81409.
905
906 2007-05-04  Rolf Bjarne Kvinge <RKvinge@novell.com> 
907
908         * DateTimePicker.cs: CalculateDropDownLocation: do a null check before
909           accessing the parent. Fixes #81508.
910
911 2007-05-03  Chris Toshok  <toshok@ximian.com>
912
913         * CurrencyManager.cs (CurrencyManager.ListChangeHandler): in the
914         2.0 block, pass listposition + 1 to ChangeRecordState when a row
915         was added before the current listposition.  Fixes the
916         TestInsertRowBeforeCurrent unit test.
917
918 2007-05-03  Jonathan Pobst  <monkey@jpobst.com>
919
920         * Application.cs: Add RaiseIdle.
921         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
922         XplatUIX11.cs: Implement RaiseIdle.
923
924 2007-05-02  Jonathan Pobst  <monkey@jpobst.com>
925         corcompare work: N - Z
926         * NotifyIcon.cs
927         * ProgressBar.cs
928         * RadionButton.cs
929         * ScrollableControl.cs
930         * SplitContainer.cs
931         * SplitterPanel.cs
932         * StatusBar.cs
933         * SystemInformation.cs
934         * TabControl.cs
935         * TableLayoutControlCollection.cs
936         * TableLayoutPanel.cs
937         * TabPage.cs
938         * ToolBar.cs
939         * ToolBarButton.cs
940         * ToolStrip.cs
941         * ToolStripComboBox.cs
942         * ToolStripContainer.cs
943         * ToolStripContentPanel.cs
944         * ToolStripDropDown.cs
945         * ToolStripDropDownItem.cs
946         * ToolStripDropDownMenu.cs
947         * ToolStripItem.cs
948         * ToolStripItemCollection.cs
949         * ToolStripMenuItem.cs
950         * ToolStripPanel.cs
951         * ToolStripSplitButton.cs
952         * ToolTip.cs
953         * TreeNode.cs
954         * TreeNodeCollection.cs
955         * TreeNodeMouseHoverEventArgs.cs
956         * TreeView.cs
957
958 2007-05-01  Everaldo Canuto  <everaldo@simios.org>
959
960         * ContextMenu.cs: Add public method Show with alignment property to 2.0
961         stuff. Thanks aatdark for the patch. 
962
963 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
964
965         * GridItem.cs: Implement 2.0 Tag property.
966
967 2007-05-01  Frederik Carlier <frederik.carlier@carlier-online.be> 
968
969         * TreeNodeCollection.cs: Fix ContainsKey and IndexOfKey methods to use
970         count instead of Nodes.Length.  [Fixes bug #81448]
971
972 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
973
974         * ComboBox.cs: Fix paramName sent to ArgumentOutOfRangeException's.
975         [Fixes bug #81506]
976
977 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
978         corcompare work: A - M
979         * BindingNavigator.cs
980         * Button.cs
981         * ButtonBase.cs
982         * CheckBox.cs
983         * Control.cs
984         * FlowLayoutPanel.cs
985         * Form.cs
986         * Label.cs
987         * LinkLabel.cs
988         * ListView.cs
989
990 2007-05-01  Jonathan Pobst  <monkey@jpobst.com>
991
992         * Application.cs: Give toolstrips a chance to process mnemonics.
993         * ToolStrip.cs, ToolStripDropDownButton.cs, ToolStripItem.cs,
994         ToolStripItemTextRenderEventArgs.cs, ToolStripLabel.cs,
995         ToolStripMenuItem.cs, ToolStripSplitButton.cs: Implement keyboard mnemonics.
996
997 2007-05-01  Jackson Harper  <jackson@ximian.com>
998
999         * TextBoxBase.cs: Better preferred height, FixedSingle gets the
1000         wider area too.
1001         - Don't set the BoundsSpecified
1002
1003 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
1004
1005         * Application.cs: When using the toolstrip shortcut mechanism, allow the
1006         message to pass through to a regular control if it hosted by a toolstrip.
1007         * ToolStrip.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1008         ToolStripManager.cs: Enable keyboard navigation for ToolStrips.
1009
1010 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
1011
1012         * TextRenderer.cs: Use the flags argument when using the MeasureString
1013         fallback algorithm.
1014
1015 2007-04-30  Jonathan Pobst  <monkey@jpobst.com>
1016
1017         * MenuStrip.cs: Don't let multiple ToolStripSeparators get added to
1018         the MDI menu item.  [Fixes bug #81483]
1019
1020 2007-04-30  Gert Driesen  <drieseng@users.sourceforge.net>
1021
1022         * DataGridViewColumn.cs: Initialize value of headercell to zero-length
1023         string. When setting Name to null, use zero-length string instead.
1024
1025 2007-04-29  Andreia Gaita  <avidigal@novell.com>
1026
1027         * TabControl.cs: Implement missing 2.0 methods (SelectTab, 
1028         DeselectTab). Implement missing 2.0 TabPageCollection methods
1029         (Add, ContainsKey, RemoveByKey, IndexOfKey)
1030
1031 2007-04-29  Pedro Martínez Juliá  <pedromj@gmail.com>
1032
1033         * DataGridViewColumn.cs: Make HeaderText take preference over Name.
1034
1035 2007-04-29  Gert Driesen  <drieseng@users.sourceforge.net>
1036
1037         * RichTextBox.cs: In LoadFile, use StreamReader to read plain text.
1038         Fixes bug #81479. Include details of exception when LoadFile fails.
1039
1040 2007-04-28  Alan McGovern <alan.mcgovern@gmail.com>
1041
1042         * DrawListViewSubItemEventArgs.cs: Added missing setter
1043
1044 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1045
1046         * ToolTip.cs: Add missing 2.0 properties. Implement 2.0 Show and 
1047         Hide methods (not complete). Implement missing 2.0 OnPopup event.
1048
1049 2007-04-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1050
1051         * ListView.cs: In ItemControl.OnMouseDown restore a pair of braces I
1052         removed in ly last commit (it was breaking the Label edit feature).
1053
1054         * ThemeWin32Classic.cs: When drawing a ListViewItem use
1055         StringAlignment.Near for LineAlignment (match .Net).
1056
1057 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1058
1059         * TabControl.cs: Change SetTab so it adds the tabpage to the list
1060         of controls if it isn't already there - was blowing up when doing
1061         tabcontrol.TabPages[i]=new TabPage(). 
1062         SetTab now does a replace by removing the page at the index. 
1063         Add a new InsertTab method that inserts a page in a given index 
1064         instead of replacing. 
1065         Implements TabPageCollection.Insert(int, TabPage).
1066
1067 2007-04-27  Chris Toshok  <toshok@ximian.com>
1068
1069         * BindingManagerBase.cs: fill in CurrentItemChanged (and have an
1070         internal handler that can be invoked from our subclasses.)  Also,
1071         add a comment to PushData about how we need to fix it.
1072
1073         * CurrencyManager.cs: tons of changes here.  trying to get things
1074         matching the behavior of .net wrt event orders (ItemChanged,
1075         CurrentChanged, PositionChanged.)  I've implemented a private .net
1076         symbol (ChangeRecordState) that appears in stack traces because
1077         it's actually easier to do this than to effective inline all its
1078         various behaviors at every call site.
1079
1080         * RelatedPropertyManager.cs: guard against an exception here by
1081         not using parent.Current if the position is set to -1 (if the
1082         parent datasource is cleared, for instance).
1083
1084         * Binding.cs: don't parse data in PushData (this might be wrong,
1085         but it jives with MS's behavior.)  Also, don't call PushData when
1086         we get a CurrentChanged event.
1087
1088 2007-04-27  Andreia Gaita  <avidigal@novell.com>
1089
1090         * WebBrowser.cs,
1091           WebBrowserBase.cs,
1092           WebBrowserSiteBase.cs,
1093           HtmlDocument.cs: Added stubbed out classes, no real implementations 
1094           yet.
1095
1096 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1097
1098         * MainMenu.cs: In draw method without parameters call draw method with 
1099         PaintEvent, another one (just rect) adjust rectangle and we dont need it
1100         as Rect property is already adjusted. Fixes #80694.
1101
1102 2007-04-27  Jonathan Pobst  <monkey@jpobst.com>
1103
1104         * Application.cs: Need to handle keyboard menu deselection here.
1105         * Control.cs: Use WM_SYSKEYUP instead of WM_SYSCOMMAND to start menu keyboard
1106         navigation, allowing keyboard to work on X11.
1107         * ToolStrip.cs: Don't worry about handling the Menu key here anymore.
1108
1109 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1110
1111         * MenuAPI.cs: When deactivate menu verify if hotkey (_) is active and redraw
1112         menu bar. It fixes some drawing issues in menu bar.
1113
1114 2007-04-27  Everaldo Canuto  <everaldo@simios.org>
1115
1116         * MenuAPI.cs: Remove unneeded "keynav_state = KeyNavState.Idle" before 
1117         Deactivate calls, Deactivate method already do it. Also ser ActiveTracker
1118         when <alt> key is pressed.
1119
1120 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1121
1122         * XplatUIX11.cs: Simplify SystrayRemove to be like other libraries,     Gtk as 
1123         example just set visible to false and make this prevent from other problems.
1124         In SystrayAdd always remove pending expose. Fixes #81072.
1125
1126 2007-04-26  Marek Safar  <marek.safar@gmail.com>
1127
1128         * TextBoxBase.cs (CaretMoved): Consider scroll maximum when scroll
1129         value is set.
1130
1131 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1132
1133         * ListView.cs: Added three missing 2.0 events and corresponding
1134         EventHandlers. Added the OwnerDraw property.
1135         * DrawListViewColumnHeaderEventHandler.cs: fixed typo
1136
1137 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1138
1139         * DrawListViewItemEventArgs.cs
1140         * DrawListViewSubItemEventArgs.cs: Brought classes up to 2.0 status.
1141
1142 2007-04-26  Alan McGovern <alan.mcgovern@gmail.com>
1143
1144         * TextControl.cs: Fixed typo in constructor
1145
1146 2007-04-26  Jonathan Pobst  <monkey@jpobst.com>
1147
1148         * Application.cs: Create a shortcut path so that currently selected
1149         MenuStrips can intercept keyboard events without having focus.
1150         * Control.cs: Handle WM_SYSCOMMAND message to activate MenuStrips.
1151         * MenuStrip.cs, ToolStrip.cs, ToolStripDropDown.cs, ToolStripDropDownItem.cs,
1152         ToolStripItem.cs, ToolStripManager.cs, ToolStripMenuItem.cs: Support
1153         keyboard navigation (arrows, tab, enter, esc) on Windows.  Still need to
1154         generate WM_SYSCOMMAND message in X11 for other platforms.
1155         * ToolStripProfessionalRenderer.cs: ToolStripMenuItems need to be painted
1156         in OnRenderMenuItemBackground instead of OnRenderButtonBackground.
1157         * ToolStripSplitButton.cs: Add DefaultItem property.
1158         
1159 2007-04-26  Everaldo Canuto  <everaldo@simios.org>
1160
1161         * MainMenu.cs: In OnMenuChanged pass PaintEventArgs to Draw method, it
1162         fixes some menu draw problem on Windows with border diferent from default
1163         it also fixes #81403.
1164
1165 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1166
1167         * Form.cs: Refactor WndProc into separate methods, just like Control is
1168           doing it.
1169
1170 2007-04-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1171
1172         * Control.cs: set_Text: move the call to the driver into a seperate
1173           virtual method so that Form can override it.
1174         * MaskedTextBox.cs: Corcompare fixes.
1175         * Form.cs: Override UpdateWindowText and only update the styles if the
1176           form has been shown (fixes #81405).
1177
1178 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1179
1180         * Control.cs, Form.cs: Use the better supported WM_?BUTTONDOWN and
1181         WM_ACTIVATE messages instead of WM_MOUSEACTIVATE and
1182         WM_ACTIVATEAPP.  This fixes menus not disappearing on X11 when
1183         the form lost focus or another control was clicked.
1184
1185 2007-04-25  Gert Driesen  <drieseng@users.sourceforge.net>
1186
1187         * DataGrid.cs: Uncomment MakeTransparent calls since bug #80151 is
1188         fixed.
1189
1190 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1191
1192         * DrawListViewColumnHeaderEventHandler.cs, DrawToolTipEventArgs.cs,
1193           DrawListViewItemEventHandler.cs,
1194           DrawListViewSubItemEventHandler.cs, DrawToolTipEventHandler.cs:
1195           Added.
1196         * X11Structs.cs: More ToString implementation.
1197
1198 2007-04-25  Jonathan Pobst  <monkey@jpobst.com>
1199
1200         * ToolStripDropDownItem.cs: Don't lazy create a DropDown in Dispose.
1201         * ToolStripOverflowButton.cs: Don't lazy create a DropDown in HasDropDownItems.
1202
1203 2007-04-25  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1204
1205         * Control.cs: Only raise OnVisibleChanged if we're not recreating the
1206           handle.
1207         * FormCollection.cs: Don't add a form if it's already in the
1208           collection.
1209         * Form.cs: Change ShowDialog () to call ShowDialog (owner) with a null
1210           according to behaviour and MSDN. The ownerWin32 is the active
1211           window at the moment when we call ShowDialog, not the context's
1212           main form (the context's main form may open another form that opens
1213           a form with ShowDialog, the win32 owner is the second form). Add
1214           and remove forms to the Application.OpenForms in other places to
1215           better match MS behaviour. Add an IsActive property that raises
1216           On(de)Activated only if the active state has changed (we were
1217           raising OnDeactivated before OnActivated while creating forms).
1218         * Application.cs: Refactor Enabling/Disabling of windows for modal
1219           dialog loops out to separate methods, and restore the thread
1220           context when we quit the method. Fixes #81407.
1221
1222 2007-04-25  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1223
1224         * ListView.cs: In ItemControl.HandleClicks, also fire 
1225         2.0 MouseClick or MouseDoubleClick events on the parent,
1226         not only the Click/DoubleClick events.
1227
1228 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1229
1230         * TableLayoutSettings.cs: 
1231         - Added a GetControls method and a support structure to help the 
1232         TypeConverter to enumerate the controls for     serialization. 
1233         - Added a new serialization constructor. 
1234         - Added a isSerialized flag initialized to true on the 
1235         serialization constructor so that the TableLayoutPanel.LayoutSettings 
1236         setter does not throw the designed NotSupportedOperation exception
1237         when the object is built through deserialization.
1238         - Implemented GetObjectData
1239         
1240         * TableLayoutPanel.cs: Added check on LayoutSettings.
1241
1242 2007-04-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1243
1244         * ListView.cs: Report Click and DoubleClick events to the parent
1245         from ItemsMouseUp, instead of ItemsMouseDown. This prevents us
1246         from breaking the click count state when using dialog forms (Control
1247         reports the clicks in a similar fashion). In the previous behaviour
1248         the last WM_LBUTTONUP message in a  double click was sent to the
1249         ListView's form, instead of the ListView, which was breaking the click
1250         count for it. Fixes #80387.
1251
1252 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1253
1254         * BindingNavigator.cs : fixed bugs revealed by new nunit tests
1255
1256 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1257
1258         * ToolStripDropDownItem.cs: Lazy initialize the DropDown.  This prevents
1259         us from created dropdowns for menu items that do not have subitems.
1260         * ToolStripItem.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs:
1261         Check HasDropDownItems before calling DropDown so a dropdown will not be
1262         created if it isn't needed.
1263
1264 2007-04-24  Jackson Harper  <jackson@ximian.com>
1265
1266         * TreeView.cs: Set the first node to the selected node when we get
1267         focus if there is no selected node.
1268
1269 2007-04-24  Andreia Gaita  <avidigal@novell.com>
1270
1271         * MimeIcon.cs: remove using blocks so that image streams are
1272         not disposed of. Fixes #80151
1273
1274 2007-04-24  Jackson Harper  <jackson@ximian.com>
1275
1276         * TextBoxBase.cs: Fixup the height of textboxes when the control
1277         is created.
1278
1279 2007-04-24  Jonathan Pobst  <monkey@jpobst.com>
1280
1281         * ToolStrip.cs: Fully implement GetNextItem.  Call OnParentRightToLeftChanged
1282         for each ToolStripItem when the parent's RightToLeftChanged is called.
1283
1284 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1285
1286         * ComboBox.cs: Forward ContextMenu to the underlying textbox, if any.
1287           Fixes #80163.
1288         * Control.cs: Replace GetContextMenuInternal() with ContextMenuInternal
1289           property, so that the setter can be overriden too.
1290         * TextBox.cs: Change GetContextMenuInternal() to use
1291           ContextMenuInternal.
1292
1293 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1294
1295         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1296           #81406.
1297
1298 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1299
1300         * ThemeWin32Classic.cs: Use a black pen to draw checkboxes, fixes
1301           #81406.
1302
1303 2007-04-24  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1304
1305         * MaskedTextBox.cs: Commit this so nobody else starts working on it and
1306           avoid duplicate work. Mostily skeleton code, it's not working at
1307           all yet.
1308
1309 2007-04-20  Leszek Ciesielski <skolima@gmail.com>
1310
1311         * NotifyIcon.cs : stub for MouseClick event
1312         * Application.cs: stub for SetUnhandledExceptionMode
1313
1314 2007-04-24  Alan McGovern <alan.mcgovern@gmail.com>
1315
1316         * BindingNavigator.cs : Initial (partial) implementation
1317
1318 2007-04-23  Jackson Harper  <jackson@ximian.com>
1319
1320         * TreeView.cs: Do not create the treeview's handle when setting
1321         the scroll position.
1322         - ExpandAll needs to compute the scrollbars so it knows which
1323         position to set the bar too.
1324         * TreeNode.cs: 
1325         * TreeNodeCollection.cs: Pass new flag to UpdateScrollBars
1326
1327 2007-04-23  Jackson Harper  <jackson@ximian.com>
1328
1329         * TextBoxBase.cs: Non multiline textboxes shouldn't take the enter
1330         key. Fixes #81408.
1331
1332 2007-04-23  Jonathan Pobst  <monkey@jpobst.com>
1333
1334         * ToolStripItem.cs: Make GetImageSize internal.
1335         * ToolStripMenuItem.cs: Use GetImageSize to determine the size we
1336         need to draw an item.  Fixes a reported issue where images on menus
1337         that were not 16x16 were drawing incorrectly.
1338
1339 2007-04-21  Miguel de Icaza  <miguel@novell.com>
1340
1341         * Padding.cs: Use the converter, fixes the resgen2 issue with
1342         XMLNotePad. 
1343
1344 2007-04-21  Jackson Harper  <jackson@ximian.com>
1345
1346         * TreeView.cs: Dont try to unhighlight the selected node if there
1347         isn't a selected node.
1348
1349 2007-04-21  Jackson Harper  <jackson@ximian.com>
1350
1351         * UpDownBase.cs:
1352         * TextBoxBase.cs:
1353         * ListView.cs:
1354         * ListBox.cs:
1355         * TreeView.cs: Use the InternalBorderStyle property to set the
1356         initial border style, this forces the client rectangle to be sized
1357         correctly.
1358
1359 2007-04-20  Jackson Harper  <jackson@ximian.com>
1360
1361         * TreeView.cs: Simplify scrolling to the last node after expanding
1362         all.
1363         - Fix some off by ones with setting the bottom.
1364
1365 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1366
1367         * Control.cs: Use DefaultSize for Size, calculate ClientSize from
1368         that.  We were incorrectly doing it the other way around.  Also,
1369         update ClientSize if we change the BorderStyle before the control
1370         is created.
1371
1372 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1373
1374         * XplatUI.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1375         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1376         XplatUIDriver.Caption to CaptionHeight. Spaces to tabs.
1377         * XplatUIDriver.cs: Added Border3DSize, BorderSize, CaptionButtonSize,
1378         DoubleClickSize, DoubleClickTime and FixedFrameBorderSize. Renamed
1379         Caption to CaptionHeight.
1380         * XplatUIX11.cs: Renamed Caption to CaptionHeight.
1381         * Theme.cs: Modified Border3DSize, BorderSize, CaptionButtonSize
1382         and FixedFrameBorderSize to return value from current XplatUI driver.
1383         * XplatUIWin32.cs: Implemented Border3DSize, BorderSize,
1384         CaptionButtonSize, DragFullWindows, DoubleClickSize, DoubleClickTime
1385         and FixedFrameBorderSize using win32 API. Renamed Caption to
1386         CaptionHeight.
1387         * XplatUIOSX.cs: Renamed Caption to CaptionHeight.
1388         * SystemInformation.cs: Fixed typo in BorderSize.
1389
1390 2007-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
1391
1392         * XplatUI.cs: Added MenuAccessKeysUnderlined.
1393         * XplatUIDriver.cs: Added MenuAccessKeysUnderlined.
1394         * XplatUIX11.cs: Implemented MenuAccessKeysUnderlined by always
1395         returning false.
1396         * Theme.cs: Modified MenuAccessKeysUnderlined to return corresponding
1397         value from XplatUI driver.
1398         * XplatUIWin32.cs: Implemented MenuAccessKeysUnderlined using
1399         SystemParametersInfo.
1400         * ThemeWin32Classic.cs: Remove obsolete MenuAccessKeysUnderlined
1401         override.
1402         * XplatUIOSX.cs: Implemented MenuAccessKeysUnderlind by always
1403         returning false.
1404
1405 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1406
1407         * XplatUIX11.cs, Hwnd.cs: Remove warnings.
1408
1409 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1410
1411         * MessageBox.cs, XplatUIX11.cs, Hwnd.cs: Remove warnings.
1412
1413 2007-04-20  Jonathan Pobst  <monkey@jpobst.com>
1414
1415         * ToolStripManager.cs: Fix a reported InvalidCastException when unmerging
1416         MenuStrips that contain ToolStripSeparators.
1417
1418 2007-04-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1419
1420         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Add
1421           DefineStdCursorBitmap.
1422         * Cursor.cs: Add an internal constructor so that the Cursor knows if it
1423           has been created off a standard cursor. This is used to get a
1424           bitmap of the standard cursor when Draw or DrawStretched is called
1425           in order to draw the cursor.
1426         * X11Structs.cs: Added XcursorImage and XcursorImages.
1427         * XplatUIX11.cs, XplatUIWin32.cs: Add and implement
1428           DefineStdCursorBitmap.
1429         * Cursors.cs: Update all relevant creations of Cursor to use the new
1430           internal constructor.
1431
1432 2007-04-19  Jackson Harper  <jackson@ximian.com>
1433
1434         * TextBox.cs: Move the has_been_focused into the base control, so
1435         some of the text adding methods can manipulate it (probably time
1436         for a better name for this flag too).
1437         - Call a new version of selectall that doesn't scroll
1438         * TextBoxBase.cs: When we append text, if the document is empty,
1439         don't scroll.  If the document has text already, we scroll to the
1440         end of the appended text.
1441         - When the text is changed, we reset the has_been_focused, so the
1442         next time the control gets focused, all the text is selected.
1443
1444 2007-04-19  Jackson Harper  <jackson@ximian.com>
1445
1446         * TextControl.cs: Move the margins to the document, add a method
1447         so the margin sizes can be updated.
1448         * TextBoxBase.cs: When the border style is changed, update the
1449         border sizes.
1450
1451 2007-04-19  Jonathan Pobst  <monkey@jpobst.com>
1452
1453         * Control.cs: Respect DefaultPadding.
1454         * GroupBox.cs: Implement DefaultPadding, DisplayRectangle takes
1455         padding into account.
1456         * ToolStrip.cs: Remove setting padding to DefaultPadding in constructor.        
1457
1458 2007-04-19  Jackson Harper  <jackson@ximian.com>
1459
1460         * TextControl.cs: Oops, we need to use the ClientRect not the
1461         bounds here.
1462
1463 2007-04-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1464
1465         * ListView.cs: In ItemControl.ItemsMouseDown, take into
1466         account the double clicks when CheckBoxes are used and
1467         the pointer is inside the checkbox. Fixes part of #81191.
1468
1469 2007-04-18  Jackson Harper  <jackson@ximian.com>
1470
1471         * TextControl.cs: Pressing the end key shouldn't move the caret
1472         past the line ending.
1473         * TextBoxBase.cs: We can still delete if we are in the line
1474         ending and the combine will just kill the existing line ending.
1475
1476 2007-04-18  Jackson Harper  <jackson@ximian.com>
1477
1478         * TextControl.cs: We can't move lines, then invalidate their
1479         bounds, we need to get the old bounds and combine that with the
1480         new bounds.
1481         * TextBoxBase.cs: Before combining two lines for a delete, we need
1482         to invalidate the area of the old line, since that will be moved
1483         in the combine operation.
1484
1485 2007-04-18  Everaldo Canuto  <everaldo@simios.org>
1486
1487         * LinkLabel.cs: In OnPaint invoke draw background to fix problems
1488         with transparent background. Fixes #80482.
1489
1490 2007-04-18  Jonathan Pobst  <monkey@jpobst.com>
1491
1492         * PictureBox.cs: Refresh on resize when SizeMode = Zoom.
1493         * ThemeWin32Classic.cs: Implement PictureBox.SizeMode = Zoom.
1494         [Fixes bug #81391]
1495
1496 2007-04-18  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1497
1498         * CreateParams.cs: Add a couple of helper methods and do a less string
1499           concatenation in ToString.
1500         * XplatUIX11.cs: Add an TranslateClientRectangleToXClientRectangle
1501           overload that takes a Control parameter, since this method may be
1502           called before a control is assigned to the hwnd (from
1503           CreateWindow), and update CreateWindow to use the new overload. In
1504           GetMenuOrigin subtract the title bar from the y position if the
1505           form has a window manager (since we're painting it and not X).
1506         * XplatUIWin32.cs: If we can get a form in GetMenuOrigin use the form's
1507           CreateParams to calculate the origin (since border sizes may vary).
1508           In ScreenToMenu only subtract the title height if we actually have
1509           a title.
1510         * MdiWindowManager.cs: Override MenuHeight to always return 0, since
1511           mdi children never have menus of themselves.
1512         * InternalWindowManager.cs: Implement menu handling like form does.
1513           Added GetMenuOrigin to calculate the menu origin, can't use the
1514           CreateParams from the form like normally since it's lying.
1515         * Hwnd.cs: Implement GetBorderSize better (in the sense more
1516           windows-like) and add Inflate and comparison operators to the
1517           Borders type. When calculating MenuOrigin and it's a form with a
1518           window manager, use the window manager to calculate it.
1519
1520 2007-04-17  Chris Toshok  <toshok@ximian.com>
1521
1522         * Control.cs (CreateControl): turns out in 2.0 we don't need this
1523         OnBindingContextChanged thing here.  It's only generated from
1524         ContainerControl.OnCreateControl.  Fixes a newly written unit test
1525         - BindingTest.BindingContextChangedTest4.
1526         
1527 2007-04-17  Jackson Harper  <jackson@ximian.com>
1528
1529         * ScrollBar.cs: When setting values, make sure the current
1530         position stays within the new values range.
1531
1532 2007-04-17  Chris Toshok  <toshok@ximian.com>
1533
1534         * Control.cs (CreateControl): talk about a bizarre corner case.
1535         Don't emit OnBindingContextChanged here if we're a parentless
1536         control (i.e. if we're a form.).  Fixes
1537         BindingTest.BindingContextChangedTest2.
1538
1539 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1540
1541         * ButtonBase.cs: Remove TextFormatFlags.WordBreak to mimic same behavior 
1542         from win32. Fixes #81255.
1543
1544 2007-04-17  Everaldo Canuto  <everaldo@simios.org>
1545
1546         * ThemeWin32Classic.cs: Remove text offset from DrawButtonText as it is
1547         already present in CalculateButtonTextAndImageLayout.
1548
1549 2007-04-17  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1550
1551         * XplatUIX11.cs: When setting min/max size for a window we need to
1552           translate the coordinates to x coordinates. Create an overload of
1553           SetWindowMinMax that takes a CreateParams handling this, and change
1554           SetWMStyles to call this function (can't use Control.FromHandle in
1555           the SetWindowMinMax to get the control/CreateParams from the handle
1556           because the handle might not have been assigned to the control
1557           yet). Fixes #81371.
1558
1559 2007-04-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1560
1561         * ListView.cs: In ItemControl.ItemMouseDown, don't change check state
1562         if StateImageList is non-null and it has less than two items (match MS
1563         behaviour). Also, in HandleNavKeys handle the Space key, calling
1564         the new ToggleItemsCheckState method, which tries to change the
1565         checked state of the selected items. Fixes part of #81191.
1566
1567 2007-04-16  Jackson Harper  <jackson@ximian.com>
1568
1569         * RichTextBox.cs: namespace cleanup.
1570
1571 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1572
1573         * XplatUIWin32.cs: Back last parameter to true in SetClipRegion.
1574
1575 2007-04-16  Everaldo Canuto  <everaldo@simios.org>
1576
1577         [Fixes #79447]
1578         * Control.cs: Call invalidate in set_Region.
1579
1580         * XplatUIX11.cs, XplatUIWin32.cs: Remove invalidate from SetClipRegion as
1581         it dont works here.
1582
1583 2007-04-16  Jackson Harper  <jackson@ximian.com>
1584
1585         * TextBoxBase.cs: When enter is pressed, we need to update all
1586         lines below the current.
1587
1588 2007-04-16  Jonathan Pobst  <jpobst@monkey.com>
1589
1590         * MdiClient.cs: Implement implicit menu merging for MDI
1591         children.  When a child form is active, if it has a menustrip
1592         and the parent form has a MainMenuStrip, automatically merge
1593         the menus.
1594
1595 2007-04-15  Andreia Gaita  <avidigal@novell.com>
1596
1597         * TabControl.cs: Refactored sizing methods to not repeat
1598         code all over the place. Tab bounds are now calculated
1599         as if alignment is top and single line, and only when 
1600         setting the bounds are the positions adjusted according
1601         to alignment. Replaced hardcoded positions, spacings and
1602         paddings by getting the values the ThemeEngine. 
1603         Fixes #79619.
1604         
1605         * Theme.cs: Change TabControl properties and methods so
1606         that all start with TabControl*. Added more properties
1607         to help remove hardcoded values on tabcontrol.
1608         Add CPDrawBorder3D declaration so the Theming classes
1609         can access it.
1610         
1611         * ThemeClearlooks.cs, ThemeNice.cs: Method signature changes from Theme.
1612
1613         * ThemeWin32Classic.cs: Rector TabControl out to the TabControlPainter
1614         on the Theming namespace, and call the appropriate methods here.
1615         Change CPDrawBorder3D to public.
1616
1617 2007-04-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1618
1619         * Control.cs: In WmRButtonUp, send the WM_CONTEXTMENU message to
1620         the control after firing the OnMouseUp event, instead of sending
1621         the message before the mentioned event. This is so we can match the
1622         MS behaviour. Fixes part of #80385.
1623
1624 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1625
1626         * ToolStripItem.cs: Call the RightToLeftChanged event when setting the
1627         RightToLeft property.
1628
1629 2007-04-13  Jonathan Pobst  <monkey@jpobst.com>
1630
1631         * ToolStrip.cs: Add properties and internal methods to support merging.
1632         * ToolStripItem.cs: Add MergeAction and MergeIndex.
1633         * ToolStripItemCollection.cs: Add Insert and Remove methods that do
1634         not trigger reparenting or layouts.
1635         * ToolStripManager.cs: Add Merge and RevertMerge methods.
1636         * ToolStripOverflow.cs: Add a convenience method to find the ToolStrip that
1637         is hosting the overflow menu.
1638
1639 2007-04-13  Jackson Harper  <jackson@ximian.com>
1640
1641         * TextControl.cs: Set the line ending correctly for the first
1642         inserted line.
1643
1644 2007-04-13  Sebastien Pouliot  <sebastien@ximian.com>
1645
1646         * Theme.cs: Update GetMethod to get the new definition for 
1647         KnownColors.Update (and fix theme color updates).
1648
1649 2007-04-12  Everaldo Canuto  <everaldo@simios.org>
1650
1651         * MessageBox.cs: Fix some test and button position.
1652
1653 2007-04-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1654
1655         * Form.cs: Consider the implicit controls in
1656         GetRealChildAtPoint. We need it since this method
1657         is called on Form when handling the some messages in
1658         WndProc, and need to consider those implicit ones too.
1659         Fixes #80385.
1660
1661 2007-04-12  Jonathan Pobst  <monkey@jpobst.com>
1662
1663         * ToolStripMenuItem.cs: Display the ShortcutKeyDisplayString even
1664         if there are no ShortcutKeys set.
1665         * ToolStripProfessionalRenderer.cs: If an item has had its BackColor
1666         set, use it when painting.
1667
1668 2007-04-12  Jackson Harper  <jackson@ximian.com>
1669
1670         * TextControl.cs: Fix some off-by-one issues in line duplication
1671         and insertion in the undo manager. Also, overwrite the first tag
1672         of a line on insert, if it is just a zero lengthed tag. This
1673         prevents us from getting an extra stranded tag at the beginning of
1674         the first line.
1675
1676 2007-04-11  Everaldo Canuto  <everaldo@simios.org>
1677
1678         * Label.cs: Remove check for handle created in CalcAutoSize, we need 
1679         to calculated proper size including when handle was not created yet.
1680
1681 2007-04-11  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1682
1683         * MdiWindowManager.cs: When moving a form, allow the form to be moved
1684           when the mouse is outside of it's parent's client rectangle. Fixes
1685           #79982 (take 3, part 2).
1686
1687 2007-04-10  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1688
1689         * X11Structs.cs: Add a few ToString() overrides.
1690         * XplatUIX11.cs: Added GetTopLevelWindowLocation to try to calculate
1691           the window location in a window-manager independent way. Reworked
1692           FrameExtents, it now actually works. Reworked AddConfigureNotify
1693           and ReparentNotify handling to use GetTopLevelWindowLocation
1694           instead of the earlier, more hacky solution. Reworked SetWMStyles,
1695           hopefully for the better: we now set _NET_WM_WINDOW_TYPE* for all
1696           windows, DIALOG for modal windows, UTILITY for toolboxes and NORMAL
1697           for all other windows (fixes #81281 part 1), a toolwindow is hidden
1698           from the taskbar if it has a parent (fixes #81281 part 2 for kwin),
1699           and generally refactored to do as few calculations as possible
1700           inside the lock.
1701
1702 2007-04-09  Sebastien Pouliot  <sebastien@ximian.com>
1703
1704         * Theme.cs: Change "reflective-contract" between MWF and SD to 
1705         minimize # of calls, avoid Color serialization and avoid updating 
1706         every "known colors" each time a single one is updated.
1707
1708 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1709
1710         * DataGridTextBoxColumn.cs: Only set IsInEditOrNavigateMode to false
1711         when not readonly and the text is explicitly set. Code style updates.
1712         * DataGridTableStyle.cs: Removed extra line.
1713         * DataGrid.cs: Code style updates. Removed extra whitespace.
1714         * DataGridColumnStyle.cs: Code style updates. Removed extra 
1715         whitespace.
1716
1717 2007-04-09  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1718
1719         * XplatUIX11.cs: Added comment that "fixes" #80021.
1720
1721 2007-04-09  Jackson Harper  <jackson@ximian.com>
1722
1723         * TextControl.cs: We don't need this -1 on the line count anymore.
1724
1725 2007-04-09  Gert Driesen  <drieseng@users.sourceforge.net>
1726
1727         * DataGridTextBoxColumn.cs: In Commit, use TypeConverter to convert
1728         entered value to underlying type, and convert it back to a string to
1729         apply formatting. Modified GetFormattedValue to use TypeConverter
1730         if available.
1731
1732 2007-04-08  Gert Driesen  <drieseng@users.sourceforge.net>
1733
1734         * ListViewItem.cs: Added null checks. Avoid duplicating code in ctors.
1735         Use SubItems property when we want to ensure there's at least one
1736         subitem. Modified SubItems property to ensure there's always at least
1737         one subitem. Avoid using ListViewSubItemCollection.AddRange to match
1738         the NRE's reported by MS.
1739
1740 2007-04-07  Gert Driesen  <drieseng@users.sourceforge.net>
1741
1742         * ProgressBar.cs: On 2.0 profile, default forecolor is Highlight. Added
1743         ResetForeColor override on 2.0. Fixed a few API compatibility issues.
1744         Spaces to tabs. Removed extra tabs.
1745
1746 2007-04-06  Jonathan Pobst  <monkey@jpobst.com>
1747
1748         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
1749         infinite loop.  (Forgot to copy to the horizontal toolstrip case.)
1750
1751 2007-04-06  Jackson Harper  <jackson@ximian.com>
1752
1753         * TextBoxBase.cs: When a delete removes a line, recalculate all
1754         lines below that line (they need to get offsets setup correctly)
1755         and invalidate.
1756
1757 2007-04-05  Jackson Harper  <jackson@ximian.com>
1758
1759         * TextControl.cs: We need to invalidate across the width of the
1760         document when we are invalidating multiple lines.
1761         * TextBoxBase.cs: Don't delete into the line ending.
1762
1763 2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1764
1765         * ListView.cs: Restore the check for the MouseHover event
1766         in ListView. It looks like the ListView fires more than one MouseHover
1767         event when HoverSelection is true  _only_ in weird-corner scenarios, but
1768         in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
1769         event.
1770
1771 2007-04-05  Mike Kestner  <mkestner@novell.com>
1772
1773         * ListView.cs : raise MouseDown before updating selection.
1774         [Fixes #80373 tab 1&3]
1775
1776 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1777
1778         * ToolStripRenderer.cs: Add static method to mirror image.
1779         * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
1780         and RightToLeftAutoMirrorImage.
1781         * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
1782
1783 2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
1784
1785         * ToolStripSplitStackLayout.cs: Support Alignment property.
1786         * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
1787
1788 2007-04-05  Jackson Harper  <jackson@ximian.com>
1789
1790         * TextControl.cs: Move around the line endings when crossing line
1791         boundaries.
1792         - When combining lines, strip the ending text off the first line.
1793
1794 2007-04-05  Jackson Harper  <jackson@ximian.com>
1795
1796         * TextControl.cs:
1797         * TextBoxBase.cs: Try to never move the cursor into the line
1798         ending.
1799         
1800 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1801
1802         * ToolStripItem.cs: Make sure we aren't firing mouse events when
1803         the item is disabled.  Also add a few missing methods.
1804
1805 2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1806
1807         * ListView.cs: We don't need the MouseEnter/MouseLeave check
1808         to fire just one MouseHover event when HoverSelection is true, since
1809         .Net does fire more than one MouseHover event in that scenario. Also,
1810         fix the selection in HoverSelection, by invoking UpdateMultiSelect
1811         if MultiSelect is true, instead of only setting ListViewItem.Selected.
1812         Finally, we need to reset the Hover logic in MouseMove, even when we
1813         don't have a selected item.
1814
1815 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1816
1817         * ToolStrip.cs: Add several missing methods, properties, and events.
1818
1819 2007-04-04  Chris Toshok  <toshok@ximian.com>
1820
1821         * DataGridTextBoxColumn.cs: set the bounds of the text box to
1822         (0,0,0,0) in Commit, as MS does.
1823
1824         * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
1825         make sure we set CurrentRow on a row header click *before* calling
1826         Select.  This moves the current cell (and the textbox) to the new
1827         row.  The call to Select then hides the textbox, giving us the
1828         correct behavior.  Fixes #80362.
1829
1830         * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
1831         (ListChangedHandler): reorder the position/current changed events,
1832         and call UpdateIsBinding in the ItemAdded case.
1833
1834         * GridColumnStylesCollection.cs: add some columns events, one of
1835         which raises the CollectionChanged event.
1836
1837 2007-04-04  Jackson Harper  <jackson@ximian.com>
1838
1839         * TextControl.cs: When we delete multiple selection lines
1840         invalidate the selection area, don't need to do that for single
1841         lines because the final update view will handle it.
1842
1843 2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
1844
1845         * Control.cs: When we CreateControl, we need to also create all of the
1846         control's children.  The child's OnLoad must also fire before the parent's
1847         OnLoad.  Fixes the toolbox size in PDN.
1848
1849 2007-04-04  Jackson Harper  <jackson@ximian.com>
1850
1851         * TextBoxBase.cs: When the user presses enter, insert a line
1852         ending into the text. (Maybe this would be a good spot for
1853         Environment.NewLine).
1854         * TextControl.cs: Remove undo manager hack, line endings get
1855         inserted properly now.
1856         
1857 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1858
1859         * MenuAPI.cs: 
1860         - Remove unneeded parameters in UpdateCursor.
1861         - Fix UpdateCursor to check if menu is active.
1862         - Call UpdateCursor when menu deactivate my click.
1863         [Fixes remaining issues from #80410]
1864
1865 2007-04-04  Everaldo Canuto  <everaldo@simios.org>
1866
1867         * Control.cs: GetRealChildAtPoint method added, it make an
1868         recursive child control search for the point. 
1869
1870         * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
1871         menu.
1872
1873         * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
1874
1875 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1876
1877         * Form.cs: Fix mouse position when send back mouse event after closes
1878         menu.
1879
1880 2007-04-03  Everaldo Canuto  <everaldo@simios.org>
1881
1882         * Form.cs: Simplify the BUTTONDOWN for active tracker.
1883
1884 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1885
1886         * Control.cs: Fix an issue where if a user resized a control inside
1887         a sizing method like OnResize, we would overwrite their explicit
1888         value.  Also, only call DefaultSize once in the constructor instead
1889         of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
1890         nothing actually changed.
1891
1892 2007-04-03  Jackson Harper  <jackson@ximian.com>
1893
1894         * TextControl.cs: Don't attempt to copy text for lines with no
1895         text in them (technically this shouldn't happen, but we aren't
1896         always inserting line endings when we should be).
1897
1898 2007-04-03  Jackson Harper  <jackson@ximian.com>
1899
1900         * TextBoxBase.cs: Calculate the scrollbars before calculating the
1901         document, because this sets some of the document size properties
1902         that are needed.
1903
1904 2007-04-03  Jackson Harper  <jackson@ximian.com>
1905
1906         * TextBoxBase.cs: We need to calculate maximums even if this is
1907         not a multiline control, because the maxs are used for scrolling.
1908         - Display the caret after doing a page up/down, we need to
1909         manually display it because a proper CaretMoved event isn't
1910         triggered (this is because of the way the math is done to
1911         determine how far to scroll).
1912
1913 2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
1914
1915         * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
1916         (ToolBar was relying on SetBoundsCore to default the values sent 
1917         base off of BoundsSpecified.)
1918
1919 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1920
1921         * DateTimePicker.cs: Change Text so that when a null value or empty
1922           string is assigned to the test we always raise ValueChanged and
1923           TextChanged (earlier implementation would only raise ValueChanged
1924           if the current date value was different from DateTime.Now).
1925
1926 2007-04-03  Andreia Gaita <avidigal@novell.com> 
1927
1928         * ButtonBase: Call update after invalidation, fixes #80194
1929
1930 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1931
1932         * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
1933           #79335.
1934
1935 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1936
1937         * XplatUIX11.cs: SetWMStyles: If the control is a form with
1938           FormBorderStyle = None, don't give the window any decorations.
1939           Fixes #81276.
1940
1941 2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
1942
1943         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
1944         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
1945           to check for is a mix of several styles (such as WS_CAPTION for
1946           instance).
1947         * Control.cs: Don't paint an area bigger than the client area when
1948           painting the background colour. Add an internal GetCreateParams.
1949           Update calls to XplatUI.CalculateWindowRect due to API change.
1950         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
1951           window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
1952           the size if it hasn't been handled by any windows. When creating
1953           and moving windows, X wants the location of the entire window, but
1954           the size of the client window, so add
1955           TranslateClientRectangleToXClientRectangle,
1956           TranslateWindowSizeToXWindowSIze and
1957           TranslatedXWindowSizeToWindowSize to cope with this, and call them
1958           before every window creation and move. Update CalculateWIndowRect
1959           to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
1960           In AddConfigureNotify don't do anything if the hwnd is a zombie
1961           (fixes the BadWindow we were getting while running the tests),
1962           always calculate the offsets when it's a parentless window, not
1963           only when reparented, and translate the window size, since we're
1964           getting the client size of the whole window, excluding entire
1965           window.
1966         * Theme.cs: Added BorderSizableSize.
1967         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
1968           anymore. Update calls to XplatUI.CalculateWindowRect due to API
1969           chang
1970         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
1971           change. Fake the window styles here instead of in XplatUIWin32 so
1972           that all back-ends get the same window styles (and it's Form that's
1973           deciding when to use wm, not the Win32 backend anyways)
1974         * Hwnd.cs: Completely reworked GetWindowRectangle and
1975           GetClientRectangle - they are now passed a CreateParams and they
1976           only use Style and ExStyle to determine the rectangles (they should
1977           now work just like Win32AdjustWindowRectEx - though quite a few
1978           special cases are probably missing). They should also be 100%
1979           complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
1980           == rect), and all numbers (borders, menu sizes) are taken from the
1981           current theme. Added a GetBorders helper function that will return
1982           the borders for any given CreateParams (including captions and
1983           menus), and GetBorderSize that returns the given border size only.
1984         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
1985           Hwnd.GetClientRectangle.
1986
1987 2007-04-02  Chris Toshok  <toshok@ximian.com>
1988
1989         * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
1990         logic between the values we present to the user and the values
1991         which are stored in the column's property.  Also, don't call
1992         GetPreferredSize - it's virtual. Along the way, fix bug #80965.
1993
1994 2007-04-02  Jackson Harper  <jackson@ximian.com>
1995
1996         * TextBoxBase.cs: Scroll faster!
1997
1998 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
1999
2000         * StatusStrip.cs: Layout fixes for PDN.
2001         * ToolStrip.cs: Set item's available to true, and placement to main when
2002         added.
2003         * ToolStripItem.cs: Fix an Available issue, check that Parent is really
2004         changing in setter before doing any work, add InternalVisible.
2005         * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
2006         * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
2007         infinite loop.
2008
2009 2007-04-02  Jackson Harper  <jackson@ximian.com>
2010
2011         * TextBox.cs: LBUTTON does not make the textbox select all of it's
2012         text on focus.
2013
2014 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2015
2016         * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
2017           Makes ToolStripComboBoxes show up again.
2018
2019 2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2020
2021         * ListView.cs: Add a hover_pending field in ListView
2022         to fire just one OnMouseHover event for each MouseEnter/MouseLeave
2023         cycle (we are resetting the MouseHover logic in XplatUI
2024         to handle HoverSelection). Fixes #80429.
2025
2026 2007-04-02  Jackson Harper  <jackson@ximian.com>
2027
2028         * TextControl.cs: Make sure the attributes get set on the last
2029         tag.
2030         - Still have to do the end tag if we have stepped all the ways to
2031         the end.
2032
2033 2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
2034
2035         * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
2036         on an internal libgdiplus call when the information is already 
2037         available via the public API.
2038
2039 2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2040
2041         * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
2042           control is removed from a control collecftion.
2043         * XplatUIX11.cs: The first location for toplevel form is (22, 22).
2044           Fixes FormPropertyTest (failed on rare occasions).
2045         * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
2046           of Win32SetParent (when changing from no parent to a parent it
2047           might add the new parent's location in screen coordinates to this
2048           window's location).
2049         * Form.cs: Rework ChangingParent once again, now the handle is
2050           recreated whenever a FormWindowManager is added or removed (that is
2051           whenever a normal form is parented or abandoned). Also change
2052           CreateParams so that all non-toplevel windows always get the
2053           specified sice (StartupPosition is never considered for
2054           non-TopLevel forms).
2055         * ContainerControl.cs: Add ChildControlRemoved, the container control
2056           needs to be notified when a control is removed from it's
2057           collection, in the case the removed control is the active control.
2058
2059 2007-04-02  Jackson Harper  <jackson@ximian.com>
2060
2061         * RichTextBox.cs: Use the new methods for setting the font and
2062         color, these methods set the specified attribute without
2063         overriding the other attributes.
2064
2065 2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
2066
2067         * ToolStripPanel.cs: Fixes for better layouts in PDN.
2068
2069 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
2070
2071         * TextBox.cs: Added internal ChangeBackColor method to special-case
2072         Color.Empty. Added check for invalid ScrollBars value.
2073         * TextBoxBase.cs: Added internal ChangeBackColor method.
2074         * RichTextBox.cs: Only set backcolor_set on 2.0 profile. Added
2075         internal ChangeBackColor method to special-case Color.Empty. Added
2076         check for invalid ScrollBars value.
2077
2078 2007-03-30  Everaldo Canuto  <everaldo@simios.org>
2079
2080         * MenuItem.cs: On invalidate prevent form to create handle. [Fixes #81272]
2081
2082 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2083
2084         * ScollableControl.cs: Add HorizontalScroll and VerticalScroll properties.
2085         * ScrollProperties.cs, HScrollProperties.cs, VScrollProperties.cs: Added.
2086         [Based on submitted patch from Olivier Duff.]
2087
2088 2007-03-30  Jackson Harper  <jackson@ximian.com>
2089
2090         * TextBox.cs: Only select all on initial focus if the user has not
2091         specified a selection area.
2092
2093 2007-03-30  Jonathan Pobst  <monkey@jpobst.com>
2094
2095         * UserControl.cs: Override CreateParams.
2096
2097 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2098
2099         [ Fixes #80995 ]
2100
2101         * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
2102         * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
2103           check for is a mix of several styles (such as WS_CAPTION for instance).
2104         * Control.cs: Don't paint an area bigger than the client area when painting
2105           the background colour. Add an internal GetCreateParams. Update calls to
2106           XplatUI.CalculateWindowRect due to API change.
2107         * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
2108           size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
2109           hasn't been handled by any windows. When creating and moving windows, X
2110           wants the location of the entire window, but the size of the client
2111           window, so add TranslateClientRectangleToXClientRectangle,
2112           TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
2113           to cope with this, and call them before every window creation and move.
2114           Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
2115           removing DeriveStyles). In AddConfigureNotify don't do anything if the
2116           hwnd is a zombie (fixes the BadWindow we were getting while running the
2117           tests), always calculate the offsets when it's a parentless window, not
2118           only when reparented, and translate the window size, since we're getting
2119           the client size of the whole window, excluding entire window.
2120         * Theme.cs: Added BorderSizableSize.
2121         * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
2122           anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
2123         * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
2124           Fake the window styles here instead of in XplatUIWin32 so that all
2125           back-ends get the same window styles (and it's Form that's deciding when
2126           to use wm, not the Win32 backend anyways)
2127         * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
2128           they are now passed a CreateParams and they only use Style and ExStyle
2129           to determine the rectangles (they should now work just like
2130           Win32AdjustWindowRectEx - though quite a few special cases are probably
2131           missing). They should also be 100% complimentary (i.e. GetWindowRectangle
2132           (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
2133           sizes) are taken from the current theme. Added a GetBorders helper
2134           function that will return the borders for any given CreateParams
2135           (including captions and menus), and GetBorderSize that returns the given
2136           border size only.
2137         * XplatUIOSX.cs: Update calls to CalculateWindowRect and
2138           Hwnd.GetClientRectangle.
2139
2140 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2141
2142         * Form.cs: Don't layout mdi children on MdiParent creation, the initial
2143           layout of the mdi children is handled by CreateParams. Fixes
2144           #79964,
2145
2146 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2147
2148         * MenuAPI.cs: Make OnMouseDown returns a boolean to identify if event is
2149         processed.
2150
2151         * Form.cs: When active tracker mouse down is not processed, send event 
2152         back to control inside mouse position. [Fixes #81227]
2153
2154 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2155
2156         * ComboBox.cs: Override the ComboListBox's ActivateOnShow property and
2157         remove WS_VISIBLE from CreateParams to prevent combobox dropdowns from
2158         stealing focus from the active form on Windows.  (Control will be made
2159         visible in ShowWindow.)
2160
2161 2007-03-29  Mike Kestner  <mkestner@novell.com>
2162
2163         * ImageList.cs : add internal Changed event.
2164         * ListView.cs : hook up to StateImageList.Changed to perform
2165         invalidations when the the state icon list changes. [Fixes #81191]
2166
2167 2007-03-29  Jonathan Pobst  <monkey@jpobst.com>
2168
2169         * ToolTip.cs: Override the ToolTipWindow's ActivateOnShow property
2170         to prevent tooltips from stealing focus from the active form on Windows.
2171
2172 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2173
2174         * ThemeWin32Classic.cs: Small stetic fixes in notifyicon balloon. 
2175
2176         * ThemeClearlooks.cs: Implement notifyicon balloon for clearlooks theme.
2177
2178 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2179
2180         * NotifyIcon.cs, ThemeWin32Classic.cs: Icon support added to notifyicon
2181         balloons.
2182
2183 2007-03-29  Jackson Harper  <jackson@ximian.com>
2184
2185         * TextControl.cs: When deleting text from non multiline textboxes,
2186         we need to update the entire document, because line offsets will
2187         be shifting.
2188
2189 2007-03-29  Everaldo Canuto  <everaldo@simios.org>
2190
2191         * XplatUIX11.cs, ThemeWin32Classic.cs, Theme.cs: ShowBalloonWindow method
2192         added to theme, now we can create themes that uses diferent notify engines
2193         like notification-daemon from galago project or growl for Mac OS.
2194
2195 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2196
2197         * NotifyIcon.cs: Prevent Balloon to show in task bar.
2198
2199 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2200
2201         * XplatUIX11.cs: Prevent system to open more than one balloon.
2202
2203         * NotifyIcon.cs: Prevent system to open more than one balloon and remove
2204         some compiler warning messages.
2205
2206 2007-03-28  Everaldo Canuto  <everaldo@simios.org>
2207
2208         [Fixes #79149]
2209
2210         * XplatUIX11.cs: Implement SystrayBalloon for X11 systems.
2211
2212         * ThemeWin32Classic.cs, Theme.cs: DrawBalloonWindow and BalloonWindowRect 
2213         implemented, this methods is used by NotifyIcon.BalloonWindow class.
2214
2215         * NotifyIcon.cs: BalloonWindow class added to support Balloon in X11 
2216         systems.
2217
2218 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2219
2220         * ListViewItem.cs: Forgot to make Invalidate internal.
2221
2222 2007-03-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2223
2224         * ListView.cs: Add a InvalidateSelection method to
2225         invalidate methods which are currently selected, and call
2226         it when setting FullRowSelect and HideSelection, instead of
2227         calling Redraw.
2228
2229 2007-03-28  Chris Toshok  <toshok@ximian.com>
2230
2231         * XplatUIX11.cs (UnmapWindow): reindent this block.
2232
2233         * DataGrid.cs (UpdateSelectionAfterCursorMove): we need to update
2234         the selection_start if we're moving the selection (that is, not
2235         extending it). Fixes bug #80461.
2236
2237 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2238
2239         * ProgressBar.cs: Make the default MarqueeAnimationSpeed = 100.
2240         * ToolStripPanel.cs: Fix RowMargin, Renderer, RenderMode, and
2241         create private ControlCollection.
2242
2243 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2244
2245         * Control.cs: We need to call OnVisibleChanged for our implicit
2246         children as well as our normal children.  Fixes scrollbars in
2247         comboboxes not showing up.
2248
2249 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2250
2251         * Control.cs, Form.cs: Anywhere we call CreateHandle, we need to do
2252         the check for IsHandleCreated first.  The check in CreateHandle is not
2253         good enough because CreateHandle can be overriden, and the override 
2254         should not be called if the handle is already created.
2255
2256 2007-03-28  Jonathan Pobst  <monkey@jpobst.com>
2257
2258         * ToolStrip.cs: Remove MonoTODO for tooltips.
2259         * ToolStripComboBox.cs: Fix MonoTODO for DropDownHeight and events.
2260         * ToolStripContainer.cs: Add custom ControlCollection class.
2261         * ToolStripContentPanel.cs: Fix Renderer setting to match MS behavior.
2262         * ToolStripDropDown.cs: Add some missing properties/methods.
2263         * ToolStripDropDownMenu.cs: Override OnLayout and SetDisplayedItems.
2264         * ToolStripItem.cs: Remove MonoTODO for tooltips.
2265         * ToolStripManager.cs: Add IsShortcutDefined.
2266         * ToolStripOverflow.cs: Override LayoutEngine.
2267         * ToolStripProgressBar.cs: Add MarqueeAnimationSpeed.
2268         * ToolStripSeparator.cs: Add ImageKey.
2269
2270 2007-03-28  Jackson Harper  <jackson@ximian.com>
2271
2272         * TextControl.cs: If a char delete removes a line ending, we need
2273         to update the ending style.
2274         - Make sure the line ending calcs get called.
2275
2276 2007-03-28  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2277
2278         * XplatUIX11.cs: CreateWindow: Remove old default form location code,
2279           it was making the new code not work. Fixed a typo in the new code
2280           as well. Fixes #79826.
2281
2282 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2283
2284         * XplatUIWin32.cs:
2285         - NIF_STATE and NIF_INFO added to NotifyIconFlags.
2286         - NOTIFYICONDATA properties sizes fixed, szTip is 128, not 64.
2287         - SystrayBalloon method implemented.
2288         [Add support for notifyicon balloon on win32, #79149]
2289
2290 2007-03-27  Mike Kestner  <mkestner@novell.com>
2291
2292         * ThemeWin32Classic.cs : update StateImageList selection to mirror
2293         the ms behavior when only one image is added to the list.
2294         [Fixes #81191]
2295
2296 2007-03-27  Jackson Harper  <jackson@ximian.com>
2297
2298         * TextControl.cs: Improvements to non multiline line ending
2299         drawing/measuing.
2300
2301 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2302
2303         * XplatUIX11.cs: Fix the time which tooltip is opened for NotifyIcon. 
2304
2305 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2306
2307         * NotifyIcon.cs: 
2308         - Balloon message handling added.
2309         - Call XplatUI.SystrayBalloon in ShowBalloonTip. 
2310
2311         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2312         XplatUIOSX.cs, XplatUIX11-new.cs: ShowBalloonTip method renamed 
2313         to SystrayBalloon to me like other Systray method, also a
2314         handle parameter added.
2315
2316 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2317
2318         * ListView.cs: Show scrollbars even when items.Count == 0
2319         but the columns Width is bigger than the ListView.Width.
2320         Also, when columns.Count == 0 set layout_wd and layout_ht
2321         to the ClientRectangle values, so we don't show any scrollbar
2322         in that case.
2323
2324 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2325
2326         * XplatUIStructs.cs: Balloon (NIN_BALLOON*) constants added.
2327
2328 2007-03-27  Jackson Harper  <jackson@ximian.com>
2329
2330         * RichTextBox.cs: The RTF library decodes the text properly for us
2331         now.
2332
2333 2007-03-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2334
2335         * ListView.cs: Display HeaderControl even when columns.Count == 0.
2336         * ThemeWin32Classic.cs: Use SystemBrushes.Control to draw the
2337         ListView header (HeaderControl), instead of Control.BackColor.
2338
2339 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2340
2341         * Control.cs: Call OnVisibleChanged in SetVisibleCore for non-forms.
2342         Fixes tab control issues where controls would not show up because they
2343         never received their OnVisibleChanged call.
2344
2345 2007-03-27  Everaldo Canuto  <everaldo@simios.org>
2346
2347         * NotifyIcon.cs: Balloon events added (BalloonTipClicked, BalloonTipClosed,
2348         BalloonTipShown).
2349
2350 2007-03-27  Jonathan Pobst  <monkey@jpobst.com>
2351
2352         * Control.cs: We won't get a WM_SHOWWINDOW when we create a window that
2353         is maximized or minimized, so move CreateControl to Control.OnVisibleChanged.
2354         * Form.cs: After we set the form visible, send a fake WM_SHOWWINDOW if we
2355         are max or min.  Remove WS_VISIBLE from CreateParams unless we are recreating
2356         the handle.  Fix WindowState by using the internal variable until we are 
2357         sure that we've been shown.
2358         * XplatUIX11.cs: Do not generate a WM_SHOWWINDOW message if new form is
2359         max or min.
2360         [Fixes bug #81198]
2361
2362 2007-03-27  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2363
2364         * XplatUIX11.cs: Windows without WS_CAPTION can still get decorations
2365           (at least borders). Fixes #79386 on Linux (with a small difference
2366           in behaviour: when trying to resize a caption-less window metacity
2367           shows the sysmenu. Resizing is still possible though).
2368         * XplatUIWin32.cs: When setting window styles send request an extra
2369           WM_NCCALCSIZE when it's a form without title (due to no text and no
2370           caption), since Win32 seems to calculate it wrong the first time we
2371           get the message, though the second time things work as they should.
2372         * Form.cs: Reorder a few statements in ChangingParent, otherwise the
2373           newly reparented window might show up unparented. Update
2374           CreateParams to exclude WS_DLGFRAME if ControlBox is false and
2375           there's no title text. Fixes #79386.
2376
2377 2007-03-27  Mike Kestner  <mkestner@novell.com>
2378
2379         * ListBox.cs : don't perform invalidations if the handle hasn't been
2380         created.  [Fixes #80753]
2381
2382 2007-03-27  Mike Kestner  <mkestner@novell.com>
2383
2384         * ListBox.cs : don't adjust top item when SelectedIndex is set to -1.
2385         [Fixes #80428]
2386
2387 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2388
2389         * XplatUIWin32.cs: Complete NOTIFYICONDATA structure, additional fields 
2390         needed to implement Balloon.
2391
2392 2007-03-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2393
2394         * ListViewItem.cs: In the constructors that take
2395         an array of strings, don't use ListViewSubItemCollection.AddRange
2396         method to add items, since we need to have a different behaviour (in
2397         the constructors we add an item for each null string, opposed to
2398         the behaviour of AddRange, which adds nothing).
2399
2400 2007-03-26  Andreia Gaita  <avidigal@novell.com>
2401
2402         * NumericUpDown.cs: Fix broken 1.1 api for ParseEditText
2403
2404 2007-03-26  Jackson Harper  <jackson@ximian.com>
2405
2406         * TextControl.cs: Draw and measure line endings when in non
2407         multiline mode.
2408         - When searching the text, count the end of the last line as a
2409         word boundary.
2410
2411 2007-03-26  Jackson Harper  <jackson@ximian.com>
2412
2413         * RichTextBox.cs: The selection_start and selection_end don't
2414         really track the correct tags for the selection. So we'll manually
2415         compute the correct tag here.
2416
2417 2007-03-26  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2418
2419         * ProgressBar.cs, ThemeWin32Classic.cs: Implemented drawing of Marquee
2420           and Continuous styles. Fixes #79469.
2421
2422 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2423
2424         * ToolStrip.cs: Implement Tooltips.
2425         * ToolStripItem.cs: Create internal method for determining tooltip.
2426
2427 2007-03-26  Jonathan Pobst  <monkey@jpobst.com>
2428
2429         * PropertyGrid.cs: Hide a EditorBrowsable attribute from 1.1 API.
2430
2431 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2432
2433         * NotifyIcon.cs: On disposing verify if icon is visible and hide it,
2434         it prevents a problem thak keeps icon visible after application 
2435         closes on win32.
2436
2437 2007-03-26  Everaldo Canuto  <everaldo@simios.org>
2438
2439         * NotifyIcon.cs: Balloon properties and methods created.
2440
2441         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
2442         XplatUIOSX.cs, XplatUIX11-new.cs: Implement ShowBalloonTip method.
2443
2444 2007-03-25  Jonathan Pobst  <monkey@jpobst.com>
2445
2446         * ToolStripComboBox.cs: Default the ComboBox's FlatStyle to Popup.
2447
2448 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2449
2450         * Control.cs: Make SetBoundsCore match MS better.  The BoundsSpecified
2451         parameter indicates which aspects were explicit/user-set.
2452         * ComboBox.cs, ListBox.cs: Call SetBoundsCore correctly. (no 0 parameters).
2453
2454 2007-03-24  Jonathan Pobst  <monkey@jpobst.com>
2455
2456         * ProgressBar.cs: Throw AOORE instead of AE for property Value (2.0).
2457         * ScrollBar.cs: Throw AOORE instead of AE for properties LargeChange,
2458         SmallChange, and Value (2.0).
2459         * Timer.cs: Throw AOORE instead of AE for property Interval (2.0).
2460
2461 2007-03-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2462
2463         * ListView.cs: Always set item_control.Width in LayoutDetails
2464         if View is Details. Setting it later in CalculateScrollBars
2465         in a not-so-corner scenario (the sum of columns width is
2466         not bigger than the ListView width when handle is created, and then
2467         that sum gets bigger by increasing the width of the columns)
2468         causes a very weird recursion path (which shouldn't be happening,
2469         since header_control sets it in CalculateScrollBars too). This bug
2470         appeared after Chris' fixes for handle created issues, so probably
2471         it's related to some handle-creation time.
2472
2473 2007-03-23  Chris Toshok  <toshok@ximian.com>
2474
2475         * DataGrid.cs (GetVisibleRowCount): increase the row count in the
2476         case where there's an add row, just so we don't end up in a case
2477         where it's not displayed (this happens when the row is partially
2478         obscured).  Fixes bug #79574.
2479
2480 2007-03-23  Jackson Harper  <jackson@ximian.com>
2481
2482         * TextControl.cs:
2483         * TextBoxBase.cs:
2484         * RichTextBox.cs: Preserve line endings in the lines text buffer,
2485         also added an enum that represents the line ending type. 
2486
2487 2007-03-23  Andreia Gaita  <avidigal@novell.com>
2488
2489         * NumericUpDown.cs: Fix logic so Text and Value properties are not
2490         messed with in every method call, but only from DownButton, 
2491         UpButton, UpdateEditText() and ValidateText. Fixes #80346
2492
2493 2007-03-23  Chris Toshok  <toshok@ximian.com>
2494
2495         * DataGridTextBoxColumn.cs (GetFormattedValue): don't try to
2496         format objects if the format spec is "".  Fixes bug #80889.
2497
2498 2007-03-22  Miguel de Icaza  <miguel@novell.com>
2499
2500         * ToolStripPanel.cs (Join): added stubs to build PDN3
2501
2502         * Control.cs (AutoScrollOffset): Add.
2503
2504         * SystemInformation.cs (MouseWheelScrollDelta): Expose this
2505         property, its only implemented for Win32, on X11 it defaults to
2506         some hardcoded value.
2507
2508         * ToolStripItem.cs (AllowDrop): Add property
2509
2510 2007-03-22  Mike Kestner  <mkestner@novell.com>
2511
2512         * ListView.cs : in FullRowSelect Details mode, only enable box
2513         selection if the user clicks over the "item" column outside of the
2514         text area.  Mmmmm, compatibility.  [Fixes #80374 subpart 7]
2515
2516 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2517
2518         * Control.cs: ChangeParent: Call Form's ChangingParent even if the
2519           handle is not created yet.
2520         * Form.cs: Select: Don't call CreateHandle if the handle is already
2521           created, avoids a stack overflow on Windows when we are recreating
2522           controls.
2523         * ScrollableControl.cs: Set the correct z-order for the scrollbars when
2524           they are made visible, and override AfterTopMostControl to keep
2525           them on top when other controls are brought to front.
2526           CalculateCanvas: Scrollbars are only visible if auto_scroll is true
2527           or force_*scroll_visible is true (old implementation always shows
2528           scrollbars when needed, no matter what auto_scroll was set to).
2529         * InternalWindowManager.cs: UpdateWindowDecorations: Add a
2530           IsHandleCreated check.
2531
2532 2007-03-22  Andreia Gaita  <avidigal@novell.com>
2533
2534         * DataGrid.cs: Implement Column and Row auto sizing when double-clicking on
2535         row or col separator.
2536         * DataGridTextBoxColumn.cs: Implement GetPreferredHeight and GetPreferredSize
2537
2538 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2539
2540         * MenuAPI.cs: Remove unneeded check for grab_control in UpdateCursor.
2541
2542 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2543
2544         * MenuAPI.cs: UpdateCursor method added, it is calling in OnMotion to update
2545         cursor for child controls. In ShowWindow and HideWindow now call SetCursor 
2546         every time. Fixes #80410.
2547
2548 2007-03-22  Chris Toshok  <toshok@ximian.com>
2549
2550         * BindingSource.cs (AddNew): partially implement.
2551
2552         remove a couple of NotImplementedException's
2553         to get bug #81148 closed.
2554
2555 2007-03-22  Everaldo Canuto  <everaldo@simios.org>
2556
2557         [Fixes #80380]
2558         
2559         * Control.cs:
2560         - UpdateCursor method added to update the screen cursor.
2561         - GetAvailableCursor method added to return cursor for enabled tree,
2562         it searches for cursor on control and it's parent's for enabled control.
2563         - Call UpdateCursor method on setter of Cursor property.
2564         - On setter of Enabled call UpdateCursor when it is false, we need to
2565         change cursor to normal (or to this parent cursor) because cursor 
2566         setting theres no effect to disabled controls.
2567         - Some minor source changes to follow the coding style guidelines.
2568
2569         * XplatUIX11.cs: In MotionNotify only dispatch SET_CURSOR event for enabled 
2570         controls.
2571
2572 2007-03-22  Chris Toshok  <toshok@ximian.com>
2573
2574         * XplatUIX11.cs: ignore the BadPicture errors cairo+render
2575         generates.
2576
2577 2007-03-22  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2578
2579         * XplatUIX11.cs: Implement default locations for forms.
2580         * Form.cs: Completely rework startup location for forms. Fixes #79964.
2581         * Hwnd.cs: Add previous_child_startup_location (to track the current
2582           startup location for any child forms of the current form) and
2583           previous_main_startup_location (to track the startup location for
2584           the current toplevel form).
2585
2586 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2587
2588         * Control.cs: Don't trigger a layout if an implicit control is added
2589         that isn't visible.  Also, don't notify the owner when an implicit control
2590         is added.  (Owners shouldn't even know about their implicit controls.)
2591
2592 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2593
2594         * ScrollableControl.cs: Add implicit controls with AddRangeImplicit
2595         to save some re-layouts.
2596
2597 2007-03-21  Everaldo Canuto  <everaldo@simios.org>
2598
2599         * MenuAPI.cs: In ProcessKeys returns false when key is not processed.
2600         [Fixes #81203]
2601
2602 2007-03-21  Jonathan Pobst  <monkey@jpobst.com>
2603
2604         * FlowLayoutSettings.cs, ToolStrip.cs, ToolStripPanel.cs,
2605         ToolStripPanelRow.cs: Lazy instantiate the LayoutEngine.
2606
2607 2007-03-21  Mike Kestner  <mkestner@novell.com>
2608
2609         * ListView.cs : disable selection update for non-left button clicks
2610         with mods and over selected items.  [Fixes #80524]
2611
2612 2007-03-20  Jackson Harper  <jackson@ximian.com>
2613
2614         * TextControl.cs:
2615         * TextBoxBase.cs: Allow different types of line endings. \r, \r\n,
2616         \r\r\n, \n.
2617
2618 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2619
2620         * ComboBox.cs: PreferredHeight seems to be ItemHeight + 6, but there is
2621           very probably a more complicated calculation there. Update the
2622           textbox' ForeColor and BackColor when the ComboBox' colors are
2623           changed. Change the border change in LayoutComboBox to only affect
2624           the textbox, not all the calculations there. Seems to fix most of
2625           #79436.
2626
2627 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2628
2629         * ComboBox.cs: Handle Home and End keys as well as all combinations of
2630           modifiers + navigation keys as input keys, enables advanced text
2631           selection in the combobox (like Shift+Left Arrow for instance).
2632           ComboTextBox now overrides Focused and returns whatever
2633           ComboBox.Focused returns, since it really should be focused
2634           whenever the ComboBox is. Fixes #80795. Also make the border around
2635           the text box one pixel bigger, as mentioned in #79436.
2636
2637 2007-03-20  Jackson Harper  <jackson@ximian.com>
2638
2639         * TreeView.cs: Don't offset the images, this was causing some
2640         artifacts when expanding/collapsing with images that were the
2641         exact height of the treenode.
2642
2643 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2644
2645         * TrackBar.cs: Query the theme for the correct value when the mouse
2646           moves and the thumb is pressed. 
2647         * Theme.cs: Added TrackBarValueFromMousePosition
2648         * ThemeWin32Classic.cs: Reworked TrackBar drawing. Earlier
2649           implementation was updating the trackbar value when drawing, now
2650           the drawing methods only draw. Fixes #80900. Refactored the
2651           calculations out to TrackBarValueFromMousePosition and
2652           GetTrackBarDrawingInfo, so that TrackBar can get the correct value
2653           according to the mouse position whenever it wants to. Changed the
2654           light coloured pen when drawing the thumb from ControlLight to
2655           ControlLightLight, because the ControlLight is the same colour as
2656           the background so the 3D effect is lost. 
2657
2658 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2659
2660         * Form.cs: In ShowDialog uses MainForm as transient form when no form is
2661         defined. Fixes #80784.
2662
2663 2007-03-20  Marek Habersack  <mhabersack@novell.com>
2664
2665         * ContextMenuStrip.cs: align with the change introduced in
2666         revision 74664.
2667
2668 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2669
2670         * XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs, 
2671         XplatUI.cs, Form.cs, ToolTip.cs: Remove unneeded parameter owner 
2672         in SetTopmost.
2673
2674 2007-03-19  Chris Toshok  <toshok@ximian.com>
2675
2676         * Control.cs (WmPaint): don't make use of the Handle property
2677         after an event is emitted, as the user could have closed the
2678         form/destroyed the control.  Store the Handle in a local variable
2679         and make use of that.  Fixes bug #80768.
2680
2681 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2682
2683         * XplatUIX11.cs: Set _NET_WM_STATE_ABOVE on SetTopmost, it fixes Topmost
2684         behavior in X11 environments.
2685
2686 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2687
2688         * Form.cs: Call SetTopmost in CreateHandle when window is topmost, its
2689         because on setter of topmost we dont call SetTopmost when handle is not
2690         created.
2691
2692 2007-03-20  Jackson Harper  <jackson@ximian.com>
2693
2694         * TextControl.cs: Need to use SelectionLength () not
2695         selection_length, since that var is reset to -1.
2696         - Draw the caret when we don't have focus.
2697         * TextBox.cs: The selectall actually doesn't occur until the first
2698         focus.
2699         * TextBoxBase.cs: Need to update the caret position after a
2700         selectall.
2701         
2702 2007-03-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2703
2704         * ListView.cs: Enable scrolling when using Tile view.
2705
2706 2007-03-20  Everaldo Canuto  <everaldo@simios.org>
2707
2708         [Fixes #80902]
2709
2710         * XplatUIDriver.cs: Abstract SetOwner method created.
2711
2712         * XplatUIOSX.cs: Override SetOwner to prevent compilation errors method 
2713         must be implemented and was masked as todo.
2714
2715         * XplatUIWin32.cs: SetOwner implemented using SetWindowLong with 
2716         GWL_HWNDPARENT.
2717
2718         * XplatUIX11.cs: SetOwner implemented using same code from SetTopmost but 
2719         cheking for null owner to remove transient. The SetTopmost will be change
2720         on a decond step.
2721
2722         * Form.cs: In set_Owner and CreateHandle uses new SetOwner instead of
2723         SetTopmost. Now owned forms will work properly in win32 and X11.
2724
2725 2007-03-20  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2726
2727         * MdiWindowManager.cs: Update function name.
2728         * Form.cs: After closing a form MdiParent is always null.
2729         * MdiClient.cs: Rename CloseChildForm to ChildFormClosed to explain
2730           better what it should do: necessary book-keeping when the form is
2731           closed, it should not close the form itself.
2732
2733 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2734
2735         * ListViewItem.cs: Fix back and fore color. The subitems only
2736         use their own colors if they are set, otherwise use the listview's
2737         colors. Don't set default colors on constructor for subitem.
2738         Fixes #79315.
2739
2740 2007-03-19  Mike Kestner  <mkestner@novell.com>
2741
2742         * ListView.cs : make box selection for Details views with 
2743         FullRowSelect conform to MS behavior when clicking in the "item" 
2744         column and clicking outside the defined columns.
2745         [Fixes case 5-6 of #80374]
2746
2747 2007-03-19  Chris Toshok  <toshok@ximian.com>
2748
2749         * ScrollableControl.cs: create the controls from within the ctor,
2750         but don't actually add them until our handle is created.  this
2751         fixes a NRE possibility jpobst found (if you override OnLayout in
2752         a subclass, it's called before your ctor).  Also, add a
2753         IsHandleCreated guard to UpdateSizeGripVisibility as well.
2754
2755 2007-03-19  Jackson Harper  <jackson@ximian.com>
2756
2757         * TextBox.cs: Reduce the amount of invalidation we do.
2758         * TextBoxBase.cs: Make shortcuts enabled true by default, at least
2759         some of them are true by default on MS.
2760         - Add some functions to reduce the amount of invalidates we do.
2761         * TextControl.cs: Less invalidation.
2762
2763 2007-03-19  Chris Toshok  <toshok@ximian.com>
2764
2765         [ Fixes #81773, and *seems* to fix #81553 as well ]
2766
2767         * XplatUIX11.cs: remove the assignment of hwnd.zombie = true from
2768         AccumulateDestroyedHandles.  We need to do it *after* we send
2769         WM_DESTROY, as the user's code can access Control.Handle in
2770         OnHandleDestroyed, and this shouldn't cause a recreation.  Also,
2771         move the WM_DESTROY/zombie handling to before the call to
2772         XDestroyWindow.  For some reason without this ordering
2773         FormTest.RecreateHandle hangs.  This ordering is semantically
2774         equivalent, however, as XDestroyWindow is async anyway.
2775
2776 2007-03-19  Gert Driesen  <drieseng@users.sourceforge.net>
2777
2778         * RichTextBox.cs: Reset backcolor_set after setting default.
2779
2780 2007-03-19  Chris Toshok  <toshok@ximian.com>
2781
2782         * ScrollableControl.cs: the scroll position should not effect the
2783         canvas size.  commit patch from georgegiolfan@yahoo.com, which
2784         fixes some really bizarre behavior on resizing.  Fixes bug #80778.
2785         
2786 2007-03-19  Chris Toshok  <toshok@ximian.com>
2787
2788         * ScrollableControl.cs: clean this up a bit.  create the
2789         scrollbars in the ctor and just show/hide them as needed.  Also,
2790         make hscroll_visible/vscroll_visible internal to Recalculate, and
2791         just use hscrollbar.VisibleInternal/vscrollbar.VisibleInternal
2792         everywhere else.  This seems to fix the scrollbars appearing
2793         beneath the content for me (i have *no* idea why that is,
2794         however.)
2795
2796 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2797
2798         * ToolStrip.cs: Don't call DoAutoSize when we change Dock.  Also, remove
2799         some redundacy for stuff in Anchor and Dock that base will take care of.
2800         [Fixes #80762]
2801
2802 2007-03-19  Mike Kestner  <mkestner@novell.com>
2803
2804         * ListView.cs : make box selection for Details views without 
2805         FullRowSelect dependent on the text bounds, not item bounds.
2806         * ListViewItem.cs : add an internal property to obtain the TextBounds
2807         in Details view.  [Fixes case 1-4 of #80374]
2808
2809 2007-03-19  Andreia Gaita  <avidigal@novell.com>
2810
2811         * PaintEventArgs.cs (Dispose): Only dispose of graphics object if
2812         we're < 2.0. #78448 && #80316
2813
2814 2007-03-19  Jonathan Pobst  <monkey@jpobst.com>
2815
2816         * FontDialog.cs: Don't crash when we switch to a new font that doesn't
2817         have the same style available as the previously selected one.  Also,
2818         support FixedPitchOnly property.  [Fixes bugs #80918, #80947]
2819
2820 2007-03-19  Jackson Harper  <jackson@ximian.com>
2821
2822         * TextControl.cs: Add an alignment property that all new lines
2823         will be given.
2824         - Make sure to use the align shift when calculating the line's X
2825         position.
2826         * TextBox.cs: Set the alignment on the document as well as on all
2827         the document lines.
2828
2829 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2830
2831         * Control.cs: ControlCollection.Add: Remove a couple of duplicated casts and
2832           throw if setting the parent of an mdichild that already has an
2833           mdiparent. Update signature for 2.0 profile. ProductName: If there's no
2834           AssemblyProductAttribute in the assembly, use the type's namespace (as
2835           MS seems to do). CreateControl: don't create the handle if the control
2836           is not visible (according to MS behaviour and spec).  SetTopLevel: Only
2837           create handle if the control is not a form. Change FocusInternal to
2838           virtual so that it can be overriden by Form.
2839         * TextBox.cs: Update call to FocusInternal.
2840         * Form.cs: Always create the handle when calling Focus on a MdiChild. The
2841           form is not a toplevel form when it's a mdi child, so update is_toplevel
2842           accordingly. ShowIcon/TransparencyKey: avoid creating the handle if it
2843           hasn't been created. Show (IWin32Window): Don't allow this overload for
2844           toplevel windows. CenterToParent/CenterToScreen/Select: create the
2845           handle as MS does. SetVisibleCore: if called on a MdiChild and the
2846           parent isn't visible yet, save the visibility and restore it when the
2847           parent is made visible.
2848         * ScrollableControl.cs: Refactor out scrollbar visibility code to separate
2849           methods, since the visibility of the scrollbars can be changed from
2850           several places, not only from AutoScroll.
2851           [Fixes #81179]
2852
2853 2007-03-19  Jackson Harper  <jackson@ximian.com>
2854
2855         * RichTextBox.cs: Enable shortcuts by default.
2856         * TextBoxBase.cs: Add conditional shortcuts.  
2857
2858 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2859
2860         * MenuItem.cs: Dont call OnDrawItem when OwnerDraw is false (#81182).  
2861
2862 2007-03-19  Chris Toshok  <toshok@ximian.com>
2863
2864         [ Fixes bug #80604]
2865         
2866         * XplatUIX11.cs (WaitForHwndMessage): change this to actually
2867         swallow the message we're waiting on, instead of delivering it, as
2868         this is only used for the WM_SHOWWINDOW raised from
2869         MapWindow/UnmapWindow, and the message needs to be generated
2870         (MapWindow, UnmapWindow): generate the WM_SHOWWINDOW message
2871         before doing the Map/Unmap.  Also make sure that the Hwnd is still
2872         alive after the message has been handled.
2873
2874         *before* the window is shown.
2875
2876         * Control.cs (CreateControl): guard a few more things inside the
2877         if (!is_created) block, as we might end up being called again -
2878         yay .net.
2879         (WmShowWindow): call CreateControl if we're showing the control.
2880
2881 2007-03-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2882
2883         * Control.cs: Fix 2.0 signature for Invoke. Support invoking on
2884           controls without a handle if they have any parent with a handle. In
2885           Dispose add a check whether the handle is created or not before
2886           calling BeginInvoke, this removes the need of the extra disposing
2887           parameter (which was bogus anyway since it didn't prevent the
2888           invoke from happening, it only skipped the check for an existing
2889           handle, meaning that the invoke would call on an inexistent
2890           handle).
2891
2892 2007-03-19  Everaldo Canuto  <everaldo@simios.org>
2893
2894         * MessageBox.cs: Remove WS_POPUP from CreateParams style, with it form
2895         appears in taskbar.
2896
2897 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2898
2899         * MessageBox.cs:
2900         - Fixed a problem that dont show help button for messages with 3 buttons.
2901         - Refactory button size and position calculations, now dont use fixed 
2902         values, also fixed button sizes (#80043) and form's border space.
2903         - AddButton method created, now all other AddButton methods call this one.
2904         - Some other source code cosmetic changes.
2905
2906 2007-03-18  Jackson Harper  <jackson@ximian.com>
2907
2908         * RichTextBox.cs: Don't do this all fonts must match check if
2909         there is only one char selected.
2910
2911 2007-03-18  Jackson Harper  <jackson@ximian.com>
2912
2913         * TreeView.cs: ScrollWindow works properly now, so we don't need
2914         to screw around with the scroll area.  This fixes some artifacts
2915         when expanding and collapsing.
2916
2917 2007-03-18  Jackson Harper  <jackson@ximian.com>
2918
2919         * TextBoxBase.cs: Allow updating the selection position when the
2920         cursor is outside the textarea, but we have a capture.
2921         * TextControl.cs: A special case for when the cursor is outside
2922         the bounds of the TB.
2923         
2924 2007-03-18  Jackson Harper  <jackson@ximian.com>
2925
2926         * TextBoxBase.cs: Remove image pasting code for now.  There is no
2927         way to get an image on the clipboard right now anyways.
2928         * TextControl.cs:
2929         * RichTextBox.cs: Use the new RTF Picture class for pictures.
2930
2931 2007-03-18  Everaldo Canuto  <everaldo@simios.org>
2932
2933         * MessageBox.cs:
2934         - Set window properties in constructor intead of on CreateParams.
2935         - Remove topmost from Window ExStyle.
2936         - Set ShowInTaskbar to false.
2937         - Set form border to FixedDialog.
2938         - Some cosmetic changes and remove unneeded comments.
2939         - It fixes itens 2,3 and 4 of bug #80043.
2940
2941 2007-03-18  Gert Driesen  <drieseng@users.sourceforge.net>
2942
2943         * TextBoxBase.cs: In setter for ReadOnly, only chance BackColor if
2944         none was explicitly set. Fixes part of bug #79949.
2945
2946 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2947
2948         * ToolStripComboBox.cs: Add AutoComplete*.
2949
2950 2007-03-16  George Giolfan  <georgegiolfan@yahoo.com>
2951
2952         * ToolStripComboBox.cs: Add FlatStyle.
2953
2954 2007-03-16  Jonathan Pobst  <monkey@jpobst.com>
2955
2956         * ToolStrip.cs, ToolStripProfessionalRenderer.cs,
2957         ToolStripSplitStackLayout.cs: Implement some basic vertical toolbar support.
2958
2959 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2960
2961         * ButtonBase.cs, ToolStrip.cs, SendKeys.cs, TextRenderer.cs,
2962           CheckBox.cs, RadioButton.cs, BindingSource.cs,
2963           DataGridColumnStyle.cs: Remove warnings.
2964
2965 2007-03-16  Rolf Bjarne Kvinge <RKvinge@novell.com> 
2966
2967         * Menu.cs: MergeMenu: Check menu argument for null before looping over
2968           it.
2969         * MdiWindowManager.cs: Add IsVisiblePending to track the pending
2970           visibility of mdi child forms. FormSizeChangedHandler: update the
2971           maximized size if size has changed while maximized.
2972         * MdiClient.cs: SizeScrollbars/ArrangeWindows/ActivateChild: Avoid
2973           creating the handle.
2974         * InternalWindowManager.cs: UpdateBorderStyle/FormSizeChangedHandler:
2975           avoid creating the handle if not created.
2976         * XplatUI.cs: Update debug output.
2977         * XplatUIStructs.cs: Added ToString's for a couple of structs.
2978
2979 2007-03-16  Jonathan Pobst <monkey@jpobst.com>
2980
2981         * ContainerControl.cs: Give ToolStripManager the opportunity to handle
2982         ProcessCmdKey().
2983         * ToolStripDownItem.cs, ToolStripItem.cs, ToolStripItemCollection.cs, 
2984         ToolStripItemEventType.cs, ToolStripManager.cs, ToolStripMenuItem.cs:
2985         Implement keyboard shortcuts.
2986
2987 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2988
2989         * CommonDialog.cs: Set StartPosition to CenterScreen on form's constructor.
2990         Fixes #79560 and #80200, it also fix problem in FileDialog, SaveDialog, 
2991         ColorDialog and all derived classes.
2992
2993 2007-03-15  Everaldo Canuto  <everaldo@simios.org>
2994
2995         [ Fixes bug #79828 ]
2996
2997         * ToolBar.cs:
2998         - Rename ToolBarButtonInfor to ToolBarItem.
2999         - Add all layout and calculation stuff gtom ToolBarButton to ToolBarItem.
3000         - Maintain an array of ToolBarItem, used instead of ToolBarButton
3001         collection to be able add same button more than one time on a toolbar.
3002         - Refactory all properties and methods to use ToolBarItem. 
3003
3004         * ToolBarButton.cs: 
3005         - Remove all propeties and methods that is now in ToolBarItem.
3006         - Rectangle propery now gets the rectangle from first ToolBarItem to
3007         mimic win32 behavior.
3008         - Size calculation and layout methods also removed.
3009
3010         * ThemeWin32Classic.cs: Change all ToolBar drawing methods to receive
3011         ToolBarItem instead of ToolBarButton to right drawing buttons when
3012         same button/separator was added more than one time to ToolBar.
3013
3014         * ThemeNice.cs: Same as above. 
3015
3016 2007-03-15  Andreia Gaita  <avidigal@novell.com>
3017
3018         * XplatUIX11.cs: Fire extra MouseMove events right after
3019         MouseDown and MouseUp, emulating win32's <censored> behaviour
3020         for apps that rely on it.
3021
3022 2007-03-15  Jackson Harper  <jackson@ximian.com>
3023
3024         * TextControl.cs:
3025         * TextBoxBase.cs: On MS, a fixed single border is not in NC area,
3026         it is drawn on the controls client window and there is no NC
3027         area.
3028         - Set the background color to gray on 2.0 when we are readonly.
3029
3030 2007-03-15  Chris Toshok  <toshok@ximian.com>
3031
3032         [ Fixes bug #81144 ]
3033         
3034         * XplatUIX11.cs: implement VirtualScreen independently of
3035         WorkingArea, by querying the _NET_DESKTOP_GEOMETRY root window
3036         property.
3037
3038 2007-03-15  Chris Toshok  <toshok@ximian.com>
3039
3040         * Hwnd.cs: add an internal field for the cached_window_state.
3041
3042         * XplatUIX11.cs: cache the window state, invalidating the cache
3043         (and thus re-querying the X server) only when we see an update to
3044         the _NET_WM_STATE property.
3045
3046 2007-03-15  Chris Toshok  <toshok@ximian.com>
3047
3048         * BindingSource.cs: get a lot of the unit tests working.
3049
3050 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
3051
3052         * Control.cs: Modify UpdateStyles to store distances when bounds >=
3053         0 instead of just bounds > 0.  [Fixes bug #80912]
3054
3055 2007-03-15  Jonathan Pobst  <monkey@jpobst.com>
3056
3057         * ToolStrip.cs, ToolStripItem.cs: Implement several new properties
3058         and methods.
3059
3060 2007-03-15  Ivan N. Zlatev <contact@i-nz.net>
3061         
3062         * ComboBox.cs, Control.cs, XplatUIStructs.cs, XplatUIX11GTK.cs,
3063         XplatUIX11.cs, XplatUIWin32.cs, InternalWindowManager.cs,
3064         XplatUIOSX.cs, TextControl.cs: Replaces all uses of the custom
3065         WM_MOUSE_LEAVE with the system WM_MOUSELEAVE message.
3066
3067 2007-03-15  Chris Toshok  <toshok@ximian.com>
3068
3069         [ Fixes #81101 ]
3070         
3071         * Control.cs: add Ivan's fix for 81101, with a slight modification
3072         - you can set control.Target to null.
3073
3074 2007-03-14  Jonathan Pobst  <monkey@jpobst.com>
3075
3076         * ToolStripItem.cs: If our OwnerItem is null, we can't use 
3077         HideDropDown, use Hide instead to prevent an NRE.
3078         [Fixes bug #81147]
3079
3080 2007-03-14  Jackson Harper  <jackson@ximian.com>
3081
3082         * TextBoxBase.cs: Mess with the creation stuff a little. We need
3083         to calculate the document before the handle is created, in some
3084         cases. (Actually just one case).
3085
3086 2007-03-14  Jackson Harper  <jackson@ximian.com>
3087
3088         * TextBoxBase.cs: Need to display the caret after letting the base
3089         wndproc handle the focus methods, because the caret display
3090         methods check the focus state.
3091         - Try to display the caret after updating it's position with SelectWord.
3092         - Don't need to do an immediate update on this recalc, since there
3093         will be an invalidate anyways.
3094
3095 2007-03-14  Jackson Harper  <jackson@ximian.com>
3096
3097         * TreeView.cs: Some workarounds so that we can match event order a
3098         little better.
3099
3100 2007-03-14  Gert Driesen  <drieseng@users.sourceforge.net>
3101
3102         * ErrorProvider.cs: Invoke default ctor from 2.0-only ctor. Fixes bug
3103         #80803. Avoid NullReferenceException when Control does not have
3104         parent. Fixed different blinkstyle issues. Only subscribe to Tick
3105         event a single time. Only draw error icon when control is created and
3106         visible. Fixes failing unit tests.
3107
3108 2007-03-14  Andreia Gaita  <avidigal@novell.com>
3109
3110         * TabControl.cs: Add support for 2.0 Deselecting, Deselected and
3111         Selecting events. Fire Leave and Enter events when changing tabs.
3112
3113 2007-03-14  George Giolfan  <georgegiolfan@yahoo.com>
3114
3115         * TreeView.cs: Add TreeViewNodeSorter.
3116         * TreeNodeCollection.cs: Add sorter parameter to Sort method.
3117
3118 2007-03-14  Chris Toshok  <toshok@ximian.com>
3119
3120         * Form.cs: go ahead and remove the RecreateHandles that jpobst
3121         removed earlier and I had him add back it.  It turns out metacity
3122         *does* in fact handle the MOTIF_WM_HINTS property changing, it
3123         just doesn't redraw the window titlebar until you resize the
3124         window.  This also means we aren't recreating the entire window
3125         hierarchy on X when you change this property.  And it looks better
3126         on windows, too.
3127
3128 2007-03-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3129
3130         * ListViewItem.cs:
3131         * ListView.cs: Collecting selection information
3132         is now done in SelectedIndexCollection rather than in
3133         SelectedListViewItemCollection. This is done so we can
3134         have the selection information code in one single place
3135         (virtual mode selection information entirely depends on
3136         SelectedIndexCollection).
3137
3138 2007-03-13  Miguel de Icaza  <miguel@novell.com>
3139
3140         * ErrorProvider.cs: Add stubs for ISupportInitialize
3141
3142 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3143
3144         * ListViewItem.cs: Trigger the ItemCheck and ItemChecked events
3145         in the right order with the right values, from the Checked property, 
3146         just as MS does (instead of triggering them from ListView).
3147
3148         * ListView.cs: Make OnItemCheck and OnItemChecked internal.
3149
3150 2007-03-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3151
3152         * ListView.cs: Implement ItemChecked 2.0 event. Also cast to 
3153         the correct handler in OnItemCheck method (ItemCheckEventHandler 
3154         instead of EventHandler). This used to throw an InvalidCastException.
3155
3156 2007-03-13  Jackson Harper  <jackson@ximian.com>
3157
3158         * TextBoxBase.cs: Calculate the document before the handle is
3159         created, so there isn't an extra invalidate called.
3160
3161 2007-03-13  Jonathan Pobst  <monkey@jpobst.com>
3162
3163         * Form.cs: Don't set owner in ShowDialog until we are sure
3164         that we aren't going to throw an exception.  [Fixes bug #80773]
3165
3166 2007-03-12  George Giolfan  <georgegiolfan@yahoo.com>
3167
3168         * TreeView.cs: Make it compile.
3169
3170 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3171
3172         * Control.cs: Another place we don't call SizeFromClientSize.
3173         * Form.cs: Another place we don't call SizeFromClientSize.
3174         [Fixes bug #81125]
3175
3176 2007-03-12  Jackson Harper  <jackson@ximian.com>
3177
3178         * TreeView.cs: Basically emulating some strangness here with
3179         exanding nodes and setting node positions when windows aren't
3180         created.
3181         - Also attempting to walk the node tree less than previously, and
3182         just use visible order calculations for determining offsets.
3183         - oops made scrolling backwards.
3184         * TreeNode.cs: We need to start nodes with a zero visible order,
3185         because the order calcs are based on the first nodes order.
3186
3187 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3188
3189         * Form.cs: Don't exit the program if RecreateHandle is called on
3190         the main form.
3191
3192 2007-03-12  Chris Toshok  <toshok@ximian.com>
3193
3194         * XEventQueue.cs: remove the use of PostQuitState.
3195
3196         * XplatUIX11.cs: remove the use of PostQuitState.  If we get a
3197         WM_QUIT message in GetMessage, return false (and if we're in the
3198         nested WaitForHwndMessage, repost the WM_QUIT message).
3199
3200 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3201
3202         * Form.cs: Don't call RecreateHandle when we change the MinimizeBox
3203         or the MaximizeBox properties.  [Part of bug #80640]
3204
3205 2007-03-12  Everaldo Canuto  <everaldo@simios.org>
3206
3207         * LinkLabel.cs: When calculate pieces make LinkArea empty if theres
3208         no links.
3209
3210 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3211
3212         * ToolStripItem.cs: Fix some tests I broke by checking Visible
3213         instead of visible.
3214
3215 2007-03-12  Gert Driesen  <drieseng@users.sourceforge.net>
3216
3217         * FileDialog.cs: Use text of File name combobox to determine what
3218         files the user selected. Added tokenizer to parse the file names.
3219         Fixes bug #81123.
3220
3221 2007-03-12  Jonathan Pobst  <monkey@jpobst.com>
3222
3223         * Control.cs: We can't call SizeFromClientSize in the constructor,
3224         but we still need to do the same work, so make an internal version.
3225         [Fixes bug #80621]
3226
3227 2007-03-12  Jackson Harper  <jackson@ximian.com>
3228
3229         * TreeView.cs:
3230         * TreeNode.cs:
3231         * OpenTreeNodeEnumerator: Match MS better for IsVisible and
3232         IsExpanded.
3233
3234 2007-03-12  Jackson Harper  <jackson@ximian.com>
3235
3236         * TextBoxBase.cs: Now that the handles are being created a little
3237         later, we need to make sure that the document is recalculated when
3238         the handle is created.
3239
3240 2007-03-11  Everaldo Canuto  <everaldo@simios.org>
3241
3242         * Theme.cs: GetLinkFont abstract method added.
3243         
3244         * LinkLabel.cs: 
3245         - Remove CalcTrimRectangle, no longer needed.
3246         - Factor also remove, position issues must be fixed in libgdiplus.
3247         - Move GetPieceColor to ThemeWin32Classic.cs as it is theme related.
3248         - GetPieceFont, CreateLinkFont and link_font removed, theme must be 
3249         care about font used to draw links.
3250         - Set TabStop to true when control is "Selectable", control is selectable
3251         when have one or more links. Fixes #80501 (test case is also added).
3252         - Set the LinkArea values after links change, LinkArea values must be
3253         based in first link position and size, a test case was created.
3254         - Fix ControlStyles.Selectable value, now is based on LinkArea value, 
3255         the attribute must be true LinkArea.Length > 0. The same was applied to
3256         TabStop.
3257         
3258         * ThemeWin32Classic.cs: 
3259         - LinkLabelGetPieceColor and LinkLabelGetPieceFont created and used 
3260         in draw method.
3261         - Use CPDrawStringDisabled to draw disabled text instead of hard code 
3262         color change.
3263         - Draw focus rectangle for every parts focused, including parts that 
3264         is on another line, its because regions returns various rectangles
3265         and not only one. Needed to mimic W32 look.
3266         - Uses Graphics.Clip to delimite region painted, it mean that now 
3267         complete text is passed to DrawString, with this we solve layout
3268         issues without create another text renderer.
3269         - Uses Region.Intersect to fix some flickers problems, now only needed
3270         parts will redrawed.
3271         - This changes fixes #79614 and some other unreported issues, on Linux 
3272         some layout problems still remain, the problem is under 
3273         MeasureCharacterRanges but it is an libgdiplus bug.
3274
3275 2007-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
3276
3277         * TextBox.cs: Set for foreground color.
3278         * TextBoxBase.cs: Remove Invalidate when setting BackColor, since
3279         this is already done in Control.
3280
3281 2007-03-10  Jackson Harper  <jackson@ximian.com>
3282
3283         * TextBox.cs: Set the background color, but reset the
3284         backcolor_set flag which is just for the user setting the
3285         background color.
3286
3287 2007-03-09  Chris Toshok  <toshok@ximian.com>
3288
3289         * Control.cs: really remove the call to XplatUI.SetVisible from
3290         CreateHandle(), like I said I did when I merged the branch.
3291
3292         * BindingSource.cs: implement some more of this stuff.
3293
3294 2007-03-09  Jackson Harper  <jackson@ximian.com>
3295
3296         * TextBox.cs: Don't explicitly set our background colors.
3297         * TextControl.cs:
3298         * TextBoxBase.cs: Draw readonly text.
3299         - Need to invalidate when backcolor or readonly are changed.
3300         
3301 2007-03-09  Jackson Harper  <jackson@ximian.com>
3302
3303         * TextBoxBase.cs: Don't set the forecolor until the handle is
3304         created.
3305         - Do not raise OnPaint, and removed some old debug code.
3306
3307 2007-03-09  George Giolfan  <georgegiolfan@yahoo.com>
3308
3309         * ScrollableControl.cs: Fix mouse wheel scrolling.
3310
3311 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3312
3313         * Control.cs: Wire up MouseDoubleClick event.
3314
3315 2007-03-09  Jonathan Pobst  <monkey@jpobst.com>
3316
3317         * ToolStrip.cs: Rework AutoSize to adjust height when docked to the
3318         top or bottom.
3319         * ToolStripItem.cs: Make Image drawing take ImageScaling into account.
3320         * ToolStripItemCollection.cs: Don't call owner.PerformLayout when a new
3321         item is added.  This logic was moved to ToolStrip.OnItemAdded.
3322         [Fixes bug #81090]
3323
3324 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3325
3326         * ListVieItem.cs: SetIndex is only valid for 2.0 profile by now.
3327
3328 2007-03-08  Jackson Harper  <jackson@ximian.com>
3329
3330         * TreeView.cs: Show the correct image for selected node (this used
3331         to work, not sure how the code got deleted). Also implemented 2.0 feature
3332         SelectedImageKey.
3333
3334 2007-03-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3335
3336         * ListView.cs:
3337         * ListViewItem.cs: Cache index in items when retrieving them
3338         in VirtualMode.
3339
3340 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3341
3342         * ToolStripItem.cs: Don't return the explicit_size if we are using 
3343         AutoSize.  Fixes invalidation issue when user has explicitly set a
3344         size and has AutoSize = true.
3345
3346 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3347
3348         * XplatUIX11.cs: Hardcode FrameBorderSize value temporarily to fix MWF.
3349
3350 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3351
3352         * DataGridView.cs: Remove event handler from DataView when a
3353         DataTable is used as DataSource.
3354
3355 2007-03-08  Jonathan Pobst  <monkey@jpobst.com>
3356
3357         * Control.cs: Create internal setter for client_size to allow it to be
3358         set without triggering resizing code.
3359         * Form.cs: Calculate client_size in constructor, only change client_size
3360         in FormBorderStyle property if Handle has been created.
3361         [Fixes #80574, #80791]
3362
3363 2007-03-08  George Giolfan  <georgegiolfan@yahoo.com>
3364
3365         * SystemInformation.cs: Add TerminalServerSession.
3366
3367 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3368
3369         * TreeViewDrawMode.cs: Make internal for 1.1 to allow for consolidated
3370         TreeView code.
3371
3372 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3373
3374         * XplatUIWin32.cs: The no_activate stuff was forcing us to create a
3375         Handle before we were supposed to.  Now checks ActivateOnShow property
3376         in Control.
3377         * Control.cs: Add internal ActivateOnShow property.
3378         * ComboBox.cs, Form.cs, MenuAPI.cs, ToolStripDropDown.cs: Return false
3379         for ActivateOnShow.
3380         * Hwnd.cs Remove no longer needed no_activate field.
3381
3382 2007-03-07  Jackson Harper  <jackson@ximian.com>
3383
3384         * TreeView.cs: Implement owner draw tree nodes.  And a couple more
3385         2.0 properties
3386         * DrawTreeNodeEventHandler.cs: Add
3387         * DrawTreeNodeEventArgs.cs: Correct default value.
3388         
3389 2007-03-07  Chris Toshok  <toshok@ximian.com>
3390
3391         * XplatUIWin32.cs: create InternalWndProc so that we're guaranteed
3392         to be called before NativeWindow.WndProc.  Put the HwndCreating
3393         magic there to hook up our Hwnd's to handles.
3394
3395 2007-03-07  Gert Driesen  <drieseng@users.sourceforge.net>
3396
3397         * DataGridView.cs: Comment out debug code.
3398
3399 2007-03-07  Chris Toshok  <toshok@ximian.com>
3400
3401         [merge -r72718:73765 from mwf-handle-branch, and include 2 changes
3402         to make the rest of the world happy]
3403
3404         * Control.cs (CreateHandle): there's no need to call
3405         XplatUI.SetVisible here, it's effectively done by
3406         XplatUI.CreateWindow on X now, and always was on windows.
3407
3408         * XplatUIX11.cs (WaitForHwndMessage): only use the PostQuitState
3409         shortcircuit out of the loop if we have a message loop running on
3410         this thread.
3411
3412         [Changelog from merge]
3413
3414         2007-03-05  Chris Toshok  <toshok@ximian.com>
3415
3416                 * Control.cs (AccessibilityNotifyClients): turns out in 1.1 this
3417                 causes handle creation.
3418
3419         2007-02-28  Chris Toshok  <toshok@ximian.com>
3420
3421                 * ApplicationContext.cs: Add a flag to make sure we only raise the
3422                 ThreadExit event once (ExitThreadCore can be indirectly called
3423                 from a few places.)  I don't like the additional flag, but it
3424                 makes the event ordering/count correct.
3425
3426                 * Application.cs (MWFThread.LoopCount): don't use an enumerator
3427                 without locking the collection.  An enumerator doesn't give us any
3428                 protection from modification anyway.  Lock the thread hash and
3429                 replace the complicated enumerator loop with a foreach.
3430                 (Application.CloseForms): make internal so it can be called from
3431                 ApplicationContext.  This should probably be moved to MWFThread.
3432                 (Application.ExitThread): don't call MWFThread.Current.Exit()
3433                 here.  just call XplatUI.PostQuitMessage.  We'll exit the thread
3434                 when the runloop exits (in response to WM_QUIT.)
3435                 (Application.RunLoop): add a comment (and check) for
3436                 context.MainForm being null after setting context.MainForm.Visible
3437                 = true.  This is because you're perfectly free to dispose of a
3438                 form in VisibilityChanged.  Chalk this up to another case where we
3439                 need to synchronously generate WM_ACTIVATE from Control.Show.
3440                 Also, add handling for WM_QUIT here so we'll exit the loop.
3441                 
3442                 * XplatUIX11.cs: clean up MapWindow and UnmapWindow a bit.  The
3443                 fact that we don't wait if we're only unmapping the whole_window
3444                 makes me a bit nervous, but it doesn't seem to cause any problems
3445                 yet.
3446
3447                 also, add a comment about the stupid, broken and wrong resetting
3448                 of PostQuitState to false in GetMessage().
3449
3450                 In PostQuitMessage, we need to add a WM_QUIT message to the
3451                 thread's queue.  We use the FosterParent to get the right
3452                 handle/hwnd/queue.
3453
3454                 Lastly, in SetVisible, we need to unmap both windows, since the
3455                 waiting only happens when we're unmapping the client window.  So
3456                 now, the *only* time we unmap just the whole_window is in the hack
3457                 for resizing a control to 0,0.
3458                 
3459         2007-02-21  Chris Toshok  <toshok@ximian.com>
3460
3461                 * Application.cs (CloseForms): rewrite this so that we don't
3462                 modify the list while we're traversing it.
3463
3464         2007-02-20  Chris Toshok  <toshok@ximian.com>
3465
3466                 * ListBox.cs (.ctor): move the Control.AddImplicits here instead
3467                 of OnHandleCreated.
3468                 (HorizontalScrollEvent): only call XplatUI.ScrollWindow if the
3469                 handle is created.  otherwise we'll create it here.
3470                 (VerticalScrollEvent): same here.
3471
3472                 * Application.cs (CloseForms): call Form.Dispose, don't post
3473                 WM_CLOSE_INTERNAL.
3474
3475                 * Form.cs (WndProc): we don't need to use CLOSE_INTERNAL
3476                 here. Application should Dispose() of the Form's.
3477
3478                 * XplatUIX11.cs (WaitForHwndMessage): break out of the loop on
3479                 WM_DESTROY as well.
3480                 (MapWindow,UnmapWindow): only actually do the waiting for
3481                 SHOWWINDOW if the control we're dealing with is a Form.
3482                 (CreateWindow): if the control isn't a form, SendMessage
3483                 WM_SHOWWINDOW here (if the WS_VISIBLE style is set).
3484
3485                 * Control.cs (SetVisibleCore): always use is_visible here, not
3486                 value.  If we use value, we can end up re-setting something
3487                 visible if, for instance, you do Control.Hide() in a delegate
3488                 attached to VisibleChanged as we do in FormTest.ShowDialogTest.
3489
3490         2007-02-20  Chris Toshok  <toshok@ximian.com>
3491
3492                 * XplatUIX11.cs (WaitForHwndMessage): we need to loop until we get
3493                 the message we need.  PeekMessage returning false should not be a
3494                 condition under which we exit the loop.
3495
3496         2007-02-15  Chris Toshok  <toshok@ximian.com>
3497
3498                 * Control.cs (Refresh): only refresh if we've got a handle and are
3499                 visible.
3500                 (CreateAccessibilityInstance): CreateControl() here.
3501                 (UpdateChildrenZOrder): complicate the code loop even more by
3502                 taking into account controls that haven't had their handle
3503                 created, and those that aren't visible.  But on the flip side,
3504                 simplify the code by splitting it into two loops.  one which
3505                 builds up the list of child controls we're interested in, and the
3506                 other that sets the z order of those children.
3507
3508         2007-02-14  Chris Toshok  <toshok@ximian.com>
3509
3510                 * Control.cs: Control.AccessibilityObject causes the control to be
3511                 created, not just the handle.
3512
3513         2007-02-14  Chris Toshok  <toshok@ximian.com>
3514
3515                 * Control.cs: rework UpdateChildrenZOrder to correctly handle the
3516                 problem on X where a window might have its handle created (and be
3517                 visible) while the window is unmapped.  calling XConfigureWindow
3518                 on an unmapped window is bad, and generates X errors.
3519
3520         2007-02-13  Chris Toshok  <toshok@ximian.com>
3521
3522                 * Control.cs (CreateHandle): don't loop over our children setting
3523                 their parent here.  do it when in WndProc when we're shown.
3524                 (UpdateChildrenZOrder): make this internal so we can call it from
3525                 ScrollableControl.
3526                 (WndProc): for WM_SHOWWINDOW, reparent the child control after
3527                 creating its handle.  Also, remove the calls to PerformLayout from
3528                 here.  they're done in ScrollableControl.OnVisibleChanged.  Also,
3529                 OnVisibleChanged only seems to be called directly here for the
3530                 toplevel control.  It's propagated down the window hierarchy by
3531                 calls to child.OnParentVisibleChanged.
3532                 (OnVisibleChanged): don't do layout here - it's done (oddly
3533                 enough, according to a glance at stack traces on ms.net..) in
3534                 ScrollableControl.
3535                 
3536                 * ScrollableControl.cs (OnVisibleChanged): make sure we update the
3537                 z order of our children before calling PerformLayout.
3538
3539         2007-02-12  Chris Toshok  <toshok@ximian.com>
3540
3541                 [big change, fixes #80020]
3542                 
3543                 * AccessibleObject.cs: we need to make owner internal again to fix
3544                 some of ControlAccessibleObject.
3545
3546                 * Control.cs: lots of changes here.  add support for WM_CREATE,
3547                 for which we generate OnHandleCreated.  Remove the OnHandleCreated
3548                 call from CreateHandle.  Also add support for WM_SHOWWINDOW where
3549                 we create child controls.  leave the MonoTODO's for the
3550                 accessibility calls, but fix the exceptions so the tests pass.
3551
3552                 Add the InvalidOperationExceptions to Invoke methods, and remove a
3553                 couple of InvokeInternal methods we aren't using.
3554                 
3555                 Also, add a couple of CreateHandle calls in places where we know
3556                 the handles are being created but our code doesn't reference
3557                 .Handle.
3558
3559                 Make SetVisibleCore call OnVisibleChange if the handle isn't
3560                 created.  If the handle is created, we rely on XplatUI.SetVisible
3561                 generating the event synchronously.
3562                 
3563                 Lastly, make sure we don't use this.Handle inside CreateHandle,
3564                 because we can call back into client (and that code can dispose of
3565                 the control).
3566
3567                 * XplatUIStructs.cs: misc/cleanup.
3568
3569                 * XplatUIX11.cs: Map/Unmap X events correspond to WM_SHOWWINDOW,
3570                 although we don't populate the wParam properly.
3571                 (CreateWindow): generate WM_CREATE.
3572                 (MapWindow,UnmapWindow): make these calls synchronous, at great
3573                 performance expense (particularly in the unmap case), to match
3574                 win32 behavior.
3575
3576                 * Form.cs (.ctor): remove the call to UpdateBounds. we don't need
3577                 to call it.
3578                 (set_MdiParent): don't recreate the handle unless it's been
3579                 created already.
3580                 
3581                 * MdiClient.cs (OnResize): don't InvalidateNC Parent.Handle unless
3582                 it's created.
3583
3584                 * NativeWindow.cs: this is probably the weirdest part of the
3585                 patch.  We need a way to link up the window being created to the
3586                 WM_CREATE message.  Since we can only be creating one window at a
3587                 time on a given thread, we keep track of a per-thread reference so
3588                 we can dispatch it properly.  We also need to keep track of the
3589                 Hwnd currently being created so that the win32 backend doesn't
3590                 have problems.
3591                 
3592                 * XplatUIWin32.cs: a similar change to the one we made in
3593                 NativeWindow.cs.
3594
3595 2007-03-07  Jonathan Pobst  <monkey@jpobst.com>
3596
3597         * ToolStripItem.cs: Make CalculatePreferredSize virtual.
3598         * ToolStripMenuItem.cs: Modify CalculatePreferredSize and OnPaint
3599         to draw the menu shortcut string.
3600
3601 2007-03-07  Jackson Harper  <jackson@ximian.com>
3602
3603         * TreeNode.cs: Add the 2.0 collapse method.
3604
3605 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3606
3607         * DataGridViewColumn.cs: Fix HeaderText behaviour (Bug #80746).
3608
3609 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3610
3611         * DataGridView.cs: Change DataSource will clear column and row
3612         lists. Call Invalidate() to reflect DataSource change.
3613
3614 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3615
3616         * DataGridView.cs: Add rows when DataSource is System.Data.DataView
3617         and a new row is added to it.
3618
3619 2007-03-07  Pedro Martínez Juliá  <pedromj@gmail.com>
3620
3621         * DataGridView.cs: Add columns when DataSource is en empty list but
3622         is a System.Data.DataView (from a System.Data.DataTable).
3623
3624 2007-03-06  Andreia Gaita  <avidigal@novell.com>
3625
3626         * Label.cs: Implement AutoEllipsis (2.0)
3627
3628 2007-03-06  Jackson Harper  <jackson@ximian.com>
3629
3630         * TreeView.cs: Implement 2.0 TopNode setter property.
3631         - Use a local var instead of the skipped_nodes field for computing
3632         how many nodes to skip.  Otherwise we won't scroll because the
3633         valuechanged handler checks if skipped_nodes is equal to the new
3634         value.
3635         - Implement 2.0 Sort method.
3636         - Add useless 2.0 DoubleBuffer property
3637         - Implement 2.0 LineColors property.  Lets you change the color of
3638         the lines in the tree. Terribly useful for creating non cohesive
3639         desktops.
3640         - Implement 2.0 image key feature.
3641
3642 2007-03-06  Jackson Harper  <jackson@ximian.com>
3643
3644         * TreeView.cs: We can't get the bounds of the nodes before raising
3645         the AfterSelect event, because that event could change the node's
3646         bounds (scrolling, font change, etc).
3647
3648 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3649
3650         * XplatUIWin32.cs: When faking styles don't remove the WS_VISIBLE flag.
3651         * Form.cs: Don't recreate handle when creating FormWindowManager, just
3652           update window styles. In CreateParams us VisibleInternal instead of
3653           VIsible to get the actual visible flag set for this form.
3654         * FormWindowManager.cs: Activate the form whenever the mouse clicks on
3655           the nc area. Fixes #81042. Also fix HandleTitleBarDoubleClick to
3656           handle the case when the form is already maximized, in which case
3657           it should be restored. Fixes #81043.
3658
3659 2007-03-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3660
3661         * XplatUIX11.cs: Tool windows still get wm styles. Fixes toolwindows showing up with double decorations.
3662
3663 2007-03-05  Jackson Harper  <jackson@ximian.com>
3664
3665         * TreeViewHitTestInfo.cs: implement.
3666
3667 2007-03-05  Jackson Harper  <jackson@ximian.com>
3668
3669         * InternalWindowManager.cs: class status fix.
3670
3671 2007-03-05  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3672
3673         * InternalWindowManager.cs: All windows that have a parent
3674         are confined to their parent when they're being moved.
3675         Fixes #80822.
3676
3677 2007-03-04  Gert Driesen  <drieseng@users.sourceforge.net>
3678
3679         * SystemInformation.cs: Marked KeyboardDelay and KeyboardSpeed public
3680         on 2.0 profile. Fixes bug #81018. Small code formatting fixes.
3681
3682 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3683
3684         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations: Make all
3685           buttons invisible before deciding which ones should be visible
3686           (fixes minimize/maximize buttons showing up in toolwindows). Remove
3687           an unused variable.
3688         * InternalWindowManager.cs: Remove warning.
3689
3690 2007-03-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3691
3692         * ListView.cs: Add a check in ListViewItemCollection.RemoveAt
3693         to throw an InvalidOperationException is virtual mode is being used.
3694
3695 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3696
3697         * SplitContainer.cs, SplitterPanel.cs, StatusStrip.cs, TableLayoutPanel.cs,
3698         ToolStrip.cs, ToolStripContainer.cs, ToolStripContentPanel.cs,
3699         ToolStripControlHost.cs, ToolStripDropDownItems.cs, ToolStripItem.cs,
3700         ToolStripMenuItem.cs, ToolStripOverflowButton.cs, ToolStripPanel.cs,
3701         ToolStripPanelRow.cs, ToolStripProfessionalRenderer.cs, ToolStripSplitButton.cs,
3702         ToolStripStatusLabel.cs, ToolStripTextBox.cs: Corcompare work.
3703
3704 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3705
3706         * XplatUI.cs: Fixed returning driver.KeyboardSpeed instead of
3707           driver.KeyboardDelay from XplatUI.KeyboardDelay 
3708         * XplatUIW      in32.cs: Implemented KeyboardSpeed/KeyboardDelay properties
3709           (patch by Sergey Volk)
3710
3711 2007-03-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
3712
3713         * ToolWindowManager.cs: Added, contains logic for
3714           tool windows.
3715         * CreateParams.cs: Add a few helper methods and an
3716           internal variable to know which control the CreateParams belongs
3717           to.
3718         * Control.cs: Call Form.ChangingParent when the
3719           parent is about to be changed.
3720         * XplatUIX11.cs: DeriveStyles (): Set
3721           caption_height for all windows that have captions and are children.
3722           Update to use ToolWindowManager instead of InternalWindowManager
3723           for ToolWindows.
3724         * XplatUIWin32.cs: Set fake window styles for all
3725           windows that have window managers.
3726         * MdiWindowManager.cs: Added MaximizedTitleButtons (buttons are
3727           now duplicated for mdi windows when they are
3728           maximized, first for the buttons the window itself has, then for
3729           the buttons that appear in the menu bar. Makes things a little
3730           easier). Updated UpdateWindowDecorations, SetWindowState and the
3731           mouse eventhandlers accordingly.
3732         * Form.cs: Add ChangingParent (), contains the
3733           logic of what should happen when the parent changes. In MdiParent
3734           don't set things that ChangingParent () is doing. When handling
3735           WM_CLOSE, we can close the form if there are any other modal forms
3736           and the current form is a descendent of the modal form.
3737         * InternalWindowManager.cs: A lot of refactoring,
3738           the title buttons are now extracted to a separate container class
3739           that takes care of all button code (clicks, tooltips, etc). Moved
3740           Iconic|Maximized|Normal Bounds properties to this class from
3741           MdiWindowManager, so that the window state logic can succeed for
3742           other than mdi wm's. Implemented general window state change logic.
3743           Moved CreateButtons to ThemeWin32Classic, since the theme might
3744           override which buttons are available when as well as the exact
3745           location.
3746         * FormWindowManager.cs: Added, contains logic for
3747           normal forms.
3748         * ThemeWin32Classic.cs: ManagedWindowSetButtonLocations now decides
3749           which buttons go where (and if they are at all visible). 
3750           Removed special handling of maximized windows, since they aren't special. 
3751           In DrawManagedWindowDecorations don't try to draw the text if it is
3752           empty.
3753         * MdiClient.cs: ArrangeIconicWindows: Don't  calculate any sizes, 
3754           use whatever the wm gives us.
3755
3756 2007-03-02  Jonathan Pobst  <monkey@jpobst.com>
3757
3758         * ButtonBase.cs: Add 2.0 properties.
3759         * Button.cs: Override Draw for 2.0.
3760         * Control.cs: Add Entered and Selected properties.
3761         * FlatButtonAppearance.cs, TextFormatFlags.cs, TextImageRelation.cs,
3762         TextRenderer.cs: Make internal for 1.1 to unify drawing code.
3763         * Theme.cs: New abstract functions for drawing Standard, Flat, Popup
3764         buttons.
3765         * ThemeWin32Classic.cs: Implement layout calculations for 2.0 buttons.
3766
3767 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3768
3769         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
3770
3771 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
3772
3773         * XplatUIWin32.cs: Register a new class with Windows each time we get
3774         a new ClassStyle.  [Fixes bugs #79432, #80817]
3775         * Controls.cs: Set the correct ClassStyle in CreateParams.
3776         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
3777
3778 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
3779
3780         * ListView.cs: Add fireEvent argument to ReorderColumn since the
3781         ColumnReordered event must not be signaled when modifying DisplayIndex
3782         of a ColumnHeader. Added internal ReorderColumns method which takes
3783         care of drawing, and updating the internal DisplayIndex of the
3784         ColumnHeader. Added AddColumn method which is invoked from
3785         ColumnHeaderCollection when adding or inserting columns, and which
3786         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
3787         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
3788         Recalculated dispay indices after removing a ColumnHeader.
3789         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
3790         match MS. Allows last display index to be returned after ListView
3791         is disposed. Update actual location of ColumnHeader when DisplayIndex
3792         is modified.
3793
3794 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
3795
3796         * LinkLabel.cs: Improve CalcTrimRectangle.
3797         
3798         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
3799
3800 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3801
3802         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
3803         get rectangle as a result value.
3804
3805 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
3806
3807         * LinkLabel.cs: Theres some diferences between rectangle return from 
3808         MeasureCharacterRanges and the area used for DrawString to fix this 
3809         CalcMeasurementFactor method was created, it calcules the diferences
3810         to be use later to adjust rectangle in draw operations. Fixes #80473.
3811         
3812         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
3813         to adjust draw rectangle.
3814
3815 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3816
3817         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
3818         text and some other changes to reduce and optimize source code.
3819
3820 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3821
3822         * RadioButton.cs: Implement 2.0 event.
3823         * RelatedImageListAttribute.cs: Implement new class.
3824
3825 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
3826
3827         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
3828
3829 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
3830
3831         * CheckBox.cs: Implement 2.0 functionality.
3832
3833 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3834
3835         * ListView.cs: Refactor Add and AddRange methods of
3836         ListViewItemCollection, to not update the ListView
3837         everytime an item is added in AddRange. Also move the update
3838         code to a new CollectionChanged method, and call it
3839         from other methods that need it as well (this should also fix some
3840         bugs when Sorting is used).
3841
3842 2007-02-27  Jackson Harper  <jackson@ximian.com>
3843
3844         * TextControl.cs: Try to never let the caret stay in a non-text
3845         tag.
3846         * TextBoxBase.cs: Update the caret.
3847
3848 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
3849
3850         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
3851         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
3852         delete POINT structure, duplicate of one in XplatUIStructs.
3853         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
3854
3855 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
3856
3857         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
3858         edit box since otherwise the Label would immediately be set (even if
3859         the user did not modify the label). In OnKeyDown set Handled to true
3860         if Return or Escape was pressed. In ColumnHeaderCollection unlink
3861         columns that are to be removed. In ListViewItemCollection unlink items
3862         that are to be removed.
3863
3864 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
3865
3866         * TextRenderer.cs: If we set a GDI clip region, we need to clear
3867         it when we are done.  [Fixes bug #80949]
3868
3869 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3870
3871         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
3872
3873 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3874
3875         * ListView.cs: I forgot to commit the changes for ListView 
3876         in my previous patch.
3877
3878 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3879
3880         * Clipboard.cs: Partially implement an overload of SetDataObject.
3881         * Form.cs: Implement ShowWithoutActivation.
3882         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
3883
3884 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3885
3886         This is a first set of changes to make the Virtual mode works,
3887         by avoiding the retrieval of ListViewItem instances until
3888         draw time.
3889
3890         * ListView.cs: Store item position in the ListView instead of the
3891         ListViewItem, this way we don't request the Bounds property of
3892         ListViewItem inside the ListView calculations, as well as cache the item
3893         size in item_size field. Store indexes instead of ListViewItem
3894         instances in the matrix used by icon view. Add a ItemMatrixLocation
3895         struct to hold the row and col info of the matrix info.
3896
3897         * ListViewItem.cs: Don't store the location anymore, and only cache
3898         the rectangles for GetBounds. Use the ListView.GetItemLocation
3899         method to retrieve the actual location.
3900
3901 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3902
3903         * TextRenderer.cs: Add clipping support, thanks to George.
3904         [Fixes bug #80949]
3905
3906 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3907
3908         * ListViewItem.cs: Cancel label edit when item is removed from 
3909         ListView.
3910         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
3911         event before the edit textbox is displayed.  Added CancelEdit method
3912         which is used end to editing while ignoring the value set by the
3913         user. In EndEdit, set focus to ListView to avoid losing focus to
3914         other controls. In ListViewItemCollection.Clear, cancel editing of
3915         any of the items.  In Remove, cancel editing of item being removed.
3916         Avoid udplicate code by modifing RemoveAt to invoke Remove.
3917
3918 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3919
3920         * FileDialog.cs: Update FSEntry when move is successful. Fixes
3921         bug #80948.  
3922
3923 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3924
3925         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
3926         compatible with non X11 systems. Fixes #80901.
3927
3928 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
3929
3930         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
3931         whether the item should be unselected and reselect. We do no want this
3932         when we're starting to edit the label. Do not fire the 
3933         SelectedIndexChanged event from ListView when its already been fired
3934         by modifying ListViewItem.Selected. Fixes bug #80943.
3935
3936 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3937
3938         * TextRenderer.cs: Previos commit logic was backwards.
3939
3940 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
3941
3942         * TextRenderer.cs: Don't add padding on MeasureText if we were
3943         sent the NoPadding flag.
3944
3945 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3946
3947         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
3948         after DrawButton. To prevent image overlaps button borders SetClip and 
3949         ResetClip added before and after draw image. Fixes #79129.
3950
3951 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
3952
3953         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
3954         window size, it fix problem when you run under win32 that theres
3955         Size diferent than ClientSize. Also fix controls size and positions
3956         to mimic Win32. Fixes #80837.
3957
3958 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
3959
3960         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
3961         menu area to fix some problems for non X11 systems. Fixes #80613.
3962
3963 2007-02-22  Jackson Harper  <jackson@ximian.com>
3964
3965         * TreeNode.cs: When a node is expanded, set its is_expanded flag
3966         even if it doesn't have any children.
3967
3968 2007-02-22  Jackson Harper  <jackson@ximian.com>
3969
3970         * TreeView.cs: Calculate the top node 'on the fly', this
3971         eliminates issues where you need to click on the tree before
3972         scrolling it to get the top node computed correctly.
3973         * TreeNodeCollection.cs: We don't need to mess with the top node
3974         anymore.
3975
3976 2007-02-22  Jackson Harper  <jackson@ximian.com>
3977
3978         * DataGridViewRow.cs: Fix typo so height can actually be set.
3979         Patch by Peter Grimm.
3980
3981 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3982
3983         * FileDialog.cs: Fixed support for renaming files and directories.
3984         * ListView.cs: Do not lose focus when edit is canceled. Process
3985         Escape as regular key (to prevent closing of dialogs).
3986
3987 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3988
3989         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
3990         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
3991
3992 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
3993
3994         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
3995         did not modify label.
3996         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
3997         modified the text. Reset Label when user presses Escape in edit mode.
3998         Move focus to ListView after having cancelled or finished editing the
3999         label.
4000
4001 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
4002
4003         * ComboBox.cs: Removed unnecessary initializations. Marked items field
4004         private. Clear textbox when Text is set to null and SelectedIndex is
4005         already -1.
4006         * FileDialog.cs: Removed unnecessary initializations. Removed 
4007         workarounds for ComboBox bugs that are now fixed. Modified
4008         DefaultExt, InitialDirectory and Title property to change null to
4009         zero-length string in getters. Avoid directly accessing fields.
4010
4011 2007-02-20  Jackson Harper  <jackson@ximian.com>
4012
4013         * TextControl.cs: Remove RecalAlignments call, that was some
4014         debugging leftovers.
4015         - Don't use the line indent when we shouldn't.
4016         * RichTextBox.cs: Add support for paragraph left indents.
4017
4018 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4019
4020         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
4021         Seems like the class status pages doesn't catch params differences.
4022
4023 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
4024
4025         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
4026
4027 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
4028
4029         * ComboBox.cs: Setting Text should have no effect if item text of
4030         selected item exactly matches value. First lookup text using
4031         case-sensitive comparison, and fallback to case-insensitive comparison.
4032         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
4033         allow startIndex to be last index. Changed ArgumentOutOfRangeException
4034         paramname to match MS. Restart from first item if string is not found
4035         after startIndex. Fixed paramname of ArgumentNullException that is
4036         thrown for null value in ObjectCollection.Contains.
4037
4038 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
4039
4040         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
4041
4042 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4043
4044         * ListControl.cs: In SelectedValue use value.Equals to compare for
4045         equality instead of ==, otherwise it will fail for strings.
4046         Fixes #80794.
4047
4048 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4049         
4050         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
4051         since the caret won't show up unless ShowSelection is true. 
4052         Fixes #80795.
4053
4054 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4055
4056         * Application.cs: When disabling all forms but the main form, do not
4057           disable any descendants of the main form (such as mdi children or
4058           other parented forms). Fixes #80822 on Windows.
4059         * Form.cs: If we have a parent, set the WS_CHILD style.
4060         * Control.cs: Update the window styles if the control whose parent has
4061           changed is a form (the WS_CHILD style has to be switched).
4062
4063 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
4064
4065         * XplatUIStructs.cs: MsgUIState structure added.
4066
4067 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
4068
4069         * FileDialog.cs: Removed need for separate fileName field. On 2.0
4070         profile, do not check filename(s) for illegal character if filename(s)
4071         were set non-interactively but always check on 1.0 profile. Fixed NRE
4072          in DefaultExt and only strip off first leading dot. Improve exception
4073         message when invalid Filter is set. Do not ignore InitialDirectory if
4074         it does no exist. Store specified Title, and if empty use default
4075         title (depending on type of dialog). Added an internal DialogTitle 
4076         property for retrieving dialog title. Fixed logic of displayed dir to
4077         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
4078         string as its buggy.
4079         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
4080         FileName is a zero-length string (it can never be null). Override 
4081         DialogTitle property to set default title of dialog box.
4082         * SaveFileDialog.cs: Override DialogTitle property to set default
4083         title of dialog box.
4084
4085 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
4086
4087         * FileDialog.cs: Modify default text of filename and filetype labels
4088         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
4089         after we've updated the SelectedIndex. Fixes part of bug #80887.
4090         * SaveFileDialog.cs: Set text of filetype label.
4091
4092 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4093
4094         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
4095         label field. Needed by latest Jackson's fixes for ListView.
4096
4097 2007-02-16  Andreia Gaita  <avidigal@novell.com>
4098
4099         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
4100         print preview images.
4101
4102 2007-02-16  Jackson Harper  <jackson@ximian.com>
4103
4104         * ListView.cs: Make AfterLabelEdit work correctly.
4105         * FileDialog.cs: After changing the name of the folder, we have to
4106         make sure that it is created, or that we pop up an error because
4107         it already exists.
4108
4109 2007-02-16  Jackson Harper  <jackson@ximian.com>
4110
4111         * X11Dnd.cs: Implement aliases on mime handlers, so things like
4112         System.String are mapped to text.
4113         - Handle dataobjects, getting all the possible formats out of them
4114         - We dont need the drag event args before we give feedback. This
4115         allows feedback cursors to be immediate before selections have
4116         been converted.
4117
4118 2007-02-16  Jackson Harper  <jackson@ximian.com>
4119
4120         * TextBoxBase.cs: Modified the method for inserting images to
4121         taking a line and position instead of tag and position.
4122         * RichTextBox.cs: Handle PngBlip data by inserting the png image
4123         into the RTF file.
4124         * TextControl.cs: Allow images to be inserted as the first tag of
4125         a line.
4126         - Fix some off by one issues when we assume the first tag is a
4127         text tag, not an image tag.
4128
4129 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4130
4131         * ListView.cs: Set focus to ListView when ItemControl gets a
4132         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
4133         Fixes part of #80467.
4134
4135 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4136
4137         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
4138           validate Text input (if null or empty string reset Value to default
4139           value). Fixes #80830.
4140
4141 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
4142
4143         * ListView.cs: Set owner as null for columns and items when
4144         Dispose is invoked. Fixes #80607.
4145
4146 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
4147
4148         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
4149         showing DropDowns, don't show a Grip when doing Flow layout.
4150         [This fixes the toolbox in PDN 2.72.]
4151         * ToolStripItem.cs: Add Anchor property and some internal properties to
4152         reduces needed changes to FlowLayout.
4153         * ToolStripOverflow.cs: Remove unused variable.
4154         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
4155         use it in the layout calculations.
4156
4157 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4158
4159         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
4160         reported in #79640.
4161         
4162         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
4163         size calculation.
4164
4165 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4166
4167         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
4168         MeasureString format, it can make button very large in some cases, it is
4169         strange but is what win32 do.
4170
4171 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4172
4173         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
4174         size calculation.
4175
4176         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
4177         rendering, the value is based on MenuAccessKeysUnderlined.
4178
4179 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
4180
4181         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
4182         for most themes.
4183         
4184         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
4185         
4186         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
4187         and use MenuAccessKeysUnderlined instead.
4188
4189 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4190
4191         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
4192         A selected control would not get a Focus call if:
4193                 - the default active control of the container is the same as
4194                   the one that was selected
4195                 - we are switching from one container to another
4196         Under these conditions, the container being selected already has
4197         an active_control, which is the same as the one being activated, 
4198         so set_ActiveControl would always return and not send the Focus
4199         call. Fix to check if the currently active control of the container
4200         is actually focused.
4201
4202 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
4203
4204         * StatusStrip.cs: Implement the spring layout.
4205         * ToolStripControlHost.cs: Make sure the hosted control's visibility
4206         always matches the host.
4207         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
4208         and TextAfterImage.
4209
4210 2007-02-13  Andreia Gaita  <avidigal@novell.com>
4211
4212         * Control.cs: Code reorganization only.
4213           - Reorganize the WndProc cases so that each case has it's own handling method, 
4214           to help with the no-line-numbering stack traces.
4215           - Formatting changes (it's vstudio's fault, really :p)
4216
4217 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4218
4219         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
4220           Thread.CurrentUICulture to match DateTimePicker's (and MS)
4221           behaviour.
4222
4223 2007-02-12  Jackson Harper  <jackson@ximian.com>
4224
4225         * RichTextBox.cs:
4226         * TextBox.cs: By default we have a non multiline document
4227         - use the multiline property instead of the internal variable
4228         * TextBoxBase.cs: Treat multiline and non multiline the same in
4229         most places.
4230         - Use the documents multiline flag instead of tracking it ourself
4231         * TextControl.cs: Attempt at getting multiline to match MS
4232         behavior.  Lines now track an offset, which is either their X or Y
4233         offset depending on whether or not we are in multiline mode.
4234         - Update all the methods to understand that lines have an X value.
4235         - Fix crash in Undo::Duplicate when empty lines are deleted.
4236
4237 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4238
4239         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
4240         code moved to properties PreferredHeight and PreferredWidth. It solve the
4241         all problems when preferred sizes must be recalculated. Fixes #80801.
4242
4243 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
4244
4245         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
4246         font height when compatible_text_rendering is false. Partially fix #80801.
4247
4248 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4249
4250         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
4251
4252 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4253
4254         * Form.cs: Improved exception messages in ShowDialog.
4255
4256 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
4257
4258         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
4259         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
4260         if not set. Fixes bug #80764. Avoid accessing current_settings field
4261         directly.
4262
4263 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
4264
4265         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
4266         false.
4267
4268         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
4269         public in 2.0 and for easy maintenance and dont break compatibility it is 
4270         internal in 1.1.
4271         
4272 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4273
4274         * ToolStripItem.cs: Implement using images from ImageList.
4275
4276 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4277
4278         * DateTimePicker.cs: Change default date-formatting culture from
4279           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
4280           seems to be the way MS does it.
4281
4282 2007-02-08  Andreia Gaita  <avidigal@novell.com>
4283
4284         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
4285         (the 6 was cut off on the right side)
4286
4287 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4288
4289         * Form.cs: Tell MenuStrips to close when the form is clicked.
4290         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
4291         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
4292         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
4293         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
4294         support for Overflow, where items that do not fit are automatically
4295         reparented to a drop down menu.
4296         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
4297         Also: fixes bug #80747.
4298
4299 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4300
4301         * ComboBox.cs: Remove warning (unused code).
4302         * ScrollableControl.cs: Remove warning for 1.1 profile.
4303
4304 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4305
4306         * Form.cs: Remove a warning.
4307
4308 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4309
4310         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
4311           'g' specifier, not documented anywhere, but seems to always show up
4312           as a single space (might have something to do with the DateTime 'g'
4313           specifier, which is the era format, but since DateTimePicker can't
4314           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
4315           won't crash if the format has an unmatched quote. Now shows
4316           single-character formats correctly. Fixes #80744.
4317
4318 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
4319
4320         * StatusStrip.cs: Stretch property needs to call base.Stretch,
4321         not this.Stretch to fix stack overflow. [Fixes bug #80760]
4322
4323 2007-02-07  Chris Toshok  <toshok@ximian.com>
4324
4325         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
4326         background color.  it overwrites the background image we've
4327         already painted.  Fixes #80599.
4328
4329 2007-02-07  Chris Toshok  <toshok@ximian.com>
4330
4331         * DataGrid.cs: return immediately from Edit() when there are no
4332         columns.  Fixes #80662.
4333
4334 2007-02-07  Chris Toshok  <toshok@ximian.com>
4335
4336         * MessageBox.cs: fix #80625.  don't always show the Help button in
4337         2.0.  use the displayHelpButton parameter to determine if we
4338         should show it. Also, make the internal show_help field private.
4339
4340 2007-02-07  Chris Toshok  <toshok@ximian.com>
4341
4342         * Control.cs (SetVisibleCore): check in the proposed patch for
4343         80604, and set is_visible before calling CreateControl.
4344
4345 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
4346
4347         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
4348         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
4349         on it.
4350
4351 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
4352
4353         * MenuAPI.cs: hotkey_active internal field added, it is required because
4354         we need to know when hotkeys must be draw, before this change a keystate
4355         Navigating was used but we can have menu in navigating state without
4356         hotkeys. Fixes #80694.
4357         
4358         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
4359
4360 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4361
4362         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
4363           corresponding events and methods to be internal for 1.1 profile and
4364           public for 2.0 profile (required by SizeGrip).
4365         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
4366           implicit control list). Don't set the size nor the location of the
4367           SizeGrip anymore as it's not needed.
4368         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
4369           draw directly on the captured control (fixes #80656). Removed
4370           ShowGrip (it wasn't used anywhere), redraw (always true), added
4371           GetDefaultSize and GetDefaultRectangle to calculate defaults.
4372         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
4373           be called from SizeGrip.
4374
4375 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4376
4377         * Timer.cs: Throw ArgumentException if Interval <= 0.
4378
4379 2007-02-05  Jackson Harper  <jackson@ximian.com>
4380
4381         * TreeView.cs: We need to check scrollbar visibility when window
4382         visibility is updated, because non visible trees don't ever add
4383         scrollbars.
4384         * Cursor.cs: We want the override cursor to be reset to NULL when
4385         we set current cursor to the default cursor.
4386
4387 2007-02-05  Jackson Harper  <jackson@ximian.com>
4388
4389         * TextControl.cs: Don't have crlfs when we are non multiline.
4390         - Consolidate the line position.
4391
4392 2007-02-05  Jackson Harper  <jackson@ximian.com>
4393
4394         * X11Keyboard.cs: BACK+CTRL gets a special char code.
4395
4396 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4397
4398         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
4399           handling LeaveNotify->NotifyUngrab in order to send
4400           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
4401           after calling XUngrabPointer, so we call WindowUngrabbed directly
4402           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
4403         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
4404           MouseCaptureChanged correctly. Also create handles if changing
4405           Capture (matches MS behaviour).
4406
4407 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4408
4409         * SizeGrip.cs: Make the last change 2.0 only.
4410
4411 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4412
4413         * SizeGrip.cs: If resizing and the capture is lost, revert any size
4414           changes to initial size (fixes #80597).
4415
4416 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4417
4418         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
4419
4420 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4421
4422         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
4423           background) and only allow dragging if enabled. This way the
4424           sizegrip can be used to fill the open square that otherwise would
4425           have been shown in the bottom right corner of ScrollableControl
4426           when ScrollableControl is not suppose to support sizing.
4427         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
4428           sizegrip is shown and enabled, and hook up with necessary events.
4429
4430 2007-02-01  Chris Toshok  <toshok@ximian.com>
4431
4432         * DataGridTextBoxColumn.cs: clean up the
4433         GetFormattedString/GetColumnValueAtRow combination of functions.
4434         Also fix UpdateUI, and the initial state of
4435         IsInEditOrNavigateMode.
4436
4437         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
4438         aren't supposed to scroll the textbox here, we're supposed to
4439         scroll the datagrid.
4440
4441 2007-02-01  Chris Toshok  <toshok@ximian.com>
4442
4443         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
4444         setting the position.
4445
4446 2007-02-01  Chris Toshok  <toshok@ximian.com>
4447
4448         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
4449         here, since the most recent focus fixes keep us from generating
4450         the Leave event when our textbox gets focus.
4451         (Edit): we should be passing null for the column style's
4452         instantText parameter.
4453         
4454 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
4455
4456         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
4457         raised.  Fixes menu text/icons not showing up in PDN.
4458
4459 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4460
4461         * Control.cs: Remove code in constructor that makes every
4462         control with WS_CHILD set have initial location -1, -1.
4463
4464 2007-01-31  Jackson Harper  <jackson@ximian.com>
4465
4466         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
4467         XplatUIX11.
4468         * XplatUIX11.cs: Give teh keyboard to teh dnd.
4469
4470 2007-01-31  Jackson Harper  <jackson@ximian.com>
4471
4472         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
4473         - Remove some debug code.
4474
4475 2007-01-31  Jackson Harper  <jackson@ximian.com>
4476
4477         * XplatUIX11.cs: If you set the override cursor during a grab, it
4478         should actually override the grab cursor.  This comes into play
4479         when you are setting custom cursors in a DND feedback method.
4480
4481 2007-01-31  Jackson Harper  <jackson@ximian.com>
4482
4483         * X11Dnd.cs: Add support for handling the QueryContinue and
4484         GiveFeedback events.
4485         - Cancel drag and drop actions when the escape key is clicked.
4486         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
4487         can handle the ESCAPE key.
4488         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
4489         done when dnd events are continued after the button is released.
4490         - Add a new helper method so that dnd can translate key events.
4491
4492 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
4493
4494         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
4495         make it more obvious what is happening.
4496
4497 2007-01-30  Jackson Harper  <jackson@ximian.com>
4498
4499         * XplatUIX11.cs: Don't break when handling button release in drag
4500         and drop operations. We need that BUTTONUP message to get through
4501         so capture is released.
4502         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
4503         this is handled automatically when the mouse is down.
4504
4505 2007-01-30  Jackson Harper  <jackson@ximian.com>
4506
4507         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
4508         is closed, so we need to make sure that we aren't changing the
4509         dialog result when the OK (Open or Save) button has been clicked
4510         and we are closing the window ourselves.  Note we don't need to
4511         worry about the cache being written in this case, because it was
4512         already done in the previous FilOk call.
4513
4514 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4515         
4516         * DateTimePicker.cs: Remove a warning.
4517         * ComboBox.cs: Remove a couple of warnings.
4518
4519 2007-01-29  Chris Toshok  <toshok@ximian.com>
4520
4521         * XplatUIX11.cs: don't crash, and remove the icon if the user has
4522         set one, if SetIcon is passed a null icon.
4523
4524 2007-01-29  Andreia Gaita  <avidigal@novell.com>
4525
4526         * TextBox.cs: Redraw when the password characters changes
4527         * TextControl.cs: Check if textbox has a password char and draw 
4528         a line of password chars instead of the text in the line. LineTag gets 
4529         an extra Draw() method which allows document.Draw to override the text 
4530         that will be drawn. Removes 1024 char limitation on length of passworded 
4531         lines.
4532
4533 2007-01-29  Jackson Harper  <jackson@ximian.com>
4534
4535         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
4536         single chars is not.
4537
4538 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
4539
4540         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
4541         one pixel.  Fix a StackOverflowException caused by an overload wrongly
4542         calling itself.
4543
4544 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
4545
4546         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
4547         also remove ProcessArrowKey and put the code inside ProcessKeys.
4548
4549 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
4550
4551         * PaddingConverter.cs: Added.
4552
4553 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4554         
4555         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
4556         ShowPanels is false (fixes #80600). Only draw up to 127 characters
4557         of text (fixes #80601). For panels clip the text to draw to the
4558         panel (fixes #80603).
4559
4560 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4561
4562         * ComboBox.cs: Fixed implementation of ResetText.
4563
4564 2007-01-25  Jackson Harper  <jackson@ximian.com>
4565
4566         * TextControl.cs: For the last char of a line we need to use the
4567         line size, not that chars width, since it won't actually be
4568         computed since the right side of a char is based on the start of
4569         the left side of the next char, and the next char does not exist.
4570
4571 2007-01-25  Chris Toshok  <toshok@ximian.com>
4572
4573         * Splitter.cs: fix the new unit tests, and reindent some switch
4574         statements.
4575
4576 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4577
4578         * ComboBox.cs: Implemented 2.0 methods and events.
4579         * TextBoxBase.cs: Added OnTextUpdate, so that
4580         ComboBox.ComboTextBox can inform ComboBox of it.
4581
4582 2007-01-25  Jackson Harper  <jackson@ximian.com>
4583
4584         * TextControl.cs: Respect ShowSelection when deciding whether or
4585         not to display the caret, this allows comboboxes to have carets
4586         when the combotextbox does not have focus.
4587
4588 2007-01-25  Jackson Harper  <jackson@ximian.com>
4589
4590         * TextControl.cs: Add a Suspend/Resume for updating, basically the
4591         same as the Suspend/Resume for recalc, except this will do actual
4592         Invalidates.
4593         - New Undo manager, works much like the MS version.
4594         - Implemented Redo
4595         * TextBoxBase.cs: The Cut operation is undoable.
4596
4597 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4598         
4599         * TextBoxBase.cs: Don't antialias text. Makes it look way better
4600         on Windows (no difference on Linux).    
4601
4602 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4603
4604         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
4605         we don't want to activate any windows. Fixes #79433.
4606
4607 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
4608
4609         - ButtonBase.cs: Fix capitalization of parameter: disposing.
4610         [Fixes bug #80609]
4611
4612 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
4613
4614         * FileDialog.cs:
4615         - Move to using System.ComponentModel.EventHandlerList
4616         - Replace Refresh with Invalidate
4617         - Clear the mime filecache on closing
4618         - Some other memory reducing work. After beeing closed FD now uses
4619           only about 300 KB for the fdo mime stuff plus the memory of the
4620           cached icons.
4621         * Mime.cs: Changed coding style and removed unnecessary commented
4622         code. Some more memory memory reducing work.
4623
4624 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4625
4626         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
4627         a few other missing 2.0 properties.
4628         * Theme.cs: Added DrawFlatStyleComboBox.
4629         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
4630
4631 2007-01-24  Chris Toshok  <toshok@ximian.com>
4632
4633         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
4634         wake_waiting flag, not just when there's data to be read.  if we
4635         don't, then future wakeup's won't reach us and we'll be doomed to
4636         wait for the entire 1 second timeout forever (unless there are X
4637         events to be had).
4638
4639 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4640
4641         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
4642         until you pass Items.Count, not Items.Count - 1 like 1.1.
4643
4644 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
4645
4646         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
4647
4648 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
4649
4650         * ToolStripContainer.cs: The recent Dock fix exposed that I was
4651         adding the panels in the wrong order.
4652
4653 2007-01-24  Jackson Harper  <jackson@ximian.com>
4654
4655         * TextBoxBase.cs: When we move the caret we also need to move the
4656         selection, this fixes some random crashing after doing select
4657         text, unselect, delete a char, paste.
4658
4659 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4660
4661         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
4662
4663 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4664
4665         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
4666         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
4667         * ToolBar.cs: Force redraw in BackgroundImageChanged.
4668
4669 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4670
4671         * ToolBar.cs:
4672         - Implement support for vertical toolbars. Fixes #80539;
4673         - Call LayoutToolBar when resize, it fix some other problems in layout.
4674         - Rename requested_height to requested_size, as we can have width on it
4675         when toolbar is vertical.
4676         - Create a private property "Vertical" that uses Dock to verify when 
4677         toolbar is vertical or not.
4678         - Set ControlStyles when change Dock property.
4679         - Refactory in LayoutToolBar to have better variables names and to support
4680         vertical toolbars.
4681         - Fixes default value for ButtonSize when button count is equal zero, size
4682         must be (39, 36) test case writed.
4683
4684 2007-01-23  Chris Toshok  <toshok@ximian.com>
4685
4686         * Control.cs: fix the checks so that they work correctly for mdi
4687         parents/children.
4688
4689 2007-01-23  Chris Toshok  <toshok@ximian.com>
4690
4691         * Control.cs: ControlCollection seems to have super-secret
4692         abstraction breaking knowledge of Mdi containers.  allow MdiClient
4693         to add toplevel controls.
4694
4695 2007-01-23  Chris Toshok  <toshok@ximian.com>
4696
4697         * Control.cs: throw an ArgumentException if a toplevel control is
4698         added to our control collection from ControlCollection.Add, as
4699         well as from ControlCollection.IList.Add.  This fixes the
4700         ControlSetTopLevelTest.TestTopLevelAdd unit test.
4701
4702         Also, in ControlCollection.IList.Add, don't through an
4703         ArgumentNullException, throw an ArgumentException, when value ==
4704         null.  This matches MS.
4705
4706 2007-01-23  Chris Toshok  <toshok@ximian.com>
4707
4708         * BindingSource.cs: initial, incomplete, implementation of
4709         BindingSource.
4710
4711 2007-01-23  Jackson Harper  <jackson@ximian.com>
4712
4713         * TextControl.cs:
4714         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
4715         that I can fix a broken unit test (TextBoxTest::ClearUndo)
4716         
4717 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
4718
4719         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
4720
4721 2007-01-23  Andreia Gaita  <avidigal@novell.com>
4722
4723         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
4724         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
4725         IndexOfKey() for 2.0
4726
4727 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4728
4729         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
4730         to prevent it from changing z-order.
4731         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
4732         leave UI updates in MdiWindowManager.
4733         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
4734         1 sized (NC handling goes weird on Linux otherwise).
4735         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
4736         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
4737         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
4738         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
4739         and SetWindowState(s) to allow for changing the size of an activated child
4740         before activating it (reduces a lot of flicker).
4741
4742 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4743
4744         * Form.cs: Changing FormBorderStyle has different semantics based
4745         on whether the Form is visible or not.  If not visible, don't change
4746         the Size.  But InvalidateNC needs to be called to force the window
4747         to pick up the changes and redraw itself.  [Fixes bug #80574]
4748
4749 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
4750
4751         [Moma work]
4752         * ContainerControl.cs: ProcessCmdKey.
4753         * ErrorProvider.cs: new constructor.
4754         * Form.cs: fix AutoValidateEvent compiler warning.
4755         * Label.cs: fix OnAutoSizeChanged compiler warning.
4756         * MenuStrip.cs: fix CanOverflow compiler warning.
4757         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
4758         * TextBox.cs: Dispose.
4759         * ToolStrip.cs: CanOverflow, re-enable double buffering.
4760         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
4761         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
4762         * ToolStripItem.cs: Overflow, RightToLeft properties.
4763
4764 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4765
4766         * Form.cs: Move the layout of the main form to MdiWindowManager.
4767         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
4768         do a layout of the main window to update MdiClient's client area to
4769         the right area. Fixes #80533. Remove the calculation of nc size, 
4770         it was just wrong and the correct one is the same as for 
4771         InternalWindowManager. 
4772
4773 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
4774
4775         * Control.cs: Setting Anchor or Dock needs to reset the other
4776         to its default.  [Fixes bug #80556]
4777
4778 2007-01-20  Chris Toshok  <toshok@ximian.com>
4779
4780         * CheckedListBox.cs: class status changes.
4781
4782         * ScrollableControl.cs: same.
4783
4784         * RichTextBox.cs: same.
4785
4786         * ContainerControl.cs: same.
4787
4788         * ListView.cs: same.
4789
4790         * NotifyIcon.cs: same.
4791
4792         * MenuStrip.cs: same.
4793
4794         * RadioButton.cs: same.
4795
4796         * CheckBox.cs: same.
4797
4798         * PrintPreviewDialog.cs: same.
4799
4800         * Form.cs: same.
4801
4802 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
4803
4804         * TreeNode.cs: Apply Alan's patch for Name property.
4805
4806 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4807         
4808         * Form.cs: Implemented SizeGripStyle.
4809         * SizeGrip.cs: Check for minimum and maximum size for the
4810         control being resized and only resize if size has actually
4811         changed.
4812
4813 2007-01-19  Chris Toshok  <toshok@ximian.com>
4814
4815         * DataGridColumnStyle.cs: stop setting _readonly in the
4816         PropertyDescriptor setter.  fixes a unit test failure.
4817
4818         also, rename ParentReadOnly to TableStyleReadOnly, and have it
4819         just consult our table style (if we have one).  We don't need to
4820         consult the datagrid readonly attribute because that's passed in
4821         as the _ro arg to Edit.  this simplifies things a little.
4822         
4823         * DataGrid.cs: use CurrentColumn instead of
4824         current_cell.ColumnNumber just to simplify some of the code.
4825
4826         switch the order of some things in the CurrentCell setter to keep
4827         the previous cell from getting a textbox again -
4828         EnsureCellVisibility causes scrolling to happen, which calls Edit.
4829         So we need to set the new cell before calling it.
4830         
4831         call Edit in OnEnter, as does Microsoft.
4832         
4833         also, make sure the current table style isn't the one we create
4834         initially when checking to see if it's different than the one
4835         we're setting it to in BindColumns (this fixes #80421).
4836
4837         * GridTableStylesCollection.cs: table styles can have "" for a
4838         mapping name.  part of the fix for #80421.
4839
4840         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
4841         Edit significantly.
4842
4843 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4844
4845         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
4846         and less GDI object leaky-er.
4847
4848 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4849
4850         * LinkLabel.cs: Add opaque control style
4851
4852 2007-01-18  Jackson Harper  <jackson@ximian.com>
4853
4854         * TextControl.cs: Calculate width properly.
4855         - Don't store the tag's X offset, this can be figured out very
4856         easily.
4857         - When getting the caret tag make sure to get the last empty tag.
4858
4859 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4860
4861         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
4862         [Fixes bug #79959]
4863
4864         * Control.cs: Color.Empty shouldn't count for previous transparent
4865         redraw changes.
4866
4867 2007-01-18  Jackson Harper  <jackson@ximian.com>
4868
4869         * TextBox.cs:
4870         * RichTextBox.cs:
4871         * TextControl.cs: Starting to merge in some pieces of my older
4872         undo work.  Basically just some slight cleanup of the undo API.
4873
4874 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4875
4876         * TrackBar.cs: Fix signature of RightToLeftLayout.
4877         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
4878         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
4879         * Application.cs: Implemented UseWaitCursor.
4880
4881 2007-01-18  Jackson Harper  <jackson@ximian.com>
4882
4883         * TextControl.cs: We can't skip tags if any part of the tag is
4884         visible.
4885
4886 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4887
4888         * ContainerControl.cs: Override OnLayout.
4889
4890 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4891
4892         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
4893
4894         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
4895         everything else.
4896
4897 2007-01-18  Chris Toshok  <toshok@ximian.com>
4898
4899         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
4900         (leftover from the container_selected days, I'd wager).  fixes bug
4901         #80546.
4902
4903 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4904
4905         * Control.cs: Apply patch from George to fix the new testcase on
4906         bug #80451.  We can't just check for Color.Transparent, we need 
4907         to check if the back color's alpha channel is < 255.
4908
4909 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
4910
4911         * Form.cs: Move setting show_icon = true to before the constructor
4912         so that the base constructor has that information when it calculates
4913         the form's size.  Was causing forms to be (6, 6) bigger than they
4914         were supposed to be.  Thanks for catching this Rolf!
4915
4916 2007-01-18  Jackson Harper  <jackson@ximian.com>
4917
4918         * TextControl.cs: When replacing a selection we need to invalidate
4919         from the initial selection start, because selection start is moved
4920         to the end of the replacement.
4921
4922 2007-01-18  Andreia Gaita  <avidigal@novell.com>
4923
4924         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
4925
4926 2007-01-18  Chris Toshok  <toshok@ximian.com>
4927
4928         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
4929         I just added.
4930
4931 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
4932
4933         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
4934         layout methods and properties from ToolBarButton must be available
4935         into ToolBarButtonInfo.
4936
4937 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4938
4939         * Control.cs: If the control has a transparent background, we
4940         need to refresh it when it moves and when it's parent's background
4941         image changes.  [Fixes bug #80451]
4942
4943 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4944
4945         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
4946
4947 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
4948
4949         * XplatUIWin32.cs: Implement proper double buffering for Windows.
4950         [Fixes bug #80447, and probably speeds up things as well]
4951
4952 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4953
4954         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
4955         * XplatUIWin32.cs: We need to recalculate NC size after changing 
4956         window style to toolwindow (otherwise the client rectangle will be
4957         3 pixels to small for some reason).
4958         * MdiWindowManager.cs: Revert NC size calculations to match how
4959         they are calculated only based on window styles (to match
4960         Win32AdjustWindowRectEx, since otherwise when setting size or 
4961         location, Control will call Win32AdjustWindowRectEx to update client 
4962         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
4963         calculate a different value of client size causing another paint 
4964         (and flickering))
4965         * InternalWindowManager.cs: When moving or resizing a window only
4966         update size or location if they actually changed.
4967         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
4968         (seems to match Windows behaviour better). Cleaned up 
4969         ManagedWindowDecorations to draw what's needed and nothing else
4970         (was drawing borders and lines where they shouldn't be)
4971         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
4972         (style = 0xFFFF) and takes into account caption height when 
4973         calculating window rectangle.   
4974
4975 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4976
4977         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
4978         can be added to toolbar multiple times, we need to maintain a list of 
4979         button information for each positions.
4980
4981 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
4982
4983         * ToolBar.cs: Some small stetic changes.
4984
4985 2007-01-16  Jackson Harper  <jackson@ximian.com>
4986
4987         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
4988         that allow us to have nested recalc = false blocks.
4989         - Add paste support for images in the RichTextBox
4990         * RichTextBox.cs: flush the text after the color is changed, so
4991         the change takes effect.
4992         - Use SuspendRecalc
4993         - Some extra debugging info
4994         * TextControl.cs: Tags no longer track their length, it is just
4995         computed from the next tags length, this makes things a little
4996         simpler and reduces places that we have to track length changes.
4997         - Refactored the linetag class a little so we could make it
4998         a base class for different kinds of tags
4999         - Created a image tag, a tag that can have a single image inserted
5000         into it
5001         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
5002         that we can call suspend multiple times.
5003         - Add some debugging methods
5004
5005 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5006
5007         * MdiClient.cs: Add ActivatePreviousChild for 
5008         mdi child window navigation.
5009         * Form.cs: Use MdiClient.ActivateNextChild/
5010         ActivatePreviousChild instead of Form.SelectNextControl
5011         to select the next/previous child since 
5012         SelectNextControl doesn't do it in the same order
5013         as mdi children should do it.
5014
5015 2007-01-16  Chris Toshok  <toshok@ximian.com>
5016
5017         * Control.cs: remove container_selected field.
5018
5019 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5020
5021         * MdiClient.cs: Update main form's ActiveChild when
5022         updating keyboard focus for the mdi child.
5023
5024 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
5025
5026         * Control.cs: PreferredSize fix.
5027
5028         * Form.cs: Add several 2.0 events, properties, and methods.
5029
5030 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
5031
5032         * Form.cs: Provide meaningful message when MdiParent is assigned a
5033         Form that is not an MdiContainer.
5034
5035 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5036
5037         * MdiClient.cs: Update main form's ActiveChild when
5038         activating a mdi child.
5039
5040 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5041
5042         * MdiWindowManager.cs: Fix NRE when merging menus and main form
5043         doesn't have a menu.
5044
5045         * Form.cs: Request NCRecalc after creating a mdi child window.
5046         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
5047         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
5048         
5049         * MdiClient.cs: Add new method SendFocusToActiveChild that either
5050         sends keyboard focus to the active child, or to the MdiClient
5051         if there are no child forms.
5052         
5053 2007-01-15  Chris Toshok  <toshok@ximian.com>
5054
5055         * ListView.cs: drop the *Internal overrides, just do our work in
5056         ItemControl's WndProc instead.
5057
5058         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
5059         of the various controls, and forward the events properly (in the
5060         same manner as MS) from the textbox to the UpDown.  Also the
5061         ActiveControl of the UpDownBase gets set properly now.  Finally,
5062         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
5063
5064         * NumericUpDown.cs: set Text in the ctor.
5065
5066         * DomainUpDown.cs: call UpdateEditText in the ctor.
5067         
5068         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
5069         so even a Selectable = false textbox can be focused if you click
5070         in it.  Go figure.
5071
5072         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
5073         just add their handling in their respective WndProc's.  Also add
5074         an explicit FocusInternal method that doesn't consult CanFocus
5075         before calling Select(this).
5076
5077         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
5078         do our work in WndProc instead.
5079
5080         * TabControl.cs: same.
5081
5082         * ComboBox.cs: same.
5083
5084 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5085
5086         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
5087         Fixes #80006.
5088
5089 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
5090
5091         * ListViewItem.cs:
5092         * ThemeWin32Classic.cs: Don't draw the item text outside
5093         item bounds in Details view, as well as use trimming.
5094         Fixes bug #80376.
5095
5096 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5097
5098         * Form.cs: Implement Form.ShowIcon.
5099         
5100         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
5101         null, which when combined with the DlgModalFrame window style removes
5102         the icon from the title bar.
5103
5104 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5105
5106         * Control.cs: Call OnMouseClick after OnClick. (2.0)
5107
5108 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5109
5110         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
5111         menu when mdi child windows theres a menu, uses insert to get icon
5112         at first position. Partially fix #80006.
5113
5114 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
5115
5116         * Clipboard.cs: Implement 2.0 methods.
5117
5118 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
5119
5120         * Menu.cs: Implement Insert method of MenuItemCollection class
5121         to fix MenuMerge.
5122
5123 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5124
5125         * ListView.cs: Implement 2.0 FindItemWithText method.
5126
5127 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5128
5129         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
5130         to calculate menu bar size. Fixes #80290.
5131
5132 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
5133
5134         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
5135
5136 2007-01-11  Chris Toshok  <toshok@ximian.com>
5137
5138         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
5139         initial form.
5140
5141 2007-01-11  Chris Toshok  <toshok@ximian.com>
5142
5143         * LinkLabel.cs: make sure to call base.Select in our Select method
5144         if it turns out we're going to be selected (i.e. if we have a link
5145         that is going to receive focus).  That way our container's
5146         ActiveControl is updated properly.
5147
5148 2007-01-11  Chris Toshok  <toshok@ximian.com>
5149
5150         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
5151         they have 1 or more links.  this fixes the crash gert reported.
5152
5153 2007-01-11  Andreia Gaita  <avidigal@novell.com>
5154
5155         * ContainerControl.cs: Remove ContainerSelected flag, not needed
5156         anymore.
5157
5158         * Control.cs (Controls.Add): Check if control to be added to the collection
5159         is a top level control, and throw an ArgumentException if it is.
5160         Remove ContainerSelectedFlag, not needed anymore.
5161
5162         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
5163         top most control doesn't activate the form. This fixes a problem in the
5164         MessageBox, where the default button wouldn't get focus because the form
5165         was activated before being Loaded - when the Owner is set, SetTopMost is
5166         called, and it would activate it.
5167
5168 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
5169
5170         * Button.cs: When clicked and setting the parent form's DialogResult,
5171         use FindForm instead of Parent, since parent could be a container
5172         control and not the Form.  Fixes bug #80495.
5173
5174 2007-01-10  Chris Toshok  <toshok@ximian.com>
5175
5176         * Form.cs: move the call to SendControlFocus into the same
5177         is_loaded check.
5178
5179 2007-01-10  Chris Toshok  <toshok@ximian.com>
5180
5181         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
5182         It breaks in the face of the new ActiveControl stuff, and should
5183         be unnecessary.
5184
5185         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
5186         activecontrol's focus if it's not already set, after we set
5187         ActiveControl, but before we call OnActivated.  Re-fixes #79667
5188         after the previous focus/active control fixes regressed it.
5189
5190         * Control.cs: reindent some code.
5191         
5192 2007-01-10  Chris Toshok  <toshok@ximian.com>
5193
5194         * Splitter.cs: clearing some outstanding changes from my tree.
5195         Replace all accesses (not writes) to the internal dock_style field
5196         with the Dock property.
5197
5198 2007-01-10  Chris Toshok  <toshok@ximian.com>
5199
5200         * Control.cs: make FireEnter, FireLeave, FireValidating, and
5201         FireValidated virtual.
5202
5203         * Form.cs: override and don't chain up calls to FireEnter and
5204         FireLeave.
5205
5206 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5207
5208         * ListView.cs: Add more text padding space when using
5209         auto resize for columns (the previous value didn't work fine).
5210
5211         * ThemeWin32Classic.cs: Update text position inside columns,
5212         to match the appeareance of .Net.
5213
5214         * ColumnHeader.cs: When using auto resize, only the Width should
5215         depend on the sub items, not the Height. Also, set width after
5216         auto resizing (the value of Width should never remain as -1 or -2).
5217
5218 2007-01-10  Chris Toshok  <toshok@ximian.com>
5219
5220         * Application.cs: fix compilation errors when debug is enabled.
5221
5222 2007-01-10  Chris Toshok  <toshok@ximian.com>
5223
5224         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
5225         add some nice ascii art pictures and explanation of the process).
5226         (GetMostDeeplyNestedActiveControl): new utility function we need
5227         because our ActiveControl can refer to a child container with its
5228         own ActiveControl.
5229
5230         * Form.cs (OnActivated): remove the call to SelectActiveControl
5231         from here, since you can override this method and not chain up,
5232         and winforms still sets the active control.
5233         (OnCreateControl): also remove the unnecessary SelectActiveControl
5234         call from here.
5235         (WndProc): it's actually called from the WM_ACTIVATE block, just
5236         before calling OnActivated.
5237
5238         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
5239         inside the else.  the ActiveControl setter will end up setting
5240         focus on @control.  This keeps us from setting it again (and
5241         generating an extra LostFocus/GotFocus pair).
5242         (Select (bool, bool)): reindent.
5243
5244 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
5245
5246         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
5247         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
5248         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
5249         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
5250         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
5251         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
5252         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
5253         ToolStripTextBox.cs: Another wave of corcompare work.
5254
5255 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5256
5257         * ColumnHeader.cs: Implement 2.0 AutoResize method using
5258         the Width property.
5259
5260         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
5261         methods by callling Column.AutoResize method on columns.
5262
5263 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5264
5265         * Control.cs: Provide proper implementations of PreferredSize
5266         and GetPreferredSize (2.0).
5267
5268 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
5269
5270         * Form.cs: Remove one character (!) to make my previous OnClosing
5271         stuff work for modal windows like MessageBox.
5272
5273 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5274
5275         * ListView.cs:
5276         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
5277         ListView.Columns to get the last displayed column. Fixes #80452.
5278
5279 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
5280
5281         * Label.cs, LinkLabel.cs: Source code identation fixes.
5282
5283 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
5284
5285         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
5286         we dont need to invalidate only borders because when we invalidate four
5287         border lines the invalidate's generates a complete redraw of button, 
5288         because it now invalidate a complete rect some other redraws operations
5289         are fixed. Fixes #80196.
5290         
5291         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
5292         Remove ToolBarInvalidateEntireButton as it is not used.
5293
5294 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5295         
5296         * Form.cs: Make sure that both OnClosing and OnFormClosing are
5297         called for 2.0 profile.
5298         * CloseReason.cs: Make class internal for 1.1.
5299
5300 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
5301
5302         * ToolStripManager.cs: Implement FindToolStrip functionality.
5303         * ToolStrip.cs: Register and unregister with ToolStripManager.
5304
5305 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5306
5307         * Control.cs: This was messy.  2.0 moves much of ControlCollection
5308         to ArrangedElementCollection.  Implemented this with as few #if's as 
5309         possible (which is still too many).
5310
5311 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
5312
5313         * Control.cs: Implement SizeFromClientSize() [2.0].
5314
5315 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
5316
5317         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
5318         use Theme.BorderSize to calculate area instead of static value 1, 
5319         by the way use new BorderStaticSize instead     Border3DSize when 
5320         border_static is true. Fixes #79537.
5321         
5322         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
5323         
5324         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
5325         it is not needed.
5326
5327 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5328
5329         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
5330
5331 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
5332
5333         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
5334         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
5335         
5336         * Hwnd.cs: 
5337         - border_static field added, it will used to define when a control 
5338         theres 3D border but it must be static (thin).
5339         - In GetWindowRectangle use Theme.BorderSize to calculate area 
5340         instead of static value 1, by the way use new BorderStaticSize instead
5341         Border3DSize when border_static is true.
5342
5343         * XplatUIX11.cs, XplatUIOSX.cs: 
5344         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
5345         
5346         * Theme.cs: BorderStaticSize field added.
5347
5348 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5349
5350         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
5351
5352 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
5353
5354         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
5355         mimic same behavior than win32 that set border only in CreateParams,
5356         it fix problems under CreateParams overrides. Fix #79442 and partial
5357         fix #79537.
5358         
5359         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
5360         of thi control you must call recreate handle. 
5361         
5362         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
5363         need to do anything as RecreateHangle will take care about borders.
5364
5365 2007-01-05  Mike Kestner  <mkestner@novell.com>
5366
5367         * ListView.cs: hack to eliminate Lost/Got focus notifications on
5368         cycles between the ItemControl and parent.  Fixes #80388.
5369
5370 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
5371
5372         * Control.cs: Lazy init layout engine. Do not directly use 
5373         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
5374
5375 2007-01-05  Chris Toshok  <toshok@ximian.com>
5376
5377         * DataGrid.cs: don't forceably rebind columns in SetDataSource
5378         unless our list manager has changed (i.e. unless we have reason to
5379         believe our columns have changed).  Fixes #80422.
5380         
5381         also, disable the call do BindColumns in
5382         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
5383         1.1 the event isn't raised in response to a column addition on a
5384         table.)
5385
5386 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5387
5388         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
5389         that inheritors can not call it if they choose.  Fixes bug #80456.
5390
5391 2007-01-05  Andreia Gaita  <avidigal@novell.com>
5392
5393         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
5394         doesn't blow up with a null exception on marshalling.
5395         
5396 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
5397
5398         * Control.cs: Implement several 2.0 protected properties and methods.
5399         Ensure that all necessary events are being called when properties
5400         are set.
5401
5402 2007-01-05  Mike Kestner  <mkestner@novell.com>
5403
5404         * ListView.cs: implement PgUp/PgDn for Details view.  Also
5405         fixes First/LastVisibleIndex to use the item_control.ClientRect 
5406         instead of the parent control.  Fixes #80378.
5407
5408 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
5409
5410         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
5411           determine whether to use yard-pound or not (bug #78399).
5412
5413 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
5414
5415         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
5416         problems. So it is time to bring back the old popupbutton colors.
5417
5418 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5419
5420         * ColumnHeader.cs:
5421         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
5422         property by using the internal information of the
5423         columns order in ListView.
5424
5425 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
5426
5427         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
5428         Add 2.0 Tag properties.
5429
5430         * LinkArea.cs: Add 2.0 ToString method.
5431
5432 2007-01-03  Chris Toshok  <toshok@ximian.com>
5433
5434         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
5435         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
5436         when we're editing, which fixes #80047.
5437
5438 2007-01-03  Chris Toshok  <toshok@ximian.com>
5439
5440         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
5441         #80404.
5442
5443 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
5444
5445         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
5446         property and implementation.
5447
5448         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
5449         for MdiWindowListItem property.
5450
5451         * ToolStripDropDown.cs: Don't consider hidden menu items while
5452         laying out the menu.
5453
5454 2007-01-03  Andreia Gaita  <avidigal@novell.com>
5455
5456         * SendKeys.cs: window handle is not needed in win32, so just
5457         get the active window for X after parsing keys and don't use
5458         it when building the message; it is passed by parameter to the 
5459         Xplat method and used there to build the message instead. Also,
5460         wait for events to be processed on SendWait, as opposed to Send,
5461         which doesn't wait :) Playing with threads and Send() completely 
5462         hangs on ms.net, only SendWait() works.
5463         
5464         XplatUIX11.cs
5465         X11Display.cs: Check for valid window handle.
5466
5467 2007-01-03  Jackson Harper  <jackson@ximian.com>
5468
5469         * TextControl.cs: Need to prevent wrap calculations when replacing
5470         text (this was there before i removed it accidently).
5471         - Don't update the cursor during the positioning, just set it to
5472         selection_start at the end of the operaion.
5473
5474 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5475
5476         * Control.cs:
5477         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
5478         
5479 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5480
5481         * MonthCalendar.cs: Added Click and DoubleClick events again,
5482         but this time they only hide Control's Click and DoubleClick.
5483         
5484 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
5485
5486         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
5487         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
5488
5489 2007-01-02  Jackson Harper  <jackson@ximian.com>
5490
5491         * TextBoxBase.cs: We move the caret with the split now, so we
5492         don't need to explicitly move the caret after splitting.  This
5493         fixes the caret bumping down an extra line on Enter.
5494
5495 2007-01-02  Miguel de Icaza  <miguel@novell.com>
5496
5497         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
5498         2.72). 
5499
5500         * ScrollableControl.cs: Add Scroll event.
5501
5502 2007-01-02  Mike Kestner  <mkestner@novell.com>
5503
5504         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
5505         to fix all hdr height padding codepaths.  Fixes #80207.
5506
5507 2007-01-02  Chris Toshok  <toshok@ximian.com>
5508
5509         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
5510         setting it to the Control defaults anyway, and it being after the
5511         Dock set was screwing up layout.
5512         (set_Dock): don't short circuit out of setting base.Dock.  Also,
5513         no need to call UpdateStatusBar here, as it'll be re-layed out if
5514         it needs to be.
5515
5516 2007-01-02  Mike Kestner  <mkestner@novell.com>
5517
5518         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
5519         to header height for width == -1. Fixes the rest of #80207.
5520
5521 2007-01-02  Mike Kestner  <mkestner@novell.com>
5522
5523         * ListView.cs: rework the mouse event forwarding everaldo added
5524         to translate the coordinates to the parent control not
5525         raise the parent events until after we've done our work. Hover
5526         needs more work, in the case where HoverSelection is on, because
5527         the item control receives more than one MouseHover per Enter
5528         event, so we need to ensure only the "first" hover gets forwarded.
5529         Opening a minor bug for that.
5530
5531 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
5532
5533         * CheckedListBox.cs: Fixed SelectionMode to match MS.
5534         * ListControl.cs: Implemented AllowSelection property. Removed extra
5535         tabs.
5536         * ListBox.cs: Implemented AllowSelection property.
5537
5538 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5539
5540         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
5541         SelectedItem, it prevent for errors when you must disable item
5542         before perform click. Fixes #80409.
5543
5544 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5545
5546         * MenuAPI.cs: Prevent second level and beyond submenus to close
5547         until first level when move out side of popup.
5548         
5549 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5550
5551         * MenuAPI.cs:
5552         - Down submenu positin in three pixels.
5553         - Closes sub menu when mouse leaves from menu. Fixes #80402.
5554
5555 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
5556
5557         * ThemeWin32Classic.cs:
5558         - Fix popup menu size adding one pixel on the top.
5559         - Down menu item border from two to one to mimic Win32.
5560         - Some source identation fixes. 
5561
5562 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5563
5564         * ThemeWin32Classic.cs: Use float numbers to calculate size and
5565         position of menu arrows, it fix wrong arrow size.
5566
5567 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
5568
5569         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
5570         instead of line, it simplify draw operation and fix it using 3D
5571         borders to mimic Win32.
5572
5573 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
5574
5575         * StatusStrip.cs: Add implementation of the sizing grip.
5576
5577         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
5578         StatusStrip rendering.
5579
5580 2006-12-31  Chris Toshok  <toshok@ximian.com>
5581
5582         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
5583         override the layout style (anchor/dock) of the control.  assign to
5584         Dock instead.  Fixes bug #80416.
5585
5586         * ToolStrip.cs: same.
5587
5588 2006-12-31  Andreia Gaita  <avidigal@novell.com>
5589
5590         * ContainerControl.cs: Use ContainerSelected flag to check if 
5591         a Container is directly selected, or if Select is called on a 
5592         non-container. If a container is directly selected, focus events 
5593         should not be raised.
5594         Apply #80411 patch to throw exception on set_ActiveControl if 
5595         control is the same as the current one.
5596         
5597         * Control.cs: Use ContainerSelected flag (see above).
5598         Add invalidation check to raise event but not invalidate if 
5599         dimensions are 0.       
5600         Apply #80411 patch.
5601         
5602
5603 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
5604
5605         * MenuAPI.cs: After click, dont close popup menu when menu is
5606         ContextMenu. Fixes #80399.
5607
5608 2006-12-30  Chris Toshok  <toshok@ximian.com>
5609
5610         * ContainerControl.cs: make sure we throw the exception if the
5611         container control doesn't contain the control we're setting
5612         ActiveControl to.
5613
5614 2006-12-30  Chris Toshok  <toshok@ximian.com>
5615
5616         * Control.cs (SetTopLevel): fix the exception raised by
5617         SetTopLevel for child controls.
5618         (set_Anchor): call UpdateDistances when setting the anchor type.
5619         This fixes bug #80336.
5620
5621 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5622
5623         * Theme.cs: For now, revert back to 8pt font.
5624
5625 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
5626
5627         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
5628         Fixes #80395.
5629
5630 2006-12-29  Chris Toshok  <toshok@ximian.com>
5631
5632         * Control.cs: reorder the code in OnResize to give the same event
5633         ordering as MS.
5634
5635 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5636
5637         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
5638         TileHorizontally and TileVertically.
5639         
5640 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
5641
5642         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
5643         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
5644         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
5645         Corrected copyright and email adress.
5646
5647 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5648
5649         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
5650         of Exception in FullPath property if no TreeView is associated with
5651         the TreeNode.
5652
5653 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
5654
5655         * Theme.cs: Marked default_font as private, and initialize it in ctor
5656         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
5657         on 2.0 profile.
5658         * ThemeGtk.cs: Removed default_font intialization.
5659         * ThemeWin32Classic.cs: Removed default_font initialization.
5660
5661 2006-12-28  Chris Toshok  <toshok@ximian.com>
5662
5663         * Control.cs: fix a couple of place where we were creating handles
5664         more aggressively than we should be.  Fixes ControlRefresh unit
5665         tests.
5666
5667 2006-12-28  Chris Toshok  <toshok@ximian.com>
5668
5669         * Control.cs: contrary to what the comment said, Control.Dock does
5670         not supercede Control.Anchor - the last one you assign to decides
5671         the layout behavior.  so we need to keep track of which was the
5672         last set.  Also, fix some of the affected property arguments in
5673         PerformLayout calls, and remove an redundant parent.PerformLayout
5674         call in OnResized.
5675
5676         Add a VisibleInternal property, which returns is_visible.  We
5677         can/should get rid of all the usage of this field elsewhere.
5678
5679 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5680         
5681         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
5682         control style, not DoubleBuffer. Added UseDoubleBuffering property
5683         that indicates whether doublebuffering is enabled and supported.
5684         (comment from and code based on Gert Driesen's patch in #80324).
5685         Fixes #80324.
5686
5687 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5688         
5689         * Control.cs: Fixed a NRE.
5690
5691 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5692
5693         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
5694         for 2.0.
5695
5696 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5697
5698         * Control.cs: Rewrote double buffering, now a seperate
5699         class handles all the buffering, no Graphics is disposed of
5700         until the painting is finished (earlier implementation 
5701         would crash if the control was resized in the OnPaint, 
5702         since it would cause the double buffer to be recreated
5703         and the old one disposed), a separate Graphics is 
5704         created for every paint (MS behaviour and anyways the state
5705         of the Graphics would have to be saved and restored otherwise)
5706         
5707         * XplatUIDriver.cs: 
5708         * XplatUIX11.cs:
5709         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
5710         so that we can get the graphics for the back buffer without
5711         having to create a new one and remove the offscreen_dc parameter
5712         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
5713         
5714 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5715
5716         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
5717         Also make virtual all the key-related methods.
5718
5719         * ListViewItem.cs: Make virtual the key related methods for
5720         ListViewSubItemCollection.
5721
5722 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5723
5724         * ListView.cs:
5725         * ListViewItem.cs:
5726         * ThemeWin32Classic.cs:
5727         * Theme.cs: Initial support for Tile view in ListView,
5728         as well as the implementation of the required bits for it (Item
5729         and Subitem).
5730
5731 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5732
5733         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
5734         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
5735         Provide useful exception messages.
5736
5737 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5738
5739         * TrackBar.cs: Remove a warning.
5740         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
5741         when used by DateTimePicker, fixes #80287. This also requires that 
5742         MonthCalendar implements it's own drawing for the yearly updown control,
5743         otherwise the Capture tracking would be too complicated. Removed the Click 
5744         and DoubleClick events (according to comments they were hiding the base class
5745         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
5746         raise these events, not that they cannot be raised. It is possible to raise 
5747         them by calling OnClick and OnDoubleClick). Added two internal fields in 
5748         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
5749         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
5750         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
5751         event, no longer needed.
5752         
5753 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5754
5755         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
5756         true if new value differs from current value.
5757
5758 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5759
5760         * Control.cs: ControlCollection.Count must be public. Fixed build of
5761         unit tests.
5762
5763 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5764
5765         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
5766
5767 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
5768
5769         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
5770
5771 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5772
5773         * Control.cs: Invalidates control including when Width and Height is 
5774         equal zero or is not visible, only Paint event must be care about 
5775         this. Fixes #79913.
5776
5777 2006-12-26  Chris Toshok  <toshok@ximian.com>
5778
5779         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
5780         more corcompare work.
5781
5782         * DataGridView.cs: fix compiler warning.
5783
5784         * ColumnHeader.cs: some corcompare work, and also take the
5785         opportunity to make the internal fields private.
5786
5787         * ListView.cs: fix the fallout from the above field change.
5788
5789 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5790
5791         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
5792         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
5793         ToolStripTextBox.cs: Fixes to events and corcompare.
5794
5795 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
5796
5797         * ListView.cs: Call owner.OnMousexx event to propagate events from
5798         item to ListView. Fixes #80367.
5799
5800 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5801
5802         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
5803         if value is less than one. ItemHeight should not be set to a value
5804         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
5805         Removed extra tabs.
5806
5807 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
5808
5809         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
5810         * ToolStripStatusLabel.cs: Add Spring for Moma.
5811
5812 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5813
5814         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
5815         Fixed code formatting. Removed debug code.
5816         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
5817
5818 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
5819
5820         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
5821         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
5822         ArgumentOutOfRangeException if ColumnCount is negative. In 
5823         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
5824         less than 4 or higher than 32768.
5825         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
5826         Fixed FormatProvider to return CurrentCulture unless explicitly set.
5827         Fixed IsFormatProviderDefault to return true if FormatProvider has
5828         not been explicitly set.
5829
5830 2006-12-25  Chris Toshok  <toshok@ximian.com>
5831
5832         * Application.cs: add a couple of 2.0 events.
5833
5834 2006-12-25  Chris Toshok  <toshok@ximian.com>
5835
5836         * Control.cs: fix compiler warning.
5837
5838         * AxHost.cs: corcompare fixes.
5839
5840         * ApplicationContext.cs: corcompare fixes.
5841
5842 2006-12-25  Chris Toshok  <toshok@ximian.com>
5843
5844         * Control.cs: only update dist_right/dist_bottom if the
5845         width/height is > 0.  this fixes anchored controls being resized
5846         smaller until they disappear and then resized larger again.
5847
5848 2006-12-25  Chris Toshok  <toshok@ximian.com>
5849
5850         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
5851         since they're nothing more than X/Left and Y/Top, respectively.
5852
5853         Also, move back to a per-control Bitmap/Graphics for
5854         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
5855         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
5856         Height.
5857
5858 2006-12-25  Miguel de Icaza  <miguel@novell.com>
5859
5860         * MessageBox.cs: Implemented overload that takes a new "bool
5861         displayHelpButton" by adding a new internal field "show_help".
5862         When clicked this will raise the HelpRequested on the owner or the
5863         main form. 
5864
5865         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
5866         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
5867
5868         * ListView.cs: Add support ColumnWidthChanged and
5869         ColumnWidthChanging. 
5870
5871         Add support for ColumnReordered event.
5872         (ReorderColumn): Add NET_2_0 specific support for cancelling the
5873         reorder.
5874
5875         Very nice codebase!
5876
5877         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
5878
5879         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
5880
5881 2006-12-24  Chris Toshok  <toshok@ximian.com>
5882
5883         * GridTablesFactory.cs: 2.0 corcompare work.
5884
5885         * ToolStripContainer.cs: add "override" to
5886         ContextMenuStripChanged, and remove the local event object.
5887
5888         * ToolStripDropDown.cs: same with a couple properties.
5889
5890         * ToolStripPanel.cs: same with AutoSizeChanged event.
5891
5892         * TextBoxBase.cs: add "override" to AutoSizeChanged.
5893
5894         * Form.cs: add the remaining 2.0 events, and do some corcompare
5895         attribute work.
5896
5897         * DateTimePicker.cs: add "new" to padding.
5898
5899         * ButtonBase.cs: use Control's use_compatible_text_rendering.
5900
5901         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
5902
5903         * DataGridView.cs: PaddingChanged is overridden.
5904
5905 2006-12-24  Chris Toshok  <toshok@ximian.com>
5906
5907         * Control.cs: corecompare work here too.
5908
5909         * DataGridViewElement.cs, DataGridView.cs,
5910         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
5911         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
5912         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
5913         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
5914         work.
5915
5916 2006-12-24  Miguel de Icaza  <miguel@novell.com>
5917
5918         * Control.cs: Switched the error message on the console for a
5919         todo.  A review of the code will have to cope with this anyways
5920         (since its a large feature, it is in our radar) and it was
5921         producing too much output when running PDN.
5922
5923         * ToolStripComboBox.cs: Set the text when the SelectedIndex
5924         changes.  Applications depend on this (PDN 2.72)
5925
5926 2006-12-23  Chris Toshok  <toshok@ximian.com>
5927
5928         * TableLayoutSettings.cs: finish up the corcompare work for this
5929         class.
5930
5931 2006-12-23  Chris Toshok  <toshok@ximian.com>
5932
5933         * Control.cs: make SetImplicitBounds internal, do some futzing
5934         with LayoutEngine so that it's available in 1.1, and remove the
5935         entire duplicated code mess from PerformLayout.  Use
5936         System.Windows.Forms.Layout.DefaultLayout instead.
5937
5938         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
5939
5940 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5941
5942         * Form.cs: Add MainMenuStrip property.
5943
5944 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
5945
5946         * Control.cs: Add ContextMenuStrip property and implementation.
5947         Fix ContextMenu implementation to show menu centered on control when
5948         activated using the keyboard instead of showing at screen (0,0).
5949
5950         * ToolStripDropDown.cs: Fix needed overload of Show ().
5951
5952 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5953
5954         * Menu.cs: Name property added for 2.0 profile.
5955         
5956 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5957
5958         * Menu.cs: Update information about FindMenuItem, method to be
5959         implemented soon.
5960
5961 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5962
5963         * MenuAPI.cs: When deselect items deselect also selected subitems.
5964         
5965 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
5966
5967         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
5968         FindSubItemByCoord to found itens that is not active, also an
5969         cheking added to FindSubItemByCoord to search for items only 
5970         in visible popup windows. Fixes #80274.
5971
5972 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
5973
5974         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
5975         internal property, it be care about change ExStyle. 
5976
5977 2006-12-22  Andreia Gaita  <avidigal@novell.com>
5978
5979         * ContainerControl.cs: set activeControl for parent forms up the 
5980         tree when the new activecontrol is a container.
5981         When validating the active control, if it is a container, also
5982         raise up the validation for it's active control. Fixes #80280
5983         
5984         * Control.cs: Add internal property flag and check to prevent
5985         Focus events from getting raised when Select() is called for
5986         a ContainerControl. There are still too many focus events being
5987         raised at the moment though.
5988         Cleaned up the code a bit.
5989
5990 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5991
5992         * Control.cs: Added all missing 2.0 events.and
5993         fixed a couple of corcompare issues.
5994         * TrackBar.cs: Implemented missing 2.0 bits.
5995         * MonthCalendar.cs, 
5996         * DateTimePicker.cs, 
5997         * MdiClient.cs: Fixed some corcompare issues.
5998
5999 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
6000
6001         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
6002         SplitterPanel.cs: corecompare work.
6003
6004 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
6005
6006         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
6007         Clean up warnings for BackgroundImageChanged and PaddingChanged
6008         events now that they are implemented in Control.cs.
6009
6010 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
6011
6012         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
6013         
6014         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
6015         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
6016         of TableLayoutPanel and supporting cast.
6017
6018 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6019
6020         * XplatUIWin32.cs: 
6021         - GrabWindow now confines the mouse pointer to the confine window.
6022         - Added Win32ClipCursor and Win32GetClipCursor.
6023
6024         * Control.cs: 
6025         - Added CaptureWithConfine to be able to capture and confine 
6026         mouse pointer.
6027         
6028         * InternalWindowManager.cs: 
6029         - Call CaptureWithConfine instead of Capture if we're an
6030         MdiChild (fixes #79982).
6031
6032 2006-12-21  Chris Toshok  <toshok@ximian.com>
6033
6034         * DataGrid.cs: guard against the initial state of selection, where
6035         selection_start == -1.  make sure we only select from index >= 0.
6036         Fixes bug #80291.
6037
6038 2006-12-21  Chris Toshok  <toshok@ximian.com>
6039
6040         * Control.cs: we don't need to be so draconian with
6041         UpdateDistances, and we thusly don't need to call it before
6042         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
6043
6044 2006-12-21  Daniel Nauck  <dna@mono-project.de>
6045
6046         * ComboBox.cs,
6047         TextBox.cs: Implemented AutoComplete properties.
6048
6049 2006-12-20  Chris Toshok  <toshok@ximian.com>
6050
6051         * DataGridView*.cs: some corecompare work.
6052
6053 2006-12-20  Jackson Harper  <jackson@ximian.com>
6054
6055         * XplatUIX11.cs: We need to hide the caret when deleting it,
6056         otherwise you get carets left lying around everywhere.
6057         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
6058         prevents getting some weird half drawn caret tracers when
6059         scrolling.
6060         * TextControl.cs: Attempt to reduce the number of times we need to
6061         recreate the caret.
6062
6063 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
6064
6065         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
6066
6067 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6068
6069         * DateTimePicker.cs:
6070         - Implemented missing 2.0 bits.
6071         - Changed some default values to match MS.
6072         
6073 2006-12-20  Jackson Harper  <jackson@ximian.com>
6074
6075         * TextBoxBase.cs: When changing the font across the document we
6076         can't recalculate after changing each line, since that will cahnge
6077         the line count.
6078         - PreferredHeight is a little different than i thought.
6079         - When backspacing, move the caret before we do the actual char
6080         delete, because when that delete crosses a wrap boundary the
6081         positional information will change.
6082
6083 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6084
6085         * Control.cs: Added some missing 2.0 bits: 
6086         BackgroundImageLayout, BackgroundImageLayoutChanged, 
6087         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
6088         add IBindableComponent and IDropTarget implementation.
6089         
6090         * MonthCalendar.cs: 
6091         - Added all missing 2.0 features:
6092         BackgroundImageLayout, RightToLeftLayout, 
6093         OnHandleDestroyed, RightToLeftLayoutChanged, 
6094         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
6095         PaddingChanged.
6096         - Rewrote all the BoldDate code, it was completely broken.
6097         - Fixed all the tests (the tests can now be re-enabled, the
6098         problems were not with the tests, but with the control, it was
6099         mostly broken).
6100         
6101         * DateTimePicker.cs: Changed the location where the 
6102         MonthCalendar is shown.
6103         
6104 2006-12-19  Chris Toshok  <toshok@ximian.com>
6105
6106         * DataGridView.cs: add IDropTarget implementation.
6107
6108         * ToolStripPanel.cs: add IDropTarget implementation.
6109
6110 2006-12-19  Jackson Harper  <jackson@ximian.com>
6111
6112         * TextControl.cs: soft now means something different than what it
6113         used to mean, we want to move the caret regardless of whether or
6114         not this break was soft (would we really have wanted the caret
6115         to not move with the break in the old context?)
6116         * TreeView.cs: Make sure we factor in the vert scrollbar when
6117         calculating the horizontal scrollbar's maximum.
6118
6119 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6120
6121         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
6122         check for keywords in alternate casing, close bug #80049.
6123
6124 2006-12-19  Chris Toshok  <toshok@ximian.com>
6125
6126         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
6127         methods (which all do nothing).
6128
6129         * IDropTarget.cs: add the 4 missing methods.
6130
6131 2006-12-19  Chris Toshok  <toshok@ximian.com>
6132
6133         * TableLayoutRowStyleCollection.cs: corcompare work.
6134         
6135         * TableLayoutSettings.cs: same.
6136
6137         * TableLayoutStyle.cs: same.
6138
6139         * TableLayoutColumnStyleCollection.cs: same.
6140
6141 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
6142
6143         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
6144         TableLayoutPanel I've had in my local tree for way too long.
6145
6146 2006-12-19  Miguel de Icaza  <miguel@novell.com>
6147
6148         * TableLayoutSettings.cs: Finish the public API (still needs all
6149         the logic to update on changes). 
6150
6151         * TableLayoutPanelCellPosition.cs: new file.
6152         
6153         * TableLayoutRowStyleCollection.cs,
6154         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
6155         TableLayoutSettings.cs: Track the final 2.0 table api.
6156
6157 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6158
6159         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
6160         and Image List 2.0 members for ColummnHeader.
6161         * ListView.cs: Add key-related 2.0 methods for
6162         ColumnHeaderCollection.
6163
6164 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6165
6166         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
6167         ArgumentNullException if items argument is null. Ignore null item in
6168         arrays. Removed extra tabs.
6169
6170 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
6171
6172         * MonthCalendar.cs: Fixed InvalidCastException.
6173
6174 2006-12-19  Jackson Harper  <jackson@ximian.com>
6175
6176         * TextControl.cs: Don't increment the position here.
6177         - When calculating char positions only add in the line break size
6178         for hard line breaks.
6179
6180 2006-12-19  Andreia Gaita  <avidigal@novell.org>
6181
6182         * SendKeys.cs: Changed some things to match ms.net behaviour
6183         when parsing shifted capital letters.
6184         
6185         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
6186         Add window handle as parameter to SendInput. X11 needs the 
6187         window handle, and the handle being passed      to it in the keys 
6188         queue is the active control handle (which windows needs), not 
6189         the window handle.
6190         
6191         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
6192         to support SendKeys on X.       
6193         
6194         * X11Keyboard: Implement helper method to lookup a linux keycode
6195         given the virtual keycode. Added table of keycode-2-virtualkey
6196         values to support this.
6197
6198 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6199
6200         * ListView.cs: Add support for SelectedIndexCollection
6201         and SelectedItemCollection 2.0 methods. Implement support
6202         for ImageKey too.
6203         * ListViewItem.cs: Add support for ListViewSubItemCollection
6204         2.0 methods. Also, fix an incorrect behavior of AddRange method
6205         (it shouldn't call Clear).
6206         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
6207
6208 2006-12-19  Jackson Harper  <jackson@ximian.com>
6209
6210         * RichTextBox.cs: 
6211         * TextBoxBase.cs: New args for FormatText
6212         * TextControl.cs: Rewrote the main drawing method, this version
6213         feels a little easier to understand and debug to me.  Hopefully it
6214         does to others also
6215         - Fix FormatText to OR in the new formating values.  Added
6216         FormatSpecified param, basically this works in the same way as
6217         BoundsSpecified in Control.
6218         - Set the caret properties when the caret is positioned.
6219         - When wrapping text make sure that we calculate the width of the
6220         last character
6221         - when calculating alignments we might have wrapped down to the
6222         next line, so don't search for an individual tag, search for the
6223         end of the line
6224         - We need to invalidate the selection area when we replace the
6225         selection.
6226         
6227 2006-12-19  Daniel Nauck  <dna@mono-project.de>
6228
6229         * Application.cs: add Restart () 2.0 support
6230
6231 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6232
6233         * MenuItem.cs: Invalidate menu item rectangle after change Enable
6234         property. Fixes #80268.
6235         
6236 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6237
6238         * MenuAPI.cs: Dont trigger select event when closes top menu
6239         item. Fixes #80270.
6240
6241 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6242
6243         * MenuAPI.cs: When you click on menuitem only trigger onselect
6244         event for top menu itens. Fixes #80271.
6245         
6246 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6247
6248         * MdiWindowManager.cs: Make IconicBounds depend on
6249         the bottom of MdiClient, not the top (fixes #80267)
6250         
6251 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6252
6253         * MdiClient.cs: Added missing 2.0 attribute
6254
6255 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6256
6257         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
6258         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
6259
6260 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
6261
6262         * MenuAPI.cs: Fix click when menuitem is not popup,
6263         this regression was caused by last commit (#80272).
6264
6265 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
6266
6267         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
6268         fire click event or close menu. Fixes #80272.
6269
6270 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6271
6272         * ListViewHitTestInfo.cs: add
6273
6274 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6275
6276         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
6277         * FlatButtonAppearance.cs: add
6278         * DockingAttribute.cs: add
6279
6280 2006-12-17  Chris Toshok  <toshok@ximian.com>
6281
6282         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
6283         and rebind our columns when it does - this way, if you make
6284         changes to the DataTable (or set the Table attribute on a DataView
6285         after setting it as the DataGrid's DataSource, the changes are
6286         made visible.)  Fixes bug #80107.
6287
6288 2006-12-17  Daniel Nauck  <dna@mono-project.de>
6289
6290         * ListViewGroup.cs: add internal Location property for layouting.
6291         * Theme.cs: add abstract ListViewGroupHeight function.
6292         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
6293
6294 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6295
6296         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
6297         Added reset of selected index to 0 when adding first tab page.
6298         Fixes #80264
6299         
6300         * NumericUpDown.cs: Fix NET_2_0 check
6301
6302 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6303
6304         * ListViewGroup.cs: fixed DefaultValueAttribute value
6305
6306 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6307
6308         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
6309
6310 2006-12-15  Miguel de Icaza  <miguel@novell.com>
6311
6312         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
6313         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
6314         ScrollableControl.cs: Add a handful of methods that are
6315         overwritten in 2.0 
6316
6317 2006-12-15  Chris Toshok  <toshok@ximian.com>
6318
6319         * XplatUIWin32.cs: initial implementation of the Reversible
6320         drawing functions.  there are some problems.  DrawReversibleFrame
6321         doesn't seem to work at all for Dashed FrameStyle, and in the
6322         Thick case there are drawing errors at the corners (we probably
6323         need to bind Rectangle instead of doing moveto/lineto's.)
6324
6325 2006-12-16  Andreia Gaita  <avidigal@novell.com>
6326         
6327         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
6328         to send blocks of key messages. Send accumulates keys to send with Flush, 
6329         while SendWait sends all keys immediately.
6330                 
6331         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
6332         XplatUIX11.cs,  XplatUIX11-new.cs:
6333         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
6334         to Win32 SendInput.
6335         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
6336         
6337         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
6338         testing for ms.net on this class is very tricky, as the tests run too fast 
6339         to allow the hook to release, essentially freezing the keyboard and the 
6340         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
6341         category :p
6342
6343 2006-12-16  Daniel Nauck  <dna@mono-project.de>
6344
6345         * Padding.cs: fixed serialization compability to MS ("_var" field names),
6346                         added missing attributes.
6347  
6348 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6349
6350         * ListViewGroup.cs: Added missing attributes.
6351         * ListViewGroupCollection.cs: Added missing attributes.
6352
6353 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6354
6355         * ListViewItem.cs: fixed ListViewSubItem text property.
6356
6357 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6358         
6359         * Control.cs: Added missing 2.0 attributes
6360         
6361 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6362         
6363         * MdiClient.cs: Added missing 2.0 attribute.
6364         * MonthCalendar.cs: Added some missing 2.0 attributes 
6365         and properties.
6366         
6367 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6368
6369         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
6370
6371 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
6372
6373         * MainMenu.cs: Add the new 2.0 constructor to help out people
6374         using the MainMenu in VS2005.
6375
6376 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6377         
6378         * MdiChildContext.cs: Removed it, no longer used.
6379         * MdiClient.cs: Added missing 2.0 attributes.
6380         
6381 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6382         
6383         * InternalWindowManager.cs: Fix a NullRef with previous 
6384         changes for toolwindows.
6385         
6386 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6387
6388         * Control.cs: 
6389         - Added AfterTopMostControl to allow for certain controls 
6390         to always stay on top when normal controls are brought to 
6391         front.
6392         
6393         * XplatUIWin32.cs: 
6394         - (DrawInversibleRectangle): Get window rectangle from Win32 
6395         in stead of from control, since Win32 doesn't calculate
6396         screen coords correctly from control's Location if it 
6397         have docked siblings.
6398         
6399         * MdiWindowManager.cs:
6400         - Correct the control menu popup location when clicked on
6401         the maximized form icon. (fixes #80223.1)
6402         - Don't show moving rectangle if mouse hasn't moved from
6403         the original clicked point.
6404         - Removed FormGotFocus handler (not used).
6405         - Calculate the control buttons location from the main
6406         window's size and not client size (fixes #79770).
6407         - Form is now closed when the form icon is double-clicked
6408         (fixes #79775). 
6409         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
6410         
6411         * InternalWindowManager.cs:
6412         - Moved some MDI-only methods to MdiWindowManager.
6413         - Removed unused properties and methods.
6414         - Unified method naming for methods handling wm messages.
6415         - Moved all message handling to seperate methods for
6416         each message.
6417         
6418         * ThemeWin32Classic.cs:
6419         - DrawManagedWindowDecorations now draws the title bar 
6420         with a gradient brush.
6421         - Add a CPDrawButtonInternal that allows us to specify
6422         light, normal and dark colors for the buttons (control 
6423         buttons for MDI children were drawn with the same light
6424         color as the background, therefore loosing the 3D effect).
6425         
6426         * SizeGrip.cs:
6427         - Add a CapturedControl property that is used to 
6428         determine the control to resize (defaults to parent). 
6429         Needed for MdiClient, since its SizeGrip's parent is
6430         MdiClient, but the control to resize is the main form.
6431         
6432         * MdiClient.cs:
6433         - Set SizeGrip's CapturedControl to the main form in order
6434         to resize the main form and not the MdiClient.
6435         - Override AfterTopMostControl to leave the scrollbars 
6436         always on top.
6437
6438 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6439
6440         * ListView.cs: fixed ListViewItemCollection AddRange and
6441                         implemented ListViewItemCollection AddRange 2.0 support.
6442
6443 2006-12-15  Daniel Nauck  <dna@mono-project.de>
6444
6445         * ListViewGroup.cs: Add.
6446         * ListViewGroupCollection.cs: Add
6447         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
6448         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
6449                                 stub for ImageKey 2.0 support.
6450
6451 2006-12-14  Mike Kestner  <mkestner@novell.com>
6452
6453         * ListView.cs: add text padding to the autocalculation for columns
6454         of width -2.  Fixes #80207.
6455  
6456 2006-12-14  Mike Kestner  <mkestner@novell.com>
6457
6458         * ListView.cs: add some index guarding for partial row navigation 
6459         logic.  Fixes #80250.
6460
6461 2006-12-14  Mike Kestner  <mkestner@novell.com>
6462
6463         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
6464         are added or inserted to the collection.  Fixes #81099.
6465
6466 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
6467
6468         * MenuAPI.cs: Closes menu when right click out side of popup
6469         it fix problem in ContextMenu and MainMenu. Fixes #80252.
6470
6471 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6472
6473         * ListViewItem.cs: Fix dumb error.
6474
6475         * ListView.cs: Add Find and ContainsKey methods in 
6476         ListViewItemCollection, and also return true for IsReadOnly
6477         and IsFixedSize (changes for 2.0). 
6478
6479 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
6480
6481         * Control.cs: Allow Region to be set to null.
6482
6483 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6484
6485         * MdiWindowManager.cs: Remove unused (commented out) code.
6486         * Form.cs: When the MdiChild is maximized, the form needs 
6487         WM_NCMOUSELEAVE, so request it.
6488         * InternalWindowManager.cs: 
6489         - Added tooltips to control buttons.
6490         - Removed duplicated control button handling code.
6491         - Removed unused (commented out) code.
6492         
6493 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
6494
6495         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
6496         was used because we must set cursor without trigger ChangeCursor event
6497         and without change Cursor control property. Fixes #79963.
6498
6499 2006-12-12  Andreia Gaita  <avidigal@novell.com>
6500         
6501         * Control.cs: Check if Region setter value is null, and ignore
6502
6503 2006-12-12  Jackson Harper  <jackson@ximian.com>
6504
6505         * TextControl.cs: We were almost always drawing one more line then
6506         needed, since the GetLineByPixel will return the last line found
6507         at that pixel. In most cases though, we were invalidating up to
6508         the junction between two lines.
6509         - Improve debug code.
6510
6511 2006-12-12  Chris Toshok  <toshok@ximian.com>
6512
6513         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
6514         and FillReversibleRectangle.
6515
6516         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
6517         and FillReversibleRectangle.
6518
6519         * XplatUIWin32.cs: add stubs which do nothing for
6520         DrawReversibleFrame, DrawReversibleLine, and
6521         FillReversibleRectangle.
6522
6523         * XplatUIOSX.cs: add stubs which raise NIE for
6524         DrawReversibleFrame, DrawReversibleLine, and
6525         FillReversibleRectangle.
6526
6527         * XplatUIX11.cs: add working implementation for
6528         DrawReversibleFrame, DrawReversibleLine, and
6529         FillReversibleRectangle.
6530         
6531         * ControlPaint.cs: implement DrawReversibleFrame,
6532         DrawReversibleLine, and FillReversibleRectangle, by calling into
6533         the appropriate XplatUI method.
6534
6535 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6536
6537         * Form.cs: Make MdiClient have the focus even if it's
6538         not selectable, since it should receive WM_KEY* and WM_MOUSE 
6539         messages. Fixes #79907.
6540         
6541 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6542
6543         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
6544         queried after the window is created.
6545         
6546         * XplatUIX11.cs: Added SendParentNotify to implement 
6547         WM_PARENTNOTIFY logic. Fixes #79965.
6548         
6549         * Control.cs: Added MakeParam.
6550         
6551 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6552
6553         * MdiClient.cs: Resume Layout before setting window
6554         states (fixes #80201).
6555
6556 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6557
6558         * MenuAPI.cs: Deselect a menu item after performing
6559         the click (fixes #80197).
6560
6561 2006-12-11  Jackson Harper  <jackson@ximian.com>
6562
6563         * TextBoxBase.cs: We need to cap this value, since Maximum -
6564         ViewPortHeight can be less than zero.
6565         - Only do selection with the left mouse button.
6566         * TextBox.cs: Don't tell the world that we have a context menu.
6567         * Control.cs: New method so that we can control whether or not the
6568         context menu is visible outside MWF.
6569
6570 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6571
6572         * ToolBarButton.cs: Fix text positon. 
6573
6574 2006-12-11  Miguel de Icaza  <miguel@novell.com>
6575
6576         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
6577
6578         * Control.cs (DoubleBuffered): Add implementation.
6579
6580         * Application.cs (OpenForms): Add.
6581
6582 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6583
6584         * Form.cs: Use opacity instead of Opactiy to determine if we need
6585         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
6586
6587 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
6588
6589         * Control.cs: Fix NRE if Control.Site was set to null.
6590
6591 2006-12-11  Chris Toshok  <toshok@ximian.com>
6592
6593         * Control.cs: ControlCollection.Remove should return if the arg is
6594         null, and ControlCollection.SetChildIndex should raise a ANE.
6595
6596 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
6597
6598         * Control.cs: Verify value set for Dock property. Code formatting
6599         updates.
6600
6601 2006-12-11  Jackson Harper  <jackson@ximian.com>
6602
6603         * TextControl.cs: Draw the caret and the selection when a flag is
6604         set on the owner.
6605         * TextBoxBase.cs: We want to draw the caret and the selection for
6606         TextBox but not for TextBoxBase.
6607         - If the window is resized and scrolling is no longer needed (the
6608         whole doc is visible) set the scroll position to zero.
6609         - The default SelectWord (the one TextBox uses) should move the
6610         caret to the end of the word.
6611         - SelectAll moves the caret to the end of the selection.
6612         * TextBox.cs: We don't selectall on focus, we just do it when the
6613         control is created.
6614         
6615 2006-12-11  Mike Kestner  <mkestner@novell.com>
6616
6617         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
6618
6619 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6620
6621         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
6622         2.0 support.
6623         * ListViewItem.cs: Add Name 2.0 property.
6624
6625 2006-12-11  Andreia Gaita  <avidigal@novell.com>
6626
6627         * TabControl.cs: Set visibility on selected or default tab 
6628         when tabcontrol handle is created, so that it's contents
6629         actually show up (duh). Fixes #80193
6630         Don't redraw the control if there is no handle created, as
6631         the selected index might be completely invalid. Added some tests
6632         to check for this.
6633
6634 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
6635
6636         * ToolBar.cs: Uses maximun width and height of all buttons as 
6637         button rectangle when ButtonSize specified, it looks strange but
6638         is what happens in Win32. Fixes #80189.
6639
6640 2006-12-11  Jackson Harper  <jackson@ximian.com>
6641
6642         * TextControl.cs: Need to track undo levels ourself, since
6643         compound actions will mess them up.
6644
6645 2006-12-10  Andreia Gaita  <avidigal@novell.com>
6646
6647         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
6648         SelectedIndex value is changed (even if it's not valid).
6649         Reset SelectedIndex to 0 when the handle is created and if
6650         the current index is invalid.
6651         Fixes SelectdeIndex unit tests and #80128
6652
6653 2006-12-08  Chris Toshok  <toshok@ximian.com>
6654
6655         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
6656         calls EndEdit, it needs to be called before we set current_cell to
6657         its new value.  Otherwise, we end up committing the value in the
6658         textbox to the new cell as well.  Fixes bug #80160.
6659
6660 2006-12-08  Chris Toshok  <toshok@ximian.com>
6661
6662         * Form.cs (set_CancelButton): if the button's DialogResult is
6663         None, set it to Cancel.  Fixes bug 80180.
6664
6665 2006-12-08  Jackson Harper  <jackson@ximian.com>
6666
6667         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
6668         to watch ourselves when setting the canvas size and setting the
6669         scrollbar values.
6670
6671 2006-12-08  Chris Toshok  <toshok@ximian.com>
6672
6673         * DataGrid.cs: comment out the two MakeTransparent calls for the
6674         time being so people using trunk (and not 1.2.2) on windows can
6675         actually use the datagrid.  This deals with bug #80151.
6676
6677 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6678
6679         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
6680         Graphics.DrawImage (image, int, int, int, int) overload instead
6681         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
6682         the dpi difference and was blurring images it drew.
6683         [Fixes bug #79960]
6684
6685 2006-12-08  Chris Toshok  <toshok@ximian.com>
6686
6687         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
6688         rowcnt is 0 (such as with an empty datasource), and make sure we
6689         initialize not_usedarea.Y to cells.Y, so we don't draw over the
6690         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
6691
6692 2006-12-08  Chris Toshok  <toshok@ximian.com>
6693
6694         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
6695         grid.
6696
6697 2006-12-08  Chris Toshok  <toshok@ximian.com>
6698
6699         [ Fixes bug #80167 ]
6700         
6701         * ThemeWin32Classic.cs: don't draw the image if the button's flat
6702         style is FlatStyle.System.
6703
6704         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
6705         ButtonBase.flat_style private, and switch uses of it to the public
6706         property.
6707         
6708 2006-12-08  Chris Toshok  <toshok@ximian.com>
6709
6710         [ Fixes bug #80121 ]
6711         
6712         * ThemeWin32Classic.cs: center the caption text in the datagrid
6713         when we draw it.
6714
6715         * DataGrid.cs: lessen the amount we add to the caption height from
6716         6 to 2.  6 was making it huge.
6717
6718 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6719
6720         * UpDownBase: Handle MouseWheel call directly instead of capturing
6721         the inner textbox's OnMouseWheel. Fixes #80166
6722
6723 2006-12-08  Jackson Harper  <jackson@ximian.com>
6724
6725         * TextControl.cs: We need to invalidate the textbox when we empty
6726         it (how had this not been discovered before?)
6727
6728 2006-12-08  Jackson Harper  <jackson@ximian.com>
6729
6730         * TextBoxBase.cs: Reworked the mouse down code so I could get it
6731         to behave like MS, we now ignore the eventargs.Click and just
6732         track state ourself, which we were already doing anyways.
6733         - Constrain the double click handler to the double click size.
6734         
6735 2006-12-08  Chris Toshok  <toshok@ximian.com>
6736
6737         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
6738         direction if that scrollbar isn't shown.  fixes bug #80158.
6739
6740 2006-12-08  Andreia Gaita  <avidigal@novell.com>
6741
6742         * NumericUpDown.cs: Update value on getter. Fixes #79950
6743
6744 2006-12-08  Chris Toshok  <toshok@ximian.com>
6745
6746         * MenuItem.cs: add back in the event cloning code.  I didn't know
6747         how to do it in the face of the EventHandlerList work i'd done
6748         last week.  Fixes bug #80183.
6749
6750 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
6751
6752         * Control.cs: Add an invalidate to the BackgroundImage setter.
6753         [Fixes 80184]
6754
6755 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6756
6757         * ToolStrip*: Add some small properties reported by MoMA, fix event
6758         firing and default properties based off of unit tests, and add some
6759         attributes based off of the class status page.
6760
6761 2006-12-07  Jackson Harper  <jackson@ximian.com>
6762
6763         * TextBoxBase.cs: Take HideSelection into account when determining
6764         whether or not to show the selection.
6765         * RichTextBox.cs: After inserting the RTF into the document move
6766         the cursor to the beginning of the document.
6767
6768 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
6769
6770         * Control.cs: Remove static ArrayList "controls" which maintained
6771         a reference to every control created.
6772         * Application.cs: Create a static FormCollection to maintain a reference
6773         to every form created.  Use it in places that formerly enumerated through
6774         the controls one looking for forms.
6775         * Form.cs: Add and remove self from above FormCollection.
6776
6777 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
6778
6779         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
6780           not libgdk (though it makes me wonder why I didn't have any
6781           problems)
6782
6783 2006-12-07  Chris Toshok  <toshok@ximian.com>
6784
6785         [ you had to know this was coming after that last commit...]
6786         
6787         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
6788         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
6789         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
6790         XCopyArea).
6791
6792 2006-12-07  Chris Toshok  <toshok@ximian.com>
6793
6794         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
6795         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
6796         all the behavior we need for double buffering.
6797
6798         * XplatUIDriver.cs: implement the 3 double buffer methods using a
6799         client side Bitmap, just like the old Control-based double buffer
6800         code did.  The methods are virtual, so each XplatUI driver
6801         subclass can replace the implementation to use a faster, platform
6802         specific approach.
6803
6804         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
6805         double buffer code, and clean things up a bit in the process.
6806
6807 2006-12-06  Chris Toshok  <toshok@ximian.com>
6808
6809         * Control.cs: reindent WndProc.
6810
6811 2006-12-06  Chris Toshok  <toshok@ximian.com>
6812
6813         [ I wanna be like BenM when I grow up ]
6814         
6815         * Hwnd.cs: create a single static Graphics object on the static
6816         Bitmap we create.  use this for our text measurements.
6817
6818         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
6819         This was causing us to allocate a backbuffer for every control,
6820         even when it wasn't flagged as double buffered.  Instead use the
6821         single graphics instance.  This might have implications for
6822         multithreaded applications.  If we run into problems we can switch
6823         to creating 1 Graphics per control, on the static Hwnd bitmap.
6824
6825         this change nets us a 7M savings in private dirty mappings when
6826         running FormsTest.exe.
6827
6828 2006-12-06  Chris Toshok  <toshok@ximian.com>
6829
6830         * ListView.cs: the BackgroundImage override is just to set
6831         attributes.  chain up to base.BackgroundImage.
6832
6833         * RichTextBox.cs: same.
6834
6835         * ToolBar.cs: same, but we need to also redraw the toolbar when it
6836         changes, so instead a handler for BackgroundImageChanged.
6837         
6838         * Control.cs: make background_image private.
6839
6840 2006-12-06  Chris Toshok  <toshok@ximian.com>
6841
6842         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
6843         sure we even need this assignment, but roll with it for now.
6844
6845         * Control.cs: make the cursor field private.
6846
6847 2006-12-06  Chris Toshok  <toshok@ximian.com>
6848
6849         * Form.cs: we don't need to explicitly set ImeMode to
6850         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
6851         behavior in the face of ImeMode.Inherit.
6852
6853         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
6854         change the ctor's assignment to use ImeMode instead of ime_mode.
6855
6856         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
6857         ImeModeInherit.  Only check for the parent's imemode (and return
6858         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
6859         This fixes the button unit test, which sets both ImeMode and
6860         DefaultImeMode to ImeMode.Disable.
6861
6862         also make the ime_mode field private.
6863
6864 2006-12-06  Chris Toshok  <toshok@ximian.com>
6865
6866         * Control.cs: make control_style private.
6867
6868         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
6869         setting the styles to true, then setting them to false instead of
6870         reverting to their previous values.
6871
6872         also, call SetStyle on the scrollbars instead of using
6873         control_style directly.
6874
6875 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
6876
6877         * FormCollection.cs: Implement. [2.0]
6878
6879 2006-12-06  Chris Toshok  <toshok@ximian.com>
6880
6881         * Control.cs: make tab_stop private.
6882
6883         * Label.cs: set TabStop, not tab_stop.  reformat some event
6884         add/remove methods to make them more compact.
6885
6886 2006-12-06  Chris Toshok  <toshok@ximian.com>
6887
6888         * RadioButton.cs: fix TabStop handling.
6889
6890 2006-12-06  Chris Toshok  <toshok@ximian.com>
6891
6892         * TextBox.cs: remove the explicit assignments to has_focus.
6893         Control does that.
6894
6895         * ButtonBase.cs: remove the assignment to has_focus.  Control will
6896         manage that.
6897         
6898 2006-12-06  Chris Toshok  <toshok@ximian.com>
6899
6900         * ButtonBase.cs: remove all uses of is_enabled from this code.
6901         it's always true when any of the code containing the checks is
6902         executed.
6903
6904 2006-12-06  Chris Toshok  <toshok@ximian.com>
6905
6906         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
6907         with different semantics (some are present in both 1.1 and 2.0
6908         profiles) so that we match MS's behavior in our unit tests.
6909
6910 2006-12-06  Jackson Harper  <jackson@ximian.com>
6911
6912         * TextControl.cs: Make this operation undoable.
6913         * TextBoxBase.cs: Factor the border width into the preferred
6914         height.
6915         - implement Modified as per the spec.
6916
6917 2006-12-06  Chris Toshok  <toshok@ximian.com>
6918
6919         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
6920
6921 2006-12-06  Chris Toshok  <toshok@ximian.com>
6922
6923         * Control.cs: make right_to_left and context_menu fields private.
6924
6925 2006-12-06  Chris Toshok  <toshok@ximian.com>
6926
6927         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
6928         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
6929         Control.child_controls private.  switch all uses over to
6930         Control.Controls.
6931
6932 2006-12-06  Chris Toshok  <toshok@ximian.com>
6933
6934         * System.Windows.Forms/GroupBox.cs,
6935         System.Windows.Forms/AccessibleObject.cs,
6936         System.Windows.Forms/ErrorProvider.cs,
6937         System.Windows.Forms/Control.cs,
6938         System.Windows.Forms/UpDownBase.cs,
6939         System.Windows.Forms/ScrollBar.cs,
6940         System.Windows.Forms/DateTimePicker.cs,
6941         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
6942         System.Windows.Forms/ToolTip.cs,
6943         System.Windows.Forms/RadioButton.cs,
6944         System.Windows.Forms/LinkLabel.cs,
6945         System.Windows.Forms/Splitter.cs,
6946         System.Windows.Forms/TextBoxBase.cs,
6947         System.Windows.Forms/ToolStripTextBox.cs,
6948         System.Windows.Forms/ContainerControl.cs,
6949         System.Windows.Forms/ThemeWin32Classic.cs,
6950         System.Windows.Forms/SizeGrip.cs,
6951         System.Windows.Forms/ToolStripDropDown.cs,
6952         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
6953         private.  switch all uses over to Control.Parent.
6954
6955 2006-12-06  Chris Toshok  <toshok@ximian.com>
6956
6957         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
6958         Control does this before calling emitting these events.
6959
6960         * TabControl.cs: same.
6961
6962         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
6963         Control.client_rect.
6964
6965         * ButtonBase.cs: use the ClientSize property instead of the
6966         client_size field.
6967
6968         * ScrollableControl.cs: same.
6969
6970         * Control.cs: another pass at making properties private.  also,
6971         move the initialization of tab_stop to the ctor.
6972
6973 2006-12-05  Andreia Gaita <avidigal@novell.com>
6974
6975         * TabControl.cs: Let the selected index be set freely if the 
6976         control handle is not yet created.
6977
6978 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
6979
6980         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
6981         internal until I can rewrite DefaultLayout.
6982         * ToolStrip.cs: Fix build error and some general cleaning.
6983         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
6984         Fix build errors caused by making some of Control's fields private.
6985
6986 2006-12-05  Jackson Harper  <jackson@ximian.com>
6987
6988         * TextControl.cs: Redo Insert a little so that it use IndexOf
6989         instead of Split, this prevents it from messing up on things like
6990         \n\n\n. Also more effecient since the split array doesn't need to
6991         be created.
6992         * TextBoxBase.cs: AppendText doesnt handle multiline and non
6993         multiline text differently, this is the first of many fixes that
6994         will make multiline/non-multiline the same thing as far as the
6995         TextBoxBase is concerned.
6996         - Don't split the text and insert lines, this can lose some line
6997         endings (like is the last line a soft or hard break). Instead use
6998         the new Insert.
6999         - Fix an off by one when combining all the lines in the Text
7000         getter.
7001         - Remove separate multiline handling from the Text getter/setter.
7002
7003 2006-12-05  Chris Toshok  <toshok@ximian.com>
7004
7005         * ButtonBase.cs: a few changes:
7006
7007         - don't reinitialize internal Control fields in the ctor when they
7008         have the same values as Control sets them.
7009
7010         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
7011         this before calling those methods.
7012
7013         - we don't need to call Refresh for anything.  use Invalidate
7014         instead.
7015
7016         - OnEnabledChanged doesn't need to redraw at all - Control.cs
7017         calls Refresh in its OnEnabledChanged.
7018         
7019         - several of the events we were registered for in the ctor to
7020         redraw ourselves already include calls to Invalidate in the
7021         property setters that raise the events.  remove the extra
7022         invalidation.
7023
7024         - reformat a switch statement that was 83274658 columns wide.
7025         
7026 2006-12-05  Mike Kestner  <mkestner@novell.com>
7027
7028         * ComboBox.cs: fix a unit test regression from a TextBox
7029         SelectionLength return of -1 when there's no selection.  
7030
7031 2006-12-05  Chris Toshok  <toshok@ximian.com>
7032
7033         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
7034         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
7035         cleaning up some of the internal Control fields being used by
7036         subclasses.
7037
7038 2006-12-05  Mike Kestner  <mkestner@novell.com>
7039
7040         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
7041         listbox after AddImplicit calls since it defaults to hidden. Add a 
7042         hack to preserve requested heights across DropDownStyle changes.
7043
7044 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
7045
7046         * PropertyGrid.cs: Hide FindFirstItem method from public API.
7047
7048 2006-12-05  Chris Toshok  <toshok@ximian.com>
7049
7050         * DataGridView.cs: fix compiler warnings.
7051
7052         * PrintControllerWithStatusDialog.cs: same.
7053
7054         * ToolBar.cs: same.
7055
7056         * FolderBrowserDialog.cs: same.
7057
7058         * Splitter.cs: same.
7059
7060         * DataGridViewComboBoxCell.cs: same.
7061
7062         * XplatUIWin32.cs: same.
7063
7064         * PictureBox.cs: same.
7065
7066         * Win32DnD.cs: same.
7067
7068         * PageSetupDialog.cs: same.
7069
7070         * FileDialog.cs: same.
7071
7072         * PrintDialog.cs: same.
7073
7074         * DataGridTextBoxColumn.cs: same.
7075
7076         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
7077
7078 2006-12-05  Chris Toshok  <toshok@ximian.com>
7079
7080         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
7081         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
7082         System.ComponentModel.EventHandlerList work.
7083
7084 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
7085
7086         * DrawTreeNodeEventArgs.cs: Added.
7087
7088 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7089         
7090         * InternalWindowManager.cs: Remove an unused field.
7091         
7092 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7093
7094         * InternalWindowManager.cs:
7095         - Save the point where the title bar is clicked.
7096         
7097         * MdiWindowManager.cs:
7098         - Only allow moving of the window as long as the 
7099         clicked point on the title bar does not get out of
7100         MdiClient's rectangle. Fixes #79982.
7101         
7102         * MdiClient.cs:
7103         - Added Horizontal/VerticalScrollbarVisible.
7104         - Simplified the scrollbar sizing algorithm.
7105         - Cache the difference in scrolled value in
7106         H/VBarValueChanged and move the calculation out
7107         of the for loop.
7108
7109 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7110
7111         * Control.cs: Make the Console.WriteLine in WndProc 
7112         write more info.
7113
7114 2006-12-05  Chris Toshok  <toshok@ximian.com>
7115
7116         * ToolStripManager.cs, ToolStripButton.cs,
7117         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
7118         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
7119         ToolStripSplitButton.cs, ToolStripSeparator.cs,
7120         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
7121         ToolStripProgressBar.cs, ToolStripContainer.cs,
7122         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
7123         to using System.ComponentModel.EventHandlerList.
7124
7125 2006-12-04  Chris Toshok  <toshok@ximian.com>
7126
7127         * LinkLabel.cs: fix up compiler warnings.
7128
7129         * TableLayoutSettings.cs: same.
7130
7131         * TreeView.cs: same.
7132
7133         * ToolBar.cs: same.
7134
7135         * TabControl.cs: same.
7136
7137         * RichTextBox.cs: same.
7138
7139         * ListViewItem.cs: same.
7140
7141         * PropertyGrid.cs: same.
7142
7143         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
7144
7145         * ToolTip.cs same.
7146
7147         * TextRenderer.cs: fix up compiler warnings.
7148
7149         * Label.cs: same.
7150
7151         * Form.cs: corcompare fixes.
7152
7153         * PictureBox.cs: fix up compiler warnings.
7154
7155         * ImageListStreamer.cs: same.
7156
7157         * TrackBar.cs: corcompare fix.
7158
7159         * Control.cs: fix up compiler warnings.
7160
7161         * SplitterPanel.cs: same.
7162
7163         * NumericTextBox.cs: same.
7164
7165         * ImageList.cs: same.
7166
7167         * StatusStrip.cs: same.
7168
7169         * ProgressBar.cs: corcompare fix.
7170
7171         * ToolStripButton.cs: fix up compiler warnings.
7172
7173         * ToolStripStatusLabel.cs: same.
7174
7175         * ToolStripSplitButton.cs: same.
7176
7177         * ToolStripSeparator.cs: same.
7178
7179         * ToolStripProgressBar.cs: same.
7180
7181         * ToolStripDropDownMenu.cs: same
7182
7183         * ToolStripDropDown.cs: same.
7184
7185         * ToolStripDropDownButton.cs: same.
7186
7187         * ToolStrip.cs: same.
7188
7189         * ToolStripControlHost.cs: same.
7190
7191         * ToolStripContentPanel.cs: same.
7192
7193         * ToolStripDropDown.cs: same.
7194
7195         * ToolStripContainer.cs: same.
7196
7197         * ToolStripPanel.cs: same, and add "new" where we need it to work
7198         with the new ArrangedElementCollection.
7199
7200         * ToolStripItemCollection.cs: add "new" where we need it to work
7201         with the new ArrangedElementCollection.
7202
7203 2006-12-04  Andreia Gaita <avidigal@novell.com>
7204
7205         * TabControl.cs: Fix default tab selection to after TabControl
7206         gets focus and not before. Fixes #80128
7207
7208 2006-12-04  Chris Toshok  <toshok@ximian.com>
7209
7210         * DataGridTableStyle.cs: remove the gross calling of
7211         datagrid.Refresh from here.  It's a broken idea and it doesn't
7212         work anyway.
7213
7214         * DataGrid.cs: instead, just register/unregister from the
7215         DataGridTableStyle events in CurrentTableStyle.  we play it
7216         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
7217         even though some would most likely not require it.  Fixes bug
7218         #80115 (and one portion of #80117 as a side effect).
7219
7220 2006-12-04  Chris Toshok  <toshok@ximian.com>
7221
7222         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
7223         so the textbox (if any) goes away.  Fixes bug #80117.
7224
7225 2006-12-04  Chris Toshok  <toshok@ximian.com>
7226
7227         * DataGridColumnStyle.cs: set the column's readonly property
7228         initially based on the property descriptor's IsReadOnly.  Fixes
7229         bug #80044.
7230
7231 2006-12-04  Chris Toshok  <toshok@ximian.com>
7232
7233         * ComboBox.cs: wrap the dropdown style changing work in
7234         SuspendLayout/ResumeLayout.  Fixes bug #79968.
7235
7236 2006-12-04  Jackson Harper  <jackson@ximian.com>
7237
7238         * TextBoxBase.cs: Fix off by one, since these are one-based.
7239         * TextBox.cs: Select all the text when we get focus.  The TextBox
7240         does this but the RTB does not.
7241
7242 2006-12-04  Chris Toshok  <toshok@ximian.com>
7243
7244         * DataGridTextBoxColumn.cs: remove some spew.
7245
7246         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
7247         but some part of me is saying "it shouldn't be here.."  At any
7248         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
7249         setting the value.
7250
7251 2006-12-04  Chris Toshok  <toshok@ximian.com>
7252
7253         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
7254         to reassign the propertydescriptor.
7255
7256 2006-12-04  Jackson Harper  <jackson@ximian.com>
7257
7258         * TextBoxBase.cs:
7259         * TextControl.cs: Remove some unused variables.  Maybe this will
7260         patch things up between mike and I.
7261         - don't split lines less then one char wide, if the viewport is
7262         that small text won't be visible anyways.
7263         
7264 2006-12-04  Jackson Harper  <jackson@ximian.com>
7265
7266         * TextBoxBase.cs: Default selection length is -1, need to do some
7267         more testing on windows to see when this is used for the property.
7268         - Redid the Lines [] property to that we properly remove soft line
7269         breaks
7270         - added support for preserving carriage returns
7271         -  CanUndo is not a variable like 'is undo enabled' it just returns
7272         true if there is undo operations available.
7273         - AppendText doesn't need to grab the last tag itself anymore,
7274         this happens automatically when we move the cursor.
7275         * TextControl.cs: Add CompoundActions to the undo class. This
7276         allows combining the other operations into one big option.  ie a
7277         paste will combine { delete old, insert new, move cursor }
7278         - Add InsertString undo operation
7279         - New method for deleting multiline text
7280         - Add carriage returns to lines. So we can preserve carriage
7281         returns when text is 'roundtripped'
7282
7283 2006-12-04  Chris Toshok  <toshok@ximian.com>
7284
7285         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
7286         minimum 0.  Fixes the scrollbar exception in bug #80136.
7287
7288 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7289
7290         * MdiClient.cs: 
7291         * MdiWindowManager: Removed unused fields and methods.
7292         
7293 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7294         
7295         * StatusBar.cs: Update all panels when a AutoSize=Contents
7296         panel needs updating.
7297         
7298         * StatusBarPanel.cs: Remove twidth and only use initialize.
7299         Fixes #80031.
7300                 
7301 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7302
7303         * Form.cs: When a form's MdiParent is set add it directly
7304         on top of the z-order in stead of relying on MdiClient's
7305         ActivateChild to do it. Fixes #80135.
7306         
7307         * MdiClient.cs: 
7308         - Remove original_order, mdi_child_list is already doing
7309         the same thing.
7310         - Create mdi_child_list on construction in
7311         stead of first use (avoids a few null checks).
7312
7313         * MenuItem.cs: Use an already existing list of mdi children
7314         to get the correct order of children and remove the other
7315         redundant list.
7316
7317 2006-12-04  Chris Toshok  <toshok@ximian.com>
7318
7319         * PropertyGridView.cs: cached_splitter_location is only used in
7320         !DOUBLEBUFFER code.
7321
7322         * PropertyGrid.cs: implement the ComComponentNameChanged event
7323         using Events, hoping that would fix the warning.  Looks like a
7324         compiler bug instead (#80144).
7325
7326         * PropertyManager.cs: remove unused method.
7327
7328 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
7329
7330         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
7331         include parentesis to fix expression evaluation. Fixes #79634.
7332
7333 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
7334         
7335         * MenuAPI.cs:
7336         - Changes to fix behavior in Menu control, some reported in #80097
7337         and other detected during behavior refactory like a select event
7338         problems.
7339         - Remove unneded "if's" conditions.
7340         - Created an internal to flag when popup is active in control, we need 
7341         it because in .NET you can have menu active but without popup active
7342         when you active menu using popup without visible items.
7343         - Mimic win32 behavior for Select and Popup events.  
7344         - Dont open popup menu when you dont have visible subitems.
7345         - Do nothing when click on disabled menu item.
7346         - Some small changes to follow the coding style guidelines.
7347         - Unselect menu only when another control gives focus. Fixes #80097.
7348         - Remove unused code.
7349         
7350         * MenuItem.cs: internal VisibleItems method to check if menu
7351         theres visible subitems, it will be usefull to fix some 
7352         behavior in Menu control.
7353         
7354 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7355         
7356         * Timer.cs: Tag property for 2.0 profile.
7357         
7358 2006-12-01  Chris Toshok  <toshok@ximian.com>
7359
7360         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
7361         
7362         * Win32DnD.cs: comment out some unused fields.
7363
7364         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
7365         some unused properties/methods.
7366
7367         * XplatUIX11.cs: fix MousePosition so we override the base class's
7368         property instead of conflicting with it.
7369
7370         * PictureBox.cs: comment out some unused fields
7371
7372         * OSXStructs.cs: make some struct fields public.
7373
7374         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
7375         MousePosition so we override the base class's property instead of
7376         conflicting with it.
7377
7378         * X11Dnd.cs: comment out some unused fields
7379
7380         * X11DesktopColors.cs: fix some struct field visibility to quiet
7381         the compiler.
7382
7383         * X11Dnd.cs: remove some debug code.
7384
7385         * ThemeClearlooks.cs: comment out unused field.
7386
7387         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
7388
7389         * ThemeGtk.cs: comment out some unused pinvokes.
7390
7391         * Timer.cs: remove some unused fields.
7392
7393         * ThemeClearlooks.cs: comment out unused field.
7394
7395         * UpDownBase.cs: comment out unused field.
7396
7397         * DataObject.cs: comment out unused field.
7398
7399         * DataGridBoolColumn.cs: reomve unused field.
7400
7401         * DataGrid.cs: remove unused field.
7402
7403         * Cursor.cs: remove old ToBitmap code.
7404
7405         * ControlPaint.cs: remove unused method.
7406
7407         * ScrollBar.cs: remove unused fields.
7408
7409         * ComboBox.cs: remove unused field, and chain up to
7410         AccessibleObject ctor.
7411
7412         * ListBox.cs: remove unused field.
7413
7414         * ButtonBase.cs: wrap a couple fields in NET_2_0.
7415
7416         * GridEntry.cs: remove unused fields.
7417
7418         * Binding.cs: remove unused fields.
7419
7420         * AxHost.cs: remove unused method.
7421
7422         * ContainerControl.cs: remove unused field.
7423
7424         * ScrollableControl.cs: remove unused fields.
7425
7426 2006-12-01  Chris Toshok  <toshok@ximian.com>
7427
7428         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
7429         the Where/WhereString stuff.  it's easy enough to CWL
7430         Environment.StackTrace.
7431
7432         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
7433         unused private fields.
7434
7435 2006-12-01  Jackson Harper  <jackson@ximian.com>
7436
7437         * TextControl.cs: Do not update the view while inserting multiline
7438         text. If we update the view we might wrap lines, before entering
7439         the new lines, which causes the new line insertion calculations to
7440         be totally fubared.
7441         - Remove an old TODO
7442         - Make debug output a little nicer
7443         
7444 2006-12-01  Chris Toshok  <toshok@ximian.com>
7445
7446         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
7447
7448 2006-12-01  Chris Toshok  <toshok@ximian.com>
7449
7450         [ fix the majority of the CS0108 warnings we've been suppressing ]
7451         
7452         * TreeView.cs: mark BackgroundImageChanged as 'new'.
7453
7454         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
7455         to "LayoutToolBar" to quiet mcs.
7456         
7457         * TabControl.cs: mark our ControlCollection class as 'new'.
7458
7459         * TextBoxBase.cs: mark some events as 'new'.
7460
7461         * Splitter.cs: TabStop is 'new'.
7462
7463         * ControlBindingsCollection.cs: mark a few methods as new since
7464         they change the visibility from protected to public.
7465
7466         * RadioButton.cs: DoubleClick -> base class, and remove unused
7467         HaveDoubleClick.
7468
7469         * MonthCalendar.cs: ImeMode property -> base class, and mark many
7470         events as new.
7471
7472         * NumericUpDown.cs: TextChanged -> base class.
7473
7474         * CheckedListBox.cs: mark our ObjectCollection class as new to
7475         quiet mcs.
7476
7477         * FolderBrowserDialog.cs: make HelpRequest event new and have it
7478         muck with the base class.
7479
7480         * StatusBar.cs: fix some mcs warnings about Update being the same
7481         name as a base class method.
7482
7483         * RichTextBox.cs: mark some events as new, and make them do things
7484         to the base class impl.
7485
7486         * UserControl.cs: mark TextChanged as new, and have it manipulate
7487         base.TextChanged.
7488
7489         * UpDownBase.cs: mark some things new.
7490
7491         * CheckBox.cs: mark DoubleClick "new", and add some text about
7492         what we need to look at.
7493
7494         * Panel.cs: make the events "new", and manipulate the base
7495         version.  these are just here for attributes.
7496
7497         * AccessibleObject.cs: make owner private.
7498
7499         * Control.cs: deal with AccessibleObject.owner being private.
7500         cache our own copy if we need it.
7501
7502         * Button.cs: add "new" to the DoubleClickEvent.
7503
7504         * ListBox.cs: no need to track our own has_focus here.  let
7505         Control.has_focus do it for us.  Also some other work to clear up
7506         warnings about not overriding base class methods of the same name.
7507         
7508         * ComboBox.cs: clear up some warnings about not override base
7509         class methods of the same name.
7510
7511 2006-12-01  Chris Toshok  <toshok@ximian.com>
7512
7513         * Form.cs: flag a few things as "new" to quiet some of the mcs
7514         warnings.
7515
7516         * AxHost.cs: same.
7517
7518         * PrintPreviewDialog.cs: same.
7519
7520         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
7521         now DGV isn't so horrible on the class status page.  also, move
7522         all events to using System.ComponentModel.EventHandlerList.  my
7523         wrists hurt.
7524
7525 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7526
7527         * MdiWindowManager.cs:
7528         - Set form to active mdi child if shown,
7529         and update the active mdi child to the next 
7530         remaining child in the z-order if the form is hidden.
7531
7532         * Form.cs: 
7533         - Track if the form has been visible and if its 
7534         visibility is beeing changed, so that the MdiClient
7535         can properly decide the ActiveMdiChild. The MdiClient 
7536         cannot track this since the form can change visibility 
7537         before MdiClient is created.
7538
7539         * MdiClient.cs:
7540         - Don't activate anything of the parent form is changing
7541         its visibility.
7542         - Rework ActiveMdiChild to only return visible mdi 
7543         children and take into account several other corner 
7544         cases.
7545
7546 2006-12-01  Chris Toshok  <toshok@ximian.com>
7547
7548         * IBindableComponent.cs: new 2.0 interface.
7549
7550 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
7551
7552         * DataGrid.cs: Font for caption area is bold by default.
7553
7554 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
7555
7556         * Menu.cs: Tag property for 2.0.
7557         
7558 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
7559
7560         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
7561         
7562 2006-12-01  Chris Toshok  <toshok@ximian.com>
7563
7564         * TreeView.cs: doh, the Begin* events should be
7565         TreeViewCancelEventHandler.
7566
7567 2006-12-01  Chris Toshok  <toshok@ximian.com>
7568
7569         * Form.cs: Form.ControlCollection already stores off the
7570         form_owner field.  don't access the base class's internal "owner"
7571         field.
7572
7573         * Control.cs: make all the fields in Control.ControlCollection
7574         private.  there's no need for any internal fields here.
7575
7576 2006-12-01  Chris Toshok  <toshok@ximian.com>
7577
7578         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
7579         OnHandleCreated.  Fixes bug #80109.
7580
7581 2006-12-01  Chris Toshok  <toshok@ximian.com>
7582
7583         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
7584         SplitContainer.cs, Control.cs, StatusStrip.cs,
7585         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
7586         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
7587         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
7588         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
7589         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
7590         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
7591         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
7592         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
7593         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
7594         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
7595
7596         do most of the work to convert our code over to use
7597         System.ComponentModel.Component.Events for
7598         adding/removing/dispatching events.
7599
7600
7601 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7602
7603         * DataGridView.cs: Fix an ArgumentNullException reported 
7604         twice today in IRC.
7605
7606 2006-11-30  Mike Kestner  <mkestner@novell.com>
7607
7608         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
7609         grabbed listbox.  Fixes #80036 and #80101.
7610
7611 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7612
7613         * Message.cs: Changed ToString() to match MS.
7614         
7615 2006-11-30  Jackson Harper  <jackson@ximian.com>
7616
7617         * TextBoxBase.cs: You can still change the selected text on a read
7618         only textbox.
7619         * TextControl.cs: Lower magic number for wrap calculations. This
7620         lets text get closer to the right (far) edge.
7621
7622 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
7623
7624         * Control.cs: Tweak 2.0 layout properties.
7625         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
7626         * TextRenderer.cs: Add a new overload.
7627         * ToolStrip*: Huge amount of changes and new features.
7628
7629 2006-11-30  Mike Kestner  <mkestner@novell.com>
7630
7631         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
7632         scroll range correct.  Fixes #79994.
7633
7634 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
7635
7636         * MdiWindowManager.cs: Update main form's text when
7637         a form is closed. (fixes #80038)
7638         
7639 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
7640
7641         * ToolBar.cs:
7642         - Fix an regression in ButtonSize.
7643         - Get ImeMode default value change to "Disable".
7644         - Get ShowTooltips default value change to true, default value is 
7645         "false" but after make a test in .NET we get "true" result as default.
7646         
7647 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
7648
7649         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
7650
7651 2006-11-29  Chris Toshok  <toshok@ximian.com>
7652
7653         * XplatUIWin32.cs (GetWindowTransparency): check return value of
7654         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
7655         SetWindowTransparency hasn't been called.
7656
7657 2006-11-29  Chris Toshok  <toshok@ximian.com>
7658
7659         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
7660         if it's supported.
7661         (set_AllowTransparency): reorder things a little so that the
7662         WS_EX_LAYERED style is removed properly.
7663
7664 2006-11-29  Chris Toshok  <toshok@ximian.com>
7665
7666         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
7667         
7668         * Form.cs: only call the XplatUI transparency method (get/set) if
7669         SupportsTransparency says it's supported. Otherwise fallback to
7670         doing nothing (in the set case) or returning the instance field we
7671         cache (in the get case).
7672
7673         * XplatUIStructs.cs: add TransparencySupport flag enum.
7674         
7675         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
7676         change to SupportsTransparency.
7677
7678         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
7679         TransparencySupport.None from SupportsTransparency.
7680
7681         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
7682         TransparencySupport.Set from SupportsTransparency.
7683
7684         * XplatUIWin32.cs: implement GetWindowTransparency calling
7685         GetLayeredWindowAttributes, and implement SupportsTransparency by
7686         checking whether or not both
7687         GetWindowTransparency/SetWindowTransparency are available
7688         entrypoints.  We need to do this since SetWindowTransparency is
7689         available as of win2k, but GetWindowTransparency requires winxp.
7690         yay win32 api.
7691
7692         * XplatUI.cs: Add GetWindowTransparency, and change
7693         SupportsTransparency to allow for either/both Get/Set.
7694
7695 2006-11-29  Chris Toshok  <toshok@ximian.com>
7696
7697         * DataGrid.cs: keep from going into an infinite loop redrawing a
7698         datagrid that has no datasource.  Fixes bug #80033.
7699
7700 2006-11-29  Chris Toshok  <toshok@ximian.com>
7701
7702         * MenuItem.cs: fix the NRE when we assign text (and therefore call
7703         Invalidate) before the mainmenu has been assigned to a control.
7704
7705 2006-11-29  Chris Toshok  <toshok@ximian.com>
7706
7707         * DataGrid.cs: detect when we should be double the double click
7708         row/column autosize stuff, although that codepath has yet to be
7709         written.  part of the work for bug #79891.
7710
7711 2006-11-29  Chris Toshok  <toshok@ximian.com>
7712
7713         * Binding.cs (SetControl): fix unit test.
7714
7715 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7716
7717         * PageSetupDialog.cs: Validate the margins and set them in
7718         PageSettings. 
7719         * NumericTextBox.cs: New class to mimic the behavior of the
7720         textboxes used in the printing dialogs.
7721
7722 2006-11-29  Andreia Gaita  <avidigal@novell.com>
7723         
7724         * Form.cs: Revert previous change (remove call UpdateBounds
7725         from form constructor), because it messes with the handle creation
7726         order, and that one needs lots and lots of love.
7727         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
7728         for valid printer and throw InvalidPrinterException if document
7729         is set but printer not valid), adding a MonoTODO. Once 
7730         handle creation is done properly, we can put this back in.
7731
7732 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7733
7734         * MenuItem.cs: Create a invalidate method for menu item, to be
7735         calling from set text, it make text changes to imadiate update
7736         on screen. Fixes #80013. 
7737         
7738 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7739
7740         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
7741         fixes bug #80070 and some other problem on toolbar buttons
7742         layout.
7743
7744 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
7745
7746         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
7747         with dotted brush.      Fixes #79564
7748         
7749 2006-11-28  Andreia Gaita  <avidigal@novell.com>
7750
7751         * Form.cs: Removed call to UpdateBounds on Form
7752         constructor, it was causing a call to CreateHandle
7753         before it was supposed to.
7754         * PrintControllerWithStatusDialog: Applied patch
7755         by Chris Toshok to hide controller when there are
7756         no printers available.
7757         PrintDialog.cs: initialize printer settings to 
7758         null - correct DefaultValues test #5
7759         * PrintPreviewControl.cs: Move PrintController
7760         initialization to GeneratePreview
7761         * PrintPreviewDialog.cs: 
7762         - Remove Preview generation     from Document_set(). It is 
7763         called on OnPaint
7764         - Throw InvalidPrinterException on CreateHandle if
7765         a Document is set but there are no printers or 
7766         printer is not valid.
7767         * ThemeWin32Classic: don't paint PrintPreviewControl
7768         if there is nothing to paint    
7769
7770 2006-11-28  Miguel de Icaza  <miguel@novell.com>
7771
7772         * Form.cs: Add another popular method.
7773
7774         * TabPage.cs: ditto.
7775
7776 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7777
7778         * MenuItem.cs: Fixed a warning.
7779         * InternalWindowManager: Fixed a warning.
7780
7781 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7782
7783         * MenuItem.cs:
7784         - When cloning a menu also clone MdiList and clone the 
7785           window menu items properly (as the forms and menuitems
7786           are kept in an internal hashtable, these need updating 
7787           as well)
7788         - Rewrote the window menu code, menu items are added in the
7789           order the forms were added to their parent, and they are
7790           updated every time the window menu is shown (before the
7791           list was only generated once, in the current order of the
7792           forms, and would never be updated). A checkmark is shown
7793           next to the item corresponding to the active mdi child.
7794
7795 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7796
7797         * XplatUIStructs.cs: 
7798         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
7799         
7800         * XplatUIWin32.cs: 
7801         - Added TME_NONCLIENT to TMEFlags.
7802         - Handles WM_NCMOUSEMOVE in GetMessage to 
7803           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
7804
7805         * MdiWindowManager:
7806         - Now merges mdi child menu to parent menu when maximized.
7807         - Recalculate NC areas of both mdi child and mdi parent. 
7808           Fixes #79757 (4).
7809           on window state and size changes.Fixes #79844 (3).
7810         - Handle WM_NCCALCSIZE to properly calculate borders.
7811
7812         * Form.cs:
7813         - Add/remove to the mdi containers list of mdi children 
7814           in the order they are added.
7815         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
7816           to the maximized mdi child.
7817         
7818         * InternalWindowManager.cs:
7819         - Only execute a click on the control buttons on the mouse up,
7820           not on the mouse down. Show the state of the button 
7821           (was only showing Normal state, never Pressed state). The
7822           pressed button now follows the mouse (if you click the Close 
7823           button and move the mouse over the Maximize button, the 
7824           Maximize button will be shown as pressed). Since Win32 does
7825           not generate WM_NCLBUTTONUP if you release the button outside
7826           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
7827           it as a mouse up.
7828         
7829         * ThemeWin32Classic.cs:
7830         - Draw a missing border around mdi child forms. Fixes #79844 (2).
7831
7832         * MdiClient.cs:
7833         - Added a list of forms which contains the order the forms are
7834           added to the mdi parent.
7835         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
7836         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
7837         - If the active form changes set the scrollbars to the top
7838           of the Z order, otherwise the form could hide them.
7839         - Scrollbars are now sized according to ClientSize, not 
7840           to Size, and they take into account the other scrollbar
7841           to determine maximum.
7842         
7843 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
7844         
7845         * XplatUI.cs:
7846         * XplatUIDriver.cs:
7847         * XplatUIX11.cs:
7848         * XplatUIWin32.cs:
7849         * XplatUIOSX.cs:
7850         - Added RequestAdditionalWM_NCMessages for windows to 
7851           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
7852           Currently only implemented in XplatUIWin32.
7853
7854 2006-11-27  Chris Toshok  <toshok@ximian.com>
7855
7856         * Hwnd.cs: only add the hwnd to the windows hash in
7857         set_WholeWindow and set_ClientWindow if whole_window/client_window
7858         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
7859
7860 2006-11-27  Mike Kestner  <mkestner@novell.com>
7861
7862         * ComboBox.cs: remove redundant OnDropDown call.  It is called
7863         from the ComboListBox.ShowWindow code. Fixes #79969.
7864
7865 2006-11-27  Chris Toshok  <toshok@ximian.com>
7866
7867         * Hwnd.cs: remove the setters for ExposePending and
7868         NCExposePending - noone uses them.
7869
7870 2006-11-27  Jackson Harper  <jackson@ximian.com>
7871
7872         * TextControl.cs: new param for ReplaceSelection which determines
7873         whether we select the new selection, or set the cursor to the end
7874         of the new selection.
7875         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
7876         pasting, select the new text.
7877         * RichTextBox.cs: Use new param for ReplaceSelection.
7878
7879 2006-11-27  Jackson Harper  <jackson@ximian.com>
7880
7881         * TextBoxBase.cs: Set the selection to the caret after the caret
7882         is moved, otherwise they get out of sync.
7883
7884 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7885
7886         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
7887         it fixes #80015
7888
7889 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
7890
7891         * ThemeWin32Classic.cs: 
7892         - Fix toolbar drop down arrow position.
7893         - Fix drop down appearance when ToolBar.Appearance is normal,
7894         it fixes #80018.
7895         
7896 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
7897
7898         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
7899         * Control.cs: Same.
7900         * UpDownBase.cs: Same.
7901         * ButtonBase.cs: Same.
7902         * ScrollBar.cs: Same.
7903         * TrackBar.cs: Same.
7904         * PictureBox.cs: Same.
7905         * UserControl.cs: Same.
7906         * Label.cs: Same.
7907         * ListControl.cs: Same.
7908         * TextBoxBase.cs: Same.
7909         * ListView.cs: Same.
7910         * RichTextBox.cs: Same.
7911         * TreeView.cs: Same.
7912
7913 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
7914
7915         * PrintDialog.cs:
7916         - Text label for where 
7917         - Text label comment was not shown
7918
7919 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
7920
7921         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
7922
7923 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7924
7925         * InternalWindowManager.cs: 
7926         - Handle WM_PARENTNOTIFY to activate the form
7927         if any child control is clicked.
7928         - The form is only sizable if not minimized.
7929
7930         * MdiWindowManager.cs:
7931         - Save the IconicBounds if the form is moved.
7932         - Rework SetWindowState, now the window bounds 
7933         are stored only if the old window state is Normal.
7934         
7935         * MdiClient.cs:
7936         - In SetWindowStates store the old window state if 
7937         the window is maximized and restore window state if
7938         the window looses focus.
7939         - Don't handle any scrollbar value changes if 
7940         initializing the scroll bars. Fixes #79771.
7941         - Reworked ArrangeIconicWindows. Current algorithm
7942         tests bounds agains all other minimized windows, if
7943         any intersections create new bounds (going left to 
7944         right, bottom to top) and then test again. When 
7945         successful the bounds are saved and never computed
7946         again. Fixes #79774.
7947
7948 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7949
7950         * InternalWindowManager.cs: Added HandleTitleBarUp.
7951
7952 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7953
7954         * NumericUpDown.cs: In .NET 1.1, user entered text is still
7955         hexadecimal in ParseUserEdit.
7956
7957         
7958 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
7959
7960         * MdiWindowManager.cs: 
7961         - Handle a click on the form's icon to show the 
7962         system menu (when maximized). Fixes #79775.
7963         - Change the existing click handler for the form's
7964         icon when not maximized to show on MouseUp.
7965         Fixes #79776.
7966
7967         * Form.cs: In OnResize only layout the mdi child's
7968         parent if it actually has a parent. Might not if
7969         the window is closing.
7970
7971
7972 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7973
7974         * MdiClient.cs: Ignore active MDI client for text of parent, if
7975         child has no text set.
7976
7977 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
7978
7979         * ToolBar.cs: Fixed ToString to match MS.
7980
7981 2006-11-22  Andreia Gaita  <avidigal@novell.com>
7982
7983         * NumericUpDown: 
7984         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
7985         update inner values on set. Fixes #79966.
7986         - Override OnLostFocus to update value on NET 2. Fixes #79950.
7987         - Fix hexadecimal parsing.
7988         
7989         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
7990         parent. Fixes #79957
7991
7992 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7993
7994         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
7995         the actual size has to be queried, since if height /
7996         width is negative Win32 changes it to 0. 
7997         Fixes #79999 on Windows.
7998         
7999         * XplatUIX11.cs: Set height / width to 0 if negative
8000         in SetWindowPos. Fixes #79999 on Linux.
8001         
8002 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
8003
8004         * ThemeWin32Classic.cs: Fix text redenring when button is
8005         pressed.
8006
8007 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
8008
8009         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
8010         and later navigate by mouse. Fixes #79528.
8011
8012 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
8013
8014         * ToolBar.cs: Set default value for TabStop to false in
8015         constructor, it fixes remaining behavior of bug #79863.
8016
8017 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8018
8019         * MdiWindowManager.cs:
8020         * InternalWindowManager.cs:
8021         - Moved a few methods specific to Mdi from 
8022         InternalWindowManager to MdiWindowManager.
8023         Fixes #79996.
8024         
8025 2006-11-21  Chris Toshok  <toshok@ximian.com>
8026
8027         * XplatUIOSX.cs: stub out InvalidateNC.
8028
8029         * XplatUIWin32.cs: implement InvalidateNC using the call I found
8030         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
8031
8032         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
8033
8034         * XplatUIDriver.cs: add InvalidateNC abstract method.
8035
8036         * XplatUI.cs: add InvalidateNC.
8037
8038 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
8039
8040         * ToolBar.cs: Invalidate complete button area when pressed status 
8041         was changed.
8042         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
8043         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
8044         by 1 when button is pressed.
8045
8046 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8047
8048         * ToolButton.cs: Invalidate middle of DropDown button when
8049         ToolBar theres DropDownArrows.
8050         * ThemeWin32Classic.cs: Change position of DropDown arrow and
8051         fix DropDown drawing operations.
8052
8053 2006-11-20  Chris Toshok  <toshok@ximian.com>
8054
8055         * NativeWindow.cs: fix the formatting of functions ('{' on the
8056         following line), and enable the thread exception dialog.
8057
8058         * Application.cs: remove the duplicate exception catching from
8059         here.
8060
8061 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8062
8063         * Toolbar.cs: Triggers button click event when click on icon
8064         of dropdown ToolBarButton. Fixes #79912.
8065         
8066 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8067
8068         * Theme.cs:
8069         * ThemeWin32Classic.cs:
8070         - Added a property WindowBorderFont to enable themeing
8071           of mdi child windows' Text.
8072           
8073 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8074
8075         * InternalWindowManager.cs:
8076         * Form.cs:
8077         * MdiClient.cs:
8078         * MdiWindowManager.cs: 
8079         - If mdi child is maximized, set mdi parent's
8080           text to "Parent - [Child]". Fixes #79770.
8081         - If there is any maximized mdi child windows, only the active 
8082           window (and any new windows) is maximized, the rest are normal.
8083         - On a WindowState change only save mdi child's window bounds 
8084           if the old window state was normal. Fixes #79774.
8085         - The scroll bars are now calculated on hopefully all
8086           necessary events. Fixed #79771 / #79844->6 / #79906.
8087         - MdiClient.SizeScrollBars() now takes into account docked 
8088           controls in the parent when calculating available space.
8089         - InternalWindowManager now always repaints the entire title
8090           area. Fixes #79844->1/4/5.
8091         - Added RequestNCRecalc on mdi child windowstate changes.
8092           Fixes #79772.
8093
8094 2006-11-20  Mike Kestner  <mkestner@novell.com>
8095
8096         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
8097         in the MouseUp handler of the listbox and move the return handling
8098         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
8099
8100 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
8101
8102         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
8103
8104 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8105
8106         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
8107           working in 1.2.x anymore. So, updated.
8108
8109 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
8110
8111         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
8112         NumberGroupSeparator of current culture instead of assuming en-US.
8113         Fixed bug #79967.
8114
8115 2006-11-17  Mike Kestner  <mkestner@novell.com>
8116
8117         * Control.cs: Add the concept of implicit bounds setting so that
8118         dock/undock round trips preserve explicitly set size/locations.
8119         Fixes #79313.
8120
8121 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
8122
8123         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
8124           can't handle those filters. (Fixes bug #79961)
8125
8126 2006-11-17  Chris Toshok  <toshok@ximian.com>
8127
8128         [ fixes the exit/crashes associated with #79835.  it's clearly
8129         suboptimal though, we need to figure out a better way to solve
8130         this. ]
8131         
8132         * PrintPreviewControl.cs: deal with the new invalid printer
8133         exceptions.
8134
8135         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
8136         and return false (so CommonDialog.ShowDialog doesn't actually show
8137         the form.)
8138
8139         * PrintDialog.cs: enable/disable the Ok button depending on
8140         whether or not the printer is valid.
8141
8142         * CommonDialog.cs (ShowDialog): only actually show the form if
8143         RunDialog returns true.
8144
8145 2006-11-17  Jackson Harper  <jackson@ximian.com>
8146
8147         * TextControl.cs: When soft splitting a line, mark it as a soft
8148         split line. Also carry over the current line break to the next
8149         line.
8150
8151 2006-11-17  Chris Toshok  <toshok@ximian.com>
8152
8153         * XplatUIX11.cs: when scrolling a window with an invalid area, we
8154         only want to shift the part of the invalid area that overlaps the
8155         area we're scrolling.  we also don't want to clear the invalid
8156         area unless the invalid area was entirely contained within the
8157         scrolling area.
8158
8159 2006-11-16  Chris Toshok  <toshok@ximian.com>
8160
8161         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
8162         also make sure to free the memory returned by XGetWindowProperty
8163         in GetText().
8164
8165         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
8166
8167 2006-11-16  Chris Toshok  <toshok@ximian.com>
8168
8169         * XplatUI.cs: add a new super secret way to get at the totally
8170         unsupported X11 backend.
8171
8172 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
8173
8174         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
8175
8176 2006-11-16  Jackson Harper  <jackson@ximian.com>
8177
8178         * TreeView.cs: Allow more explicit setting of top node position
8179         for scrollbars. Slower algo, but more accurate.
8180         - CollapseAll should maintain the current top node.
8181         * TextBoxBase.cs: When positioning the caret, use the line, pos
8182         method, since the x, y method does not grab the correct tag, and
8183         the caret height never gets set correctly. (Maybe I should just do
8184         away with the caret having its own height, and always use the
8185         carets current tag for height).
8186
8187 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
8188
8189         [Fixes 79778, 79923]
8190
8191         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
8192         Parent to the FosterParent instead.
8193
8194 2006-11-16  Jackson Harper  <jackson@ximian.com>
8195
8196         * TreeView.cs: Need to recalc the topnode when we expand or
8197         collapse. The scrolling methods can't handle this on their own,
8198         since they use differences between the last scroll position, and
8199         those difference get completely messed up since we are expanding
8200         nodes.  This problem should probably be fixed in the scrolling
8201         methods, so they can figure out exactly where they are, but this
8202         will slow things down a little.
8203         * ThemeWin32Classic.cs: Special case for groupboxes with empty
8204         strings, makes nunit-gui look a lot nicer.
8205
8206 2006-11-16  Chris Toshok  <toshok@ximian.com>
8207
8208         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
8209         the broken multithreaded event handling we have in here.  File
8210         this entry under "Why we should move to the new X11 backend".
8211
8212         Any thread can make it into UpdateMessageQueue, which gets events
8213         from the X socket - some of which could belong to hwnds being
8214         managed by a different thread.  We can also have multiple threads
8215         in UpdateMessageQueue at the same time, with each one reading from
8216         the X socket.  This leads to many problems, with the following
8217         solutions:
8218
8219         We can't use hwnd.Queue.Enqueue anywhere in here and must use
8220         EnqueueLocked.
8221
8222         The MotionNotify compression we do can't work across threads
8223         (without locking the entire queue, perhaps) since we call
8224         hwnd.Queue.Peek, so we just punt and don't compress motion events
8225         unless the owning thread is the one which got the X event.
8226
8227         ConfigureNotify is another fun one, since it modifies the hwnd's
8228         bounds and then enqueues the event.  We add a lock to Hwnd which
8229         is held when setting configure_pending to true (and enqueuing the
8230         event).
8231
8232         There is a race wrt the wake socket.  we need to make sure that
8233         only 1 thread is waiting on that socket, or else a thread could
8234         sleep waiting for data that never comes.  It's difficult (but not
8235         impossible) to make happen, because it seems to require something
8236         like the following:
8237
8238             1. Thread 1 polls on wake_receive
8239         
8240             2. poll returns saying there's data to be read on
8241                wake_receive.
8242         
8243             3. Thread 2 polls on wake_receive and immediately returns
8244                saying there's data to be read.
8245
8246             4. Thread 2 reads the wakeup byte from wake_receive
8247
8248             5. Thread 1 attempts to read the wakeup byte from
8249                wake_receive.
8250
8251             6. Thread 2 exits (due to a form closing, perhaps).
8252
8253             7. Thread 1 blocks forever.
8254         
8255         Fun, eh?
8256
8257         Fixing the Expose handling isn't done yet, and the races inherent
8258         in that piece of code are responsible for the drawing mistakes you
8259         see when generating expose events in a MT app (like NPlot).  This
8260         one is the likely to be the hardest to bandaid, and it doesn't
8261         appear to cause anything but drawing problems.  The other issues
8262         caused apps to exit or hang.
8263
8264         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
8265         called from a different thread than the one that should be calling
8266         these functions.
8267
8268         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
8269
8270 2006-11-15  Chris Toshok  <toshok@ximian.com>
8271
8272         * Application.cs: null out the context's MainForm when we exit
8273         RunLoop.  Fixes a newly checked in unit test as well as the last
8274         ODE from bug #79933.
8275
8276 2006-11-15  Chris Toshok  <toshok@ximian.com>
8277
8278         * Form.cs (set_Owner): allow a null value so we can clear the
8279         form's owner.
8280         (Dispose): set all our owned_form's Owner properties to null, and
8281         clear the owned_forms collection.
8282         (WM_CLOSE): clean up this a little bit.. still not right though.
8283
8284         * ApplicationContext.cs: OnMainFormClosed should only call
8285         ExitThreadCore if the main form isn't recreating.  Fixes unit
8286         test.
8287
8288 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8289
8290         [Fixes 78346]
8291
8292         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
8293
8294 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8295
8296         [Fixes 79433]
8297
8298         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
8299         keep popup window types from stealing focus from the main form
8300         on Windows.
8301
8302         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
8303
8304         * MenuAPI.cs: Set above flag to true.
8305
8306 2006-11-15  Chris Toshok  <toshok@ximian.com>
8307
8308         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
8309         the button being released is not in wParam.
8310
8311 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
8312
8313         * Form.cs: Add the released button to MouseEventArgs.Button
8314         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
8315         on Win32.
8316
8317 2006-11-15  Chris Toshok  <toshok@ximian.com>
8318
8319         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
8320         GetText().  untested because it's unused in our implementation.
8321         Control.Text always caches the text, even if
8322         ControlStyles.CacheText is not set.
8323
8324         fixes bug #79939.
8325
8326 2006-11-15  Chris Toshok  <toshok@ximian.com>
8327
8328         [ fixes #79933 ]
8329         
8330         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
8331         message.  no hiding, no disposing.
8332
8333         in the WM_CLOSE handler, hide the form if it's modal.
8334
8335 2006-11-15  Chris Toshok  <toshok@ximian.com>
8336
8337         * XplatUIX11.cs: use AddExpose instead of sending a message.
8338         fixes textbox border drawing.
8339
8340 2006-11-15  Chris Toshok  <toshok@ximian.com>
8341
8342         * PropertyGridView.cs: keep from crashing on mouse move/down when
8343         the property grid is empty.
8344
8345 2006-11-14  Jackson Harper  <jackson@ximian.com>
8346
8347         * TextControl.cs: Make PageUp and PageDown more like the MS
8348         versions.
8349         * TextBoxBase.cs: When we set the text property position the
8350         cursor at the beginning of the document.
8351
8352 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8353
8354         * Form.cs: if a mdi child's WindowState has changed
8355         before it's creation, it would display wrong control
8356         buttons.
8357         
8358 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
8359
8360         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
8361           (Fixes bug #79927)
8362
8363 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
8364
8365         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
8366         the window gets to paint its borders even if the window is
8367         getting smaller.
8368         
8369         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
8370         otherwise the old control buttons would still be painted 
8371         if the window gets bigger.
8372         
8373         * PaintEventArgs.cs: add an internal method so that the clip 
8374         rectangle can be changed.
8375         
8376 2006-11-13  Chris Toshok  <toshok@ximian.com>
8377
8378         [ fixes bug #79745 ]
8379         
8380         * NotifyIcon.cs: lots of cleanup.
8381
8382         * X11Structs.cs: add an enum for XEMBED messages.
8383
8384         * XplatUIX11.cs: reindent one of the giant switch statements, it
8385         was taking up an additional tab stop, and this file is already way
8386         too wide for my laptop's screen.
8387
8388         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
8389         we get it, resize the hwnd to the WMNormalHints max_width/height.
8390
8391 2006-11-13  Jackson Harper  <jackson@ximian.com>
8392
8393         * TextBoxBase.cs: Compute the value changes for the mouse wheel
8394         teh simple way.
8395
8396 2006-11-13  Chris Toshok  <toshok@ximian.com>
8397
8398         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
8399         #79898.  force a reference to the Region to stick around so the
8400         unmanaged object isn't collected (rendering our handle in the MSG
8401         stale).
8402
8403 2006-11-13  Chris Toshok  <toshok@ximian.com>
8404
8405         * XplatUIX11.cs: fix #79917 for window managers which support
8406
8407         using XStoreName on the raw utf8, and we need to convert to
8408         COMPOUND_TEXT if it's non-latin1.
8409
8410 2006-11-13  Chris Toshok  <toshok@ximian.com>
8411
8412         * Form.cs (set_DialogResult): we need to set closing to false if
8413         we're setting our result to None.  fixes bug #79908.
8414
8415 2006-11-13  Jackson Harper  <jackson@ximian.com>
8416
8417         * TextControl.cs: When formatting text, compute the adjusted tag
8418         lengths correctly, using FindTag for the end tag instead of trying
8419         to figure it out outselves.
8420         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
8421         the item, ItemHeight doesn't work, because trees with large
8422         imagelists use those for their height
8423         * TreeView.cs: ActualItemHeight factors in the image height
8424         - compute left edge of checkboxes correctly
8425         - when expanding/collapsing move the bottom down one pixel, so we
8426         aren't moving part of the node
8427
8428 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8429
8430         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
8431         stack in PaintEventStart so that it won't get disposed by the gc
8432         before reaching PaintEventEnd.
8433
8434 2006-11-13  Jackson Harper  <jackson@ximian.com>
8435
8436         * TextBoxBase.cs: Don't select the word if we are on a line with
8437         no text.
8438         - We don't need to position the caret on mouse up, since the mouse
8439         move handler should be doing this
8440         - When double clicking a blank line, the caret is advanced to the
8441         next line.
8442
8443 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
8444
8445         * TreeNodeCollection.cs: Avoid duplicating indexer code.
8446
8447 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
8448
8449         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
8450         Fixes part of bug #79910.
8451
8452 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
8453
8454         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
8455           (bug #79903). Some minor string updates to match ms.
8456
8457 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8458
8459         * FileDialog.cs: Don't add an extension if the filename
8460           already ends with that extension.
8461
8462 2006-11-10  Jackson Harper  <jackson@ximian.com>
8463
8464         * TreeView.cs: Use the currently highlighted node for the
8465         BeforeSelect event.
8466         * TextBoxBase.cs: There is no need to expand selection on
8467         MouseMove.
8468         - CanUndo means 'is there any undo operations', not 'is undo
8469         allowed on this textcontrol. Fixed ClearUndo unit test.
8470
8471 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
8472
8473         * Button.cs: only perform click when button is Selectable (so as 
8474         not to activate default buttons when they're disabled)
8475         
8476         * Control.cs: Rewrite of the SelectNextControl and related 
8477         methods. HandleClick now selects next control if the current one
8478         is being disabled.
8479         
8480         * Form.cs: OnActivated selects next active control only if Load 
8481         has already occurred. If Load hasn't run, there's no point in 
8482         selecting here, Load might change the state of controls.
8483         
8484         * FocusTest.cs: Tests marked as working again for these fixes
8485
8486 2006-11-10  Chris Toshok  <toshok@ximian.com>
8487
8488         * XplatUIX11.cs: a couple of fixes.
8489
8490         - use XInternAtoms with almost all the atoms we need to register,
8491         instead of many, many calls to XInternAtom.  should help a bit on
8492         startup time, at the expense of making the code look a little
8493         worse.
8494
8495         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
8496         isn't reparented (which seems to be a clue that we're running fon
8497         compiz) and they have an Owner form.  This fixes the tool windows
8498         in paint.net when running under compiz.
8499
8500         - when setting the opacity of a window, support both the case
8501         where the window has been reparented and also when it hasn't been.
8502         Since compiz/beryl doesn't seem to reparent windows, and these are
8503         the only window managers which support translucency, I'm not sure
8504         why we need the hwnd.reparented case at all.. but leave it in.
8505         now we get translucent windows in paint.net under compiz/beryl.
8506
8507 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8508
8509         * FileDialog.cs: Always return the value for FilterIndex that
8510           was set. Internally convert it to values that make sense.
8511
8512 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8513         
8514         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
8515
8516 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
8517
8518         * Toolbar.cs: Change default value of DropDownArrows to true, the 
8519         signature still using false to make it compatible with MS but the 
8520         initial value is true. Fixes #79855.
8521
8522 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
8523
8524         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
8525           only available on Linux.
8526
8527 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
8528
8529         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
8530         reduce number of calls to redraw method during toolbar creation.
8531
8532 2006-11-09  Mike Kestner  <mkestner@novell.com>
8533
8534         * ListView.cs : raise SelectedIndexChanged when an item is selected
8535         programmatically via the Item.Selected property.  Gert's nice 
8536         ListViewSelectedIndexChanged test fixture now runs clean.
8537
8538 2006-11-09  Mike Kestner  <mkestner@novell.com>
8539
8540         * ListView.cs : raise SelectedIndexChanged when a selected item is
8541         removed from the item collection using Remove or RemoveAt.
8542
8543 2006-11-09  Mike Kestner  <mkestner@novell.com>
8544
8545         * ListView.cs : raise SelectedIndexChanged once per selected item
8546         for compat with MS.  Fixes #79849+.
8547
8548 2006-11-09  Chris Toshok  <toshok@ximian.com>
8549
8550         * TabControl.cs: initialize row_count to 0, and set it to 1 when
8551         we need to (if we have any tab pages).  Fixes unit test.
8552
8553 2006-11-09  Chris Toshok  <toshok@ximian.com>
8554
8555         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
8556         width is 0, not 3.  Fixes a unit test.
8557
8558 2006-11-09  Mike Kestner  <mkestner@novell.com>
8559
8560         * ListView.cs : use Implicit scrollbars so that focus isn't 
8561         stolen from the listview when they are clicked. Fixes #79850.
8562
8563 2006-11-09  Chris Toshok  <toshok@ximian.com>
8564
8565         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
8566         have a root item.  Fixes #79879.
8567
8568 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
8569
8570         * FileDialog.cs:
8571           - Fix ToString ()
8572           - An ArgumentException is now thrown if a wrong filter
8573             is applied (matches ms). The previous filter doesn't change
8574             anymore if an exception is thrown.
8575           - Changing the FileName property also affects FileNames
8576         * ColorDialog.cs: The length of the CustomColors array is always
8577           16. It doesn't matter if we use a smaller array or null to update
8578           or change the custom colors property.
8579         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
8580           for RootFolder if we get a undefined value.
8581
8582 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8583
8584         * StatusBarPanel.cs: 
8585         - Width is set to MinWidth if Width is smaller than
8586         MinWidth. Fixes #79842.
8587         - MinWidth now always overrides Width (MSDN says MinWidth
8588         is set to Width when AutoSize = None, but they do not 
8589         behave like that).
8590         - Style has now the the correct default value.
8591         
8592 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8593  
8594         * TrackBar.cs: 
8595         - The control is completely invalidated on 
8596         Got/LostFocus to draw the focus rectangle correctly.
8597         - When AutoSize then height is always 45 (width for 
8598         vertical controls).
8599         
8600         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
8601         on the mouse when moved and it doesn't move when grabbed
8602         until the mouse moves as well. Also fixed some wrong 
8603         calculations when clicking on the thumb (control thought
8604         click was outside of thumb and didn't grab it).
8605         Fixes some of the issues in #79718.
8606
8607 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
8608
8609         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
8610
8611 2006-11-08  Chris Toshok  <toshok@ximian.com>
8612
8613         * PropertyGridView.cs: only call ToggleValue if the item is not
8614         readonly.
8615
8616 2006-11-08  Jackson Harper  <jackson@ximian.com>
8617
8618         * TextBoxBase.cs: The RichTextBox and textbox have very different
8619         word selection methods.  Implement the textbox's simple word
8620         selection here, and let the RichTextBox override and provide it's
8621         own.
8622         - Don't do extra selection on mouseup
8623         * RichTextBox.cs: Use the documents word selection algorithm, I
8624         think ideally, this function will be pulled into the
8625         RichTextBox.cs code someday.
8626
8627 2006-11-08  Chris Toshok  <toshok@ximian.com>
8628
8629         * RootGridEntry.cs: new class to represent GridItemType.Root.
8630
8631         * CategoryGridEntry.cs: reformat, and add boilerplate.
8632         
8633         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
8634         returns the UI parent anyway, and we need special handling to
8635         implement the GetTarget method in the face of it.  Also, implement
8636         Select().
8637
8638         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
8639         a root grid item, and use that instead of PropertyGrid.grid_items.
8640         Also, make use of TypeConverters (and add limitted support for
8641         ICustomTypeDescriptors) when initially populating the grid.
8642         Arrays now show up more or less properly.
8643
8644 2006-11-08  Chris Toshok  <toshok@ximian.com>
8645
8646         * Application.cs: set the modal dialog to non modal after we close
8647         it.  Fixes bug #79866.
8648
8649 2006-11-08  Jackson Harper  <jackson@ximian.com>
8650
8651         * TextControl.cs: When combining lines carry over the line end
8652         style from the end line.
8653         - Invalidate the selected area when setting it, if it is visible.
8654         * TextBoxBase.cs: Only rich text box can do full line selects.
8655         - Make sure to set the cursor position when there is a click,
8656         otherwise two clicks in separate areas could cause a large chunk
8657         to be selected.
8658
8659 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8660
8661         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
8662         Fixes #79863.
8663
8664 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8665
8666         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
8667         time. Remove tooltips when ToolButton click events.  Fixes #79856.
8668
8669 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8670
8671         * MenuAPI.cs: Ignore right click for menu actions and fixes
8672         menu border when clicked.  Fixes #79846.
8673
8674 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8675
8676         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
8677         MouseState after create wParam for message, this fixes mouse button 
8678         equal none in mouse up events.
8679         
8680 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
8681
8682         * Control.cs : Focus() now calls Select to set the Container's
8683         Active Control and to give it focus. To avoid infinite recursion
8684         (because ActiveControl also calls Focus at one point), a check 
8685         is made in Focus with the help of a new internal variable
8686         is_focusing.
8687
8688 2006-11-07  Mike Kestner  <mkestner@novell.com>
8689
8690         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
8691         if there's a selection.  Fixes #79849.
8692
8693 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
8694
8695         * PropertyGrid.cs: Avoid fixed height of help description label.
8696         Fixes part of bug #79829.
8697
8698 2006-11-07  Chris Toshok  <toshok@ximian.com>
8699
8700         * XplatUIX11.cs: fix #79790 again, by using the
8701         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
8702
8703 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8704
8705         * ToolBar.cs: Fix left click checking.
8706
8707 2006-11-07  Chris Toshok  <toshok@ximian.com>
8708
8709         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
8710
8711 2006-11-07  Chris Toshok  <toshok@ximian.com>
8712
8713         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
8714         PropertyManager unit tests.
8715
8716         * PropertyManager.cs: make property_name internal.
8717
8718 2006-11-07  Chris Toshok  <toshok@ximian.com>
8719
8720         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
8721         pass a unit test.  Also, don't set image_index to anything in
8722         response to setting the ImageList property.
8723
8724 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
8725
8726         * ToolBar.cs: Ignore click events when mouse button is not a
8727         left button, only accepts other button for dropdown menus.  
8728         Fixes #79854.
8729
8730 2006-11-07  Chris Toshok  <toshok@ximian.com>
8731
8732         * DataGrid.cs: make the back and parent row buttons a little less
8733         ugly.
8734
8735 2006-11-07  Jackson Harper  <jackson@ximian.com>
8736
8737         * TextBoxBase.cs: When converting to Text don't put line breaks in
8738         for soft line breaks.
8739         * TextControl.cs: There is an initial "fake" line in the document,
8740         this is now a soft break line, so that an extra line feed doesn't
8741         get added to the end of documents.
8742
8743 2006-11-07  Chris Toshok  <toshok@ximian.com>
8744
8745         [ fix bug #79778 ]
8746         
8747         * CurrencyManager.cs: if the list is readonly, don't bother
8748         checking if IBindingList.AllowNew is true.
8749
8750         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
8751         for non-DataRowView datasources..  or rather, make it not crash.
8752         (DataGridPaintRelationRow): make sure we limit the row painting to
8753         the area not covered by the row header, and make our cell width at
8754         least large enough to cover the relation area.  This allows grids
8755         that have relations but no rows to render correctly.
8756         (DataGridPaintRowContents): same type of changes here.
8757         (SetDataSource): move back to always calling
8758         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
8759         navigating back through relations.
8760         (HitTest): handle the case where we have no cells but have
8761         relations.  Right now we generate a hit in cell 0 of whatever the
8762         row is, not sure if this is strictly correct, but it works for our
8763         purposes.
8764         
8765         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
8766         bother doing anything.
8767
8768 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
8769
8770         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
8771         early version of StatusStrip.  Not responsible for eaten
8772         application or firstborn children.
8773
8774 2006-11-06  Chris Toshok  <toshok@ximian.com>
8775
8776         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
8777         call GetTabRect with a -1 index.  Fixes #79847.
8778
8779 2006-11-06  Jackson Harper  <jackson@ximian.com>
8780
8781         * TreeNodeCollection.cs: Update scrollbars after clearing.
8782
8783 2006-11-06  Chris Toshok  <toshok@ximian.com>
8784
8785         * NumericUpDown.cs: fix the ToString method for some unit test
8786         love.
8787
8788 2006-11-06  Chris Toshok  <toshok@ximian.com>
8789
8790         * PropertyGrid.cs:
8791         - set the initial SelectedGridItem if we can.
8792
8793         - Exclude non-mergable properties only if we're merging > 1
8794         object.  Merging 1 object isn't really merging, obviously.
8795
8796         - Handle PropertySort.NoSort just like Alphabetical, which is
8797         wrong of course, but at least gets things on the screen.
8798         
8799         * PropertyGridView.cs:
8800         - Add method "FindFirstItem" which finds the first property grid
8801         item, so we can select it by default.
8802
8803         - make use of GridEntry.CanResetValue.
8804
8805         - Don't call RedrawBelowItemOnExpansion here anymore, the
8806         individual GridEntry's will do that.
8807
8808         - Remove the ITypeDescriptorContextImpl internal class.
8809         
8810         * GridEntry.cs:
8811         - this class needs to implement ITypeDescriptorContext, as it's
8812         what MS's PropertyDescriptorGridEntry does, which means we can
8813         remove the ITypeDescriptorContextImpl internal class from
8814         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
8815
8816         - keep a reference to our PropertyGridView, and move the call to
8817         RedrawBelowItemOnExpansion here from PGV.  This means
8818         programmaticly setting Expanded actually does something visible.
8819
8820         - add a CanResetValue() function which takes into account our
8821         possibly multiple "selected_objects" in the merged case.  Shifting
8822         PropertyGridView to use this method fixes another unreported
8823         crasher found running the test for #79829.
8824
8825         - when Top or Bounds is updated, make sure the PropertyGridTextBox
8826         is updated to reflect this.
8827
8828         * CategoryGridEntry.cs: the ctor takes the PGV now.
8829         
8830 2006-11-06  Jackson Harper  <jackson@ximian.com>
8831
8832         * TextControl.cs: These are 1 based.
8833         * TextBoxBase.cs: When setting the selected text, don't change the
8834         selected text tags, this is done by ReplaceText, just position the
8835         cursor at the end of the new text.
8836
8837 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8838
8839         * ListView.cs: Allow label edit only when, when LabelEdit is
8840           set to true.
8841
8842 2006-11-06  Jackson Harper  <jackson@ximian.com>
8843
8844         * TextControl.cs: If a suitable wrapping position isn't found,
8845         just wrap right in the middle of a word.
8846
8847 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
8848
8849         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
8850           bug #79820.
8851
8852 2006-11-06  Jackson Harper  <jackson@ximian.com>
8853
8854         * TreeView.cs: Can't use the VisibleCount property when setting
8855         scrollbar heights, because this doesn't take into account whether
8856         or not the horz scrollbar just came visible.
8857
8858 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
8859
8860         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
8861         activated.  Fixes #79369, #79832.
8862
8863 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
8864
8865         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
8866           had to remove support for links that point to a directory. FileInfo
8867           returns no usefull information (means, the directory they point to)
8868           for such links. Replaced some empty string ("") with String.Empty.
8869
8870 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8871
8872         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
8873         NullReferenceException when attempting to remove node that is not in
8874         collection. Throw NullReferenceException when null is passed to 
8875         Remove. Allow first element of the collection to be removed. Fixes
8876         bug #79831.  In GetEnumerator ().Current return null if positioned 
8877         before the first element of the collection. In GetEnumerator ().Reset,
8878         position before first element of the collection.
8879
8880 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
8881
8882         * PropertyGrid.cs: To match MS, remove default title and description
8883         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
8884         buttons.
8885
8886 2006-11-04  Chris Toshok  <toshok@ximian.com>
8887
8888         * Theme.cs: add a Clamp method, just for kicks.
8889
8890         * ThemeWin32Classic.cs: clamp all color components to [0..255].
8891
8892 2006-11-04  Chris Toshok  <toshok@ximian.com>
8893
8894         * Form.cs: if the form isn't visible, Close() does nothing.
8895
8896 2006-11-03  Chris Toshok  <toshok@ximian.com>
8897
8898         * Form.cs (Close): if the form is modal, don't Dispose of it, only
8899         Hide it.
8900         (WndProc): don't Dispose after handling the WM_CLOSE message.
8901
8902         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
8903         them as such, instead of using casts from Control to Form.  Also,
8904         don't Dispose of the modal dialog when we fall out of the loop -
8905         Close() it instead.
8906
8907         fixes bug #79813.
8908
8909 2006-11-03  Chris Toshok  <toshok@ximian.com>
8910
8911         * Control.cs (Dispose): only go through the dispose thing if we're
8912         @disposing, and we haven't already been disposed.  Fixes bug
8913         #79814.
8914
8915         * Form.cs: no reason to call "base.Dispose()" here instead of
8916         "Dispose()".
8917
8918 2006-11-03  Mike Kestner  <mkestner@novell.com>
8919
8920         * ComboBox.cs : use ToString instead of casts in AddItem for
8921         sorting functionality.  Fixes #79812.
8922
8923 2006-11-03  Chris Toshok  <toshok@ximian.com>
8924
8925         * Application.cs: pave the way for actually using the thread
8926         exception dialog.  it's ifdefed out at the moment.
8927
8928 2006-11-03  Chris Toshok  <toshok@ximian.com>
8929
8930         * ThreadExceptionDialog.cs: until we get a better layout, actually
8931         hide the details textbox and label when we shouldn't see them.
8932
8933 2006-11-03  Jackson Harper  <jackson@ximian.com>
8934
8935         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
8936         multiline textboxes anymore.  This method also determines the
8937         width/height of a textboxes canvas area.
8938         - Sorta a revert of the last patch.  For multiline just position
8939         the controls, then bail.  This way the scrollbar width won't be
8940         altered.
8941
8942 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
8943
8944         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
8945         it dont need.  Fixes #79537.
8946
8947 2006-11-02  Jackson Harper  <jackson@ximian.com>
8948
8949         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
8950         send the status after firing the DndOver event.
8951
8952 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8953
8954         * TrackBar.cs: Now orientation only switches height / width if
8955         the control's handle is created (Win32 does it like this). Also 
8956         fixed a typo in ToString() for a test to pass, changed the 
8957         exception thrown in set_LargeChange and set_SmallChange to 
8958         match Win32 behaviour, and added TrackBar tests to the unit 
8959         tests.
8960
8961 2006-11-02  Chris Toshok  <toshok@ximian.com>
8962
8963         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
8964         not _NET_WM_STATE_NO_TASKBAR.
8965
8966 2006-11-02  Jackson Harper  <jackson@ximian.com>
8967
8968         * TextControl.cs: Increment count by one, since in the update view
8969         count - 1 is used.
8970
8971 2006-11-02  Jackson Harper  <jackson@ximian.com>
8972
8973         * TextBoxBase.cs: Use client rectangle not bounds for checking if
8974         the mouse is in the client rectangle (duh).
8975
8976 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
8977         
8978         * TrackBar.cs: Fixed trackbar jumping around when clicking
8979         on it - the trackbar was not detecting correctly at which
8980         side of the thumb the click was done. (fixes #79718)
8981
8982 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
8983
8984         * ListBox.cs: scroll visible area when change SelectedIndex to
8985         a non visible area.  Fixes #79481.
8986
8987 2006-11-01  Jackson Harper  <jackson@ximian.com>
8988
8989         * TextControl.cs: When replacing the selection move the selection
8990         start/end/anchor to the end of the new text.
8991
8992 2006-11-01  Jackson Harper  <jackson@ximian.com>
8993
8994         * XplatUIWin32.cs: When setting the parent change the controls
8995         visibility to it's visibility flag, not to it's old parents
8996         visibility (.Visible walks the parent chain).
8997
8998 2006-11-01  Chris Toshok  <toshok@ximian.com>
8999
9000         * XplatUIX11.cs: revert the #79790 fix, as the simple.
9001         XSetTransientForHint fix breaks paint .net's tool windows.  more
9002         work needed for that one.
9003
9004 2006-11-01  Chris Toshok  <toshok@ximian.com>
9005
9006         * ScrollBar.cs: throw ArgumentException instead of Exception in
9007         LargeChange/SmallChange setters.  fixes unit tests.
9008
9009 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
9010
9011         * ContainerControl.cs: reverted rev.67183 (which was itself
9012         a reversion of rev.66853... eh).
9013         
9014         * Control.cs: Fixes Reflector hang by changing Focus() call
9015         to what it was before rev.66643 (calling Select() here sets 
9016         ActiveControl, which in some situations calls back Focus and 
9017         eventually does a stack overflow). Temp fix.    
9018         Changes to GetNextControl() to not look for children to select when
9019         parent cannot be selectable (so it looks for siblings instead)  
9020         
9021 2006-10-31  Mike Kestner  <mkestner@novell.com>
9022
9023         * CheckedListBox.cs : off by one error in returned index from
9024         ObjectCollection.Add.  Fixes #79758.
9025
9026 2006-10-31  Chris Toshok  <toshok@ximian.com>
9027
9028         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
9029         calls for the textbox/spinner, to keep from recursing to the point
9030         where we crash.  Fixes #79760.
9031
9032 2006-10-31  Chris Toshok  <toshok@ximian.com>
9033
9034         * ListControl.cs (set_SelectedValue): don't throw exceptions on
9035         null/"" value, just return.  matches ms's behavior and fixes some
9036         failing tests.
9037
9038 2006-10-31  Chris Toshok  <toshok@ximian.com>
9039
9040         * Control.cs (set_Capture): make a logic a little easier to
9041         follow.
9042
9043         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
9044         if it's being destroyed.  A necessary fix surely, but a bandaid
9045         also, to fix the stuck capture problem in bug #78413.
9046
9047 2006-10-31  Chris Toshok  <toshok@ximian.com>
9048
9049         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
9050         convention of clearing hwnd.ClientRect when we set the
9051         width/height (so it'll be recalculated by Hwnd).
9052
9053 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
9054
9055         * ContainerControl.cs: reversed Contains check from
9056         ActiveControl due to hanging problems. This fix
9057         partly regresses #79667 (button does not have
9058         initial focus), so this might be a symptom for 
9059         a larger parenting problem (set_ActiveControl
9060         is being called but the child control does
9061         not have the parent set yet?)   
9062         
9063 2006-10-31  Mike Kestner  <mkestner@novell.com>
9064
9065         * MenuAPI.cs : fix keynav when menu is click activated.
9066
9067 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
9068
9069         * ToolStrip*: Version 0.2.
9070
9071         * MenuStrip.cs: Version 0.1.
9072
9073         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
9074
9075 2006-10-30  Chris Toshok  <toshok@ximian.com>
9076
9077         [ fixes the oversized notify icon issue in bug #79745 ]
9078         
9079         * NotifyIcon.cs: scale the icon down to the size we're given by
9080         the XplatUI layer (this would be faster if we did it once instead
9081         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
9082         since it's never invoked.
9083
9084         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
9085         pixels high by default, so let's hardcode our systray icon to that
9086         size.  The SYSTEM_TRAY protocol should really have a way for
9087         client apps to query for the correct icon size.. but oh well.  A
9088         couple of patches to deal with the screwy client_window ==
9089         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
9090         instance, and also make sure we don't XSelectInput twice).
9091
9092 2006-10-30  Chris Toshok  <toshok@ximian.com>
9093
9094         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
9095         recreating forms.  Control recreation is the bane of my existence.
9096         Fix it in a way that keeps everyone happy.
9097
9098 2006-10-30  Chris Toshok  <toshok@ximian.com>
9099
9100         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
9101         just non-CHILD ones.  otherwise sometimes scrollbars end up with
9102         client_windows not being resized to the proper size (ReportBuilder
9103         shows this extremely well).
9104
9105 2006-10-30  Chris Toshok  <toshok@ximian.com>
9106
9107         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
9108         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
9109         showing up in the gnome taskbar.  Fixes bug #79790.
9110
9111 2006-10-30  Chris Toshok  <toshok@ximian.com>
9112
9113         * ApplicationContext.cs: guard against a NRE.
9114
9115         * Application.cs: null out the old MainForm for the context, so we
9116         don't try to use it again once it's disposed.  Fixes bug #79783.
9117
9118 2006-10-30  Chris Toshok  <toshok@ximian.com>
9119
9120         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
9121         BindingContext, set the data source directly, otherwise do the
9122         lazy approach - the actual ListManager will be created when we get
9123         a BindingContext. Fixes bug #79700.
9124
9125 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9126
9127         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
9128           XplatUIX11.cs: Remove old 2 parameter SetVisible.
9129
9130         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
9131
9132 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
9133
9134         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
9135         of SetVisible that allows a window to be shown, but not activated.
9136         This is needed on Windows for MenuStrip, and can probably be used
9137         with MainMenu and ComboBox to fix the focus stealing issues on
9138         Windows.
9139
9140         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
9141
9142 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
9143
9144         * PictureBox.cs: Fix the output of the ToString method.
9145
9146 2006-10-29  Chris Toshok  <toshok@ximian.com>
9147
9148         * Control.cs (get_TopLevelControl): fix bug #79781.
9149
9150 2006-10-29  Chris Toshok  <toshok@ximian.com>
9151
9152         * ListControl.cs (set_DataSource): throw Exception here, not
9153         ArgumentException, to match MS behavior.
9154
9155 2006-10-29  Chris Toshok  <toshok@ximian.com>
9156
9157         * Form.cs: remove the try-catch's around calls to GetWindowState.
9158         We can just check the return value.
9159
9160         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
9161         Instead return -1.
9162
9163         * XplatUI.cs: Add note about additional return value for
9164         GetWindowState.
9165
9166 2006-10-29  Chris Toshok  <toshok@ximian.com>
9167
9168         * Control.cs (CreateHandle): when we create our handle, we also
9169         create the handles of our child controls.  Fixes one of the
9170         Control unit tests (CH11).
9171
9172 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9173
9174         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
9175
9176 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
9177
9178         * ThemeClearlooks.cs: A little speedup.
9179
9180 2006-10-27  Chris Toshok  <toshok@ximian.com>
9181
9182         * Control.cs: implement Control.FromChildHandle in a way that
9183         matches the docs (and fixes the failed test.)
9184
9185 2006-10-27  Chris Toshok  <toshok@ximian.com>
9186
9187         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
9188         comments).
9189
9190         * DataGrid.cs: implement ResetForeColor such that the tests
9191         succeed.
9192         
9193 2006-10-27  Chris Toshok  <toshok@ximian.com>
9194
9195         * ToolBarButton.cs: setting text/tooltiptext to null results in it
9196         being set to "".  Fixes bug #79759.
9197
9198 2006-10-27  Jackson Harper  <jackson@ximian.com>
9199
9200         * TextControl.cs: We need to clear the entire selection area when
9201         setting the start, otherwise multiline selections are still
9202         visible.
9203
9204 2006-10-26  Chris Toshok  <toshok@ximian.com>
9205
9206         * PropertyGridView.cs: 
9207
9208         - ifdef all the code specific to the double
9209         buffer case, and provide some alternatives in the non-doublebuffer
9210         code, which makes heavy use of XplatUI.ScrollWindow to move things
9211         around without having to invalidate (and cause flicker).  There
9212         are still some drawing problems in the non-doublebuffered case, so
9213         DOUBLEBUFFER is defined by default.
9214
9215         - Fix the way dropdowns are handled.  now we explicitly watch for
9216         the events which might cause the dropdown to close, and break out
9217         of the nested event loop there.  This gets rid of all Capture
9218         code, at the expense of the Msg special casing.  Seems to work,
9219         though, and fixes bug #79743.
9220
9221 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
9222         * Control.cs: SetIsRecreating now recreates implicitly added
9223         child controls as well. Finally fixes #79629. The flag passed to 
9224         SetIsRecreating has also been removed since it wasn't used.
9225         
9226 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9227
9228         * PageSetupDialog.cs: Clean some code, fix some bits, 
9229         add some checks, and add a printer sub-dialog.
9230
9231 2006-10-26  Chris Toshok  <toshok@ximian.com>
9232
9233         * PropertyGrid.cs: make set_SelectedObject call
9234         set_SelectedObjects, and move the duplicate logic to the
9235         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
9236
9237         * PropertyGridView.cs: hide the textbox when we get a
9238         SelectedObjectsChanged event.
9239
9240         Fixes bug #79748.
9241
9242 2006-10-26  Chris Toshok  <toshok@ximian.com>
9243
9244         * PropertyGridView.cs: deal with the type converter not supporting
9245         GetStandardValues() or GetStandardValues() returning null, which
9246         is does in the default case.  Fixes #79742.
9247
9248 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9249
9250         * CheckedListBox.cs: nunit no longer crashes when selecting 
9251         Project/Edit menu option
9252         
9253 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
9254
9255         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
9256         is no menu selected. fixes #79739
9257
9258 2006-10-25  Chris Toshok  <toshok@ximian.com>
9259
9260         * PropertyGridView.cs: factor out the splitter invalidation code
9261         into the SplitterPercent setter, and for kicks implement the
9262         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
9263         amount in either direction.
9264
9265 2006-10-25  Chris Toshok  <toshok@ximian.com>
9266
9267         * PropertyGridView.cs: do some cleanup of the brush used to draw
9268         text - read only fields should be grayed out.  not sure how to do
9269         this with the textbox, though.  but the textbox's should also be
9270         readonly now at least.  Also, hide/show the textbox when resizing
9271         the control.
9272         
9273         * CursorConverter.cs: use System.Reflection when getting the
9274         properties of Cursors, as TypeDescriptor.GetProperties isn't
9275         returning static properties.
9276
9277 2006-10-25  Chris Toshok  <toshok@ximian.com>
9278
9279         * PropertyGridView.cs: factor out the up/down handling, and reuse
9280         it for page up/down.  also add End/Home support.
9281
9282 2006-10-25  Chris Toshok  <toshok@ximian.com>
9283
9284         * PropertyGridView.cs:
9285
9286         - ensure the selected grid item is visible in the scrolled area,
9287         fixes bug #79572.
9288
9289         - fix Keys.Down handling when you're on the last item in the
9290         propertygrid.
9291
9292 2006-10-25  Mike Kestner  <mkestner@novell.com>
9293
9294         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
9295         clicks too.  Fixes #79725.
9296
9297 2006-10-24  Chris Toshok  <toshok@ximian.com>
9298
9299         * PropertyGrid.cs: use property.Converter instead of
9300         TypeDescriptor.GetConverter(property.PropertyType), so we catch
9301         TypeConverters declared on the property as well as on the
9302         PropertyType.  Fixes bug #79678.
9303
9304 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
9305
9306         * MimeIcon.cs, Mime.cs:
9307           Fallback to the default platform handler if no shared mime info
9308           stuff exists (fixes #79693).
9309
9310 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9311         * ContainerControl.cs: Incorrect contains check in ActiveControl 
9312         from previous fix (duh).
9313
9314 2006-10-20  Chris Toshok  <toshok@ximian.com>
9315
9316         * PropertyGridView.cs: the dropdown should be MIN(number of items
9317         in list, 15).  Fixes #79551.
9318
9319 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
9320         Fixes #79384, #79394, #79652, #79667
9321         * Application.cs: 
9322         
9323         - Modal windows are now destroyed in the proper order for windows
9324         
9325         * ContainerControl.cs:
9326         
9327         - ActiveControl setter has more conditions on when to return:
9328                 - if we're reselecting the active control, but it actually
9329                 didn't have focus (window hidden or some such), it runs
9330                 - if the active control being selected doesn't actually 
9331                 exist in the container, it returns
9332         
9333         * Form.cs
9334         
9335         - The ShowDialog now gets the current form as the owner when
9336         invoking without parameters, and correctly activates the owner 
9337         when returning
9338         
9339         * MessageBox.cs
9340         
9341         - MessageBox now catches the Escape key to exit
9342
9343 2006-10-20  Chris Toshok  <toshok@ximian.com>
9344
9345         * PropertyGridView.cs: fix a number of issues (bug #78565, and
9346         most of bug #79676):
9347
9348         - you can navigate around the property grid with the arrow keys.
9349
9350         - the dropdown is sized properly when the pg has a vertical
9351         scrollbar.
9352
9353         - fix the indentation for subentries, and properly select the
9354         entire label rect.
9355
9356         - fix the gray bar's drawing (only draw it to the last element,
9357         not for the height of the control.  Also make sure we draw that
9358         last horizontal grid line.
9359
9360         - use the same mechanism the datagrid uses wrt the editing textbox
9361         when scrolling/resizing/etc.  Namely, we hide it first, do the
9362         operation, then show it again (if it's still visible).
9363         
9364         - aggressively remove a lot of unnecessary refreshes (and also
9365         calls to Invalidate(). call more limited variants, and only redraw
9366         what we need.)
9367         
9368         * PropertyGrid.cs:
9369
9370         - when we're populating the merged collection, fill in the UI
9371         parent with either the passed in item, or the category item we
9372         create.
9373
9374         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
9375
9376         * GridItem.cs: drop some fully qualified names.
9377         
9378         * GridEntry.cs: add a "UIParent", which is basically the parent
9379         treenode.
9380
9381         * GridItemCollection.cs: add an IndexOf method.
9382
9383 2006-10-20  Mike Kestner  <mkestner@novell.com>
9384
9385         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
9386         a working win32 NC invalidation mechanism, we can't invalidate
9387         menus.  [Fixes #79705]
9388
9389 2006-10-20  Mike Kestner  <mkestner@novell.com>
9390
9391         * ListBox.cs : don't update the VScrollbar if the list is empty,
9392         just hide it.  [Fixes #79692]
9393
9394 2006-10-20  Jackson Harper  <jackson@ximian.com>
9395
9396         * RichTextBox.cs: Handle some special chars better, and don't skip
9397         the entire group when we encounter a special char that we don't
9398         handle correctly.
9399
9400 2006-10-18  Chris Toshok  <toshok@ximian.com>
9401
9402         * PropertyGridView.cs: address a number of issues from bug #79676,
9403         mostly of the cosmetic variety.
9404
9405         - The highlight rectangle for indented items not extends all the
9406         way to the left.
9407
9408         - Indented items aren't indented so much.
9409
9410         - the dropdown is properly sized width-wise if the pg has a
9411         vertical scrollbar.
9412
9413 2006-10-18  Chris Toshok  <toshok@ximian.com>
9414
9415         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
9416         systray stuff is rather convoluted to begin with.
9417
9418         systray icons are a single window for some reason (that I haven't
9419         figured out yet), and for them, client_window == whole_window.
9420         Given the way the tests are structured elsewhere to determine
9421         which paints are pending (client vs. nc), that situation will
9422         always yield PAINT, not NCPAINT.  So, if we have a pending
9423         nc_expose and no pending expose, remove the hwnd from the paint
9424         queue, and also set nc_expose_pending to false, to keep us from
9425         blocking further expose's adding the hwnd to the paint queue.
9426
9427         phew.  like i said, a rather convoluted change.  Fixes the
9428         notifyicon repaint issues in bug #79645.
9429
9430 2006-10-18  Chris Toshok  <toshok@ximian.com>
9431
9432         * Form.cs: when getting the backcolor of the form, don't get
9433         base.BackColor, as this allows parents to influence the background
9434         color.  This breaks mdi forms.  Instead, if the background_color
9435         is empty, return the default.
9436
9437 2006-10-18  Chris Toshok  <toshok@ximian.com>
9438
9439         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
9440         to being private instead of internal static.
9441
9442         * Control.cs: remove all the stupid ParentWaitingOnRecreation
9443         crap, it wasn't working for more deeply nested controls anyway,
9444         and we already have the is_recreating flag - use that instead.
9445         Before calling DestroyHandle in RecreateHandle, recurse through
9446         the control tree setting it to true.  this returns the recreate
9447         code to much of its original simplicity, while now guaranteeing we
9448         actually recreate everything we're supposed to.  This change gets
9449         fyireporting actually showing mdi children.
9450
9451 2006-10-17  Chris Toshok  <toshok@ximian.com>
9452
9453         * Form.cs: remove some debug spew, and collapse some duplicate
9454         code at the end of SetClientSizeCore.
9455
9456         * XplatUIX11.cs: 
9457         - add some more debug spew here too wrt Destroy handling.
9458         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
9459         in Control's handling of WM_DESTROY.
9460         - Remove the handling of zombie window DestroyNotifies from the
9461         event loop - we don't need it.  Now the only DestroyNotifies we
9462         actually handle are ones generated by X.
9463         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
9464         match gtk's (functioning) handling of this. This keep metacity
9465         from leaving droppings in the form of wm borders with no window
9466         contents all over the place.
9467
9468         * Control.cs:
9469         - add a bunch of debug spew wrt control recreation.
9470         - fix a bug where we weren't tracking Visible properly on
9471         recreated hwnds.
9472         - fixed the WM_PAINT double buffer handling to support re-entrant
9473         calls (yes, i know it's gross, but it's happening to us).
9474
9475 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9476         * ThemeWin32Classic.cs: changed drawing of selected days
9477         to make them look better.
9478
9479 2006-10-16  Chris Toshok  <toshok@ximian.com>
9480
9481         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
9482         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
9483
9484         * XplatUIX11.cs: move away from using hwnd.client_dc and
9485         hwnd.non_client_dc and on to a stack of dc's (and in window's
9486         case, PAINTSTRUCT's), so we can deal with nested Paint calls
9487         without puking or not disposing of Graphics objects.
9488
9489         * XplatUIOSX.cs: same.
9490
9491         * XplatUIWin32.cs: same.
9492
9493 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9494
9495         * FileDialog.cs: Don't call on_directory_changed inside
9496           OnSelectedIndexChanged (it changes the SelectedIndex too).
9497           Instead move it to OnSelectionChangeCommitted.
9498
9499 2006-10-13  Chris Toshok  <toshok@ximian.com>
9500
9501         * XplatUIX11.cs: more Destroy work.  the current code does the
9502         following things, in order:
9503
9504         1. Enumerates all handles of all controls at or below the one
9505         being destroyed, in pre-order.  As it is doing this, it marks the
9506         handles as zombie and clears all references to them.
9507         
9508         2. calls XDestroyWindow on the window passed in.
9509
9510         3. SendMessage's WM_DESTROY to all he handles in the accumulated
9511         list.
9512
9513 2006-10-13  Chris Toshok  <toshok@ximian.com>
9514
9515         * XplatUIX11.cs: set hwnd.zombie to true before calling
9516         SendMessage (WM_DESTROY).  this keeps us from marking the new
9517         window a zombie, and also keeps us from calling sendmessage at
9518         all.
9519
9520 2006-10-13  Jackson Harper  <jackson@ximian.com>
9521
9522         * TextControl.cs: Do not show the caret and selection at the same
9523         time.  Reduces ugliness by 35%.
9524
9525 2006-10-13  Chris Toshok  <toshok@ximian.com>
9526
9527         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
9528         zombie after we do the recursive call, so we actually do call
9529         SendMessage on the children controls.
9530         (GetMessage): if we find a pending paint event for a zombie hwnd,
9531         remove the hwnd from the paint queue, or else it will always be
9532         there (and we'll effectively loop infinitely)
9533
9534 2006-10-13  Mike Kestner  <mkestner@novell.com>
9535
9536         * MenuItem.cs : add Selected format under keynav too.
9537         Fixes #79528.
9538
9539 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
9540
9541         * PropertyGrid.cs: Fixed some NRE's and small difference between our
9542         implementation and that of MS.
9543
9544 2006-10-13  Chris Toshok  <toshok@ximian.com>
9545
9546         * Control.cs (OnInvalidated) only futz with the invalid_region if
9547         the control is double buffered.  this fixes the apparent hang in
9548         the ListView unit tests.  Someone needs to make the
9549         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
9550
9551 2006-10-13  Chris Toshok  <toshok@ximian.com>
9552
9553         * PropertyGridView.cs:
9554
9555         - do a little refactoring so that only one place calls
9556         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
9557         else call that.  Also make it Refresh, since there are redraw bugs
9558         otherwise (we should take a look at that...)
9559
9560         - do a little more refactoring work to share the body of code
9561         involved with the drop down.  it was duplicated in the code
9562         dealing with the listbox handling and in the code dealing with the
9563         UITypeEditors.
9564
9565         - add a Capture to the dropdown form's control once it's
9566         displayed, and add a MouseDown handler that checks to make sure
9567         the position is inside the control.  If it's not, close the
9568         dropdown.  This fixes #78190.
9569
9570         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
9571         if the value is different than the initial value.
9572         
9573 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
9574
9575         * Control.cs: see #78650
9576         - Fixed GetNextControl for several cases:
9577                 - Changed FindFlatForward to return 
9578                 correct sibling control when more than one
9579                 control has same TabIndex as the currently 
9580                 focused one.
9581                 - Changed FindFlatBackward to loop children
9582                 from last to first and apply same logic as in
9583                 FindFlatForward
9584                 - Changed FindControlForward to search for
9585                 children when control is not a container
9586                 but has children, or search for siblings if
9587                 control is a container...
9588                 - Changed FindControlBackward   to continue
9589                 searching for child controls when hitting 
9590                 Panel-like parents
9591                 
9592         - Fixed Focus method to update ActiveControl
9593         (FocusTest.FocusSetsActive failure)
9594         
9595         * TabControl.cs:
9596         - Focus rectangle now refreshes when gaining
9597         or losing focus
9598         - Removed grab for Tab key on IsInputKey that 
9599         was keeping tab navigation from working (#78650)
9600
9601 2006-10-13  Chris Toshok  <toshok@ximian.com>
9602
9603         * PropertyGridView.cs:
9604         - Rewrite SetPropertyValue to loop over SelectedGridItem's
9605         SelectedObjects.
9606
9607         - Deal with GridItem.Value == null a few places.
9608
9609         * PropertyGrid.cs: 
9610         - replace the PopulateGridItemCollection with a pair of methods
9611         which compute the intersection of all the properties in the
9612         SelectedObjects array.  Fixes #79615.
9613
9614         - Throw ArgumentException from set_SelectedObjects if there's a
9615         null in the array.
9616
9617         - Add GetTarget method which can be used to traverse up the
9618         GridItem.Parent chain.  It depends on the assumption that
9619         selected_objects for different GridEntries are always in the same
9620         order (a safe assumption).  Use this method and loop over all the
9621         selected objects in the entry when calling RemoveValueChanged and
9622         AddValueChanged.
9623         
9624         * GridEntry.cs: Make this handle multiple selected objects.
9625         .Value returns null if not all the selected objects share the same
9626         value.
9627
9628 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
9629         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
9630           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
9631           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
9632           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
9633           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
9634         add additional functionality.
9635
9636 2006-10-12  Mike Kestner  <mkestner@novell.com>
9637
9638         * ErrorProvider.cs : new ToolTipWindow ctor sig.
9639         * HelpProvider.cs : new ToolTipWindow ctor sig.
9640         * ToolTip.cs : remove ToolTip param from Window sig since it is
9641         not used.
9642         * ToolBar.cs : add tooltip support.  Fixes #79565.
9643
9644 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9645
9646         * ComboBox.cs: move the events in set_SelectedIndex to 
9647         after the call to HighlightIndex in order to avoid 
9648         possible recursion and subsequent problems with the call
9649         to HighlightIndex and include a range check in 
9650         set_HighlightIndex. Fixes #79588
9651         
9652 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9653
9654         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
9655         to ui thread's settings instead of sunday. 
9656         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
9657
9658 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
9659
9660         * DateTimePicker.cs
9661         * MonthCalendar.cs
9662         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
9663         and implement missing functionality (selecting different parts 
9664         of the date and edit them individually with the keyboard).
9665         
9666 2006-10-11  Chris Toshok  <toshok@ximian.com>
9667
9668         * Control.cs (OnInvalidated): fix NRE relating to last change.
9669
9670 2006-10-11  Chris Toshok  <toshok@ximian.com>
9671
9672         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
9673         atoms in _NET_WM_STATE here if the window is maximized.  We need
9674         to do this because we're *replacing* the existing _NET_WM_STATE
9675         property, so those atoms will be lost otherwise, and any further
9676         call to GetWindowState will return Normal for a window which is
9677         actually maximized.  Fixes #79338.
9678
9679 2006-10-11  Jackson Harper  <jackson@ximian.com>
9680
9681         * TextControl.cs: Special case for setting selection end to
9682         selection start, we basically kill the anchor.
9683         - some todo comments.
9684
9685 2006-10-11  Chris Toshok  <toshok@ximian.com>
9686
9687         * Control.cs: switch to using an "invalid_region" to track which
9688         parts of the image buffer need updating.  This is more code than
9689         the simple fix from r66532.  That version just attempted to always
9690         fill the entire buffer on redraw, which turns out to be
9691         inefficient when invalidating small rectangles.  This version
9692         simply adds the invalid rectangle to the invalid region.  When we
9693         get any WM_PAINT message we see if it can be filled using the
9694         image buffer, and if it can't (if the paint event's clip rectangle
9695         is visible in the invalid region) we first fill the image buffer.
9696         So, the image buffer is still a cache, we just fill it lazily.
9697
9698         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
9699         need it any longer.
9700
9701 2006-10-11  Chris Toshok  <toshok@ximian.com>
9702
9703         * XplatUIX11.cs (SetWindowPos): we need to update both position as
9704         well as size after calling XMoveResizeWindow.  This keeps us from
9705         ignoring future SetWindowPos calls.  Fixes the disappearing
9706         DateTimePicker in the ToolBarDockExample from bug #72499.
9707
9708 2006-10-11  Chris Toshok  <toshok@ximian.com>
9709
9710         * TextBoxBase.cs: reorder things a bit when it comes to
9711         resizing-causing-recalculation.  we were recalculating the
9712         document when our position was changed, which shouldn't happen.
9713         We only care about size changes.  Clear up some more redundant
9714         recalculation calls while I'm at it.  This makes the toolbar dock
9715         example snappy when you're just dragging toolbars around (since it
9716         causes a relayout whenever you move one.)
9717
9718 2006-10-11  Chris Toshok  <toshok@ximian.com>
9719
9720         * ToolBarButton.cs (get_Rectangle): this only returns
9721         Rectangle.Empty if Visible == false, or Parent == null.
9722         Parent.Visible doesn't matter.
9723
9724 2006-10-10  Chris Toshok  <toshok@ximian.com>
9725
9726         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
9727         by .net 1.1, so switch to an internal method instead.
9728
9729 2006-10-10  Chris Toshok  <toshok@ximian.com>
9730
9731         * Control.cs (WM_PAINT): when a control is double buffered we draw
9732         initially to the ImageBuffer and then copy from there.  But when a
9733         parent control which has child controls is double buffered, the
9734         initial drawing doesn't encompass the entire ClientRectangle of
9735         the parent control, so we end up with uninitialized bits (this is
9736         easily seen by dragging the top toolbar in
9737         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
9738         manually set the ClipRectangle of the paint_event (only the one we
9739         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
9740         of the nastiness in bug #72499.
9741
9742         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
9743         which we use in Control.cs's WM_PAINT handling.
9744
9745 2006-10-10  Jackson Harper  <jackson@ximian.com>
9746
9747         * TextBoxBase.cs: Finish off the autoscrolling stuff.
9748
9749 2006-10-10  Chris Toshok  <toshok@ximian.com>
9750
9751         * Cursor.cs: Apply a slightly different patch to the one suggested
9752         in #79609.
9753
9754 2006-10-10  Jackson Harper  <jackson@ximian.com>
9755
9756         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
9757         not the parent form.
9758         * TextControl.cs: use difference in old line count vs new count to
9759         calculate how many lines were added, this takes into account soft
9760         line breaks properly.
9761
9762 2006-10-10  Chris Toshok  <toshok@ximian.com>
9763
9764         * LinkLabel.cs: don't call MeasureCharacterRanges against a
9765         rectangle located at 0,0 and the size of the text.  Use
9766         ClientRectangle instead.  This fixes rendering of non-left aligned
9767         link labels.
9768
9769 2006-10-10  Jackson Harper  <jackson@ximian.com>
9770
9771         * TextBoxBase.cs: When we set the selection start position the
9772         caret.
9773         * TextControl.cs: Need to update the caret when we decrement it to
9774         zero.
9775         - Make sure that the selection_visible flag gets reset to false if
9776         the selection isn't visible.  Before this you could get it set to
9777         visible by changing the selection start, then changing the end to
9778         equal the start.
9779
9780 2006-10-09  Jackson Harper  <jackson@ximian.com>
9781
9782         * TreeView.cs: Don't update scrollbars when we aren't visible.
9783         * TreeNodeCollection.cs: Only need to update scrollbars if being
9784         added to an expanded visible node or the root node.
9785
9786 2006-10-09  Chris Toshok  <toshok@ximian.com>
9787
9788         * XplatUIX11.cs (SendMessage): fix NRE.
9789
9790 2006-10-09  Jackson Harper  <jackson@ximian.com>
9791
9792         * TextBoxBase.cs: Implement horizontal autoscrolling.
9793         * TextControl.cs: Add a movement types that allows moving forward
9794         and backwards without wrapping.
9795
9796 2006-10-09  Mike Kestner  <mkestner@novell.com>
9797
9798         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
9799         with focus "expansion" of labels.  Fixes #79532 and then some.
9800         * ThemeWin32Classic.cs : add LineLimit to ListView label format
9801         when wrapping.
9802
9803 2006-10-09  Jackson Harper  <jackson@ximian.com>
9804
9805         * TextBoxBase.cs: Set the default max values to MaxValue since
9806         we use the scrollbar for autoscrolling and the default value is
9807         100.  If we don't do this the caret won't keep up with typing
9808         after about 18 characters.
9809         * TextControl.cs: Make sure the selection is offset by the
9810         viewport x.  This fixes selection when using auto scrolling.
9811
9812 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
9813         
9814         * Form.cs: The active control should be selected after the 
9815         OnLoad so that any child control initialization that affects
9816         the selection is done. Fixes #79406
9817
9818 2006-10-06  Chris Toshok  <toshok@ximian.com>
9819
9820         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
9821         to have no evil effects.
9822
9823         - Stop selecting StructureNotifyMask on non-toplevel windows.
9824
9825           The only way children should be resized is by using the SWF api,
9826           and we already send WM_WINDOWPOSCHANGED messages in those cases.
9827           Toplevel windows can be interacted with via the window manager,
9828           and so we keep the input mask there.
9829
9830           The other event StructureNotifyMask gives us (that we care
9831           about) is DestroyNotify.  The code is already structured such
9832           that it assumes we won't be getting a DestroyNotify event for
9833           the window we pass to XDestroyWindow (which is what
9834           StructureNotifyMask is supposed to guarantee.)  So, that code
9835           shouldn't be affected by this either.
9836
9837         - Stop selecting VisibilityChangeMask altogether.
9838
9839           We weren't doing anything with the resulting events anyway.
9840         
9841         This vastly reduces the number of X requests and events we see
9842         when resizing/laying out a large ui.
9843
9844 2006-10-06  Chris Toshok  <toshok@ximian.com>
9845
9846         * ScrollableControl.cs (DisplayRectangle): we need to take into
9847         account the DockPadding regardless of whether or not auto_scroll
9848         == true.  rework this slightly to this effect, and fix bug #79606,
9849         and part of #72499 (you can now see the drag handles and drag
9850         toolbars around).
9851
9852 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
9853
9854         * ListViewItem.cs: Collections of selected and checked items are now
9855         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
9856         we mark the collection "dirty".
9857         * ListView.cs: Marked collections readonly. Modified UpdateSelection
9858         to only clear SelectedItems when a new item is selected and MultiSelect
9859         is enabled. CheckedItems and SelectedItems now subscribe to Changed
9860         event of ListViewItemCollection, and mark its list dirty whenever
9861         that event is fire. This allows us to return selected/checked items 
9862         in the same order as they are in the Items collection. This matches
9863         the MS behavior.
9864
9865 2006-10-06  Chris Toshok  <toshok@ximian.com>
9866
9867         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
9868         right mouse clicks.  Fixes bug #79593.
9869
9870 2006-10-06  Chris Toshok  <toshok@ximian.com>
9871
9872         * Splitter.cs: doh, fix splitters that don't want to cancel the
9873         movement when you drag them.  Also, impose the limits on the
9874         values we send to the SplitterMovingEvent.  Fixes #79598.
9875
9876 2006-10-06  Jackson Harper  <jackson@ximian.com>
9877
9878         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
9879         since we use this for auto scrolling also.
9880
9881 2006-10-05  Chris Toshok  <toshok@ximian.com>
9882
9883         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
9884         beginning to think that most datagrid column types don't need this
9885         method.  Fixes bug #79392.
9886
9887 2006-10-05  Chris Toshok  <toshok@ximian.com>
9888
9889         * DataGrid.cs: move back to a more lazy scheme for creating the
9890         CurrencyManager, so we aren't updating it every time you set
9891         either DataSource or DataMember.  Also, don't call
9892         RecreateDataGridRows if the currency manager hasn't changed.
9893
9894 2006-10-05  Chris Toshok  <toshok@ximian.com>
9895
9896         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
9897         emitted, SelectedIndex should already be updated.  Fixes bug
9898         #78929.
9899
9900 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
9901
9902         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
9903           ToolStripTextBox.cs: Initial commit.
9904         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
9905
9906 2006-10-05  Jackson Harper  <jackson@ximian.com>
9907
9908         * TabControl.cs: We need to invalidate the tab control area when
9909         new ones are added (duh).
9910
9911 2006-10-03  Chris Toshok  <toshok@ximian.com>
9912
9913         * Form.cs (ProcessDialogKey): if the focused control is in this
9914         form and is a button, call its PerformClick method here.  Fixes
9915         #79534.
9916
9917 2006-10-04  Jackson Harper  <jackson@ximian.com>
9918
9919         * TabPage.cs: Ignore setting of Visible, and add an internal
9920         method for setting the controls visibility.  TabPage's Visible
9921         property is a little strange on MS, this seems to make us
9922         compatible, and fixes cases where people set all the tab pages to
9923         visible.
9924         * TabControl.cs: Use the new internal setting on tab pages
9925         visibility.
9926
9927 2006-10-03  Mike Kestner  <mkestner@novell.com>
9928
9929         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
9930
9931 2006-10-03  Mike Kestner  <mkestner@novell.com>
9932
9933         * ListView.cs : use is_visible instead of Visible to check if 
9934         scrollbars should be placed/sized.  Also some max_wrap_width
9935         love for LargeIcon view.  [Fixes #79533]
9936
9937 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
9938
9939         * TextControl.cs :
9940           Make set_TextAlign() do actually update the align. Fixed #78403.
9941
9942 2006-10-03  Chris Toshok  <toshok@ximian.com>
9943
9944         * DataGrid.cs: fix a crash when switching datasources if the
9945         vertical scrollbar is at someplace other than Value = 0.  Also,
9946         reduce the number of recalculation passes we do in SetDataSource
9947         from 2 to 1.
9948
9949 2006-10-03  Jackson Harper  <jackson@ximian.com>
9950
9951         * TextBoxBase.cs: Move the if value the same bail check up, we
9952         don't want to empty the document if it is already empty, this
9953         seems to severly mess up the caret.  TODO: I should probably fix
9954         the empty statement to update teh caret somehow.
9955
9956 2006-10-03  Chris Toshok  <toshok@ximian.com>
9957
9958         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
9959         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
9960         reflection, an internal row type, properties on said type, etc.)
9961         will work with our datagrid.  Fixes #79531.
9962
9963 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
9964
9965         * FileDialog.cs: Don't crash if a path is not accessible
9966           (System.UnauthorizedAccessException). Fixes #79569.
9967         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
9968           a ':' too. Return unknown icon for those paths/files.
9969
9970 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
9971
9972         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
9973         GetContainerControl returns null.
9974
9975 2006-10-02  Chris Toshok  <toshok@ximian.com>
9976
9977         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
9978         call to XGetWindowAttributes instead of "handle".  fixes an X
9979         error using notifyicon after the NotifyIconWindow to Form base
9980         class switch.
9981
9982 2006-10-02  Chris Toshok  <toshok@ximian.com>
9983
9984         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
9985         server grab and looping we need to do to get down to the most
9986         deeply nested child window.
9987         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
9988         QueryPointer again after the WarpPointer so we can generate a
9989         proper (fake) MotionNotify event to be enqueued in the destination
9990         window's queue.
9991         (GetCursorPos): call QueryPointer.
9992
9993         Fixes #79556.
9994
9995 2006-10-02  Jackson Harper  <jackson@ximian.com>
9996
9997         * NotifyIcon.cs: Derive the notify icon from a form, so things
9998         like FindForm work on it.
9999         - Swallow the WM_CONTEXTMENU message, since that is generated on
10000         mouse down, and context menu is a mouse up kinda guy.  I believe
10001         the correct fix here is probably to make the notify icon entirely
10002         NC area, but this seems to work fine for anyone not manipulating
10003         WndProc.
10004
10005 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
10006
10007         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
10008           ToolStripItemCollection.cs, ToolStripLabel.cs,
10009           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
10010           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
10011           Initial implementation.
10012         * TextRenderer.cs: Provide padding to MeasureText.
10013
10014 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
10015
10016         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
10017         of ButtonBaseAccessibleObject. Fix bug #79552.
10018
10019 2006-10-02  Jackson Harper  <jackson@ximian.com>
10020
10021         * MdiWindowManager.cs: When maximizing use the containers client
10022         rect, not it's bounds, so nc area is accounted correctly.
10023         - Use the parent form's size for the menu position, since the
10024         client isn't always the full form size.
10025
10026 2006-10-01  Chris Toshok  <toshok@ximian.com>
10027
10028         * ScrollableControl.cs: make sure neither right_edge or
10029         bottom_edge are < 0, since they're used as LargeChange for the
10030         horiz/vert scrollbars respectively.  Fixes #79539.
10031
10032 2006-10-01  Chris Toshok  <toshok@ximian.com>
10033
10034         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
10035         the xplatuix11 code can cause us to destroy/recreate our handle.
10036
10037         * XplatUIX11.cs
10038         (SystrayAdd):
10039         - this code can be invoked many times for the same Hwnd.  Make
10040           sure we only destroy the client window once (the first time this
10041           method is called).  This fixes bug #79544.
10042         - Remove the call to the improperly bound XSync.  why we had two
10043           bindings to this, I will never know, but this call resulted in
10044           events being discarded from the queue(!).
10045         - correct a misunderstanding of _XEMBED_INFO - the second atom is
10046           not our current state but the state we wish to be in.  So, 0 if
10047           we don't want to be mapped.  Change it to 1.
10048         (SystrayRemove): The XEMBED spec makes mention of the fact that
10049         gtk doesn't support the reparent of client windows away from the
10050         embedder.  Looking at gtksocket-x11.c seems to agree with this.
10051         The only avenue we have for removing systray icons is to destroy
10052         them.  We don't want the handle to go away for good, though, so
10053         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
10054         #79545.
10055         
10056 2006-10-01  Chris Toshok  <toshok@ximian.com>
10057
10058         * Form.cs (WndProc): inline the native_enabled variable usage into
10059         the cases in which it's used.  Fixes #79536.
10060
10061 2006-09-29  Mike Kestner  <mkestner@novell.com>
10062
10063         * ListView.cs : toggle the selection state for ctrl clicks in 
10064         multiselect mode. [Fixes #79417]
10065
10066 2006-09-29  Mike Kestner  <mkestner@novell.com>
10067
10068         * ListView.cs : kill CanMultiSelect and refactor the selection
10069         code to support multiselection in the absence of mod keys. Steal
10070         arrow/home/end keys by overriding InternalPreProcessMessage to
10071         restore regressed keynav behavior.
10072         [Fixes #79416]
10073
10074 2006-09-29  Jackson Harper  <jackson@ximian.com>
10075
10076         * MdiClient.cs: Repaint the titlebars when the active window is
10077         changed.
10078
10079 2006-09-29  Chris Toshok  <toshok@ximian.com>
10080
10081         * Application.cs: when entering a runloop with a modal, make sure
10082         the hwnd is enabled.  Fixes #79480.
10083
10084 2006-09-29  Chris Toshok  <toshok@ximian.com>
10085
10086         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
10087         when ListManager.CanAddRows == false, bump us back one.
10088
10089         * DataGridColumnStyle.cs (ParentReadOnly): remove the
10090         listmanager.CanAddRows check.  This makes ArrayLists uneditable
10091         using a datagrid, which is not right.
10092         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
10093         is an IEditable, but call property_descriptor.SetValue regardless.
10094         fixes #79435.
10095
10096 2006-09-29  Chris Toshok  <toshok@ximian.com>
10097
10098         * DataGridBoolColumn.cs: we need to test equality in the face of
10099         possible null values (as is the case with the default NullValue).
10100         This patch keeps us from crashing in that case.
10101
10102 2006-09-29  Jackson Harper  <jackson@ximian.com>
10103
10104         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
10105         here, since it will get called for every node collection in the
10106         tree. This is now done in the treeview once the sorting is
10107         finished.
10108         * TreeView.cs: Recalculate the visible order, and update the
10109         scrollbars after sorting, set the top nope to the root so that the
10110         recalc actually works.
10111
10112 2006-09-29  Chris Toshok  <toshok@ximian.com>
10113
10114         * LinkLabel.cs: more handling of the default link collection in
10115         the face of LinkArea manipulation.  The default link collection
10116         contains 1 element (start=0,length=-1).  If the user sets LinkArea
10117         to anything and the links collection is the default, clear it.
10118         Then only add the link if its nonempty.  Fixes #79518.
10119
10120 2006-09-29  Chris Toshok  <toshok@ximian.com>
10121
10122         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
10123         piece correctly when we hit a '\n'.  Fixes #79517.
10124
10125 2006-09-29  Chris Toshok  <toshok@ximian.com>
10126
10127         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
10128         change the binding of gdk_init_check to take two IntPtr's, and
10129         pass IntPtr.Zero for both of them.  Fixes #79520.
10130
10131 2006-09-29  Mike Kestner  <mkestner@novell.com>
10132
10133         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
10134         [Fixes #78779]
10135
10136 2006-09-28  Jackson Harper  <jackson@ximian.com>
10137
10138         * XplatUIX11.cs: When translating NC messages make sure we go from
10139         whole window to screen, not client window to screen.
10140         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
10141         method doesn't exist
10142         - Skip over controls that aren't forms when arranging.
10143
10144 2006-09-28  Jackson Harper  <jackson@ximian.com>
10145
10146         * XplatUIWin32.cs: Clip the rect to the parent window.
10147         * XplatUIStructs.cs: Add clipping modes struct.
10148         * InternalWindowManager.cs: New private method that factors title
10149         bar heights in when calculating the pos of an NC mouse message.
10150         - Use SendMessage to force a paint when the form's size is changed
10151         instead of painting the decorations immediately.
10152         - Don't let the NC button click messages get to DefWndProc,
10153         because they will attempt to handle windowing themself, and this
10154         messes up z-order (it will put them in front of the scrollbars).
10155         * XplatUIX11.cs: Make sure that we don't reset window managers if
10156         we already have one (ie the window is an MDI window).
10157
10158 2006-09-28  Chris Toshok  <toshok@ximian.com>
10159
10160         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
10161         menu code really needs going over.
10162
10163 2006-09-27  Chris Toshok  <toshok@ximian.com>
10164
10165         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
10166         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
10167         window is maximizable.  So, we need to make sure that even if we
10168         clear the border/wm frame of those functions, they're still
10169         available (basically, we remove the decoration without removing
10170         the function).  Half the fix for #79338.
10171
10172 2006-09-27  Chris Toshok  <toshok@ximian.com>
10173
10174         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
10175         Fixes bug #79515.
10176
10177 2006-09-27  Chris Toshok  <toshok@ximian.com>
10178
10179         * Splitter.cs: reorder things a bit so that we don't actually
10180         draw/move the splitter until after calling OnSplitterMoving.  This
10181         lets users cancel/disallow the movement by explicitly setting
10182         event.SplitX/SplitY.  Fixes #79372.
10183
10184 2006-09-27  Jackson Harper  <jackson@ximian.com>
10185
10186         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
10187         because it is most likely on a window being destroyed, and that
10188         will give us an X11 error.
10189
10190 2006-09-27  Chris Toshok  <toshok@ximian.com>
10191
10192         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
10193         the dropdown button now toggles between showing and hiding the
10194         dropdown.  Also, get rid of dropdown_form_showing and just use
10195         dropdown_form.Visible.  We still don't do a grab, but I'll leave
10196         that part to someone who has handled Capture-fu before.
10197
10198 2006-09-27  Chris Toshok  <toshok@ximian.com>
10199
10200         * DataGrid.cs: return false if alt isn't pressed when '0' is
10201         pressed.  this keeps the '0' key from being swallowed, and fixes
10202         bug #79350.
10203
10204 2006-09-27  Chris Toshok  <toshok@ximian.com>
10205
10206         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
10207         Calling Refresh (in response to a scrollbar event) screws up the
10208         scrollbar painting.  Fixes bug #78923.
10209
10210 2006-09-27  Chris Toshok  <toshok@ximian.com>
10211
10212         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
10213         then insert into hashtable" blocks threadsafe.
10214
10215 2006-09-27  Chris Toshok  <toshok@ximian.com>
10216
10217         * MessageBox.cs (CreateParams): the styles should be |'ed with our
10218         baseclass's, since otherwise the
10219         ControlBox/MinimizeBox/MaximizeBox assignments above have no
10220         effect.  This gets the close button back in messageboxes.
10221
10222 2006-09-27  Chris Toshok  <toshok@ximian.com>
10223
10224         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
10225         flag, not just != 0.  this makes flags that are actually multiple
10226         bits (like WS_CAPTION) work.  fixes bug #79508.
10227
10228 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
10229
10230         * PageSetupDialog.cs: add support for getting and settings the 
10231         paper size, source and orientation.
10232
10233 2006-09-26  Chris Toshok  <toshok@ximian.com>
10234
10235         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
10236         and caption == "", we need to remove the resize handles as well as
10237         the title bar.
10238
10239         * Control.cs (set_Text): turns out that setting Text on a form
10240         should change the WM styles on the window, since if ControlBox ==
10241         false, the only way to get a window border is to have a non-""
10242         Text property.  check winforms/forms/text.cs for an example.  so,
10243         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
10244         update both window styles and title.  This fixes a lot of dialogs
10245         (including the preferences dialog in MonoCalendar.)
10246
10247 2006-09-26  Chris Toshok  <toshok@ximian.com>
10248
10249         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
10250         control isn't a Form), call Win32ShowWindow to hide the window,
10251         but don't update the control Visible property.  When we reparent
10252         back to a parent control, call SetVisible in order for the
10253         window's visibility to be reinstated.
10254
10255         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
10256         the FosterParent.
10257
10258         * Control.cs (ControlCollection.Remove): remove that value.Hide()
10259         call for good, since it breaks MonoCalendar (and other things I'm
10260         sure.) Also, set all_controls to null *after* the owner calls,
10261         which end up regenerating it.
10262         (ChangeParent): allow new_parent to be == null, passing
10263         IntPtr.Zero down to XplatUI.
10264
10265         this fixes #79294 the right way.
10266
10267 2006-09-26  Mike Kestner  <mkestner@novell.com>
10268
10269         * GridEntry.cs : internal SetParent method.
10270         * PropertyGrid.cs : attach to property changed on the proper
10271         target if we have a hierarchical grid with subobjects. Setup
10272         GridItem.Parent for hierarchical items.
10273         * PropertyGridView.cs : Set value on the correct target for
10274         hierarchical grids. [Fixes #78903]
10275
10276 2006-09-26  Chris Toshok  <toshok@ximian.com>
10277
10278         * Control.cs (ChildNeedsRecreating): this should return true if
10279         either we're being recreated and the child is in our list, or our
10280         parent is waiting for our recreation.
10281
10282 2006-09-26  Chris Toshok  <toshok@ximian.com>
10283
10284         * Control.cs (ControlCollection.Remove): reinstate the
10285         value.Hide() call as suggested in bug #79294.
10286
10287 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
10288
10289         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
10290         coordinates (versus a relative move).
10291
10292 2006-09-26  Chris Toshok  <toshok@ximian.com>
10293
10294         * Control.cs: rework child recreation a little bit.  It turns out
10295         that we race between the DestroyNotify the WM_DESTROY message.  If
10296         the parent gets its DestroyNotify before the child gets the
10297         WM_DESTROY message, the child ends up not recreating (since the
10298         parent finishes its recreation on DestroyNotify, and the child
10299         checks ParentIsRecreating.)
10300
10301         So, instead we store off a list of all the child controls which
10302         need to be recreated when the parent control starts to recreate
10303         itself.  Then, when child controls get their WM_DESTROY message we
10304         check to see if they're in the parent's pending recreation list,
10305         and if so, we recreate.  This removes all dependency on ordering
10306         from the code and fixes the initial MonoCalendar upgrade dialog.
10307         
10308 2006-09-26  Jackson Harper  <jackson@ximian.com>
10309
10310         * TextControl.cs: Use the Line to get the length of the line,
10311         since soft line breaks can change the end line.
10312
10313 2006-09-26  Chris Toshok  <toshok@ximian.com>
10314
10315         * Control.cs (ControlCollection.AddImplicit): don't add the
10316         control again if it's already in one of our lists.  This keeps us
10317         from adding controls over and over again for comboboxes when their
10318         handle gets recreated (as the combobox adds implicit controls in
10319         OnHandleCreated).  Fixes the X11 errors in bug #79480.
10320
10321 2006-09-26  Jackson Harper  <jackson@ximian.com>
10322
10323         * TextControl.cs: When deleting characters make sure that any
10324         orphaned zero lengthed tags get deleted.
10325         - Fix ToString for zero lengthed tags.
10326
10327 2006-09-25  Jackson Harper  <jackson@ximian.com>
10328
10329         * TextControl.cs: When getting a tag at the location there can be
10330         multiple tags at the same spot, these are 0-lengthed tags that
10331         appear when extra formatting has been stuck in a location.  We
10332         need to pull out the last of these 0 lengthed tags.
10333
10334 2006-09-25  Jackson Harper  <jackson@ximian.com>
10335
10336         * TextControl.cs: Fix print out in debug method.
10337         * TextBoxBase.cs: When text is set bail if we are setting to the
10338         previous value.
10339         
10340 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
10341
10342         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
10343           It is now possible to change the selected index in a FontXXXListBox
10344           with the up and down arrow keys from the FontXXXTextBoxes.
10345           Also, send the FontXXXTextBox mouse wheel event to the corresponding
10346           FontXXXListBoxes to match ms.
10347
10348 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
10349
10350         * SystemInformation.cs: Return a clone of the theme's MenuFont because
10351         anyone can dispose it, anytime. All other properties returns enums, 
10352         structs or basic types so they don't need such tricks.
10353
10354 2006-09-22  Jackson Harper  <jackson@ximian.com>
10355
10356         * XplatUI.cs:
10357         * XplatUIWin32.cs:
10358         * Clipboard.cs:
10359         * DataFormats.cs:
10360         * XplatUIOSX.cs:
10361         * XplatUIDriver.cs: Update interface to add a primary selection
10362         flag, so the driver can use the primary selection buffer if
10363         needed.
10364         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
10365
10366         * RichTextBox.cs: We need to supply the data object to paste now
10367         (so we can choose to supply CLIPBOARD or PRIMARY).
10368         * TextBoxBase.cs: Supply data object to paste (see above).
10369         - Middle click uses the primary selection data object.
10370         
10371 2006-09-21  Chris Toshok  <toshok@ximian.com>
10372
10373         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
10374         of SetWMStyles.  It's still a rat's nest and is largely
10375         order-dependent which I dislike immensely.  This also fixes the X
10376         button disappearing from toplevel forms.
10377
10378 2006-09-21  Mike Kestner <mkestner@novell.com>
10379
10380         * ListBox.cs: move Jordi's click/dblclick raising code to the
10381         mouse up handler.
10382
10383 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
10384
10385         * ListBox.cs: Fixes 79450
10386
10387 2006-09-21  Mike Kestner <mkestner@novell.com>
10388
10389         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
10390         to deal with people updating the TreeNodeCollection after the tree
10391         is disposed.  "Fixes" 79330.
10392
10393 2006-09-20  Jackson Harper <jackson@ximian.com>
10394
10395         * TextControl.cs: Push the cursor record onto the undo stack
10396         before the delete action. This fixes 78651.
10397
10398 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
10399
10400         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
10401         CreateParams. Fixes 79329.
10402
10403 2006-09-19  Chris Toshok  <toshok@ximian.com>
10404
10405         * XplatUIX11.cs: a couple of blanket code massage passes to clean
10406         things up a bit.  First, get rid of the NetAtoms array (and the NA
10407         enum), and just embed the atoms as static fields.  Also, add a
10408         couple of functions (StyleSet and ExStyleSet) to clean up all the
10409         bitmask testing of styles.
10410
10411         * X11Structs.cs: remove the NA enum, not needed anymore.
10412         
10413 2006-09-19  Chris Toshok  <toshok@ximian.com>
10414
10415         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
10416         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
10417         added cleanup to get MessageBox titles appearing again, which were
10418         broken by my earlier fix for caption-less/ControlBox-less windows.
10419
10420 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
10421
10422         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
10423           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
10424           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
10425           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
10426           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
10427           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
10428           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
10429           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
10430           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
10431           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
10432           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
10433             Inital import.
10434         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
10435           ToolStripButton.cs: Stubs needed for above.
10436         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
10437
10438 2006-09-15  Chris Toshok  <toshok@ximian.com>
10439
10440         * XplatUIX11.cs:
10441         - make the MessageQueues hashtable Synchronized.
10442         
10443         - SendMessage: if the Hwnd is owned by a different thread, use the
10444         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
10445         thread.  Fixes bug #79201.
10446
10447 2006-09-15  Chris Toshok  <toshok@ximian.com>
10448
10449         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
10450         ControlBox == false, we disallow maximize/minimize/close.  If the
10451         form Caption is "" we also disallow move (and get rid of the Title
10452         decoration).  Unfortunately, regardless of how things are set,
10453         we're stuck with the Title and WM menu.
10454
10455 2006-09-15  Chris Toshok  <toshok@ximian.com>
10456
10457         * Application.cs: add locking around the static message_filters
10458         ArrayList, part of #79196.
10459
10460 2006-09-15  Chris Toshok  <toshok@ximian.com>
10461
10462         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
10463         Form.ControlBox == false, the window has no titlebar nor resize
10464         handles.  fixes bug #79368.
10465
10466 2006-09-15  Chris Toshok  <toshok@ximian.com>
10467
10468         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
10469         >= 0.  Fixes bug #79370.
10470
10471 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
10472         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
10473         * Control.cs:
10474             Add properties: LayoutEngine, Margin, DefaultMargin.
10475             Add method: GetPreferredSize.
10476             Move layout logic from PerformLayout to layout engines. 
10477
10478 2006-09-13  Chris Toshok  <toshok@ximian.com>
10479
10480         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
10481         fix for #79326 broke #78718, so this change addresses that.
10482
10483         - in SendWMDestroyMessages remove the call to
10484         CleanupCachedWindows, since we might be recreating the control and
10485         need to maintain the references to right Hwnd handles.  Also, set
10486         the zombie flag to true for each of the children in the hierarchy
10487         instead of calling hwnd.Dispose.  This will cause GetMessage to
10488         ignore all events for the window except for DestroyNotify.
10489
10490         - In GetMessage, ignore messages except for DestroyNotify for
10491         zombie hwnds.
10492         
10493         * Control.cs: revert the is_recreating fix from the last
10494         ChangeLog.  It's definitely "right", but it breaks switching from
10495         an MDI form to a non-MDI form.  Will need to revisit that.
10496
10497         * Hwnd.cs: add a zombie flag, which means "the
10498         client_window/whole_window handles are invalid, but we're waiting
10499         for the DestroyNotify event to come in for them".  Set the flag to
10500         false explicitly if setting WholeWindow/ClientWindow, and also
10501         when Disposing.
10502         
10503 2006-09-13  Chris Toshok  <toshok@ximian.com>
10504
10505         * XplatUIX11.cs: rework window destruction slightly.
10506
10507         - when destroying the windows associated with a control, we don't
10508         need 2 separate XDestroyWindow calls.  Just the one for the
10509         whole_window (or for client_window if whole_window is somehow
10510         IntPtr.Zero -- can this happen?) is enough.
10511
10512         - reworked SendWMDestroyMessages slightly, so we always dispose
10513         the child control hwnd's after sending the messages.
10514         
10515         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
10516         the two places it was used (one was even using hwnd.Handle and the
10517         other hwnd.client_window.  ugh), adding another call in
10518         SendWMDestroyMessages.  We need this new call because now the
10519         DestroyNotify events in the queue will be ignored for the child
10520         controls (as their hwnd's were disposed, and the window id's
10521         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
10522
10523         - this fixes bug #79326.
10524
10525 2006-09-13  Chris Toshok  <toshok@ximian.com>
10526
10527         * Control.cs: don't always set is_recreating to false at the end
10528         of RecreateHandle, since sometimes we're not done (and won't be
10529         until WndProc handles the WM_DESTROY message).  Also, set
10530         is_recreating to false in the WM_DESTROY handling code.  Part of
10531         the fix for bug #79326.
10532
10533 2006-09-13  Miguel de Icaza  <miguel@novell.com>
10534
10535         * X11DesktopColors.cs: Start the droppage of debugging messages.
10536
10537         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
10538
10539 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
10540
10541         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
10542
10543 2006-09-12  Chris Toshok  <toshok@ximian.com>
10544
10545         * DataGrid.cs (get_ListManager): if the list_manager is null, try
10546         to create it using SetDataSource.  Fixes bug #79151.
10547
10548 2006-09-11  Chris Toshok  <toshok@ximian.com>
10549
10550         * XEventQueue.cs: add a DispatchIdle property.
10551
10552         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
10553         either the queue is null, or the queue has DispatchIdle set to
10554         true.
10555         (DoEvents): set queue.DispatchIdle to false around the
10556         peek/translate/dispatch message loop in this method.  This keeps
10557         Application.Doevents from emitting idle events.  Part of the fix
10558         for #78823.
10559
10560 2006-09-11  Chris Toshok  <toshok@ximian.com>
10561
10562         * DataGrid.cs (set_DataSource): make this work for both the
10563         winforms/datagrid test and ReportBuilder.  It seems as though when
10564         we've created a ListManager (or maybe it's if we have a
10565         BindingContext?), when we set the DataSource it clears the
10566         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
10567         #79333.
10568
10569 2006-09-11  Chris Toshok  <toshok@ximian.com>
10570
10571         * XplatUIX11.cs: deal with queue being null, which happens in all
10572         the Clipboard functions.  Fixes one of the two problems mentioned
10573         in #78612.
10574
10575 2006-09-11  Chris Toshok  <toshok@ximian.com>
10576
10577         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
10578         button on various spots (including outside the menu) works closer
10579         to MS, and doesn't crash.  Fixes #79343.
10580
10581 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
10582
10583         * ListView.cs: Do not initialize item_sorter in init. To match MS,
10584         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
10585         and the internal comparer is set. When a new ListViewItemSorter is set,
10586         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
10587         was specified. No further processing is necessary if SortOrder is set
10588         to it's current value. If Sorting is modified to None, and View is
10589         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
10590         (either custom or our internal ItemComparer) to null, on 1.0 profile
10591         only set item_sorter to null if its our internal IComparer. If Sorting
10592         is modified to Ascending or Descending, then use our internal IComparer
10593         if none is set, and if the current IComparer is our internal one then:
10594         on 2.0 profile always replace it with one for new Sorting, and on 1.0
10595         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
10596         Enum.IsDefined to verify whether a valid View value is specified in
10597         its setter. Automatically sort listview items when listview is
10598         created. In Sort, do nothing if ListView is not yet created, or if
10599         no item_sorter is set (no Sorting was set, Sorting was explicitly set
10600         to None or ListViewItemSorter was set to null). Added Sort overload
10601         taking a bool to indicate whether the ListView should be redrawn when
10602         items are sorted (we use this in ListViewItemCollection to avoid double
10603         redraws). Modified our internal IComparer to take the sort order into
10604         account. In Add and AddRange methods of ListViewItemCollection, also
10605         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
10606         view), but use overload with noredraw option to avoid double redraw.
10607         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
10608         true when View is Tile, and do the same when attempting to set View to
10609         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
10610         for selected/checked indices, as it involves overhead when sorting is
10611         done while these collections are not used all that often. Instead
10612         we'll build the indices on demand. Modified IList implementation of
10613         CheckedIndexCollection to use public methods if object is int.
10614         Modified CheckedListViewItemCollection to hide checked items if
10615         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
10616         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
10617         IList implementation in SelectedIndexCollection to use public methods
10618         if object is int. Modified SelectedListViewItemCollection to hide
10619         selected items if listview is not yet created.
10620         * ListViewItem.cs: CheckedIndices list no longer needs to be
10621         maintained separately (see ListView changes). Also clone font, fixes
10622         test failure.
10623
10624 2006-09-11  Mike Kestner  <mkestner@novell.com>
10625
10626         * ComboBox.cs: if we are updating the contents of the currently
10627         selected index, refresh the control or the textbox selection.
10628         [Fixes #79066]
10629
10630 2006-09-11  Mike Kestner  <mkestner@novell.com>
10631
10632         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
10633         the 'specified' logic has been moved there.  This seems like a bug 
10634         in Control.cs, since our current SetBoundsCore completely ignores 
10635         the specified parameter.  Peter's commit seems to indicate that is 
10636         the way the MS control implementation works.  [Fixes #79325]
10637
10638 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
10639
10640         * XplatUI.cs: Set default_class_name to be composed
10641         of current domain id. This allows MWF to be loaded in multiple
10642         domains on Win32.
10643
10644 2006-09-09  Miguel de Icaza  <miguel@novell.com>
10645
10646         * X11Keyboard.cs: If we are unable to obtain the input method, do
10647         not call CreateXic to create the input context.   Should fix
10648         #78944/79276.
10649
10650 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
10651
10652         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
10653           Simplified gnome support by adding more pinvokes to get the
10654           icon for a file or mime type.
10655
10656 2006-09-08  Jackson Harper  <jackson@ximian.com>
10657
10658         * MenuAPI.cs: Deslect popup context menu items before closing the
10659         window, so that you don't see the previously selected item
10660         selected when you reopen the menu.
10661         * TextControl.cs: Update the cursor position even if we don't have
10662         focus.  This fixes typing in things like the ComboBox.  I'm not
10663         totally sure we should always set the visibility if we don't have
10664         focus, but couldn't find any corner cases where the cursor showed
10665         up when it shouldn't.
10666
10667 2006-09-08  Chris Toshok  <toshok@ximian.com>
10668
10669         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
10670         our arrays are length 256.  & 0xff before indexing.  Fixes the
10671         crash in bug #78077.
10672         
10673 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10674
10675         * ThemeWin32Classic.cs: 
10676         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
10677         is true. Handle that check box too.
10678
10679 2006-09-07  Chris Toshok  <toshok@ximian.com>
10680
10681         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
10682         79244.
10683
10684 2006-09-07  Chris Toshok  <toshok@ximian.com>
10685
10686         * Control.cs: in set_BackColor only do the work if
10687         background_color != value.
10688
10689         * XplatUIX11.cs: move the clearing of invalid areas (both client
10690         and nc) to the same block of code where we set (nc_)expose_pending
10691         to false.  That is, move it from PaintEventEnd to PaintEventStart,
10692         so things that cause invalidates from within OnPaint will trigger
10693         another call to OnPaint.  Fixes bug #79262.
10694
10695 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
10696
10697         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
10698         * FileDialog.cs: Fix typo
10699
10700 2006-09-07  Jackson Harper  <jackson@ximian.com>
10701
10702         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
10703         for tab pages if they have any.
10704
10705 2006-09-06  Mike Kestner  <mkestner@novell.com>
10706
10707         * Splitter.cs: use the "current" rect when finishing drag handle
10708         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
10709
10710 2006-09-06  Mike Kestner  <mkestner@novell.com>
10711
10712         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
10713         support offset splitters. [Fixes #79298]
10714
10715 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
10716
10717         * Mime.cs: Fixed a bug that could override the global mime type
10718           result.
10719
10720 2006-09-05  Jackson Harper  <jackson@ximian.com>
10721
10722         * TabControl.cs: Better calculation method for setting the slider
10723         pos. Prevents crashes on really wide tabs.
10724         - Draw Image on tab pages if an image list is used.
10725
10726 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10727
10728         * MonthCalendar.cs: When Font changes, the Size should be
10729         updated to fit the new font's space requirements.
10730
10731 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
10732
10733         * ListBox.cs: If the items are cleared with Items.Clear set
10734           top_index to 0.
10735
10736 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10737
10738         * MonthCalendar.cs: Handle arrow keys as input keys. Also
10739         fire DateChanged event instead of DateSelected event when
10740         the date was changed by keyboard interaction.
10741
10742 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10743
10744         * DateTimePicker.cs: Handle DateChanged for the associated
10745         month_calendar control, and set month_calendar.Font from 
10746         OnFontChanged method, as well as resize the height of the
10747         control when needed. Make PreferredHeight proportional.
10748
10749 2006-09-01  Chris Toshok  <toshok@ximian.com>
10750
10751         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
10752         properties.
10753
10754         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
10755
10756 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
10757
10758         * FileDialog.cs: Set ClientSize instead of window size, to allow space
10759           for decorations (Fixes #79219)
10760
10761 2006-09-01  Mike Kestner  <mkestner@novell.com>
10762
10763         * ComboBox.cs: first stab at sorting plus some selection handling
10764         fixes to bring us more in line with MS behavior.  Also switches back
10765         to index based selection.  Alternative patches for index-based 
10766         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
10767         and latency@gmx.de on bug 78848.  I assume they were similar to this
10768         code I've had simmering in my tree forever.
10769         [Fixes #78848]
10770
10771 2006-09-01  Chris Toshok  <toshok@ximian.com>
10772
10773         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
10774         when setting list position guard against ending up with a -1 index
10775         (the other part of the fix for #78812).  Should probably make sure
10776         we don't need the analogous fix in the ItemDeleted case.
10777
10778         * DataGrid.cs:
10779         - in SetDataSource, work around the fact that the way
10780         OnBindingContextChanged is invoked will cause us to re-enter this
10781         method.  I'll remove the hack once I investigate
10782         OnBindingContextChanged.
10783
10784         - fix the logic in set_DataSource and set_DataMember (basically
10785         what to do if the other of the two is null.)
10786         
10787         - in OnListManagerItemChanged, we need to take into account the
10788         edit row when deciding whether or not to call RecreateDataGridRows
10789         (part of the fix for #78812).
10790
10791 2006-09-01  Jackson Harper  <jackson@ximian.com>
10792
10793         * Splitter.cs: Don't do anything if there is no control to affect
10794         (prevents us from crashing in weird tet cases).
10795         * TreeView.cs: Bounding box for the mouse movement reverting
10796         focus/selection back to previously selected node.  This matches
10797         MS, and makes the tree a lot more useable.
10798         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
10799         use clipping so they are not drawn.  This fixes when the control
10800         is set to have a transparent background, or if it was over an
10801         image.
10802
10803 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
10804
10805         * MimeIcon.cs: Improved handling for reading default icons when
10806           using gnome (2.16 made it necessary). Check and read svg icons
10807           first, then 48x48 and then 32x32 icons.
10808
10809 2006-08-31  Chris Toshok  <toshok@ximian.com>
10810
10811         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
10812         visible.
10813
10814         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
10815         ProcessKeyPreview.  Fixes part of #77806.
10816
10817         * DataGrid.cs: big patch.
10818
10819         - revert the queueing up of DataSource/DataMember if inside
10820         BeginInit/EndInit calls.  That's not the way the datagrid achieves
10821         its delayed databinding.  Instead, call SetDataSource in
10822         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
10823         #78811.
10824
10825         - Also, it wasn't mentioned in #78811, but the test case exhibits
10826         behavior that was lacking in our datagrid implementation - Columns
10827         that have mapping names that don't exist in the datasource's
10828         properties aren't shown.  Yuck.  To fix this I added the bound
10829         field to the column style, and basically any calculation to figure
10830         out anything about columns uses a loop to find the bound columns.
10831         still need to investigate if I can cache an array of the bound
10832         columns or if the indices must be the same.
10833
10834         - When setting CurrentCell, we no longer abort if the cell being
10835         edited was in the add row.  This fixes the other part of #77806.
10836
10837         - The new code also fixes #78807.
10838         
10839         * ThemeWin32Classic.cs: perpetrate the same disgusting
10840         column.bound field hack, and only render bound fields.
10841
10842 2006-08-31  Chris Toshok  <toshok@ximian.com>
10843
10844         * DataGridColumnStyle.cs: add bound field.  this field is true if
10845         the datasource has a property corresponding to the mapping name.
10846
10847         * DataGridTableStyle.cs: set the bound field on the column styles
10848         depending on whether or not we have a column for that property.
10849
10850 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
10851
10852         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
10853           splitter control (fixes #79228)
10854
10855 2006-08-31  Chris Toshok  <toshok@ximian.com>
10856
10857         * DataGridColumnStyle.cs: we need to delay the assignment of
10858         property descriptor until the last possible moment due to the lazy
10859         databinding stuff in the datagrid.  Also, fix the exceptions
10860         thrown by CheckValidDataSource to match MS.
10861
10862 2006-08-31  Jackson Harper  <jackson@ximian.com>
10863
10864         * Form.cs: When activated select the active control, if there is
10865         no active control, we select the first control.
10866         * XplatUIX11.cs: If there is no focus control when we get a
10867         FocusIn event, find the toplevel form and activate it.  This
10868         occurs when you popup a window, it becomes the focus window, then
10869         you close that window, giving focus back to the main window.
10870
10871 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10872
10873         * MonthCalendar.cs: 
10874         * ThemeWin32Classic.cs: Cache Font in bold style, as well
10875         as StringFormat with Center alignments in MonthCalendar,
10876         instead of creating new ones when drawing the control. 
10877         Also, draw the month name in bold style.
10878
10879 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10880
10881         * Control.cs:
10882           - PerformLayout(): It would seem MS performs the fill even if the 
10883             control is not visible (part of #79218 fix)
10884           - ResetBackColor(): Use the setter to reset the color, to allow
10885             overriders to catch the change.
10886         * Form.cs:
10887           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
10888           - CreateHandle(): dito (part of $79218 fix)
10889           - Don't set an icon if we have a dialog
10890         * ScrollableControl.cs:
10891           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
10892           - ScrollIntoView(): No need to scroll if control is already visible
10893             (resolves fixme and fixes #79218)
10894
10895 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
10896
10897         * MonthCalendar.cs: Change proportions in SingleMonthSize
10898         to match the aspect of the original control.
10899
10900 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
10901
10902         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
10903           get updated when they get maximized.
10904
10905 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10906
10907         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
10908
10909 2006-08-29  Chris Toshok  <toshok@ximian.com>
10910
10911         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
10912
10913 2006-08-29  Jackson Harper  <jackson@ximian.com>
10914
10915         * TreeView.cs: Need to track selected node and highlighted node,
10916         they aren't always the same thing, when the mouse is down on a
10917         node it is hilighted, but not selected yet.
10918         - Do the HideSelection stuff right
10919         - Need to focus on rbutton mouse down. And redraw selection when
10920         right click is mouse upped.
10921
10922 2006-08-29  Mike Kestner  <mkestner@novell.com>
10923
10924         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
10925         when SubItems.Count < Columns.Count.  [Fixes #79167]
10926
10927 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
10928
10929         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
10930
10931 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
10932
10933         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
10934           from X. Only send based on ConfigureNotify if we don't have the
10935           correct location in hwnd (if the window manager moved us)
10936
10937 2006-08-28  Mike Kestner  <mkestner@novell.com>
10938
10939         * ListView.cs: remove a TODO. 
10940         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
10941         [Fixes ListView part of #79166]
10942
10943 2006-08-28  Mike Kestner  <mkestner@novell.com>
10944
10945         * ListView.cs: move wheel handler to parent since it is focused
10946         instead of the item_control now.  [Fixes #79177]
10947
10948 2006-08-28  Mike Kestner  <mkestner@novell.com>
10949
10950         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
10951         when the control is focused. [Fixes #79171]
10952
10953 2006-08-28  Mike Kestner  <mkestner@novell.com>
10954
10955         * ListView.cs: size the item and header controls for empty and
10956         unscrollable views.
10957         * ThemeWin32Classic.cs: draw disabled backgrounds.
10958         [Fixes #79187]
10959
10960 2006-08-28  Chris Toshok  <toshok@ximian.com>
10961
10962         * Form.cs: remove unused "active_form" static field.
10963
10964         * Hwnd.cs: lock around accesses to static windows collection.
10965
10966         * Application.cs: lock threads in Exit ().
10967
10968 2006-08-28  Chris Toshok  <toshok@ximian.com>
10969
10970         * NativeWindow.cs: lock around accesses to window_collection.
10971         
10972 2006-08-28  Chris Toshok  <toshok@ximian.com>
10973
10974         * Control.cs: err, fix this the right way, by locking on controls
10975         when using it.  not by making it synchronized.
10976
10977 2006-08-28  Chris Toshok  <toshok@ximian.com>
10978
10979         * Control.cs: make the static "controls" field synchronized, as it
10980         gets updated from multiple threads.
10981
10982 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
10983
10984         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
10985           Prevent other threads from exiting when calling thread sets quit state.
10986         * XEventQueue.cs: Added PostQuitState property
10987
10988 2006-08-27  Chris Toshok  <toshok@ximian.com>
10989
10990         * AsyncMethodData.cs: add a slot for the window handle.
10991
10992         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
10993         window (the destination control's window, not the foster window).
10994
10995         * Control.cs (BeginInvokeInternal): store the window's handle in
10996         the AsyncMethodData.
10997         
10998
10999 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
11000
11001         * XplatUIX11.cs:
11002           - PostQuitMessage: Removed resetting S.D display handle, we might have
11003             another loop started after calling PostQuitMessage (Fixes #79119)
11004           - Created destructor to reset S.D handle
11005
11006 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
11007
11008         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
11009
11010 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11011
11012         * TextControl.cs (Insert): Update the caret position even if we don't
11013           have a handle yet, just don't call the driver in that case.
11014         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
11015           to the end of the new selection text (Fixes #79184)
11016
11017 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11018
11019         * Form.cs (Activate): Only activate if the handle is created)
11020         * Control.c:
11021           - Mark window as invisible when it's disposed
11022           - Check if window handle is created when setting window visible, 
11023             instead of relying just on the is_created variable
11024           - Check if object is disposed when creating the control (Fixes #79155)
11025
11026 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11027
11028         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
11029           when allowing layout again. Otherwise we re-generate the anchoring 
11030           distance to the border again and actually alter what the user wanted
11031           This is ugly, it'd be better if we used DisplayRectangle instead of
11032           ClientRectangle for Control.UpdateDistances, but that causes us to
11033           have other problems (initial anchoring positons would be wrong)
11034           (Fixes #78835)
11035
11036 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11037
11038         * Control.cs:
11039           - The size and location setters shouldn't go directly to 
11040             SetBoundsCore, but to SetBounds, which triggers layout on the
11041             parent, then calls SetBoundsCore. (Related to fix for #78835)
11042           - SetBounds: Moved actual location update code into this function
11043             from SetBoundsCore, to match MS. Added call to PerformLayout if
11044             we have a parent (to trigger resizing of anchored parents if the 
11045             child size has changed (see testcase for #78835) 
11046         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
11047           new control code
11048         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
11049
11050 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11051
11052         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
11053           System.Drawing when a toplevel window gets closed; there might
11054           be other toplevel windows belonging to the same app (Fixes #78052)
11055
11056 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
11057
11058         * FileDialog.cs: After reading FileDialog settings from mwf_config
11059           use Desktop prefix only if a real folder doesn't exist anymore.
11060         * FontDialog.cs: Added char sets.
11061           It is now possible to select the font, size or style with the
11062           textboxes.
11063
11064 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
11065
11066         * PrintPreviewDialog.cs: Use assembly name constants.
11067
11068 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11069
11070         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
11071           scrollbar from whacking it's buttons)
11072
11073 2006-08-24  Chris Toshok  <toshok@ximian.com>
11074
11075         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
11076         in this patch (aggregating setting Left/Top/Width/Height to
11077         setting Bounds on the scrollbars), but the crux of the fix is in
11078         Recalculate, where we scroll by the remaining scroll_position if
11079         we're hiding a scrollbar.  The 2*$5 reward in the comment is
11080         serious.
11081
11082 2006-08-24  Jackson Harper  <jackson@ximian.com>
11083
11084         * MdiClient.cs:
11085         * MdiWindowManager.cs: If the form is made a non-mdi window we
11086         need to remove the form closed event so that closing forms works
11087         correctly.
11088
11089 2006-08-24  Jackson Harper  <jackson@ximian.com>
11090
11091         * Control.cs: Make IsRecreating internal so that the driver can
11092         check it
11093         - Temporarily remove the Hide when controls are removed, its
11094         making a whole bunch of things not work because visibility isn't
11095         getting reset elsewhere correctly
11096         * Form.cs: Need to do a full handle recreation when the mdi parent
11097         is set.
11098         * XplatUIX11.cs: If we are recreating handles don't dispose the
11099         HWNDs.  What was happening is the handles were being recreated in
11100         SendWMDestroyMessages, but then flow continued on in that method
11101         and destroyed the new handles.
11102
11103 2006-08-23  Jackson Harper  <jackson@ximian.com>
11104
11105         * Form.cs: MdiClient is always at the back of the bus
11106         * Control.cs: When the order of items in the collection is changed
11107         we need to reset the all_controls array
11108         - do the same sorta setup thats done when adding a control when a
11109         control is set on the collection.
11110
11111 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
11112
11113         * TextBoxBase.cs (get_Text): Return an empty array if our document
11114           is empty (fixes #79052)
11115
11116 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11117
11118         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
11119           on WM_SYSCHAR messages (fixes #79053)
11120
11121 2006-08-23  Chris Toshok  <toshok@ximian.com>
11122
11123         * DataGrid.cs: fix flickering when scrolling vertically.
11124
11125 2006-08-23  Chris Toshok  <toshok@ximian.com>
11126
11127         * DataGrid.cs (EndEdit): only invalidate the row header when we
11128         need to.
11129
11130 2006-08-23  Chris Toshok  <toshok@ximian.com>
11131
11132         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
11133         methods.  fixes the flicker when scrolling around.
11134
11135 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11136
11137         * FileDialog.cs: Making sure the control is created before we get a 
11138           chance to use it with BeginInvoke (Fixes #79096)
11139
11140 2006-08-23  Chris Toshok  <toshok@ximian.com>
11141
11142         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
11143         width to use when painting the rows.
11144
11145 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
11146
11147         * TextBoxBase.cs:
11148           - Throw ArgumentException if a negative value is passed to SelectionLength
11149           - Update the selection end if start is moved. end needs to be always
11150             after start. (Fixes #79095)
11151           - Track selection length; MS keeps the selection length even if start
11152             is changed; reset on all other operations affection selection
11153
11154 2006-08-22  Jackson Harper  <jackson@ximian.com>
11155
11156         * TreeView.cs: Make sure both scrollbars get displayed and sized
11157         correctly when the other bar is visible.
11158         - Use the original clip rectangle for checking if the area between
11159         the two scrollbars is visible, not the viewport adjusted clipping
11160         rectangle.
11161
11162 2006-08-22  Jackson Harper  <jackson@ximian.com>
11163
11164         * Binding.cs: We don't use IsBinding because it requires the
11165         control to be created, which really shouldn't be necessary just to
11166         set a property on the control.
11167
11168 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11169
11170         * ComboBox.cs: Some CB.ObjectCollection methods must throw
11171         ArgumentNullReferenceException when the argument is null.
11172
11173 2006-08-21  Jackson Harper  <jackson@ximian.com>
11174
11175         * Timer.cs: Track the thread that the timer is started in (NOT
11176         CREATED), this way messages for it will only be triggered on its
11177         queue.
11178         * XEventQueue.cs: Track the timers here, this makes timers per
11179         thread, like MS.
11180         * XplatUIX11.cs: The timers are moved to the XEventQueue.
11181
11182 2006-08-19  Chris Toshok  <toshok@ximian.com>
11183
11184         * XplatUIX11.cs: after further communication with pdb, we get the
11185         best of both worlds.  SetZOrder working for un-Mapped windows, and
11186         no X errors for un-mapped windows.
11187
11188 2006-08-19  Chris Toshok  <toshok@ximian.com>
11189
11190         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
11191         as it was causing pdn toolbars to not have the correct stacking.
11192
11193 2006-08-18  Mike Kestner  <mkestner@novell.com> 
11194
11195         * ListView.cs : guard against negative ClientArea.Width in scrollbar
11196         calculation.  Not sure why control should ever be setting a negative
11197         width though.  Fixes #78931.
11198
11199 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11200
11201         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
11202         null items in ObjectCollection class.
11203         * ListBox.cs.: Likewise.
11204
11205 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
11206
11207         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
11208           as the base method in ThemeWin32Classic should work fine.
11209           Fixed bug #78607.
11210
11211 2006-08-18  Jackson Harper  <jackson@ximian.com>
11212
11213         * Binding.cs: When validating if the value entered doesn't convert
11214         properly reset to the old value.
11215         * RadioButton.cs: Don't fire click when we get focus.
11216
11217 2006-08-18  Jackson Harper  <jackson@ximian.com>
11218
11219         * FileDialog.cs: Paint the selection on the directory combobox the
11220         same way as on MS. 
11221
11222 2006-08-17  Jackson Harper  <jackson@ximian.com>
11223
11224         * ErrorProvider.cs: Don't allow the error control to be selected.
11225         * Control.cs: Don't send the SetFocus messages, the control
11226         activation will do this, and if we do it blindly here validation
11227         does not work.
11228
11229 2006-08-17  Jackson Harper  <jackson@ximian.com>
11230
11231         * Control.cs:
11232         * ContainerControl.cs: Make validation events fire in the correct
11233         order.  TODO: For some reason the first validation event is not
11234         getting fired.
11235
11236 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11237
11238         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
11239
11240 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11241
11242         * ComboBox.cs : implement scroll wheel support for popped-down
11243         state. Fixes #78945. 
11244
11245 2006-08-17  Jackson Harper  <jackson@ximian.com>
11246
11247         * TreeView.cs: Specify treeview actions (old patch that didn't get
11248         committed for some reason).
11249         - Don't let the mouse wheel scroll us too far.  Just want to make
11250         the bottom node visible, not scroll it all the ways to the top.
11251
11252 2006-08-17  Jackson Harper  <jackson@ximian.com>
11253
11254         * XplatUIX11.cs: Mouse wheel events go to the focused window.
11255
11256 2006-08-17  Mike Kestner  <mkestner@novell.com> 
11257
11258         * ComboBox.cs : don't do mouseover selection in simple mode.
11259
11260 2006-08-16  Jackson Harper  <jackson@ximian.com>
11261
11262         * Form.cs: Fire the closing events for all the mdi child windows
11263         when a window is closed.  If the cancel args are set to true, the
11264         main window still gets the event fired, but it doesn't not close.
11265         * MdiWindowManager.cs: Do this closing cleanup in a Closed
11266         handler, instead of when the button is clicked, so cancelling the
11267         close works correctly.
11268         * ComboBox.cs: Send the mouse down to the scrollbar.
11269
11270 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11271
11272         * ListBox.cs: When passing 'null' to SelectedItem,
11273         set SelectedIndex to -1, to unselect items. This is the
11274         observed behaviour in .Net.
11275
11276 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
11277
11278         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
11279           MS flags saying there won't be any. (fixes #78800)
11280         * Control.cs (HandleClick): Made virtual
11281
11282 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
11283
11284         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
11285           cultures. Fixed bug #78399.
11286
11287 2006-08-16  Jackson Harper  <jackson@ximian.com>
11288
11289         * Form.cs: Use the MdiClients MdiChildren property to access
11290         MdiChildren instead of creating the array from the child controls.
11291         * MdiClient.cs: Maintain a separate array of the mdi children, so
11292         that insertion order is maintained when the Z-order is changed.
11293
11294 2006-08-16  Mike Kestner  <mkestner@novell.com> 
11295
11296         * ListView.cs : add an ItemComparer and default to it for sorting.
11297         Fixes #79076, but sorting needs a complete overhaul to be compat with
11298         MS.
11299
11300 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11301
11302         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
11303
11304 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11305
11306         * Hwnd.cs (Mapped): Properly traverse the tree
11307
11308 2006-08-15  Chris Toshok  <toshok@ximian.com>
11309
11310         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
11311         pass manager.Current.GetType() to ParseData.  It has to be the
11312         property type.  So, hold off doing the ParseData until we're in
11313         SetPropertyValue where we know the type.  This fixes the crash in
11314         #78821 but the textbox is still empty.
11315
11316 2006-08-15  Chris Toshok  <toshok@ximian.com>
11317
11318         * DataGrid.cs:
11319         - when we're scrolling, only call Edit() again if the
11320         current cell is still unobscured. Fixes bug #78927.
11321         - when handling mousedown on a cell, ensure the cell is visible
11322         before calling Edit.
11323         - remove the properties from DataGridRow, and remove the
11324         DataGridParentRow class altogether.
11325         
11326
11327 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11328
11329         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
11330           fire OnTextChanged by ourselves. There's no point calling base,
11331           we don't set the base value anywhere else. Fixes #78773.
11332
11333 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11334
11335         * ListBox.cs: Call CollectionChanged when modifying
11336         an item from Items indexer, to update the actual items
11337         in the list box.
11338
11339 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11340
11341         * PrintDialog.cs: Small fixes for focus and a pair of checks,
11342         to match .Net behaviour.
11343
11344 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11345
11346         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
11347
11348 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
11349
11350         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
11351
11352 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
11353
11354         * MessageBox.cs: Prevent potential NRE exception.
11355         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
11356
11357 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11358
11359         * MessageBox.cs: Calculate the owner of a messagebox, also make
11360           it topmost. Fixes #78753
11361
11362 2006-08-14  Chris Toshok  <toshok@ximian.com>
11363
11364         * XplatUIX11.cs: A couple of fixes so that metacity will let us
11365         programmatically move windows.  first, set the PPosition hint as
11366         well as the USPosition hint.  Second include some code from pdb
11367         that sets the window type to NORMAL when we set the transient for
11368         hint.  This is because, in the absence of a window type, metacity
11369         thinks any window with TransientFor set is a dialog, and refuses
11370         to let us move it programmatically.  fascists.
11371
11372 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
11373
11374         * XplatUIX11.cs: When setting normal hints, take into consideration
11375           an different hints previously set so we don't delete them (fixes #78866)
11376
11377 2006-08-12  Chris Toshok  <toshok@ximian.com>
11378
11379         * ToolBarButton.cs: make Layout return a boolean, if something to
11380         do with the button's layout changed.
11381
11382         * ToolBar.cs:
11383         - add another parameter to Redraw, @force, which all existing
11384           calls set to true.
11385         - make the Layout function return a boolean which is true if the
11386           layout has actually changed.  Redraw now uses this (and @force)
11387           to determine when to invalidate.  At present the only place
11388           where @force can be false is the call from OnResize, when
11389           background_image == null.  So, resizing a toolbar when the
11390           layout doesn't change results in no drawing.
11391
11392 2006-08-12  Chris Toshok  <toshok@ximian.com>
11393
11394         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
11395         the VScrollBar and HScrollbar reversed.  oops.
11396
11397         * DataGrid.cs: fix the logic that assigns sizes to the implicit
11398         scrollbars.  we were assigning them twice (once in
11399         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
11400         therefore causing two scrollbar resizes (and redraws?) to happen
11401         per grid resize.
11402
11403 2006-08-12  Chris Toshok  <toshok@ximian.com>
11404
11405         * ToolBarButton.cs: redraw the entire button if the theme tells us
11406         to.
11407
11408         * Theme.cs: add ToolBarInvalidateEntireButton.
11409
11410         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
11411         buttons, just the border.
11412
11413         * ThemeNice.cs: redraw the entire toolbar button since we need to
11414         draw the highlight image.
11415
11416         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
11417         we need to redraw the entire button (not just the border).
11418
11419 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11420
11421         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
11422           for vertical bars. Fixes the mismatches shown by #78513
11423
11424 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
11425
11426         * FileDialog.cs: If a saved/remembered path doesn't exist
11427           anymore, fall back to "Desktop".
11428
11429 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
11430
11431         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
11432           parent. It's apparently legal to not have one
11433         * XplatUIX11.cs:
11434           - SetZOrder: Don't try to set Z-Order on an unmapped window
11435           - CreateWindow: 0,0 are legal coordinates for a window. don't move
11436             it unless the coordinates are negative
11437
11438 2006-08-10  Mike Kestner  <mkestner@novell.com>
11439
11440         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
11441         when setting to null per msdn docs.  Fixes #78854.
11442
11443 2006-08-10  Chris Toshok  <toshok@ximian.com>
11444
11445         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
11446         flickering by setting a clip rectangle on the Graphics when we
11447         need to redraw just a particular menuitem.  Also, rename "OnClick"
11448         to "OnMouseDown" to reflect what it actually is.
11449         
11450         * Form.cs: track the OnMouseDown change.
11451
11452 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
11453
11454         * CommonDialog.cs: Properly inherit the CreateParams from the form
11455           and only change what we need. Fixes #78865
11456
11457 2006-08-10  Chris Toshok  <toshok@ximian.com>
11458
11459         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
11460         flickering in flat mode (and most of the flickering in general) by
11461         only invalidating the button border (and not the entire rectangle)
11462         when the state changes.  A couple of cases still flicker:
11463         ToggleButtons, and the dropdown arrow case when the user mouse
11464         ups.
11465
11466 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
11467
11468         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
11469           for german keyboards. Numlock state shouldn't affect the behaviour
11470           of the Del key. Fixes bug #78291.
11471
11472 2006-08-10  Chris Toshok  <toshok@ximian.com>
11473
11474         * ListControl.cs: remove the items.Clear line from BindDataItems,
11475         as this is the first thing done by both subclasses in their
11476         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
11477         passed -1, refresh the list.  This gets databinding working when
11478         the datasource is set on the list before the datasource is
11479         populated (as in wf-apps/ReportBuilder.)
11480
11481         * ComboBox.cs: remove the argument to BindDataItems.  This call
11482         should really go away, and be initiated by the ListControl code.
11483
11484         * ListBox.cs: same.
11485
11486 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11487
11488         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
11489           if no data is in the document when the control is displayed
11490
11491 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
11492
11493         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
11494           yes (fixes #78806)
11495         * TextControl.cs: 
11496           - PositionCaret: Allow positioning of caret but don't call methods 
11497             requiring a handle if the window isn't created yet
11498           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
11499           - owner_HandleCreated: Don't position the caret, just update it's 
11500             location. User might have already set a different position
11501
11502 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
11503
11504         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
11505           windows. Screws up the returned coordinates for child windows. 
11506           Fixes #78825. I'm hoping this doesn't break something, since the
11507           code was explicitly put in 8 months ago, but no bug was attached.
11508           Menus still seem to work properly.
11509
11510 2006-08-08  Chris Toshok  <toshok@ximian.com>
11511
11512         * DataGrid.cs: make BeginInit/EndInit actually do what they're
11513         supposed to do - delay data binding until the EndInit call.  Also,
11514         make the table style collection's CollectionChangeAction.Refresh
11515         work properly.
11516
11517         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
11518         (with action = Refresh) when a consituent table's MappingName is
11519         changed.
11520
11521 2006-08-08  Chris Toshok  <toshok@ximian.com>
11522
11523         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
11524         Invalidate, since changing the text can change the size of the all
11525         toolbar buttons.
11526
11527 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11528
11529         * Form.cs (AddOwnedForm): Still need to add the form to our listif
11530           we don't have it yet
11531
11532 2006-08-08  Chris Toshok  <toshok@ximian.com>
11533
11534         * PrintControllerWithStatusDialog.cs: don't .Close() the status
11535         dialog, as this causes X errors later on, since we actually
11536         destroy the window.  Instead, .Hide() it.
11537
11538 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
11539
11540         * ComboBox.cs: Added focus reflection for popup window
11541         * XplatUIX11.cs: 
11542           - Removed transient setting for non-app windows for now, not sure it
11543             was needed
11544           - Fixed logic checking if we have captions when deciding 
11545             override_redirect, WS_CAPTION is two bits and a 0 check was not
11546             sufficient
11547           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
11548             complicated
11549         * Form.cs: 
11550           - AddOwnedForm: Don't just add the form to the list, call the property
11551             to ensure the driver is informed about the ownership as well
11552           - CreateHandle: Set the TopMost status in the driver if we have an owner
11553         * XplatUI.cs: Fixed debug statement
11554
11555 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
11556         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11557           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
11558           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
11559           TrackBarRenderer.cs: Make constructor private.
11560         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
11561         * ProfessionalColorTable.cs: Make properties virtual.
11562
11563 2006-08-06  Duncan Mak  <duncan@novell.com>
11564
11565         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
11566         is not changing.
11567
11568 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11569         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
11570           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
11571           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
11572           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
11573           Initial import of new 2.0 classes.
11574
11575 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11576         * Application.cs: Add 2.0 VisualStyles properties.
11577
11578 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
11579         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11580           XplatUIX11.cs: Create property to allow access to existing private
11581           variable "themes_enabled"
11582
11583 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11584
11585         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
11586         file size, as otherwise our class libraries fail using windows. Fixes
11587         bug #78759.
11588
11589 2006-08-04  Jackson Harper  <jackson@ximian.com>
11590
11591         * Form.cs:
11592         * XplatUIX11.cs: Move the toolwindow window manager creation into
11593         the X11 driver, this way on win32 we can let windows create/handle
11594         the toolwindows.
11595
11596 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11597
11598         * PrintDialog.cs: Remove some redundant checks, add some others,
11599         clean some code, and move the focus to the text boxes when the
11600         values are incorrect.
11601
11602 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
11603
11604         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
11605
11606 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11607
11608         * NumericUpDown.cs: Setting the Minimum and Maximum is now
11609           handled correctly. Fixes bug #79001.
11610
11611 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11612
11613         * PrintDialog.cs: The "Copies" numeric up down must have
11614         set the Minimum property to 1; only if the value is bigger
11615         than 1, activate "Collate" check box. This is the behaviour of .Net.
11616         Also modify the Document elements only if it is not null.
11617
11618 2006-08-03  Jackson Harper  <jackson@ximian.com>
11619
11620         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
11621         length. (We have a larger array then actual node count).
11622                 
11623 2006-08-03  Jackson Harper  <jackson@ximian.com>
11624
11625         * ComboBox.cs: Don't show selection by default.
11626         - The SelectAll isn't needed here, since the focus code should do
11627         that
11628         - DDL style lists to manual selection drawing, so when they
11629         get/lose focus they have to invalidate.
11630
11631 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
11632
11633         * TextBoxBase.cs: Don't always show all selections by default.
11634
11635 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
11636         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
11637           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
11638           Fixed various typos.
11639
11640 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
11641
11642         * Control.cs: Removing the controls in a ControlCollection with
11643           Clear now hides the controls as expected. Fixes bug #78804. 
11644
11645 2006-08-03  Jackson Harper  <jackson@ximian.com>
11646
11647         * Control.cs: Revert previous focus patch, it breaks reflector.
11648
11649 2006-08-03  Jackson Harper  <jackson@ximian.com>
11650
11651         * ComboBox.cs: Cleanup selection and focus with the combobox.
11652         This also eliminates some duplicated keyboard code, since now
11653         everything is handled by the main class.
11654         - Make list selection work on mouse up instead of down, to match
11655         MS.
11656
11657 2006-08-02  Jackson Harper  <jackson@ximian.com>
11658
11659         * Control.cs: Setting focus needs to go through the whole
11660         selection mechanism.
11661
11662 2006-08-02  Chris Toshok  <toshok@ximian.com>
11663
11664         * PrintPreviewDialog.cs: change MinimumSize to use
11665         base.MinimumSize so it works.
11666
11667 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
11668
11669         * TextControl.cs:
11670           - UpdateCaret: Added sanity check in case caret isn't defined yet
11671           - Line.Delete: Now updating selection and caret markers if we're
11672             transfering a node (Properly fixes #78323)
11673           - SetSelectionEnd: Added sanity check
11674         * TextBoxBase.cs: Removed broken attempt to fix #78323
11675
11676 2006-08-01  Chris Toshok  <toshok@ximian.com>
11677
11678         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
11679         Close() call is handled in Form, not here.
11680
11681 2006-08-01  Chris Toshok  <toshok@ximian.com>
11682
11683         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
11684         layout/rendering.
11685
11686         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
11687         for sizes < 100% zoom.  The code now aggressively attempts to keep
11688         from calling document.Print (), and tries not to use the scaling
11689         g.DrawImage whenever possible (it still does if you scale to >
11690         100%, since usually that involves huge images).
11691
11692         * PrintPreviewControl.cs: hook up the close button.
11693
11694 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
11695         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
11696           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
11697           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
11698           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
11699           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
11700           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
11701           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
11702           Removed [Serializable] for 2.0 Event Handlers.
11703
11704 2006-07-31  Jackson Harper  <jackson@ximian.com>
11705
11706         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
11707         * TextControl.cs: Uncomment out the body of this method.
11708
11709 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
11710
11711         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
11712           standard cursors.
11713
11714 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11715
11716         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
11717           that embed TextBox and need selections visible even if textbox is not
11718           focused to enforce that behaviour.
11719         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
11720           selection drawing
11721
11722 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11723
11724         * TextControl.cs:
11725           - Added new SetSelectionStart/SetSelectionEnd overloads
11726           - Fixed viewport width assignment to be accurate
11727           - Adjusted alignment line shift calculations to allow cursor on right
11728             aligned lines to be always visible at the right border (like MS)
11729         * TextBoxBase.cs:
11730           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
11731           - TextBoxBase_SizeChanged: recalculating canvas on size changes
11732           - CalculateScrollBars: Use ViewPort size instead of window size, to
11733             properly consider space occupied by the border and scrollbars 
11734             (Fixes #78661)
11735           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
11736             calculations; no longer leaves artifacts
11737           - CaretMoved: Adjusted window scrolling to match MS and fixed several
11738             calculation bugs (Still missing right/center align calculations)
11739
11740 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
11741
11742         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
11743           use of both scroll rect and clip rect, as they do the same.
11744
11745 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
11746
11747         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
11748           in the event handler (fixes #78912)
11749
11750 2006-07-31  Chris Toshok  <toshok@ximian.com>
11751
11752         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
11753         grid.ListManager.Count, since grid.ListManager might be null.
11754         This of course begs the question "why are we drawing rows for a
11755         grid with no list manager (and therefor no rows)?"  Fixes the
11756         crash in bug #78929.
11757
11758 2006-07-31  Chris Toshok  <toshok@ximian.com>
11759
11760         * RelatedPropertyManager.cs: Don't always chain up to the parent
11761         ctor.  instead, call SetDataSource if the parent's position is !=
11762         -1.  Fixes the crash in #78822.
11763
11764 2006-07-31  Chris Toshok  <toshok@ximian.com>
11765
11766         * DataGrid.cs (get_ListManager): use field instead of property
11767         accessors for datasource and datamember.
11768         (RowsCount): make internal again.
11769         (OnMouseDown): end edits before resizing columns/rows.
11770         (OnMouseUp): restart edits after resizing columns/rows.
11771
11772 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
11773
11774         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
11775           This fixes the situation where the last set cursor is displayed
11776           whenever the mouse is over scrollbars.
11777
11778 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11779
11780         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
11781         Document properties, as well as initial values.
11782
11783 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
11784
11785         * XplatUIWin32.cs (SetBorderStyle): Setting both border
11786           and ClientEdge results in a 3-pixel border, which is
11787           wrong.
11788
11789 2006-07-28  Jackson Harper  <jackson@ximian.com>
11790
11791         * TreeNodeCollection.cs: Fix the clear method.
11792         - Fix the Shrink also
11793
11794 2006-07-27  Jackson Harper  <jackson@ximian.com>
11795
11796         * TreeView.cs: Make sure the visible order is computed when we
11797         attempt to size the scrollbars (for trees that mess with the
11798         scrolling when they shouldn't.
11799         - Make sure to give the scrollbars valid values.
11800
11801 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11802
11803         * XplatUIX11.cs: Move motion compression code to where it
11804           has less performance impact
11805
11806 2006-07-26  Jackson Harper  <jackson@ximian.com>
11807
11808         * UpDownBase.cs: When the control is selected make the child
11809         controls non selectable, so that a click on them won't do a
11810         focus/unfocus cycle.
11811         - Don't give focus to the text box when the spinner is selected.
11812         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
11813
11814 2006-07-26  Chris Toshok  <toshok@ximian.com>
11815
11816         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
11817         satisfied with this solution.  If the bitmaps are small, we should
11818         just cache them in the PrintPreviewDialog and draw them here.
11819         Also, the layout is broken for the 2-up and 3-up cases.
11820
11821         * Theme.cs: add PrintPReviewControlPaint.
11822
11823         * PrintPreviewDialog.cs: first pass implementation.
11824
11825         * PrintPreviewControl.cs: first pass implementation.  No
11826         scrollbars yet.
11827
11828         * PrintDialog.cs: only validate fields if that particular portion
11829         of the UI is enabled.  Also, set the document's controller to a
11830         PrintControllerWithStatusDialog wrapping the document's print
11831         controller.
11832
11833         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
11834         bring up a SaveFileDialog (i hope we don't want to match the
11835         behavior of the crappy windows file entry) and set the
11836         PrinterSettings.PrintFileName accordingly.
11837
11838 2006-07-26  Jackson Harper  <jackson@ximian.com>
11839
11840         * ContainerControl.cs: Add a field that disables auto selecting
11841         the next control in a container when the container is activated.
11842         * UpDownBase.cs: Don't select the text box when the up down is
11843         selected.
11844
11845 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
11846
11847         * XEventQueue.cs: Added methods for peeking (used for compression
11848           of successive events)
11849         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
11850           mouse move events (fixes #78732)
11851
11852 2006-07-25  Jackson Harper  <jackson@ximian.com>
11853
11854         * UpDownBase.cs: Use an internal class for the textbox so that we
11855         can control focus.  the updown control should always have focus,
11856         if either the text area or the buttons are clicked.
11857         - Send the key messages to the textbox, since it never actually
11858         has focus
11859         - Activate and decativate the textbox caret.
11860
11861 2006-07-24  Jackson Harper  <jackson@ximian.com>
11862
11863         * Control.cs: Use the directed select when selecting a control,
11864         this way the container controls override will get called and the
11865         whole ActiveControl chain will get triggered.  TODO: probably need
11866         to make sure this gets done everywhere instead of the old
11867         Select(Control).
11868         * ContainerControl.cs: Implement the directed Select method to
11869         find and activate the correct child control.    
11870         
11871 2006-07-22  Mike Kestner  <mkestner@novell.com>
11872
11873         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
11874         menu handling code so that clicks without a grab work too.
11875         [Fixes #78914]
11876
11877 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
11878
11879         * FileDialog.cs: Enable the BackButton when dirstack has one element.
11880           Added some small optimizations.
11881
11882 2006-07-21  Matt Hargett  <matt@use.net>
11883
11884         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
11885
11886 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
11887
11888         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
11889           tests pass and match MS in some strange border cases.
11890
11891 2006-07-21  Chris Toshok  <toshok@ximian.com>
11892
11893         * ThemeWin32Classic.cs: handle drawing of the relation links and
11894         parent row buttons.
11895
11896         * Theme.cs: change args to DataGridPaintParentRow.
11897
11898         * DataGrid.cs: Don't use controls for the relation links and
11899         parent buttons, so we have to handle all their interactions in
11900         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
11901         when we're navigating through child tables, so we can reinstate
11902         selection, expanded state, current cell, etc.
11903
11904 2006-07-20  Chris Toshok  <toshok@ximian.com>
11905
11906         * ToolBar.cs: When we redraw a button, for whatever reason,
11907         there's no reason to redraw the entire toolbar.  Also, don't call
11908         Control.Refresh from within Redraw, as it's much heavier than
11909         Invalidate (which is really what we want).
11910
11911 2006-07-20  Chris Toshok  <toshok@ximian.com>
11912
11913         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
11914         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
11915         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
11916         traces from within a debug IBindingList datasource
11917         (in mono/winforms/datagrid) for *days*, I've finally gotten things
11918         to work in a similar fashion.
11919
11920 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11921
11922         * ListBox.cs: Don't call Sort () when setting 
11923         the Sorted property to false (avoid an unnecessary sort).
11924
11925 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11926
11927         * ListControl.cs: DataSource should throw an ArgumentException
11928         instead of a normal exception when the argument is not of the 
11929         correct type.
11930
11931 2006-07-20  Mike Kestner  <mkestner@novell.com>
11932
11933         * Control.cs: add InternalPreProcessMessage to allow us to steal
11934         key events before MWF gets its paws on them.  Adapted from a
11935         suggestion by eno.
11936         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
11937         up/down/left/right navigation. Override the new internal control
11938         method to steal the events since they never make it to WndProc.
11939         * ToolBarButton.cs: don't worry about pushed when setting hilight
11940         since the drawing code prefers pushed to hilight. Invalidate on 
11941         Hilight changes. Fixes #78547 and #78525.
11942
11943 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11944
11945         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
11946           the canvas size. Fixes #78868
11947
11948 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
11949
11950         * Splitter.cs: Track requested split position until first layout
11951           is performed. Fixes #78871
11952
11953 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
11954
11955         * Application.cs: Removed code that forces 1.x for the version
11956           number if the version started with 0. Not sure why that code was
11957           there and I couldn't find any bugs that indicated we needed it.
11958           Fixes #78869
11959
11960 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
11961
11962         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
11963           ResetDefaults(), just write some output to the console until it's
11964           implemented. Fixes bug #78907 for now. Eliminated two warnings.
11965
11966 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
11967
11968         * PropertyGridView.cs: set StartPosition of drop down forms
11969         so they appear in correct initial spot.  Fixes #78190.
11970
11971 2006-07-19  Mike Kestner  <mkestner@novell.com>
11972
11973         * ThemeWin32Classic.cs: use parent background color when drawing
11974         flat toolbars.  Restructure the conditionals to make sure non-flat
11975         non-Divider toolbars are filled too.  Fixes #78837.
11976
11977 2006-07-19  Mike Kestner  <mkestner@novell.com>
11978
11979         * ListBox.cs: Sort on collection changes even if the handle
11980         isn't created yet.  Fixes #78813.
11981
11982 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11983
11984         * ListControl.cs: DisplayMember should never be null,
11985         and now we assign String.Empty when null is passed to it (this
11986         is the .Net way).
11987
11988 2006-07-17  Mike Kestner  <mkestner@novell.com>
11989
11990         * ListViewItem.cs: restructure Font and subitem Font handling 
11991         to hold a specific font and refer back to owner on null.
11992         Fixes #78761.
11993
11994 2006-07-17  Mike Kestner  <mkestner@novell.com>
11995
11996         * ToolBar.cs: bandaid for side-effect of previous patch which was
11997         discarding explicit heights for non-AutoSize toolbars.  Need to
11998         extend my format tester to deal with AutoSize=false. Fixes #78864.
11999
12000 2006-07-15  Jackson Harper  <jackson@ximian.com>
12001
12002         * LabelEditTextBox.cs:
12003         * TreeView.cs: Use a new LabelEdit class for node editing, this
12004         class automatically 'closes' itself when it gets the enter key or
12005         loses focus.
12006         - Use the client rectangle when setting the trees scrollbars, so
12007         border style is taken into account.
12008         
12009 2006-07-14  Jackson Harper  <jackson@ximian.com>
12010
12011         * TreeNode.cs:
12012         * TreeView.cs: Make the editing work similar to MSs, firing the
12013         events correctly and ending edits correctly.
12014
12015 2006-07-14  Mike Kestner  <mkestner@novell.com>
12016
12017         * ToolBarButton.cs:
12018         * ToolBar.cs: layout restructuring and redraw enhancements to support
12019         formatting changes gracefully, like setting TextAlign, ImageList, 
12020         ButtonSize, and Appearance.  Handles explicit button sizing quirks
12021         of the MS controls.  Things like flat toolbars ignoring button size
12022         but becoming constant sized at the largest button's size.  Normal
12023         toolbars with an image set cannot be shrunk smaller than the image,
12024         but text can be clipped/ignored.
12025         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
12026         is zero.  Seems like DrawString should be smart enough to not put
12027         anything on screen though. Also trim labels and ellipsize at the char
12028         boundary, not word.
12029         Fixes #78711 and #78483.
12030
12031 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12032
12033         * FolderBrowserDialog.cs: Disable "New Folder" button and
12034           "New Folder" contextmenu menuitem if a folder like "My Computer"
12035           is selected.
12036
12037 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12038
12039         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
12040         * FolderBrowserDialog.cs:
12041           - Use MWFConfig to store and read size and position settings
12042           - Added code to create a new folder (button or context menu).
12043             Use TreeView labeledit to change the name of the new folder.
12044
12045 2006-07-14  Jackson Harper  <jackson@ximian.com>
12046
12047         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
12048         when the tree is scrolled we end editing.
12049
12050 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
12051
12052         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
12053           Down arrows
12054
12055 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
12056
12057         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
12058         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
12059         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
12060         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
12061         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
12062         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
12063         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
12064         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
12065         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
12066         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
12067         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
12068         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
12069         ListViewItemSelectionChangedEventHandler.cs,
12070         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
12071         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
12072         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
12073         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
12074         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
12075         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
12076         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
12077         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
12078         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
12079         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
12080         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
12081         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
12082         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
12083         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
12084         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
12085         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
12086         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
12087         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
12088         WebBrowserNavigatingEventHandler.cs, 
12089         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
12090
12091 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
12092
12093         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
12094         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
12095         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
12096         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
12097         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
12098         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
12099         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
12100         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
12101         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
12102         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
12103         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
12104         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
12105         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
12106         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
12107         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
12108         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
12109         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
12110         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
12111         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
12112         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
12113         ListViewItemStates.cs, MaskFormat.cs: Added
12114
12115 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
12116
12117         * PropertyGridView.cs: Fix keyboard navigation of drop down.
12118         Patch from eno for bug 78558.
12119         
12120 2006-07-13  Jackson Harper  <jackson@ximian.com>
12121
12122         * TreeView.cs: When an edit is finished make sure that the
12123         selected node is visible.
12124         - When setting the top/bottom use the scrollbars is_visible, so
12125         everything will be set correctly even if the tree isn't visible
12126         yet.
12127
12128 2006-07-13  Jackson Harper  <jackson@ximian.com>
12129
12130         * ComboBox.cs: Revert the item->index part of my previous patch.
12131         * TreeView.cs: Use LostFocus instead of Leave for detecting when
12132         the edit box has lost focus (duh).
12133         - Just make the edit box not visible when we get return, that will
12134         take the focus, which will call EndEdit
12135         * TreeNode.cs When we start editing, notify the treeview.
12136
12137 2006-07-12  Jackson Harper  <jackson@ximian.com>
12138
12139         * ComboBox.cs: Clear out old items before setting the item list.
12140         This prevents databound controls from having their items added
12141         twice.
12142         - Switch the combobox to use indices whereever possible instead of
12143         using Item's.  This allows usto navigate through lists that have
12144         more then one item with the same string value (ie a, b, b, a).
12145         - Scroll the listboxes scrollbar when a non visible item is
12146         highlighted
12147         - Allow keypress to cycle through all the possible values. For
12148         example if you have b1, b2, b3 and hold down the B key all the
12149         values will be cycled through.
12150         
12151 2006-07-12  Jackson Harper  <jackson@ximian.com>
12152
12153         * TextBoxBase.cs:
12154         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
12155         this using the internal methods.
12156         * Control.cs: Add OnGotFocusInternal.  A new method that allows
12157         controls to "override" OnGotFocus and change focus behavior if
12158         needed.
12159         - Same thing for LostFocus
12160         * ComboBox.cs: Pass off focus to the text control properly.
12161
12162 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
12163
12164         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
12165         * FolderBrowserDialog.cs: Almost a complete rewrite.
12166           - Better support for Environment.Specialfolders
12167           - Added support for MWFVFS
12168           - Made setting SelectedPath work
12169
12170 2006-07-12  Jackson Harper  <jackson@ximian.com>
12171
12172         * Control.cs: Optimze getting all the controls.
12173
12174 2006-07-11  Jackson Harper  <jackson@ximian.com>
12175
12176         * ContainerControl.cs: Override SETFOCUS in the container control,
12177         so that it is not selected on mouse click.
12178
12179 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
12180
12181         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
12182           Hopefully we will have a better way once all of focus is complete.
12183
12184 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
12185
12186         * ThemeWin32Classic.cs: Commented out some debug code and fixed
12187           a compile error with csc.
12188
12189 2006-07-11  Jackson Harper  <jackson@ximian.com>
12190
12191         * Control.cs: When hiding a control only select the next control
12192         if the current control was focused.
12193         - Don't handle enter/leave when setting/killing focus, this is
12194         done by the container control.
12195         - Remove is_selected, it's not needed anymore.
12196         - Add utility methods for selecting a child control, and for
12197         firing the Enter/Leave events.
12198         * ContainerControl.cs: When a control is activated fire the
12199         enter/leave events.
12200         - Don't wrap when processing the tab key, so that focus can be
12201         moved outside of the container.
12202         - Use the correct active control
12203
12204 2006-07-11  Jackson Harper  <jackson@ximian.com>
12205
12206         * ComboBox.cs: Remove some debug code that was blinding me.
12207         * UpDownBase.cs: These controls actually aren't implicit, they are
12208         visible to the user.
12209
12210 2006-07-10  Chris Toshok  <toshok@ximian.com>
12211
12212         * DataGrid.cs: move back to the is_adding boolean field.  god i
12213         hate this is_editing/is_adding/is_changing stuff.
12214
12215 2006-07-10  Chris Toshok  <toshok@ximian.com>
12216
12217         * DataGridTableStyle.cs: just check if the property type is bool.
12218         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
12219         Don't use CanRenderType.
12220
12221         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
12222         if our text == NullText.  Remove CanRenderType.
12223
12224         * DataGridBoolColumn.cs: nuke CanRenderType.
12225
12226         * DataGrid.cs: reenable some code to end the current edit inside
12227         of set_CurrentCell.  This fixes the other 1.1.16 regression.
12228         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
12229         Also, remove the visible_row_count arg from CalcRowHeaders, since
12230         we don't need to worry about the actual height of the area.
12231
12232 2006-07-10  Chris Toshok  <toshok@ximian.com>
12233
12234         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
12235         mode, just return.
12236
12237         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
12238         the real sense of the IsInEditOrNavigateMode property (true =
12239         navigate, false = edit).  Also, update OnKeyPress to reflect this.
12240
12241         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
12242         column style exists, we still need to set its property descriptor
12243         to match up with our list manager.
12244
12245 2006-07-10  Chris Toshok  <toshok@ximian.com>
12246
12247         * ThemeWin32Classic.cs: implement the new row/header painting
12248         approach.  The parent row painting will likely go away and
12249         replaced with label controls, but the rest seems to work ok (and
12250         efficiently).
12251
12252         * Theme.cs: change the way we draw datagrid rows.  we don't draw
12253         the row headers as a block now.  Instead we draw them in the
12254         normal draw-row loop.  Add some calls for drawing parent rows and
12255         relation rows.
12256
12257         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
12258         a default table style.  Set the defaults from ThemeEngine.Current,
12259         not SystemColors.  Fix lots of misc issues with property setters.
12260
12261         * DataGrid.cs: move loads of style information out of this class
12262         as it's being duplicated with DataGridTableStyle.  keep track of a
12263         special DataGridTableStyle for the properties we used to mirror
12264         here.  Switch all the style properties to access this table style
12265         instead of instance fields of this class.  Also add a internal
12266         class to represent parent rows (more needs to be stored here, like
12267         the selection state from the parent table, as well as the
12268         expansion state.)  Also, for datasources with relations, do the
12269         right thing for collapse/expand, and add support for the
12270         navigation/parent row buttons.
12271
12272         Lastly, fix the crash in the 1.1.16 build.
12273
12274         * GridTableStylesCollection.cs: make the explicit interface
12275         implementations call the class's methods as opposed to duplicating
12276         them.
12277
12278         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
12279         0 so the text doesn't jump around when we move the cursor.
12280
12281 2006-07-10  Jackson Harper  <jackson@ximian.com>
12282
12283         * TextBoxBase.cs:
12284         * ListBox.cs: Match MS's ToString (this makes debugging focus
12285         stuff infinitely easier).
12286
12287 2006-07-10  Jackson Harper  <jackson@ximian.com>
12288
12289         * Control.cs (SelectNextControl): When checking the control's
12290         parent use this instead of ctrl.parent so that null can be passed
12291         to SelectNextControl. (I have unit tests for this).
12292         - Remove unused var.
12293
12294 2006-07-10  Chris Toshok  <toshok@ximian.com>
12295
12296         * CurrencyManager.cs: correct one regression, the removal of the
12297         finalType field.  Also, add a MonoTODO on CanAddRows, implement
12298         Refresh() correctly, and fix some event emission in
12299         ListChangedHandler.
12300
12301 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12302
12303         * FileDialog.cs: Don't use brackets for new folders if they exist
12304           under *nix. Instead use -(number of existing folders +1).
12305
12306 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
12307
12308         * FileDialog.cs:
12309           - Fixed really nasty bug #78771
12310           - Don't block the whole GUI when reading directories with a lot of
12311             entries. Use an other thread instead and call BeginInvoke to
12312             update the ListView in MWFFileView
12313
12314 2006-07-07  Chris Toshok  <toshok@ximian.com>
12315
12316         * Control.cs (Dispose): release any Capture when disposing.
12317
12318 2006-07-07  Chris Toshok  <toshok@ximian.com>
12319
12320         * LinkLabel.cs (Select): if we chain up to the parent, set
12321         focused_index to -1 so we'll search for the first available link
12322         the next time the user tabs into us.  Also, if the direction is
12323         backward and focused_index == -1, start the search from the last
12324         element.
12325
12326 2006-07-07  Chris Toshok  <toshok@ximian.com>
12327
12328         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
12329         is beyond the end of the text, don't do anything.
12330         (CreateLinkPieces): set our ControlStyles.Selectable based on
12331         whether or not we have any links.
12332         (Link.Invalidate): use a loop instead of foreach.
12333         (Link.set_Start): null out owner.sorted_links so it'll be
12334         recreated by CreateLinkPieces.
12335
12336 2006-07-06  Chris Toshok  <toshok@ximian.com>
12337
12338         * LinkLabel.cs: revert the SetStyle change.
12339
12340 2006-07-06  Chris Toshok  <toshok@ximian.com>
12341
12342         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
12343         (OnEnableChanged): s/Refresh/Invalidate
12344         (OnGotFocus): if we have a focused index already, refocus it (so
12345         if we mouse out/in to the window it'll focus the right link).
12346         (OnKeyDown): move the tab handling out of here.
12347         (OnLostFocus): don't set focused_index to -1, so we can refocus it
12348         when we lose focus.
12349         (OnMouseDown): don't Capture here - Control handles it.  Also,
12350         focus the active link.
12351         (OnMouseUp): don't deal with Capture.
12352         (OnPaintBackgroundInternal): remove.
12353         (OnTextAlignChanged): CreateLinkPieces before calling the
12354         superclass's method.
12355         (OnTextChanged): call CreateLinkPieces before calling superclass's
12356         method.
12357         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
12358         move around.
12359         (Select): implement this, moving the selection between different
12360         links, and call parent.SelectNextControl if we don't have another
12361         link to focus in the given direction.
12362         (CreateLinkPieces): call Invalidate instead of Refresh.
12363         
12364 2006-07-06  Chris Toshok  <toshok@ximian.com>
12365
12366         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
12367         new LinkLabel internals.
12368
12369         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
12370         over pieces looking for active/focused/etc links.  also, deal with
12371         runs of text (and links) with embedded \n's in them, and use
12372         MeasureCharacterRanges instead of MeasureString to figure out the
12373         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
12374         two-step.
12375
12376 2006-07-04  Jackson Harper  <jackson@ximian.com>
12377
12378         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
12379         XKB or key auto repeat, do it manually.  Without key auto repeat,
12380         when a key is held down we get key press, key release, key press,
12381         key release, ... with auto repeat we get key press, key press, key
12382         press ..., and then a release when the key is actually released.
12383
12384 2006-07-03  Jackson Harper  <jackson@ximian.com>
12385
12386         * TabControl.cs:
12387         * ThemeWin32Classic.cs: Tabs do not obey normal background color
12388         rules, they are always control color regardless of the background
12389         color.
12390
12391 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
12392
12393         * FileDialog.cs: Added internal class MWFConfig.
12394           Removed Registry support and replaced it with support for the new
12395           MWFConfig class. See MWFConfig comments for more information.
12396
12397 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
12398
12399         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
12400           rectangle. Added some patches from eno from bug #78490 and fixed
12401           the arrow position for small up and down CPDrawScrollButtons.
12402
12403 2006-06-30  Jackson Harper  <jackson@ximian.com>
12404
12405         * InternalWindowManager.cs: Remove some debug code.
12406         * Form.cs: When an MdiParent is set to null, the window is
12407         "detatched" and becomes a normal window.
12408         * MdiClient.cs: Don't bring the new child form to the front until
12409         it is activated (setting it as active does this), this makes the
12410         previously active forms titlebar get redrawn as inactive.
12411
12412 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
12413
12414         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
12415           with later controls
12416
12417 2006-06-29  Mike Kestner  <mkestner@novell.com>
12418
12419         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
12420         arrow in keynav state.  Fixes #78682.
12421
12422 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12423
12424         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
12425           order (fixes #78393)
12426
12427 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
12428
12429         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
12430           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
12431           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
12432           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
12433           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
12434           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
12435           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
12436           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
12437           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
12438           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
12439           enumerations (FlagsAttribute, SerializableAttribute, added/removed
12440           values)
12441
12442 2006-06-28  Mike Kestner  <mkestner@novell.com>
12443
12444         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
12445
12446 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
12447
12448         * PropertyGrid.cs,
12449           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
12450           item lines from other area (It also makes BackColor consistent and
12451           compatible with .NET). Fixed bug #78564.
12452
12453 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
12454
12455         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
12456         Patch from Eno for #78555.
12457
12458 2006-06-27  Chris Toshok  <toshok@ximian.com>
12459
12460         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
12461
12462         * DataGridColumnStyle.cs: same.
12463
12464         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
12465         
12466         * DataGridDrawingLogic.cs: nuke.
12467
12468 2006-06-27  Chris Toshok  <toshok@ximian.com>
12469
12470         * DataGridTableStyle.cs: clean up the constructors, and build the
12471         list of child relations for this table.  I have no idea if this is
12472         where we should be doing it (it probably isn't), but since we're
12473         already iterating over the properties..
12474
12475         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
12476         struct and array for keeping track of row information, similar to
12477         what's shown in a hack on
12478         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
12479
12480         * Theme.cs: be consistent about the naming of DataGrid methods,
12481         prefering ColumnWidths and RowHeights over columnsWidths and
12482         RowsHeights.
12483
12484         * ThemeWin32Classic.cs: same, and also add support for variable
12485         sized rows (and the +/- expansion icons for related rows).
12486
12487 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12488
12489         * TextBoxBase.cs: Applied Eno's patch from #78660
12490
12491 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12492
12493         * Form.cs (ScaleCore): We don't want to scale our form if it's
12494           state is minimized or maximized, but we still need to scale our
12495           child windows. Also, added try/finally block to ensure layout
12496           gets reset (Fixes #78697)
12497
12498 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
12499
12500         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
12501
12502 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
12503
12504         * Form.cs: Fixed c+p error and added check to resize form if minimum
12505           size is bigger than current size (Fixes #78709)
12506
12507 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
12508
12509         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
12510
12511 2006-06-26  Mike Kestner  <mkestner@novell.com>
12512
12513         * ComboBox.cs: only do Keypress handling in the combo when there  
12514         are items in the collection. Fixes #78710.
12515
12516 2006-06-26  Chris Toshok  <toshok@ximian.com>
12517
12518         * Binding.cs: make this work bi-directionally.  also, clear up
12519         other mixups between Push/Pull Data (e.g. we're supposed to pull
12520         data when validating).
12521
12522         * BindingManagerBase.cs: trim some fully qualified collection
12523         types.
12524
12525         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
12526
12527 2006-06-23  Chris Toshok  <toshok@ximian.com>
12528
12529         * PropertyManager.cs: It appears (according to the unit tests)
12530         that PropertyManager doesn't use
12531         PropertyDescriptor.AddValueChanged to track propery value changes
12532         in its datasource, but uses the same scheme as Binding, where it
12533         looks for a <Property>Changed event and binds to it.
12534
12535         Also, according to the docs, IsSuspended always returns false for
12536         a property manager with a non-null datasource.
12537
12538 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
12539
12540         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
12541           need to update the actual DialogResult. (Fixes #78613)
12542
12543 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
12544
12545         * Form.cs (ShowDialog): Release any captures before running the
12546           new message pump (fixes #78680)
12547
12548 2006-06-22  Mike Kestner  <mkestner@novell.com>
12549
12550         * ListView.cs: Layout column widths properly in details mode even 
12551         if HeaderStyle.None is set.  Fixes #78691.
12552
12553 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
12554
12555         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
12556
12557 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
12558
12559         * Control.cs (ContainsFocus): Using new driver method to get focused
12560           window, instead of trying to use internal tracking var, which can
12561           recursion issues (Fixes #78685)
12562         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
12563           XplatUIWin32.cs: Added GetFocus method to return focused window
12564
12565 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12566
12567         * ColorDialog.cs: when the mouse button is pressed inside the color
12568         matrix, don't let the cursor move out of it until the button is
12569         released, which is the behavior on windows. Changed 'colours' by
12570         'colors' to use the same word consistently.
12571
12572 2006-06-21  Chris Toshok  <toshok@ximian.com>
12573
12574         * DataGrid.cs: add in some basic navigation stuff (navigating to a
12575         child relation and back, using a stack).  Also, remove
12576         GetDataSource and the code that calls it - it's not needed.  Also,
12577         track CurrencyManager.ListName's removal.
12578
12579 2006-06-21  Chris Toshok  <toshok@ximian.com>
12580
12581         * CurrencyManager.cs: push some of the original type checking from
12582         BindingContext.CreateBindingManager to here, and remove some of
12583         the finalType stuff.  Need more tests to make sure I've got the
12584         ListName part right, and we might need more in SetDataSource.
12585
12586         * PropertyManager.cs: add a ctor that takes just the datasource,
12587         and no property name.  Make SetDataSource work with a null
12588         property_name, and make Current return the data_source if the
12589         property descriptor is null.  this makes 'string foo = "hi";
12590         BindingContext[foo].Current' return "hi" as it should.
12591
12592         * RelatedCurrencyManager.cs: make this code more generic - there's
12593         no reason the parent manager has to be CurrencyManager, and
12594         there's no reason to pass the DataRelation.  It suffices to use a
12595         BindingManagerBase and PropetyDescriptor.
12596
12597         * RelatedPropertyManager.cs: make a similar change here.
12598         
12599         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
12600         flower I knew it could be.
12601
12602 2006-06-20  Chris Toshok  <toshok@ximian.com>
12603
12604         * PropertyManager.cs: the PropertyChangedHandler is invoked when
12605         data in the source has changed and we need to update the control,
12606         so s/PullData/PushData.
12607
12608         * CurrencyManager.cs: Refresh is meant to update the control from
12609         data in the datasource.  So, s/PullData/PushData.
12610
12611         * BindingContext.cs: add more ugliness (we weren't handling the
12612         case where data_source = DataTable and data_member = column_name).
12613
12614         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
12615         from the perspective of the datasource.  PullData pulls from the
12616         control, PushData pushes to the control.
12617
12618 2006-06-20  Chris Toshok  <toshok@ximian.com>
12619
12620         * BindingContext.cs: rewrite the CreateBindingManager code to
12621         handle navigation paths more or less properly.  This could
12622         definitely stand some more work, in particular to push the
12623         recursion up to the toplevel.  But that relies on fixes in other
12624         places (System.Data comes to mind).
12625
12626         Also, move to a flat hashtable (and encode the twolevel nature of
12627         the dictionary into the hash key).  This lets us implement the
12628         IEnumerable.GetEnumerator method.
12629
12630         * RelatedCurrencyManager.cs: new class.  Update our view based on
12631         our relation and our parent CurrencyManager's position.
12632
12633         * CurrencyManager.cs: split out some logic from the ctor into
12634         SetView, so it can be called from the new RelatedCurrencyManager
12635         subclass.
12636
12637         * RelatedPropertyManager.cs: new class.  Update our datasource
12638         based on the position of our parent CurrencyManager.
12639
12640         * PropertyManager.cs: split out some logic from the ctor into
12641         SetDataSource, so it can be called from the new RelatedDataSource
12642         subclass.  Also, make the Current getter return the value
12643         of the PropertyDescriptor, not the data_source.
12644
12645         * Binding.cs: no need to duplicate the string splitting code here.
12646
12647 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12648
12649         * Control.cs:
12650           - set_Enabled: OnEnabledChanged is not called if the inherited state 
12651             of the control is not altered, even though  we might be changing the
12652             internal state of the control (#78458)
12653           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
12654             OnEnabledChanged, to allow easy altering of any child window state
12655           - OnEnabledChanged: Added code to enable/disable driver window state
12656           - OnParentEnabledChanged: Instead of firing the event, call 
12657             OnEnabledChanged, which will fire the event and also a) set driver
12658             window state and pass the enabled state to any grandchildren (#78458)
12659
12660 2006-06-19  Jackson Harper  <jackson@ximian.com>
12661
12662         * InternalWindowManager.cs: We don't set the cursor explicitly
12663         thats done via the response to NCHITTESTs.
12664         - Don't need to adjust for titlebar heights anymore, the
12665         coordinates are coming in the correct coordinates now (see peters
12666         last patch).
12667
12668
12669 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
12670
12671         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
12672           being translated relative to whole window, instead of client window.
12673           That caused broken offsets on mouseclick (and caused gas for our
12674           InternalWindowManager)
12675
12676 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12677
12678         * TextControl.cs:
12679           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
12680           - Undo(): Added replay of cursor move on DeleteChars action; added
12681             calling Undo() again if a recorded cursor move is invalid (to
12682             ensure that some action is performed on Undo)
12683         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
12684
12685 2006-06-16  Jackson Harper  <jackson@ximian.com>
12686
12687         * MdiClient.cs: Instead of just sizing maximized windows when
12688         there is a resize we also have to adjust the Y of minimized
12689         windows, so they stay pinned to the bottom of the mdi container.
12690         - Eliminate separate tracking of the active control, we can just
12691         get this from the controls collection.
12692         - Paint the decorations for the newly activated titlebar so we get
12693         a pretty blue bar.
12694         * InternalWindowManager.cs:
12695         * ThemeWin32Classic.cs: Minimized windows get all three buttons
12696         even if they are a tool window.
12697         
12698 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
12699
12700         * TextControl.cs (Undo): Handle non-existent cursor locations in the
12701           undo buffer, these can happen when text was deleted and the cursor
12702           was recorded first. Since we will also have a recorded cursor
12703           after the delete this is not an issue. (Fixes #78651)
12704
12705 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
12706
12707         * AccessibleObject.cs: Remove dependence on Control.is_selected;
12708           instead properly track control states internally (allows us to
12709           remove is_selected from Control)
12710
12711 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12712
12713         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
12714         whose width is not a multiple of 8.
12715
12716 2006-06-13  Jackson Harper  <jackson@ximian.com>
12717
12718         * MdiClient.cs:  Only maximize the next child if the current one
12719         is maximized.
12720
12721 2006-06-13  Chris Toshok  <toshok@ximian.com>
12722
12723         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
12724         modified.  Also, guard against grid or grid_drawing being null in
12725         Invalidate.
12726
12727         * DataGrid.cs: Reformat tons of getters/setters.  In the
12728         DataMember setter, just call SetNewDataSource instead of
12729         duplicating some of its functionality.  In SetNewDataSource, don't
12730         check ListManager for null, since the property getter creates the
12731         object if needed.
12732
12733         * DataGridTableStyle.cs: don't set TableStyle or call
12734         SetDataGridInternal on the column here, it's done in
12735         GridColumnStylesCollection.Add.
12736
12737         * GridColumnStylesCollection.cs: fix all the explicit interface
12738         implementations to just call our methods.  Nuke AddInternal() and
12739         move the body of it to Add().  Also, add a call to
12740         column.SetDataGridInternal to Add().
12741
12742         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
12743         base()+duplicate code.  Also, use the Format property instead of
12744         format to generate an Invalidate ala MS.  Lastly, create the
12745         textbox here, unconditionally.
12746         (set_Format): call Invalidate.
12747         (get_TextBox): no need to call EnsureTextBox.
12748         (Commit): remove the message box.
12749         (Edit) remove the call to EnsureTextBox.
12750         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
12751         (EnterNullValue): no need to check textbox for null.
12752         (HideEditBox): no need to check textbox for null.
12753         (SetDataGridInColumn): add the textbox to the grid's controls.
12754         (EnsureTextBox): nuke.
12755         
12756 2006-06-13  Jackson Harper  <jackson@ximian.com>
12757
12758         * MdiWindowManager.cs: Hook up to the maximized menus paint event
12759         and redraw the buttons when needed. Unhook when the window is
12760         unmaximized.
12761         * MainMenu.cs: Add an internal Paint event, the mdi window manager
12762         needs this so that it can redraw its buttons when the menu is
12763         repainted.
12764         * InternalWindowManager.cs:
12765         * Form.cs: The method order has changed for DrawMaximizedButtons,
12766         so that it can be a PaintEventHandler.
12767         
12768 2006-06-13  Jackson Harper  <jackson@ximian.com>
12769
12770         * MdiClient.cs: When we close a maximized mdi window, the next mdi
12771         window is activated and maximized, even if it wasn't before.
12772         - When  a new window is activated repaint the decorations of the
12773         old one, so that it no longer has the Active "look" (the blue
12774         titlebar).
12775         * InternalWindowManager.cs: Open up CreateButtons to base classes
12776         so they can recreate the buttons on state changes.
12777         - If a window is maximized give it all three buttons
12778         * MdiWindowManager.cs: Create the titlebar buttons when the state
12779         is changed, this is needed because a toolwindow will not have all
12780         three buttons until it is maximized.
12781
12782 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
12783
12784         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
12785           Fixed bug #78609.
12786
12787 2006-06-12  Jackson Harper  <jackson@ximian.com>
12788
12789         * KeysConverter.cs: Make sure we handle the Ctrl special case
12790         if its the only key.
12791         
12792 2006-06-12  Jackson Harper  <jackson@ximian.com>
12793
12794         * Theme.cs: Add a method to get the size of a managed window
12795         toolbar button.
12796         * InternalWindowManager.cs: Remove the ButtonSize property, this
12797         should be retrieved from the theme.
12798         * MdiWindowManager.cs: Get the button size from the theme
12799         * ThemeWin32Classic.cs: Make the method to get the managed window
12800         titlebar button size public.
12801         - Handle the different button sizes of maximized toolwindows
12802         (should match any maximized window).
12803         - Get the titlebar height from the theme, not the WM (which gets
12804         it from the theme).
12805
12806 2006-06-12  Jackson Harper  <jackson@ximian.com>
12807
12808         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
12809         event down to the mdi window manager.
12810         - Expose some extra stuff to base classes
12811         - Make sure to end the Capture on an NC Mouse up, so that we can
12812         get double clicks properly, and the sizing doens't stick.
12813         - When doing PointToClient contain it in the workable desktop
12814         area, this prevents windows from changing size when the cursor is
12815         pulled outside of the working area while sizing.
12816         * MdiWindowManager.cs: When we get a double click maximize the
12817         window.
12818         - Reset the cursor after handling mode changes.
12819
12820 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
12821
12822         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
12823           current desktop, instead of just assuming a 0, 0 origin. This
12824           is needed for our internal window manager, to know the top
12825           margin of the desktop
12826
12827 2006-06-12  Chris Toshok  <toshok@ximian.com>
12828
12829         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
12830         we need this to get rid of the selected background in the bool
12831         column.
12832         (CancelEditing): move the ConcedeFocus call to above the Abort
12833         call.  Also, set is_changing to false and invalidate the row
12834         header if we were changing before.
12835         (ProcessKeyPreviewInternal): remove, since noone outside this
12836         class calls it anymore.  Roll the code into ProcessKeyPreview.
12837         (EndEdit): remove the internal version.
12838         (InvalidateCurrentRowHeader): make private.
12839
12840         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
12841         Keys.Escape handling (and with it the last call to
12842         DataGrid.EndEdit from outside the class.)
12843
12844
12845 2006-06-12  Chris Toshok  <toshok@ximian.com>
12846
12847         * DataGridTextBox.cs (.ctor): isedit defaults to false.
12848         (OnKeyPress): set isedit to true.
12849         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
12850         already handled by the grid.
12851
12852         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
12853         right.  ugh.
12854         (set_DataSource): SetDataSource always returns true, so stop
12855         putting it in an if statement.
12856         (EndEdit): get rid of some {}'s
12857         (ProcessGridKey): return true in case Keys.Escape.
12858         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
12859         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
12860         PositionChanged, stopped connecting to CurrentChanged.
12861         (GetDataSource): simplify this a bunch.
12862         (SetDataSource): change return type from bool to void.
12863         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
12864         to this, and make sure we don't set ListManager.Position inside
12865         set_CurrentCell.
12866         (OnListManagerItemChanged): if we're passed an actual index,
12867         redraw that row.
12868
12869         * CurrencyManager.cs (set_Position): don't call PullData here.
12870
12871 2006-06-09  Jackson Harper  <jackson@ximian.com>
12872
12873         * TreeNode.cs:  Recalculate the visible order before doing the
12874         Expand/Collapse Below calls, because those calls generate an
12875         expose.
12876         - Reduce calls to the TreeView property, which is mildly expensive
12877         by using a local var.
12878         * Form.cs: Layout the MDI child windows when creating the parent
12879         form.
12880         - Don't use the internal constructor anymore
12881         * MdiClient.cs: use the parent form width/height (if available)
12882         when laying out the child windows, we do this because the
12883         mdiclient isn't docked yet when the initial layout is done.
12884         - Don't need an internal constructor anymore.
12885
12886 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12887
12888         * FileDialog.cs: handle access errors when trying to create a folder
12889         or changing to a directory. No need to initialize out parameters.
12890
12891 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12892
12893         * FileDialog.cs: Append a number when creating a new folder if the
12894           folder already exists (use parenthesis instead of square brackets)
12895
12896 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12897
12898         * FileDialog.cs:
12899           - Disabled registry support for windows and added better registry
12900             error checking for other systems (need to investigate why it
12901             works perfectly on my system)
12902           - If a folder already exist show an error MessageBox instead of
12903             trying to create an indexed name.
12904           - Fixed a non intentional typo.
12905
12906 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12907
12908         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
12909
12910 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12911
12912         * FileDialog.cs: When creating a new folder don't crash if the
12913           folder already exists.
12914
12915 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12916
12917         * FileDialog.cs: Allmost a complete rewrite.
12918           - added a "virtual" file system that handles the differences
12919             between unix and windows file systems (especially the directory
12920             structure). Moved most of the directory and file handling code
12921             into the vfs.
12922             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
12923             UnixFileSystem and FSEntry.
12924           - Recently used folder/directory, size, location and used file names
12925             (file name ComboBox) are now stored in the registry and get read
12926             before the dialog shows up (fixes part 6 of bug #78446).
12927           - Creation of new folders/directories is now possible (context menu
12928             or ToolBar). Added TextEntryDialog for this that fills in the gap
12929             until ListView.LabelEdit works.
12930           - Fixed cursor handling (bug #78527) and focus handling for
12931             PopupButtonPanel
12932           - Various "Search in" ComboBox enhancements. The content of the
12933             dropdown listbox now almost matches ms.
12934           - Changed the behaviour when the user switches to SpecialFolder
12935             Recent to show the ListView in View.Details.
12936           - Beside using the ToolBar to change the View property of the
12937             file ListView it is now possible to use the context menu too.
12938
12939 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
12940
12941         * ComboBox.cs: Don't create a new ObjectCollection when an item
12942           gets inserted. Just insert the item in the existing object_items
12943           ArrayList.
12944
12945 2006-06-08  Jackson Harper  <jackson@ximian.com>
12946
12947         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
12948         that the treeview and root node checks are done also, this fixes a
12949         regression i caused in the unit tests.
12950
12951 2006-06-07  Wade Berrier <wberrier@novell.com> 
12952
12953         * RichTextBox.cs: More ISO8859-1 -> unicode
12954
12955 2006-06-07  Mike Kestner  <mkestner@novell.com>
12956
12957         * ComboBox.cs : use items to hold highlight/selection so that
12958         collection insertions don't require synchronization.
12959
12960 2006-06-07  Jackson Harper  <jackson@ximian.com>
12961
12962         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
12963         routine.  We now always keep the sized edge at the cursor instead
12964         of computing movement and adjusting rects.  There is one buglet
12965         with this method though when the cursor is moved over area that
12966         the window can not expand too (such as the toolbars on the desktop).
12967
12968 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12969
12970         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
12971         here. Fixes crash on startup in AlbumSurfer.
12972
12973 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
12974
12975         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
12976           values
12977
12978 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12979
12980         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
12981         statement to avoid calling XNextEvent which will block if another thread
12982         took the event that we were expecting. Fixes bug #78605.
12983
12984 2006-06-07  Mike Kestner  <mkestner@novell.com>
12985
12986         * ListView.cs : isolated checkbox clicking from the selection logic.
12987         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
12988
12989 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12990
12991         * Form.cs: Check that the value passed to Form.DialogResult
12992         is a valid enum value.
12993
12994 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12995
12996         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
12997         Computer'. Clicking it in the network view goes to 'My Computer'.
12998         Added CIFS filesystem type. Display the mount point of filesystems.
12999         Avoid duplicate mount points (happens for me with CIFS);
13000
13001 2006-06-06  Jackson Harper  <jackson@ximian.com>
13002
13003         * InternalWindowManager.cs: Draw the maximized windows buttons
13004         when resizing.
13005
13006 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13007
13008         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
13009         all other dialogs. Fixes bug #78585.
13010
13011 2006-06-06  Mike Kestner  <mkestner@novell.com>
13012
13013         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
13014         Only invalidate checkbox on checkstate changes to avoid flicker.
13015         * ListBox.cs : avoid unselect/select when clicking selected item.
13016         avoid reselection flicker for already multiselected items.
13017         Fixes #78382.
13018
13019 2006-06-06  Jackson Harper  <jackson@ximian.com>
13020
13021         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
13022         the parent form so that the menu is removed if needed.
13023
13024 2006-06-06  Mike Kestner  <mkestner@novell.com>
13025
13026         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
13027         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
13028
13029 2006-06-06  Mike Kestner  <mkestner@novell.com>
13030
13031         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
13032
13033
13034 2006-06-06  Jackson Harper  <jackson@ximian.com>
13035
13036         * Control.cs: Use the property (instead of the field) to get the
13037         default cursor so it is instantiated correctly.
13038         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
13039         resizes so we need to manually repaint the window decorations here.
13040         - Set the titlebar button locations as soon as they are created,
13041         otherwise they are not set correctly on win32.
13042         
13043 2006-06-06  Chris Toshok  <toshok@ximian.com>
13044
13045         * CurrencyManager.cs (set_Position): call PullData before
13046         OnCurrentChanged.
13047         (AddNew): after calling IBindingList.AddNew, update our
13048         listposition, and call OnCurrentChanged/OnPositionChanged (without
13049         calling PullData).
13050         (OnCurrentChanged): remove the call to PullData from here.
13051         (OnItemChanged): remove the call to PushData from here.
13052         (OnPositionChanged): change the test from == null to != null to
13053         match the other methods.
13054         (ListChangedHandler): the grossest part of the patch.  Implement
13055         this such that it passes the unit tests in CurrencyManagerTest and
13056         the output more or less matches that of MS's implementation.
13057  
13058 2006-06-06  Mike Kestner  <mkestner@novell.com>
13059
13060         * ListView.cs : only update check state on single click.
13061         * ThemeWin32Classic.cs : fix focus drawing for details view without
13062         fullrowselect.  Fixes #78454.
13063         * XplatUIX11.cs : fix for double click emission.
13064
13065 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13066
13067         * PropertyGridView.cs : Applied Atsushi's patch to fix
13068         font dialog bug  (#78197).
13069
13070 2006-06-05  Jackson Harper  <jackson@ximian.com>
13071
13072         * TreeNode.cs: Compute the next node for expanding/collapsing
13073         correctly. We now factor in nodes without a NextNode
13074         correctly. (Fixes somes cases in nunit-gui).
13075         * InternalWindowManager.cs: Set the bounds when updating the
13076         virtual position of a tool window.
13077         
13078 2006-06-05  Chris Toshok  <toshok@ximian.com>
13079
13080         * DataGrid.cs: rename cached_currencymgr to list_manager.
13081         (set_CurrentCell): move SetCurrentCell code here, and clean it up
13082         some.
13083         (CurrentRow, CurrentColumn): single accessors so we can make the
13084         cursor movement code a lot easier to understand.
13085         (CurrentRowIndex): implement this in terms of CurrentRow.
13086         (BeginEdit): clean this up a bit.
13087         (CancelEditing): sort out the is_editing/is_changing/is_adding
13088         stuff a little.
13089         (EndEdit): minor changes.
13090         (OnKeyDown): add a comment about a (most likely) unnecessary
13091         check.
13092         (OnMouseDown): cancel editing when we click on a row header.  And
13093         use the CurrentRow setter, not CurrentCell.
13094         (ProcessDialogKey): directly call ProcessGridKey.
13095         (UpdateSelectionAfterCursorMove): factor out this common block of
13096         code (it's used everywhere that we move the cursor by updating row
13097         or column).
13098         (ProcessGridKey): pretty substantial overhaul.  Use the
13099         CurrentRow/CurrentColumn properties to make the code a lot more
13100         readable.  Only use the CurrentCell property when we have to
13101         modify both row and column at once.  Tab behavior is still broken,
13102         and Delete is untested.
13103         (Select): if we have no selected rows, set selection_start to
13104         @row.
13105         (EditCurrentCell): rename EditCell this.  It was only ever invoked
13106         with CurrentCell as the arg, so drop the arg and rename it.
13107
13108         * DataGridColumnStyle.cs: clean up the constructors a little, and
13109         drop CommonConstructor().
13110
13111         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
13112         actually get notified when the user hits it.
13113         (ProcessKeyMessage): *substantially* simplify this method.
13114         There's no reason (that I can see) for the textbox to be making
13115         calls into the datagrid at all.  Remove all of them but the ones
13116         for Enter handling.  those will take some more work.
13117
13118         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
13119         calling HideEditBox.
13120         (HideEditBox): if we have an active textbox, render it invisible
13121         without causing a re-layout of the datagrid.
13122
13123 2006-06-05  Mike Kestner  <mkestner@novell.com>
13124
13125         * ListView.cs : fix NRE crasher when focuseditem is cleared by
13126         collection changes by resetting it to Items[0].  Fixes #78587.
13127
13128 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13129
13130         * MessageBox.cs: if the height of the text is larger than the icon_size,
13131         use that. Fixes bug #78575.
13132
13133 2006-06-05  Jackson Harper  <jackson@ximian.com>
13134
13135         * TreeView.cs: Fix line drawing when scrolling.  To do this each
13136         node is basically responsible for drawing its entire horizontal
13137         area.  When drawing a node it draws its parent node lines if
13138         needed.
13139         - Adjust the clip area to the viewport rectangle
13140         - Fix Left/Right key handling to match MS. (It expand/collapses
13141         and moves to parents/first child but does not move selection to
13142         sibling nodes).
13143         - Fix SetTop to work with new bound calculation code
13144         - When scrollbars are no longer needed we need to reset scrolling
13145         vars and recalculate the visible order so the redraw is correct
13146         * TreeNode.cs: We can't expand/collapse nodes with no children.
13147
13148 2006-06-03  John Luke  <john.luke@gmail.com> 
13149
13150         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
13151         so the colors work without dev packages
13152         
13153 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
13154
13155         * Control.cs 
13156           - Select: Implemented to just use activate. Seems to match MS 
13157             behaviour closest. Documented to only do actual control walking 
13158             based on it's parameters if in a container control so I moved 
13159             the code there.
13160           - Removed selection check logic from our internal Select() method
13161         * ContainerControl.cs:
13162           - Select: Moved selection logic from Control here, since MS documents
13163             that containers obey the bool arguments. No longer calling base
13164
13165 2006-06-02  Jackson Harper  <jackson@ximian.com>
13166
13167         * TreeView.cs: If the selected node isn't changed when we get
13168         focus update the previously selected node so that we see the
13169         selection box.
13170
13171 2006-06-02  Mike Kestner  <mkestner@novell.com>
13172
13173         * ComboBox.cs: restructure grab and general mouse event handling.
13174         Make the composite control raise mouse events like it was a single
13175         control for leaves/enters/motion/up/down events.  fix dropdown list
13176         coordinate mangling and refactor it into the scrollbar subclass to
13177         reduce code duplication.  Fixes #78282 #78361 and #78457.
13178
13179 2006-06-02  Mike Kestner  <mkestner@novell.com>
13180
13181         * ScrollBar.cs: remove Capture setting/clearing, as it happens
13182         automatically in the Control.WndProc.
13183
13184 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13185
13186         * FileDialog.cs: fix crash when running SharpChess, which sets the
13187         FilterIndex to 2 with only one Filter.
13188
13189 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13190
13191         * ToolBar.cs: add SizeSpecified property.
13192         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
13193         try to figure out our real size, otherwise fallback to what the
13194         container says.
13195
13196 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13197
13198         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
13199         * Control.cs (WndProc): MS always calls the DefWndProc to pass
13200           up the event
13201
13202 2006-06-01  Mike Kestner  <mkestner@novell.com>
13203
13204         * ListView.cs: revamp the focus management in ListView.  It still
13205         causes churn of LostFocus/GotFocus emissions on clicks, but it's
13206         better than not handling focus at all.  Will revisit when pdb feels
13207         the general focus handling is solid.  Fixes #78526.
13208
13209 2006-06-01  Jackson Harper  <jackson@ximian.com>
13210
13211         * TreeView.cs: Set the default border style in the constructor.
13212         - Move painting to use OnPaintInternal instead of capturing
13213         WM_PAINT, this is the correct way of doing things
13214         - UpdateBelow shouldn't invalidate the scrollbar area
13215         - Cap the top on update below in case the node was above the top
13216         of the viewport rectangle.
13217         - ExpandBelow and Collapse below need to obey Begin/End Update.
13218         * TreeNode.cs: Make is_expanded internal so the treenode
13219         collection can change it without firing the whole event chain.
13220         * TreeNodeCollection.cs: When clearing all the child nodes make
13221         sure to recalc the visible order.
13222         - Improve algo for remove the top node
13223
13224 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
13225
13226         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
13227           SendMessage directly calling window procedures, which in turn might
13228           call SetFocus()
13229
13230 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
13231
13232         * Control.cs: Don't handle WM_SETFOCUS if the same window already
13233           has focus (works around X11 sending a FocusIn after our SetFocus)
13234         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
13235
13236 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
13237
13238         * Mime.cs: Fix for the NET_2_0 build.
13239           NameValueCollection needs StringComparer now.
13240
13241 2006-05-31  Chris Toshok  <toshok@ximian.com>
13242
13243         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
13244         return (via an out parameter) the starting X of the column.
13245         (UpdateVisibleColumn): track change to FromPixelToColumn.
13246         (HitTest): add a ColumnResize case here.
13247         (DrawResizeLine): new function, probably poorly named.
13248
13249         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
13250         only need to keep one reference.
13251         (set_ListManager): same.
13252         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
13253         Also, add support for HitTestType.ColumnResize.
13254         (OnMouseMove): add column resize behavior here, and change the
13255         cursor to the correct one as we move around the datagrid.
13256         (OnMouseUp): terminate the column resize if we're resizing.
13257         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
13258         for the current cell.
13259         (ConnectListManagerEvents): use cached_currencymgr.
13260         (DisconnectListManagerEvents): fill this in, using
13261         cached_currencymgr.
13262         (SetCurrentCell): remove cached_currencymgr_events handling.
13263         (SetDataMember): only call DisconnectListManagerEvents if
13264         cached_currencymgr is != null.
13265         (SetDataSource): same.
13266         (OnListManagerCurrentChanged): cached_currencymgr_events ->
13267         cached_currencymgr.
13268
13269 2006-05-31  Jackson Harper  <jackson@ximian.com>
13270
13271         * BindingManagerBase.cs: Remove somedebug code that creeped into
13272         SVN.
13273         * TreeNode.cs: We get the indent level dynamically right now, so
13274         don't track it as a member.
13275         * TreeNodeCollection.cs: Make sure all nodes added to the list
13276         have parents, treeviews/topnodes setup properly.
13277         - Don't attempt to track indent level.
13278
13279 2006-05-30  Jackson Harper  <jackson@ximian.com>
13280
13281         * BindingContext.cs: Create the currency manager tables here.
13282         This allows us to more easily create null tables (when bad data
13283         members are used), and more easily create related currency
13284         managers.
13285         * CurrencyManager.cs: All the table creation stuff is done by the
13286         binding context now.
13287         - Current should throw an exception if listposition is -1.
13288         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
13289         been bound yet.
13290
13291 2006-05-30  Mike Kestner  <mkestner@novell.com>
13292
13293         * ListView.cs: allow reexpansion of zero-width column headers.
13294         Fixes #78528.
13295
13296 2006-05-28  Chris Toshok  <toshok@ximian.com>
13297
13298         * CurrencyManager.cs (get_Current): after the late binding
13299         listposition = -1 fix, we need to guard against it here and return
13300         null, otherwise we raise an exception (which is swallowed
13301         elsewhere, and breaks datagrid databinding.)
13302
13303 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13304
13305         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
13306           than WM_SYSKEY, don't throw if get something unexpected (#78507)
13307
13308 2006-05-26  Jackson Harper  <jackson@ximian.com>
13309
13310         * ControlPaint.cs:
13311         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
13312         values, it's faster and it's all we care about (we don't care if
13313         the names aren't equal).
13314         * KeyboardLayouts.cs: Eliminate some dead code.
13315         - Lazy init things
13316         * X11Keyboard.cs: Lazy init keyboard detection.
13317         - Cleanup access modifiers a little.
13318
13319 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
13320
13321         * XplatUIX11.cs: Once again, attempting to get layout just right.
13322
13323 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
13324
13325         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
13326           the sizes of each link section, that will result in sizes that
13327           match DrawString's layout (Fixes #78391)
13328
13329 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
13330
13331         * FileDialog.cs: If AddExtension property is true autocomplete the
13332           extensions in SaveFileDialog correctly. Fixes bug #78453.
13333           Set MyNetwork and MyComputer to "C:\" for windows. This should
13334           fix part 8 of bug #78446 for now.
13335
13336 2006-05-26  Chris Toshok  <toshok@ximian.com>
13337
13338         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
13339         invalidate the current row header if we need to, but presumably
13340         we'll invalidate the row corrsponding to the bounds or
13341         editingControl.
13342         (GridHScrolled): switch back to this method, as it's part of the
13343         public api.  *sigh*.
13344         (GridVScrolled): same.
13345         (OnMouseWheel): hack up something that more or less works.  Call
13346         GridHScrolled/GridVScrolled directly, instead of duplicating much
13347         of their code here.
13348         (EnsureCellVisibility): reinstate a bunch of this code, since we
13349         can't just set the scrollbar Value and expect to do all the work
13350         in the ValueChanged handler.  Also, Call Update() after scrolling
13351         in one direction so the other XplatX11.ScrollWindow call has the
13352         proper stuff in the proper places.
13353         (EditCell): set is_editing to true before calling .Edit.
13354
13355         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
13356         don't bother comparing first.
13357         (OnKeyPress): call grid.ColumnStartedEditing before calling
13358         base.OnKeyPress.  this will set is_changing and invalidate the row
13359         header if necessary.
13360         (ProcessKeyMessage): for WM_CHAR messages, call
13361         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
13362         and WM_KEYDOWN.
13363         
13364         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
13365         it's done in the DataGrid.
13366         (NextState): call grid.ColumnStartedEditing, which takes care of
13367         invalidating the row header (and setting is_changing).
13368
13369         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
13370         here.  it's done in the DataGrid.
13371
13372 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13373
13374         * Control.cs: allow changing the cursor when the mouse position is
13375         out of bounds but Capture is set.
13376         * LinkLabel.cs: handle the case when the mouse button is pressed on the
13377         linklabel but released somewhere else.
13378
13379 2006-05-25  Jackson Harper  <jackson@ximian.com>
13380
13381         * TreeView.cs: When we get focus if there is no selected node make
13382         it the top node
13383         - Remove some uneeded setup code from Draw.
13384         * TreeNodeCollection.cs: If the tree doesn't have a top node when
13385         a new node is inserted make the new node the top.
13386         * XplatUIX11.cs:
13387         * Timer.cs: Use Utc time so that no local time zone stuff needs to
13388         be used (should be faster).
13389         
13390 2006-05-25  Chris Toshok  <toshok@ximian.com>
13391
13392         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
13393         problem with the last commit.
13394
13395 2006-05-25  Chris Toshok  <toshok@ximian.com>
13396
13397         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
13398         need the invalidate call here, while scrolling right-to-left via
13399         the left arrow key (i.e. moving the editing cell while scrolling).
13400
13401         * DataGrid.cs (.ctor): remove the initialization of
13402         ctrl_pressed/shift_pressed.  We no longer track them using key
13403         up/down handlers, but by using Control.ModifierKeys.  Also, switch
13404         to using ValueChanged handlers on the scrollbars instead of
13405         Scrolled event handlers.  This simplifies a bunch of the scrolling
13406         code.
13407         (GridHValueChanged): rename from GridHScrolled, and change it to
13408         work with the new event args.
13409         (GridVValueChanged): same.
13410         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
13411         (OnMouseWheel): actually scroll the datagrid.  Don't change the
13412         selected cell.
13413         (ProcessGridKey): correct all the keyboard navigation stuff I
13414         could find.  Ctrl up/down/left/right/home/end work now.
13415         (EnsureCellVisibility): correct method name spelling.  Also,
13416         simplify this a touch by not explicitly calling the
13417         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
13418         scrollbar value.
13419         (OnKeyUpDG): no need for this method now.
13420         
13421 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13422
13423         * LinkLabel.cs: display the OverrideCursor when hovering the label.
13424         Fixes bug #78392.
13425
13426 2006-05-25  Chris Toshok  <toshok@ximian.com>
13427
13428         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
13429         r61019.
13430
13431 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13432
13433         * Application.cs: Moved setting of is_modal and closing to before
13434           we create the control, to allow the event handlers called as a
13435           result of creation affect closing. Also removed Gonzalo's previous
13436           change to setting DialogResult, the behaviour has been moved to 
13437           Form.ShowDialog()
13438         * Form.cs: 
13439           - ShowDialog(): Removed explicit creation of the form, let RunLoop
13440             handle it instead
13441           - ShowDialog(): If no dialog result is set, we need to return Cancel
13442           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
13443             the close is cancelled
13444
13445 2006-05-25  Jackson Harper  <jackson@ximian.com>
13446
13447         * StatusBar.cs: We only need to update the sizes of the other
13448         panels when we have auto size contents.  Also we are only updating
13449         the contents of the panel, not the borders, so compensate for the
13450         border width (TODO: get this width from the theme somehow).
13451         * TreeView.cs: Scrollable is true by default
13452         - Use invalidate instead of refresh where needed
13453         - Factor the scrollable value into scrollbar updating
13454         - Update the scrollbars if the Scrollable property is altered
13455         - Update the selected node if its ImageIndex is changed
13456         - Handle null nodes in UpdateNode (mainly so we don't have to
13457         check if selected is null when updating it
13458         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
13459         are factored into the visible count
13460         - Use VisibleCount for clarity in the code
13461         - When the font is changed we need to recurse through all the
13462         nodes and invalidate their sizes
13463         
13464 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13465
13466         * Application.cs: set the DialogResult to fixed when the main form is
13467         hidden or destroyed while being modal.
13468
13469 2006-05-25  Miguel de Icaza  <miguel@novell.com>
13470
13471         * Theme.cs: Use Tangoified messagebox icons. 
13472
13473         (GetSizedResourceImage): Also cope with width = 0 and do not
13474         trigger a warning in that case (0 means "give me your icon from
13475         the resouce, no special size needed).
13476
13477 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
13478
13479         * Application.cs: Leave runloop if the the main modal form is 
13480           hidden (fixes #78484)
13481
13482 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
13483
13484         * BindingContext.cs : reject null datasource in Contains() and
13485           Item[].
13486         * CurrencyManager.cs : check data_member validity when data_source
13487           is dataset. When it is late binding, the initial position is -1.
13488
13489 2006-05-24  Jackson Harper  <jackson@ximian.com>
13490
13491         * TreeNodeCollection.cs: Dont't recalculate the visible order on
13492         inserted nodes that aren't visible.  This changes the
13493         max_visible_order which confuses scrollbar settings.
13494         - Use the enumerator to get the prev node instead of duplicating
13495         code.
13496         * TreeView.cs: Use new method for setting scrollbar values
13497         - Don't set the bounds every time the scrollbar is updated
13498         - When updating below the root node use an invalidate instead of a
13499         refresh to prevent the child controls (scrollbars) from being
13500         refreshed. (UpdateBelow still needs to be reworked anyways).
13501         - Reenable SetBottom now that visible orders are set correctly,
13502         added some debug code incase we ever get bad values there again.
13503         - Set the scrollbar max to 2 less then the max value, this
13504         compensates for the max value being one above the node count, and
13505         for scrollbars adding one extra "notch".
13506         - When drawing image nodes if there is an imagelist we draw the
13507         first image in the list if the supplied image index is out of the
13508         image list's bounds.
13509         
13510 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13511
13512         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
13513           we receive a size change from the WM (Fixes #78503)
13514
13515 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
13516
13517         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
13518           rectangle (Fixes #78501)
13519
13520 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
13521
13522         * ButtonBase.cs: 
13523           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
13524             as a bitfield.
13525           - Fixed MouseMove to no longer switch pressed state unless the left
13526             mouse button is pressed. Atsushi provided the original patch (#78485)
13527           
13528 2006-05-24  Jackson Harper  <jackson@ximian.com>
13529
13530         * ScrollBar.cs: New internal methods that allow us to change a
13531         couple values on the scrollbar (the most common case is maximum
13532         and large change) without getting multiple invalidates.
13533
13534 2006-05-24  Chris Toshok  <toshok@ximian.com>
13535
13536         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
13537         (Edit): save off the original state in oldState, and set
13538         grid.is_editing to true.
13539         (OnKeyDown): abort editing if escape is pressed.  also, call
13540         NextState if space is pressed.
13541         (OnMouseDown): call NextState.
13542         (NextState): factor out shared code from OnKeyDown and OnMouseDown
13543         here.  Also, only invalidate the row header once (on the initial
13544         is_changing switch) to save on redraws.
13545
13546 2006-05-24  Chris Toshok  <toshok@ximian.com>
13547
13548         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
13549         if the value in the cell is different than it was before.  This
13550         keeps us from triggering a layout when we move around a datarid
13551         with a highlighted cell.
13552         (Edit): suspend layout when creating/positining the text box, and
13553         resume passing false so we don't ever actually re-layout.
13554         (ReleaseHostedControl): same.
13555         (EnsureTextBox): reformat slightly, and set WordWrap to false.
13556
13557         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
13558         control-key sequences should go to the datagrid - remove that
13559         lock.  Also, modify the conditions under which we move between
13560         cells when moving the cursor within a cell, and remove the "this"
13561         and "base" from field accesses.  We weren't even consistent, given
13562         they all were in the base class.
13563
13564 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
13565
13566         * Binding.cs : (.ctor)
13567           An obvious NRE fix for BindingTest.CtorNullTest().
13568
13569 2006-05-23  Chris Toshok  <toshok@ximian.com>
13570
13571         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
13572         them between lines.  This fixes some quirks editing cells in the
13573         datagrid.
13574
13575 2006-05-23  Jackson Harper  <jackson@ximian.com>
13576
13577         * TreeView.cs: Use begin/end update when doing expand/collapse all
13578         so that we don't get flicker on the scrollbar.
13579
13580 2006-05-23  Jackson Harper  <jackson@ximian.com>
13581
13582         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
13583         treenode calculations to be independant of the painting code. To
13584         do this nodes track a visible order which is calculated by the
13585         treeview.
13586         - Call new methods for expanding/collapsing nodes.  These methods
13587         use scrollwindow so we don't have to update everything below the
13588         node.
13589         * TreeView.cs: Refactored drawing and scrolling code.  We don't
13590         need to update nodes when drawing anymore or calculate scrollbar
13591         stuff.
13592         - Added new methods for expanding/collapsing nodes. These methods
13593         use ScrollWindow so as to not have to redraw all the nodes below.
13594         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
13595         we add/remove nodes or sort.
13596         - Handle removing the selected and the top node properly.
13597
13598 2006-05-23  Chris Toshok  <toshok@ximian.com>
13599
13600         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
13601         maybe this should actually happen in the datagrid code?
13602         (EndEdit): no need to invalidate anything, given that
13603         ReleaseHostedControl causes the datagrid to relayout, which
13604         invalidates everything anyway.
13605
13606         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
13607         in SetCurrentCell).
13608         (set_SelectionBackColor): call InvalidateSelection instead of
13609         Refresh.
13610         (set_SelectionForeColor): same.
13611         (BeginEdit): Flesh this out a bit.
13612         (CancelEditing): only do any of this if we're editing/adding.
13613         (EndEdit): same.
13614         (OnMouseDown): there's no need to cancel editing here, it's done
13615         in SetCurrentCell.
13616         (SetCurrentCell): only invalidate the current row header if it's a
13617         different row than the new one.
13618         (ShiftSelection): fix this to work like MS does.
13619         (ResetSelection): factor out the invalidation of selected_rows to
13620         InvalidateSelection.
13621         (SetDataSource): cancel any editing that's going on.
13622
13623         * DataGridColumnStyle.cs
13624         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
13625         call the non-interface version.
13626
13627         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
13628         header rectangle with the clip rectangle so we don't redraw the
13629         entire header for just a small area.  Gets rid of the last flicker
13630         when horizontally scrolling.
13631         (DataGridPaintRow): same.
13632
13633 2006-05-23  Mike Kestner  <mkestner@novell.com>
13634
13635         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
13636         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
13637         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
13638         Critical bug report.
13639
13640 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13641
13642         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
13643           and this fixes #78493
13644
13645 2006-05-23  Miguel de Icaza  <miguel@novell.com>
13646
13647         * Theme.cs (GetSizedResourceImage): Scale images if the proper
13648         size is not found.  
13649         
13650         * FileDialog.cs: Do not change the background for the side bar as
13651         it wont work nicely with the theme, and also reduces the artifacts
13652         in rendering the icons (which I want to fix too).
13653
13654         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
13655         resources, not resgen resources. 
13656
13657         (PlatformDefaultHandler): Pull images using the new API.
13658
13659 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
13660
13661         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
13662           a reference to the hwnd and will not remove it unless there are
13663           no pending exposures (fixes #78341)
13664         * XplatUI.cs: Improved debug
13665
13666 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
13667
13668         * MenuAPI.cs : don't handle OnClick event when it was not the left
13669           button. Fixed bug #78487.
13670
13671 2006-05-23  Mike Kestner  <mkestner@novell.com>
13672
13673         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
13674         prefer submenus to the top menu for item lookup, to avoid popping down
13675         top-row items.
13676
13677 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
13678
13679         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
13680           Graphics.FillRectangle as the visual results are really bad (even
13681           on win). We now draw perfect arrows (and perfect shadows when the
13682           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
13683           Pen.DashPattern to draw the dots of each line.
13684
13685 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
13686
13687         * FileDialog.cs: Update the filename combobox when navigating through
13688           the ListView with the cursor keys. Fixes part 7 of bug #78446.
13689
13690 2006-05-22  Mike Kestner  <mkestner@novell.com>
13691
13692         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
13693         Fixes #78463.
13694
13695 2006-05-22  Mike Kestner  <mkestner@novell.com>
13696
13697         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
13698         requests. Fix a misspelled parameter and a copy paste exception error
13699         in Select.
13700
13701 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
13702
13703         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
13704           to get the same width/height (5/13) on X11 as the default font has on
13705           win32. This means that our DefaultFont emSize is smaller than the 
13706           the MS SWF equivalent (even thought the width/height stays the same)
13707
13708 2006-05-20  Jackson Harper  <jackson@ximian.com>
13709
13710         * MdiClient.cs:
13711         * MdiWindowManager.cs:
13712         * InternalWindowManager.cs: Make sure to use the border width from
13713         the theme.
13714
13715 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
13716
13717         * PrintDialog.cs: Implements printer details
13718
13719 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
13720
13721         * FileDialog.cs: Added focus handling for PopupButtonPanel.
13722           Fixes part 1 and 2 of bug #78446
13723
13724 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
13725
13726         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
13727           instead of sticking to the first ever calculated value
13728
13729 2006-05-19  Mike Kestner  <mkestner@novell.com>
13730
13731         * ComboBox.cs: fix mouse motion selection to use MousePosition and
13732         PointToClient, since Capture is set. Fixes #78344.
13733
13734 2006-05-19  Mike Kestner  <mkestner@novell.com>
13735
13736         * ListView.cs: match MS behavior in Details view where items are not
13737         drawn if Columns.Count == 0. 
13738         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
13739         Use a separate pen to draw the check, since changing the width affects
13740         the box as well.  Fixes #78454.
13741
13742 2006-05-18  Miguel de Icaza  <miguel@novell.com>
13743
13744         * ListView.cs: ArgumentOutOfRangeException, single versions of the
13745         exception should throw the name of the invalid argument.
13746
13747         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
13748         there are no files listed. 
13749
13750 2006-05-18  Jackson Harper  <jackson@ximian.com>
13751
13752         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
13753         up.
13754
13755 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13756
13757         * Control.cs: Brought back our old UpdateZOrder method as a private
13758           function and switched our calls from UpdateZOrder to the new one.
13759           This fixes the Paint.Net canvas disappearing bug.
13760
13761 2006-05-18  Jackson Harper  <jackson@ximian.com>
13762
13763         * Theme.cs:
13764         * ThemeWin32Classic.cs:
13765         * InternalWindowManager.cs: Move the drawing into the theme,
13766         expose everything the theme should need from the window manager.
13767
13768 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13769
13770         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
13771           from the call to NativeWindow to avoid walking up the parent chain
13772           further than needed (speeds up setting cursors and avoids setting
13773           the wrong cursor if a parent has another cursor defined)
13774         * Cursor.cs: When loading an icon as cursor, MS uses the center of
13775           the icon as hotspot, not what's contained as hotspot in the icon
13776           file. This fixes the perceived drawing offset seen with Paint.Net
13777         
13778 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
13779
13780         * XplatUIX11.cs: 
13781           - Store the calculated rectangle in Hwnd object and use it when 
13782             setting the client size
13783           - Force Toolwindows to always be type Dock, to ensure they're on top
13784
13785 2006-05-18  Mike Kestner  <mkestner@novell.com>
13786
13787         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
13788         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
13789         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
13790         Substantial refactoring to remove confusing nested classes. Coding
13791         standard and Get+Set->property refactorings.  Shift to index based
13792         highlighting in ComboListBox instead of constantly using IndexOf and
13793         Items[]. Add invalidations on resize for DropDownList to fix ugliness
13794         in FileDialog growth.  Draw borders manually since Simple mode needs
13795         to look like two independent controls.  Make listbox border
13796         conditional to DropDownStyle.  Improved OwnerDraw support.
13797
13798 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
13799
13800         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
13801         Don't set the disposed graphics to null, so we can throw the "right"
13802         exception if the graphics is reused later (added a flag to avoid 
13803         double disposing). Some behaviours are different under 2.0 and are
13804         filled under bug #78448.
13805
13806 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
13807
13808         * Control.cs: When double-buffering is enabled, we need to reset
13809           our graphics context between paint calls. Otherwise, any 
13810           transformations and other alterations on the context will 
13811           become cumulative (#77734)
13812
13813 2006-05-18  Mike Kestner  <mkestner@novell.com>
13814
13815         * ListView.cs: do focused item selection like MS on clicks. 
13816         Rework focus handling for ItemControl so LostFocus invalidates as
13817         well.
13818         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
13819         the ListView ItemControl has focus.
13820
13821 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
13822
13823         * XplatUIX11.cs: If client_window ends up being width or height zero
13824           due to border settings, move it off window inside whole_window (#78433)
13825
13826 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13827
13828         * Mime.cs: Shrink the mime file cache correctly.
13829
13830 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
13831
13832         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
13833
13834 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13835
13836         * XplatUIX11.cs (AddExpose): More sanity checks
13837
13838 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13839
13840         * XplatUIX11.cs:
13841           - AddExpose: Don't add expose ranges outside the size of our
13842             window
13843           - Cast opacity values to Int32 to avoid crashes with certain
13844             values
13845           - Added disabled code paths that protect against illegal cross-
13846             thread painting (Developers.exe)
13847
13848 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13849
13850         * ProgressBar.cs: Invalidate the control when it's resized
13851           since block size is based on control size. (#78388)
13852
13853 2006-05-16  Miguel de Icaza  <miguel@novell.com>
13854
13855         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
13856         of setting the incoming argument to the "reset" value, we set the
13857         this.datamember to string.empty (before we were invalidating the
13858         incoming data).   
13859
13860         Fixes 78420
13861
13862 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13863
13864         * Form.cs: Only apply transparency settings after the form
13865           is created. (Fixes #77800)
13866
13867 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
13868
13869         * ApplicationContext.cs: Grab the HandleDestroyed event so
13870           we know when to fire OnMainFormClosed 
13871
13872 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13873
13874         * Application.cs: Introduced sub-class to allow tracking of
13875           threads and centralized triggering of the event mess for
13876           ThreadExit, AppExit, etc..  (#76156)
13877
13878 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
13879
13880         * MimeIcon.cs:
13881           - Do not return a null icon index value for a mime subclass.
13882             Instead try the main mime type class too.
13883           - Seems that some newer distributions don't have a link to some
13884             gnome default icons anymore. So check the default gnome dir too.
13885           
13886
13887 2006-05-16  Jackson Harper  <jackson@ximian.com>
13888
13889         * MdiClient.cs: Don't paint the parent background image if we have
13890         our own background image.
13891
13892 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
13893
13894         * Control.cs:
13895           - PerformLayout: Do not shrink space filled by DockStyle.Fill
13896             controls, all filled controls are supposed to overlap (#78080)
13897           - UpdateZOrder is supposed to update the control's z-order in the
13898             parent's z-order chain. Fixed to behave like that
13899           - BringToFront: Removed obsolete code
13900           - SendToBack: Simplyfied
13901           - SetChildIndex: Trigger layout calculations when Z-order changes
13902             since layout is done by z-order
13903
13904 2006-05-16  Chris Toshok  <toshok@ximian.com>
13905
13906         [ fixes bug #78410 ]
13907         * DataGrid.cs (set_AlternatingBackColor): use
13908         grid_drawing.InvalidateCells instead of Refresh().
13909         (set_BackColor): call grid_drawing.InvalidateCells.
13910         (set_BackgroundColor): use Invalidate instead of Refresh.
13911
13912         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
13913         invalidate the cell area.
13914
13915 2006-05-15  Chris Toshok  <toshok@ximian.com>
13916
13917         [ fixes bug #78011 ]
13918         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
13919         on to DataGridPaintRow.
13920         (DataGridPaintRow): take a clip argument, and only draw the cells
13921         which intersect it.  same with the not_usedarea.
13922
13923         * Theme.cs (DataGridPaintRow) add @clip parameter.
13924
13925         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
13926         XplatUI.ScrollWindow.
13927         (ScrollToRow): same.
13928
13929         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
13930         with last column which was causing a gray swath to appear with the
13931         XplatUI.ScrollWindow code.
13932
13933 2006-05-15  Chris Toshok  <toshok@ximian.com>
13934
13935         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
13936         use XplatUI.ScrollWindow.
13937         (VerticalScrollEvent): use XplatUI.ScrollWindow.
13938
13939 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
13940
13941         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
13942
13943 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13944
13945         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
13946           file since there are no equivalent X11 cursors
13947
13948 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13949
13950         * MonthCalendar.cs : DateTimePicker should reflect selected date
13951           on mouse*up*, not mouse*down*. Fixed originally reported part of
13952           bug #76474.
13953
13954 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
13955
13956         * TabControl.cs : When argument index is equal or more than tab
13957           count, just ignore. Fixed bug #78395.
13958
13959 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
13960
13961         * Control.cs: Dispose all child controls when control is diposed (#78394)
13962
13963 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13964
13965         * ColorDialog.cs: Finally it is possible to select the color with
13966           the text boxes
13967
13968 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13969
13970         * PrintDialog.cs: Fix typo
13971
13972 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
13973
13974         * PrintDialog.cs: PrintDialog is not resizable
13975         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
13976           color. Made some ToolBar drawing methods protected virtual.
13977
13978 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
13979
13980         * PrintDialog.cs: Implementation of the PrintDialog
13981
13982 2006-05-12  Chris Toshok  <toshok@ximian.com>
13983
13984         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
13985         thumb, instead use MoveThumb.  This has the side effect of making
13986         most of the other thumb moving machinery use MoveThumb as well.
13987         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
13988         need to actually invalidate the rectangle where the new thumb will
13989         go.
13990         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
13991         We force an Update() after, so it's not as fast as it could be,
13992         but at least there's zero flicker and no droppings.
13993         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
13994         (UpdateThumbPos): add another argument (dirty), which says whether
13995         or not to calculate/add dirty regions which we later invalidate.
13996         For cases where we know we're going to use MoveThumb, we pass
13997         false for this.  Otherwise, pass true.
13998
13999 2006-05-12  Jackson Harper  <jackson@ximian.com>
14000
14001         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
14002         the status bar.
14003         
14004 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
14005
14006         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
14007           and GetClipRegion methods and UserClipWontExposeParent property.
14008         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
14009           overriding UserClipWontExposeParent property, setting to false, since
14010           Win32 handles the required expose messages to draw our clipped parent
14011           areas internally
14012         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
14013           PaintEventStart to set the user clip region if set.
14014         * Control.cs: 
14015           - Now internally tracking the Region for the control since we need to
14016             store it if the handle is not yet created and only set it when it
14017             becomes created. Before setting the region forced handle creation
14018           - Added code to draw the parents underneath a user-clipped region
14019         * Hwnd.cs: Added UserClip property
14020
14021 2006-05-12  Chris Toshok  <toshok@ximian.com>
14022
14023         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
14024         (set_Maximum): same.
14025         (set_Minimum): same.
14026         (set_SmallChange): same.
14027         (OnMouseUpSB): remove the call to refresh when releasing the
14028         thumb.  We shouldn't need it.
14029         
14030 2006-05-12  Miguel de Icaza  <miguel@novell.com>
14031
14032         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
14033         AutoSize set to None, we do not need to relayout everything, we
14034         just need to invalidate the current region.
14035
14036         (Draw): Do not draw the entire ClientArea, just redraw the
14037         clip area being passed.
14038
14039         * MdiClient.cs: Make MdiClient constructor with the Form argument
14040         internal. 
14041
14042 2006-05-12  Jackson Harper  <jackson@ximian.com>
14043
14044         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
14045         parents background image,  but strangely not their own.
14046         - (DrawStatusBarPanel): Take into account horizontal alignment
14047         when drawing the strings and icons.
14048
14049 2006-05-12  Mike Kestner  <mkestner@novell.com>
14050
14051         * ListBox.cs: avoid invalidations for focus when the collection is
14052         empty. 
14053
14054 2006-05-12  Chris Toshok  <toshok@ximian.com>
14055
14056         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
14057         invalidate the entire thumb area.  Call InvalidateDirty which
14058         limits the redraw to the thumb itself and surrounding pixels.
14059
14060         * XplatUIX11.cs (ScrollWindow): optimize copying.
14061         
14062 2006-05-12  Chris Toshok  <toshok@ximian.com>
14063
14064         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
14065         Figure out the positioning/layout in a single pass instead of
14066         multiple recursive invocations.  Speeds up the initial display of
14067         the data grid.  Also, make many things private that were
14068         originally public but unused outside this class.
14069
14070 2006-05-11  Jackson Harper  <jackson@ximian.com>
14071
14072         * MdiClient.cs: Improved layout code.
14073
14074 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
14075
14076         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
14077           not SelectedObject.
14078
14079 2006-05-11  Chris Toshok  <toshok@ximian.com>
14080
14081         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
14082         union of that will always be {0,0,width,height}.
14083
14084 2006-05-11  Jackson Harper  <jackson@ximian.com>
14085
14086         * Form.cs: Match MS's DefaultSize for forms (they must have
14087         changed the size in sp2).
14088
14089 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14090
14091         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
14092
14093 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
14094
14095         * TextControl.cs : Fixed bug #78109. This incorrect position
14096           comparison caused crash on automatic line split.
14097         * TextBoxBase.cs : reduce duplicate code.
14098
14099 2006-05-10  Jackson Harper  <jackson@ximian.com>
14100
14101         * MdiClient.cs: Active form is only sent to the back when using
14102         the Next form functionality, when a form is clicked the current
14103         active shouldn't be sent to the back.
14104         - Layout the mdi windows when the container is first made visible.
14105         * Form.cs: Give the MdiClient a ref to the containing form when we
14106         create it.
14107         
14108 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14109
14110         * LinkLabel.cs : link_font could be uninitialized, so populate one
14111           before actual use. Fixed bug #78340.
14112
14113 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
14114
14115         * XplatUIX11.cs : clipboard format native value is IntPtr.
14116           Fixed bug #78283.
14117
14118 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14119
14120         * Control.cs: 
14121           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
14122             which is passed up the parent chain by DefWndProc
14123           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
14124             to DefWndProc (#77956)
14125         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
14126
14127 2006-05-10  Jackson Harper  <jackson@ximian.com>
14128
14129         * MdiClient.cs: We need to remove the controls from the mdi
14130         collection, when we close the window.
14131         * MdiWindowManager.cs: Special handling of closing mdi windows.
14132         * InternalWindowManager.cs: Make the close method virtual so the
14133         mdi window manager can handle it specially.
14134
14135 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
14136
14137         * DataGrid.cs:
14138           - Recalculate grid when the data source has changed
14139           - Matches styles provided by user from all data sources types
14140         * DataGridTableStyle.cs: For columns that provided by the user set the
14141         with the preferred value is there was unassigned.
14142         * CurrencyManager.cs: throw OnItemChanged event
14143
14144 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
14145
14146         * PictureBox.cs: Don't animate until handle is created. Start animation
14147           when handle is created.
14148
14149 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14150
14151         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
14152           current codebase.
14153         * XEventQueue.cs: We don't need to provide the extra info
14154
14155 2006-05-10  Jackson Harper  <jackson@ximian.com>
14156
14157         * MdiClient.cs: If the mdi clients parent form has a background
14158         image set, we draw that background image for the mdi area's
14159         background.
14160
14161 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
14162
14163         * TextBoxBase.cs: Set IBeam cursor (#78347)
14164
14165 2006-05-10  Mike Kestner  <mkestner@novell.com>
14166
14167         * ToolBar.cs: fix some text padding issues with ButtonSize
14168         calculation. Update the default size to match MS documentation.
14169         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
14170         button size. Fixes #78296.
14171
14172 2006-05-10  Mike Kestner  <mkestner@novell.com>
14173
14174         * ListBox.cs: use is_visible for scrollbar positioning in case the
14175         control isn't on screen yet.  Fix off by one with Right vs Width
14176         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
14177         
14178 2006-05-10  Jackson Harper  <jackson@ximian.com>
14179
14180         * X11Dnd.cs: Drop to a control with another control on top of it.
14181         * ToolBar.cs: Work on a copy of the buttons list, so that it can
14182         be modified in click handlers. TODO: Look for similar problems in
14183         other controls.
14184
14185 2006-05-09  Jackson Harper  <jackson@ximian.com>
14186
14187         * Form.cs: Window managers need the old window state when setting
14188         window state now.
14189         * InternalWindowManager.cs: Allow the base mdi window manager to
14190         handle more of the MDI only stuff (like maximize buttons).
14191         * MdiWindowManager.cs: Fix some snafus in changing the window
14192         state.  Add all the menu functionality, for both popup and
14193         maximized menus.
14194         * MdiClient.cs: When a new form is selected the currently
14195         activated form is sent to the back, this matches MS.
14196         - Implement a new method to activate the next mdi child window.
14197
14198 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
14199
14200         * Control.cs: 
14201           - Added new InternalCapture method to allow controls to prevent
14202             the capture behaviour on the click handlers
14203           - Switched to use InternalCapture
14204         * ComboBox.cs:
14205           - Using InternalCapture to prevent mouse captures from being released
14206             on mouse button release (Fixes #78100)
14207         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
14208           returns Form borders if a caption is present. (Fixes #78310)
14209
14210 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
14211
14212         * TreeNode.cs: Changed serialization .ctor to not require every field
14213           to be present. (#78265)
14214         * OwnerDrawPropertyBag.cs: Added serialization .ctor
14215
14216 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
14217
14218         * MimeIcon.cs: for is faster than foreach for strings.
14219
14220 2006-05-05  Mike Kestner  <mkestner@novell.com>
14221
14222         * CheckedListBox.cs: update check handling code to not use selected.
14223         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
14224         behavior for visual feedback, motion response, shift/ctrl handling,
14225         and properly deal with all 4 selection modes. Updates to bounds
14226         handling logic.  Add scroll wheel support. [Fixes #77842]
14227
14228 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14229
14230         * ListView.cs:
14231           - Moved adding of Implicit controls into .ctor. That way, subsequent
14232             creation of the controls will not cause them to think they are 
14233             toplevel windows (fixes #78200 header problem)
14234           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
14235           - Switched visibility setting of header control to use internal field
14236             to avoid triggering handle creation
14237           - Now checking if handle is created before causing a refresh when items
14238             are added (This makes us now match handle creation time with MS)
14239         * Splitter.cs: Removed loading of private splitter cursor, switched to
14240           Cursors version now that that is loading the right ones
14241         * Cursors.cs: Load proper splitter cursors from resources
14242         * Cursor.cs: Added second method of loading resource cursors for the 
14243           VS.Net users amongst us
14244
14245 2006-05-05  Mike Kestner  <mkestner@novell.com>
14246
14247         * ListView.cs: give header_control a minimum size based on the
14248         ListView size.
14249
14250 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
14251
14252         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
14253           window seems to do that with metacity, so set that type. (#78120)
14254
14255 2006-05-05  Mike Kestner  <mkestner@novell.com>
14256
14257         * ListViewItem.cs: fix Details mode checkbox layout bug.
14258         * ThemeWin32Classic.cs: draw a ListView column header for unused space
14259         at the end of the header, if it exists. [Fixes for #78200]
14260
14261 2006-05-04  Jackson Harper  <jackson@ximian.com>
14262
14263         * MdiClient.cs: Add a helper property to get the container form.
14264         * MdiWindowManager.cs: We have to make sure to use the menu origin
14265         when drawing the icons and buttons, this fixes maximized window
14266         icons/buttons on win32.
14267         * InternalWindowManager.cs: Reset the restore captions when a
14268         window goes from Maximized to Minimized and vice versa. Move the
14269         DrawMaximizedButtons into the MdiWindowManager source, tool
14270         windows can't be maximized. NOTE: This could use a little
14271         refactoring if time ever permits.
14272         
14273 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14274
14275         * TextBox.cs: Add MWFCategoryAttributes
14276         * TextBoxBase.cs: Add MWFCategoryAttributes
14277         * Form.cs: Add MWFCategoryAttributes
14278
14279 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
14280
14281         * Control.cs: Add MWFCategoryAttributes
14282         * ScrollableControl.cs: Add MWFCategoryAttributes
14283
14284 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
14285
14286         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
14287           Divider is true. Fix a little glitch in PropertyToolBar
14288           drawing code
14289
14290 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
14291
14292         * Control.cs:
14293           - Dispose: Call base.Dispose, this causes the disposed event
14294             to be fired (and probably other, more important stuff)
14295           - SetVisibleCore: Set is_visible to true after creating the
14296             window so that the window still gets created invisible (if
14297             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
14298             to generate a WM_ACTIVE message
14299         * Form.cs: Call Dispose when we want to destroy the window, instead of
14300           just destroying the handle (Dispose will do that for us)
14301         * XplatUIX11.cs:
14302           - RootWindow also needs a queue, so we can properly process the
14303             property change events from RootWindow (like Activate)
14304           - Generatic synthetic WM_ACTIVE message when the active window is
14305             being destroyed
14306
14307 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14308
14309         * LinkLabel.cs: Trigger a recalc of our label dimensions when
14310           bounds are changed
14311
14312 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
14313
14314         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
14315           for determining width and height (image might not be assigned if
14316           we're drawing an imagelist)
14317
14318 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
14319
14320         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
14321         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
14322           height from system
14323         * Theme.cs: No longer returns hardcoded menu height, instead calls
14324           new driver method
14325         * Form.cs (OnLoad): Scaling happens before triggering Load events 
14326           on MS (# 78257)
14327
14328 2006-05-01  Mike Kestner  <mkestner@novell.com>
14329
14330         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
14331
14332 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
14333
14334         * TextBoxBase.cs: Removed Fixme
14335         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
14336
14337 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
14338
14339         * XplatUIX11.cs:
14340           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
14341             the rectangle relative to the parent, considering borders. We
14342             don't really want that.
14343           - ScrollWindow: Fixed warning to be more understandable
14344         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
14345           scrollbars and scroll only the visible area
14346         * RichTextBox.cs: Removed debug output
14347
14348 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14349
14350         * NumericUpDown.cs (Text): Just use base
14351         * UpDownBase.cs: Ensure txtView is created before using it
14352
14353 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14354
14355         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
14356           casting to IntPtr to avoid 64bit overflow errors
14357
14358 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14359
14360         * Control.cs:
14361           - AllowDrop: Don't force handle creation.
14362           - CreateHandle: Added call to tell driver if we're allowed to drop
14363
14364 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14365
14366         * FileDialog.cs: Remember the last directory not only for the
14367           current instance but also for new FileDialog instances.
14368
14369 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
14370         
14371         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
14372           broke sending async messages
14373
14374 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
14375
14376         * XplatUIX11.cs:
14377           - ScrollWindow: Fixed method. We finally generate expose events again
14378             for scrolled areas. This was causing 'garbage' when scrolling
14379             textbox and other controls that used ScrollWindow
14380           - Switched from using the regular queue for paint events to the MS 
14381             model of 'generating' paint events when the queue is empty.
14382             We use the new XQueueEvent.Paint subclass to store which windows
14383             need painting.
14384           - AddExpose now takes the x/y/width/height of the exposed area
14385             and inserts the window into the paint queue if not already there
14386           - InvalidateWholeWindow: Switched to use new AddExpose method
14387           - UpdateMessageQueue: Added which queue to monitor for paint events
14388           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
14389             the unlikely case nothing above handles it. We reset the expose
14390             pending states to get them off the queue.
14391           - GetMessage: Now pulls a paint event if no other events are in the
14392             queue
14393           - Invalidate: Switched to new AddExpose method
14394           - PeekMessage: Updated to understand pending paint events
14395           - UpdateWindow: Fixed logic bug. We were only updating if the window
14396             didn't need updating. Also switched to sending WM_PAINT directly,
14397             like MS does.
14398         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
14399           and random access Remove(). The random access is needed to handle
14400           UpdateWindow() where a WM_PAINT is sent directly without accessing
14401           the queue.
14402         * ScrollBar.cs: Added Update() calls to cause immediate updates to
14403           allow for better feedback when scrolling. Scrollbars are small and
14404           the immediate update should make it 'feel' more responsive without
14405           slowing things down. ScrollBar still needs it's invaliate logic
14406           updated to not always invalidate the whole bar on certain changes.
14407
14408 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14409
14410         * Control.cs:
14411         (BackColor): if the control does not support a transparent background,
14412         return the default backcolor when the parent backcolor is transparent.
14413
14414 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
14415
14416         * Application.cs: Updated to new StartLoop/GetMessage API
14417         * RichTextBox.cs: Provide some output on RTF parsing errors
14418         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
14419           new queue_id argument to GetMessage and PeekMessage to allow faster
14420           handling of per-thread queues in drivers.
14421         * Hwnd.cs: Added Queue tracking and property
14422         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
14423         * XEventQueue.cs: Added thread trackingA
14424         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
14425         * XplatUIX11.cs:
14426           - Implemented new per-thread queue
14427           - GetMessage: Fixed return/break behaviour on several cases. We were
14428             returning stale messages in some cases, instead of just processing
14429             the next message
14430
14431 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14432
14433         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
14434
14435 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
14436
14437         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
14438           fixed off-by-one comparisons between Width/Height and Right/Bottom.
14439
14440 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
14441
14442         * PropertyGridView.cs: Fix drop down width.
14443
14444 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14445
14446         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
14447           a mess in DrawToolBar, so I removed one of them.
14448
14449 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
14450
14451         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
14452           needed (clip). Otherwise we get artifacts.
14453
14454 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14455
14456         * FixedSizeTextBox.cs: Added constructor to allow specifying which
14457           dimension is fixed
14458         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
14459           and switched FixedSizeTextBox to only be fixed vertical (#78116)
14460         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
14461           if it matches the scale base font (avoids unneeded scaling)
14462
14463 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14464
14465         * X11DesktopColors.cs: One gtk_init_check should be enough
14466
14467 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
14468
14469         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
14470           match MS behaviour
14471
14472 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
14473
14474         * TextBoxBase.cs: 
14475           - Generate OnTextChanged for Backspace even if we're only deleting
14476             the current selection
14477           - When setting the Text property, only select all text if the
14478             control does not have focus when it is being set. Otherwise
14479             just place the cursor at the beginning of the control
14480
14481 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
14482
14483         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
14484           Added a little helper to draw PropertyGrid ToolBar with a different
14485           border and a different BackColor.
14486         * PropertyGrid.cs: Some background parts didn't get painted with the
14487           correct background color. Added a class that helps us to draw the
14488           correct border for PropertyGridView and a class that helps us to
14489           draw ToolBars with a different backcolor
14490         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
14491
14492 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
14493
14494         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
14495         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
14496
14497 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14498
14499         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
14500           into the palette entries. Also, since we're working on a copy
14501           we needed to copy the palette back onto the bitmap.
14502         * Cursor.cs: Same fix as XplatUIWin32.cs.
14503
14504 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
14505
14506         * ImageListStreamer.cs: Need to read the var (or we're off)
14507
14508 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
14509
14510         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
14511           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
14512           TextBoxBase.cs: Unused var fixes
14513         * AxHost.cs: Small 2.0 fix
14514         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
14515           as it seems that is what at least Metacity expects. This will make
14516           icons show up on 64bit platforms. We still have some 64bit size
14517           issues, though, since the startup app window size still won't match.
14518
14519 2006-04-25  Mike Kestner  <mkestner@novell.com>
14520
14521         * *.cs: cleanup newly reported exception var unused warnings.
14522
14523 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14524
14525         * ThemeWin32Classic.cs: Button image alignment now matches exactly
14526           ms
14527
14528 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14529
14530         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
14531           image. The image position is always the same, no matter if the
14532           button is pressed or not.
14533
14534 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
14535
14536         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
14537           selection and set the correct filename for SaveFileDialog.
14538           Patch by Emery Conrad.
14539
14540 2006-04-24  Mike Kestner  <mkestner@novell.com>
14541
14542         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
14543         check for item.X outside the ClientRect instead of item.Y. Fixes
14544         #78151.
14545
14546 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14547
14548         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
14549         trust that value blindly and do some sanity check. Fixes bug #77814.
14550
14551 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14552
14553         * ImageListStreamer.cs: save the mask as a 1bpp image.
14554
14555 2006-04-21  Mike Kestner  <mkestner@novell.com>
14556
14557         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
14558         pass Checked and Indeterminate to the Theme Engine. Improve
14559         encapsulation with ListBox.
14560         * ListBox.cs: Keep a StringFormat instead of calculating it every item
14561         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
14562         nested types.  Move all CheckState functionality to CheckedListBox.
14563         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
14564         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
14565         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
14566         single base list. Fix scrollbar sizing and placement to mirror MS.
14567         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
14568         used.
14569         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
14570         for CheckedListBox by using new DrawItemState info.  Center the
14571         checkboxes on the items. Use new StringFormat property.
14572
14573 2006-04-18  Jackson Harper  <jackson@ximian.com>
14574
14575         * Form.cs: MdiChildren don't do default locations the same way as
14576         regular forms.  This prevents a crash when trying to position the
14577         mdi windows.
14578
14579 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
14580
14581         * PropertyGridTextBox.cs: Formatting, copyright
14582         * PropertiesTab.cs: Formatting
14583         * PropertyGrid.cs: Formatting
14584         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
14585           click toggling of values
14586           
14587 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
14588
14589         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
14590         * Control.cs (.ctor): verify_thread_handle is static, don't reset
14591           every time a control is created
14592         * Application.cs: Removed obsolete EnableRTLMirroring method
14593
14594 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
14595
14596         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
14597         SelectedIndex to -1. Fixes bug #78121.
14598
14599 2006-04-17  Jackson Harper  <jackson@ximian.com>
14600
14601         * Binding.cs: Handle null values for Current and BindingContext.
14602         This occurs when binding is a little delayed.
14603         * CurrencyManager.cs: return null for Current when there are no
14604         items in the list.
14605         - Hookup to the listchanged event on the DataView and update
14606         bindings when the list is changed.  This fixes late binding of
14607         controls.
14608
14609 2006-04-17  Jackson Harper  <jackson@ximian.com>
14610
14611         * X11Dnd.cs:
14612         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
14613         Ringenbach.
14614
14615 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
14616
14617         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
14618           place
14619         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
14620           with the correct ButtonState
14621
14622 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
14623
14624         * XplatUIX11.cs: Improved distinguishing between window types to
14625           tell the WM a type closer to what the app wants (Fixes #78107)
14626
14627 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14628
14629         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
14630           GrabHandle
14631
14632 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
14633
14634         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
14635           drawing code to reflect the size grip changes
14636
14637 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14638
14639         * ImageListStreamer.cs: fix handling of the mask that follows the main
14640         bitmap when deserializing and serialize it properly. The generated mask
14641         should better be a 1bpp image, but I'll do that later.
14642
14643 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14644
14645         * FileDialog.cs: Show something in the DirComboBox on *nix if the
14646           path doesn't fit into some of our Current.Places
14647
14648 2006-04-13  Jackson Harper  <jackson@ximian.com>
14649
14650         * ComboBox.cs: Use borders instead of drawing our own decorations,
14651         try to obey correct rules for heights.
14652         * Theme.cs:
14653         * ThemeNice.cs:
14654         * ThemeClearLooks.cs:
14655         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
14656         this is now handled by borders.
14657         - Remove unused DrawListBoxDecorationSize method.
14658         
14659 2006-04-13  Mike Kestner  <mkestner@novell.com>
14660
14661         * MenuAPI.cs: null guarding for the disbled click check fixes crash
14662         reported by Alex.
14663
14664 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
14665
14666         * ThemeWin32Classic.cs: 
14667           - Fixed CPDrawStringDisabled
14668           - Corrected drawing of disabled menu items
14669           - Fixed drawing of disabled radio buttons (bug #78095)
14670           - Draw check in a disabled CheckBox with color ControlDark 
14671
14672 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14673
14674         * Form.cs: Use the provided width when calculating the menu size;
14675           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
14676           and ClientSize.Width won't be updated yet
14677         * Application.cs: Use Visible instead of Show() to make form visible,
14678           this way we create the handle later and menusize is considered
14679
14680 2006-04-12  Mike Kestner  <mkestner@novell.com>
14681
14682         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
14683         reporting.
14684
14685 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14686
14687         * TextBox.cs: Implemented context menu
14688
14689 2006-04-12  Mike Kestner  <mkestner@novell.com>
14690
14691         * ListView.cs: implement box selection. fixes #77838.
14692         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
14693
14694 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14695
14696         * XplatUIX11.cs: Added setting of window type when transient window
14697           is created (metacity would move it otherwise)
14698         * X11Structs.cs: Added WINDOW_TYPE atoms
14699         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
14700           background (the control is Opaque but still wants transparent
14701           backgrounds)
14702
14703 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14704
14705         * Control.cs: Added OnPaintBackgroundInternal to allow controls
14706           that set Opaque but don't mean it (like all ButtonBase-derived
14707           controls) to still draw their background
14708         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
14709           the background
14710
14711 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
14712
14713         * Control.cs (PaintControlBackground): Set the graphics object
14714           on our PaintEvent to null to prevent it from being disposed
14715           when the PaintEvent gets disposed
14716
14717 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
14718
14719         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
14720         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
14721
14722 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
14723
14724         * Control.cs: 
14725           - Added transparency check to BackColor property. Transparent
14726             backgrounds are only allowed if the control styles permit it
14727           - Added recursive painting of parent control background and
14728             foreground if a control with a transparent backcolor is drawn
14729             (Thanks to Tim Ringenback for providing his 'hack' as a base
14730              for this patch) Fixes #77985 and #78026.
14731           - Added Opaque style check before calling OnPaintBackground, no
14732             need to draw the background if the control is opaque
14733           - Removed ControlAccessibleObject owner variable (inherited from
14734             base, no need to define again)
14735           - Added some documentation links explaining the drawing events
14736             and styles
14737
14738 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14739
14740         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
14741           that the affected control is the located at the left border of our
14742           parent (Fixes #77936)
14743
14744 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14745
14746         * TextBoxBase.cs: When rendering disabled or readonly controls,
14747           draw the background with 'Control' instead of 'Window' color as
14748           long as the user hasn't specifically set a color
14749
14750 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
14751
14752         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
14753           since that won't be updated if the user types text (only if it's
14754           programatically set)
14755
14756 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14757
14758         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
14759           layout changes do to app-triggered resizes will have the proper
14760           display rectangle for layout
14761
14762 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
14763
14764         * ThemeWin32Classic.cs:
14765           - Make use of the SystemBrushes and SystemPens wherever possible
14766           - Corrected some highlight colors
14767           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
14768             drawing
14769         * Theme.cs: Added Empty field to CPColor struct
14770
14771 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
14772
14773         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
14774           is displayed when calculating the display rectangle. Thanks to Mike
14775           for teaching me the err of my ways.
14776
14777 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
14778
14779         * ScrollableControl.cs:
14780           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
14781             (instead of 0,0) and we now return the real width/height instead of
14782             just the clientrectangle, adjusted for padding. The rectangle is
14783             now cached and created by the new CalculateDisplayRectangle method.
14784           - Created new CalculateDisplayRectange method, which basically does
14785             what get_DisplayRectangle() did originally, but now using the 
14786             right edge instead of DisplayRectangle to determine the size of
14787             our scrollbars
14788           - get_Canvas(): Fixed it to properly calculate canvas for 
14789             right/bottom controls which seem to be placed to the right/bottom
14790             of any controls that have a fixed location
14791           - Removed TODO that's taken care of
14792           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
14793             and SetDisplayRectLocation according to new MSDN2 docs
14794           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
14795             event when that is called, this is added for compatibility
14796           - ScrollControlIntoView(): Implemented.
14797           - Switched scrollbars to be implicit, they shouldn't be selectable
14798         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
14799           call it when the active control is set/changed
14800         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
14801         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
14802           implicit_control variable (used for native Win32 message generation)
14803         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
14804           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
14805         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
14806         * XplatUIStructs.cs: Added ScrollBarCommands enum
14807
14808 2006-04-10  Jackson Harper  <jackson@ximian.com>
14809
14810         * ButtonBase.cs:
14811         * CheckedListBox.cs:
14812         * ComboBox.cs:
14813         * DataGrid.cs:
14814         * DataGridView.cs:
14815         * Form.cs:
14816         * GroupBox.cs:
14817         * ListBox.cs:
14818         * PrintPreviewControl.cs:
14819         * ProgressBar.cs:
14820         * PropertyGrid.cs:
14821         * Splitter.cs:
14822         * StatusBar.cs:
14823         * TrackBar.cs:
14824         * UpDownBase.cs: Fixup base event overrides.
14825         
14826 2006-04-06  Mike Kestner  <mkestner@novell.com>
14827
14828         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
14829         all user-initiated value changes to min <= value <= max-thumbsz+1.
14830         (set_Value): check for vert/horiz when calculating new thumb position.
14831         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
14832         like MS does.
14833         (OnMouseMoveSB): refactor the thumb dragging code and refine
14834         invalidation logic to reduce flicker.
14835         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
14836         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
14837         (UpdateThumbPosition): small code readability cleanup
14838
14839 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
14840
14841         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
14842           different
14843
14844 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14845
14846         * ThemeNice.cs: Use a better graphics effect when a button is pressed
14847
14848 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
14849
14850         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
14851         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
14852           This dramatically reduces the number of Pen.Dispose calls. 
14853           Where possible call ResPool methods only once instead of calling it
14854           over and over again (for example for the same color).
14855
14856 2006-04-06  Mike Kestner  <mkestner@novell.com>
14857
14858         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
14859         Also remove an unused private field on the collection. Fixes #77972.
14860
14861 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14862
14863         * ThemeNice.cs: Added ToolBar drawing code
14864
14865 2006-04-06  Mike Kestner  <mkestner@novell.com>
14866
14867         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
14868         I'm assuming that means we need to look up the toplevel for the
14869         provided control. Fixes the crash trace in #77911 but exposes another
14870         crash in some strange reflection usage in NDocGui.
14871
14872 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
14873
14874         * ThemeNice.cs: Gave it a little silver touch and added Images
14875           method
14876         * FontDialog.cs: FontDialog is not resizable
14877         * FileDialg.cs: Added SizeGripStyle.Show
14878
14879 2006-04-05  Jackson Harper  <jackson@ximian.com>
14880
14881         * KeyboardLayouts.cs: Remove warning.
14882
14883 2006-04-05  Jackson Harper  <jackson@ximian.com>
14884
14885         * Control.cs: Enable OnPaintInternal so we can use it for drawing
14886         all of our controls instead of Paint +=.
14887         * ListBox.cs:
14888         * ListView.cs:
14889         * MenuAPI.cs:
14890         * MessageBox.cs:
14891         * NotifyIcon.cs:
14892         * ProgressBar.cs:
14893         * ScrollBar.cs:
14894         * Splitter.cs:
14895         * StatusBar.cs:
14896         * TabControl.cs:
14897         * TextBoxBase.cs:
14898         * ToolBar.cs:
14899         * TrackBar.cs:
14900         * UpDownBase.cs:
14901         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
14902         use OnPaintInternal. Remove Width/Height and Visible checks in
14903         paint handler, this is done at a higher level now.
14904         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
14905         * PaintEventArgs.cs: Add a handled flag so controls that don't
14906         want anymore painting after OnPaintInternal can make sure OnPaint
14907         isn't called.
14908
14909 2006-04-05  Mike Kestner  <mkestner@novell.com>
14910
14911         * Form.cs: fix the menu WndProc hacks to respect the native enabled
14912         state of the form, so that we don't process events when Modal dialogs
14913         are up. Fixes #77922.
14914
14915 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
14916
14917         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
14918           checking is done.
14919
14920 2006-04-05  Mike Kestner  <mkestner@novell.com>
14921
14922         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
14923
14924 2006-04-05  Mike Kestner  <mkestner@novell.com>
14925
14926         * ListView.cs (HeaderMouseMove): null guarding for the over column
14927         when setting up the drag_to_index.  Fixes #78015.
14928
14929 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
14930
14931         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
14932           in the taskbar. Transient windows seem to accomplish that.
14933
14934 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
14935
14936         * Form.cs:
14937           - Re-enabled CreateParams.X/Y code for FormStartPosition
14938           - Added code for manual placement when creating the Control
14939           - Incomplete patch to treat MDI forms differently when
14940             setting the ClientSizeCore. (Still need to figure out handling
14941             x/y coords there)
14942         * XplatUIX11.cs:
14943           - When we're explicitly setting the X/Y position of a non-Child
14944             window, let the WM know. Metacity really wants this.
14945
14946 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14947
14948         * ThemeNice.cs: Added CPDrawButton
14949
14950 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14951
14952         * ThemeNice.cs: Changed the color for focused buttons and activated
14953           the arrows for small scroll buttons.
14954
14955 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
14956
14957         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
14958           anymore. Changed some method modifiers to protected (virtual)
14959         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
14960           changes
14961         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
14962           Updated drawing of menus, buttons and progressbars; added
14963           CPDrawBorder3D 
14964
14965 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14966
14967         * ImageListStreamer.cs: implemented serialization/deserialization
14968         of the images.
14969
14970 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
14971
14972         * ThemeWin32Classic.cs:
14973           - Removed all the DrawFrameControl stuff; CPDrawButton,
14974             CPDrawCheckBox and CPDrawRadioButton are now handled directly
14975             inside the methods
14976           - Updated and corrected the drawing code of CPDrawButton,
14977             CPDrawCheckBox and CPDrawRadioButton to better match ms
14978           - Updated theme checkbox and radiobutton code to use the CP*
14979             methods
14980
14981 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14982
14983         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
14984           bug is fixed
14985
14986 2006-03-31  Jackson Harper  <jackson@ximian.com>
14987
14988         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
14989         sometimes.
14990         * UpDownBase.cs: Don't CreateGraphics manually, use a
14991         Refresh. Ideally we would invalidate the correct areas here.
14992
14993 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
14994
14995         * XplatUIX11.cs: 
14996           - We now track the mapping state of windows. If a window (or 
14997             one of it's parents) is not mapped we no longer permit
14998             WM_PAINT messages to be generated since we'd otherwise get 
14999             lots of BadMatch X errors. Jackson did all the work figuring
15000             out the problem.
15001           - Destroying the caret if the window it's contained in is 
15002             destroyed. Can't use regular DestroyCaret method since it
15003             might fall into a drawing function (trying to remove the
15004             caret) and with that generate new BadMatch errors. Again,
15005             Jackson tracked this down.
15006           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
15007             make sure we send the messages to all windows. (The old code
15008             would send the WM_DESTROY to the window, and then all child
15009             windows would be 'gone' because the WM_DESTROY handle lookup
15010             would no longer find the destroyed window)
15011         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
15012         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
15013
15014 2006-03-31  Jackson Harper  <jackson@ximian.com>
15015
15016         * ScrollableControl.cs: Dont recalc if we are not visible.
15017
15018 2006-03-31  Mike Kestner  <mkestner@novell.com>
15019
15020         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
15021         the visibility branch.
15022
15023 2006-03-31  Jackson Harper  <jackson@ximian.com>
15024
15025         * ScrollBar.cs: Cap values when incrementing/decrementing.
15026
15027 2006-03-31  Mike Kestner  <mkestner@novell.com>
15028
15029         * MenuAPI.cs: setup menu.tracker for popup/context menus.
15030         * ToolTip.cs: guard against timer expirations with no active control.
15031         Not sure why it happened.
15032
15033 2006-03-31  Mike Kestner  <mkestner@novell.com>
15034
15035         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
15036         text.
15037         * ToolTip.cs: Position the tooltip based on where the cursor is at
15038         popup time, not at MouseEnter time.  Add a Down state so that we don't
15039         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
15040         positioning offset. Lookup DisplaySize at positioning time, since it
15041         can theoretically change during invocation.
15042         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
15043         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
15044
15045 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15046
15047         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
15048           Fixes behaviour when the Text property of the box is String.Empty
15049
15050 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
15051
15052         * XplatUIX11.cs: Only send mouseleave for our client windows, not
15053           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
15054           a window)
15055
15056 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15057
15058         * FileDialog.cs: Visual enhancement for the popup buttons in 
15059           PopupButtonPanel
15060
15061 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
15062
15063         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
15064           code
15065
15066 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
15067
15068         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
15069           highlighted menu items to match ms
15070
15071 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
15072
15073         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
15074
15075 2006-03-30  Mike Kestner  <mkestner@novell.com>
15076
15077         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
15078         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
15079         go active to account for HotLight to Selected transition.
15080         * MenuItem.cs: add internal Selected prop. Fill out the Status
15081         property by calculating it from item info. Add HotLight,
15082         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
15083
15084 2006-03-30  Mike Kestner  <mkestner@novell.com>
15085
15086         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
15087
15088 2006-03-29  Jackson Harper  <jackson@ximian.com>
15089
15090         * Form.cs: Implement TODO.
15091
15092 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
15093
15094         * PrintPreviewDialog.cs: Implemented missing methods and events; still
15095           missing proper dialog setup in the constructor
15096
15097 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
15098
15099         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
15100         * Control.cs:
15101           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
15102           - Fixed ResetBindings and removed TODO
15103           - Added check for cross-thread calls to get_Handle()
15104           - Added Marshaller attribute for set_Font to satisfy class status
15105         * FontDialog.cs: Removed TODOs that seemed implemented
15106         * UpDownBase.cs: Removed unneeded TODO and Fixme
15107         * MessageBox.cs: Implemented support for Default button and removed TODO
15108         * FileDialog.cs: Removed obsolete TODO
15109         * DomainUpDown.cs: Removed obsolete TODO
15110         * ButtonBase.cs: Removed obsolete TODO
15111         * XplatUIWin32.cs: Removed obsolete TODO
15112         * Form.cs:
15113           - Removed obsolete TODO
15114           - Calling CheckAcceptButton when the acceptbutton is changed to allow
15115             internal status updates
15116           - Making sure the active control is selected when the control is created
15117         * CurrencyManager.cs: Removed obsolete TODO
15118
15119 2006-03-29  Mike Kestner  <mkestner@novell.com>
15120
15121         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
15122         of PrintPreviewDialog and RichTextBox.
15123
15124 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15125
15126         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
15127           DarkDark, Light and LightLight colors for a specific color
15128         * ThemeWin32Classic.cs:
15129           - Use Button drawing code to draw RadioButtons and CheckBoxes with
15130             Appearance = Button 
15131           - Make use of the new ResPool helper CPColor
15132           - Draw ProgressBar and StatusBar with correct 3D borders
15133
15134 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
15135
15136         * ColorDialog.cs: Return selected color. Fixes bug #77940.
15137
15138 2006-03-28  Mike Kestner  <mkestner@novell.com>
15139
15140         * ListView.cs: fix Icon layout to plan for scrollbar widths when
15141         calculating col/row counts.
15142
15143 2006-03-28  Mike Kestner  <mkestner@novell.com>
15144
15145         * ColumnHeader.cs:
15146         * ListView.cs:
15147         * ListViewItem.cs:
15148         * Menu.cs: 
15149         switch to explicit interface method implementation for some methods
15150         corcompare identifies as inconsistent with MS.
15151
15152 2006-03-28  Mike Kestner  <mkestner@novell.com>
15153
15154         * MainMenu.cs: 
15155         * Menu.cs:
15156         add a few missing methods from the class status output.
15157
15158 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
15159
15160         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
15161           correct.
15162
15163 2006-03-28  Mike Kestner  <mkestner@novell.com>
15164
15165         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
15166
15167 2006-03-27  Mike Kestner  <mkestner@novell.com>
15168
15169         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
15170         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
15171
15172 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
15173
15174         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
15175
15176 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15177
15178         * ThemeWin32Classic.cs:
15179           - GroupBox: Inserted a little gap between the text and the lines
15180             on the right side
15181           - Made the code in CPDrawBorder3D more readable
15182           - Corrected the drawing location of the up and down arrows in 
15183             CPDrawScrollButton
15184
15185 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15186
15187         * ControlPaint.cs: Corrected line widths in DrawBorder for
15188           ButtonBorderStyle Inset and Outset
15189
15190 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15191
15192         * ThemeWin32Classic.cs:
15193           - Rewrote the totally broken CPDrawBorder3D method. That was
15194             one of the main problems for the terrific ThemeWin32Classic
15195             look
15196           - Updated and corrected Button drawing
15197           - Correct the dimensions of the SizeGrip to match ms ones
15198           - Removed a small drawing glitch in DrawComboBoxEditDecorations
15199         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
15200           Border3DStyle.Sunken to match ms.
15201
15202 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
15203
15204         * ThemeWin32Classic.cs: First small part of the "de-uglify
15205           ThemeWin32Classic" effort, SizeGrip
15206
15207 2006-03-24  Jackson Harper  <jackson@ximian.com>
15208
15209         * XplatUIX11.cs: Give a max idle time of one second, this matches
15210         MS and forces an Idle event every second when there are no other
15211         events in the queue.
15212
15213 2006-03-24  Mike Kestner  <mkestner@novell.com>
15214
15215         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
15216         * ListView.Item.cs: fix layout issues with null image lists and images
15217         smaller than checkbox size.
15218         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
15219         mode like MS does.  It's weird, but consistent.  ;-)
15220         Fixes #77890.
15221
15222 2006-03-24  Mike Kestner  <mkestner@novell.com>
15223
15224         * ListView.cs: Scroll wheel support for the item control.  Fixes
15225         #77839.
15226
15227 2006-03-23  Jackson Harper  <jackson@ximian.com>
15228
15229         * ScrollableControl.cs: Special case negative sized areas, not
15230         zero.
15231         * MonthCalendar.cs: Save the rect of the clicked date so we can
15232         use it for invalidation.
15233         - Try to cut down on the number of invalidates
15234         - Invalidate the rect the mouse is over and was over when moving
15235         the mouse, so we get the focus box following the cursor.
15236
15237 2006-03-23  Mike Kestner  <mkestner@novell.com>
15238
15239         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
15240         focus rectangle drawing. Fixes #77835.
15241
15242 2006-03-23  Mike Kestner  <mkestner@novell.com>
15243
15244         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
15245         the if and else if and reverting back to the original == check on the
15246         None conditional.
15247
15248 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15249
15250         * FontDialog.cs: Update the example panel if the selected index of
15251           the fontListBox changes.
15252
15253 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
15254
15255         * FileDialog.cs: Make FileDialog remember which directory it was in
15256           last in the same execution.
15257
15258 2006-03-22  Mike Kestner  <mkestner@novell.com>
15259
15260         * FileDialog.cs: make the DropDownMenu on the toolbar display
15261         RadioChecks since they are mutually exclusive and that's what MS does.
15262
15263 2006-03-22  Mike Kestner  <mkestner@novell.com>
15264
15265         * Theme.cs: add Color param to CPDrawMenuGlyph.
15266         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
15267         checks and radio marks and arrows are visible on highlighted items.
15268         * ControlPaint.cs: update to use new Theme signature.
15269
15270 2006-03-22  Mike Kestner  <mkestner@novell.com>
15271
15272         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
15273         is active. Fixes #77870.
15274
15275 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15276
15277         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
15278           to be focused/selected after startup
15279
15280 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
15281
15282         * ColorDialog.cs: 
15283           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
15284             CustomColors and ShowHelp properties
15285           - Some internal rewrites to get better results when using the
15286             ColorMatrix
15287
15288 2006-03-22  Mike Kestner  <mkestner@novell.com>
15289
15290         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
15291         HoverSelection.  Fixes #77836.
15292
15293 2006-03-22  Mike Kestner  <mkestner@novell.com>
15294
15295         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
15296         ToggleButtons.  (De)Sensitize the Back button around a stack count of
15297         1, not 0.  Update ButtonSize based on a pixel count of the win32
15298         control.  Adjust the toolbar size/location for new button size.
15299
15300 2006-03-22  Jackson Harper  <jackson@ximian.com>
15301
15302         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
15303         true.
15304         * ScrollBar.cs: When doing increments and decrements we need to
15305         set the Value property so that ValueChanged gets raised. A
15306         possible optimization here would be to make an internal SetValue
15307         that doesn't invalidate immediately.
15308         * ToolTip.cs: Tooltips get added to their container (when
15309         supplied) so they get disposed when the container is disposed.
15310         - Don't create tooltips for String.Empty. This prevents all these
15311         little 2-3 pixel windows from showing up when running nunit-gui
15312         and driving me mad.
15313         * Form.cs: Don't set topmost when setting the owner if the handles
15314         haven't been created yet.  The topmost set will happen when the
15315         handles are created.
15316
15317 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
15318
15319         * XplatUIX11.cs:
15320           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
15321           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
15322             visible (to allow them to recalculate their sizes)
15323
15324 2006-03-21  Mike Kestner  <mkestner@novell.com>
15325
15326         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
15327         methods. Removed a ton of redundant code.  Still not really happy with
15328         the border rendering, but I think that's mainly because of the
15329         ControlDarkDark being black instead of a dark grey. Depending on how 
15330         close we want to be, we might want to revisit those color choices.
15331         Among the new features added during the refactor were DropDownArrow
15332         pressed rendering, Disabled image rendering.  Proper flat appearance
15333         boundary rendering.  Removed the Divider and Wrapping dividers since I
15334         can't figure out any combination of themes and conditions to make the
15335         MS control draw a horizontal line on a toolbar despite what the
15336         Divider property docs indicate.
15337         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
15338         conditions and incorrect layout.  Updated to coding standard.
15339         * ToolBarButton.cs: refactored layout and positioning code from
15340         ToolBar to here.  Invalidate wherever possible instead of forcing
15341         redraws of the whole toolbar. 
15342         (Known remaining issues: explicit ButtonSize smaller than provided
15343         images.)
15344
15345 2006-03-21  Mike Kestner  <mkestner@novell.com>
15346
15347         * ContextMenu.cs (Show): use the position parameter instead of just
15348         showing at the MousePosition.
15349
15350 2006-03-21  Jackson Harper  <jackson@ximian.com>
15351
15352         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
15353         control handle this.
15354         * TreeNodeCollection.cs: If we are clearing the root node we need
15355         to reset top_node so calcs can still happen.
15356         * ThemeWin32Classic.cs: This is a Flags so we need to check
15357         properly.
15358         
15359 2006-03-21  Jackson Harper  <jackson@ximian.com>
15360
15361         * DataGrid.cs: Create columns when the binding context has been
15362         changed.
15363         * X11Structs.cs: Keysyms are uints.
15364         - Add size to fix build.
15365
15366 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
15367
15368         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15369           XplatUIOSX.cs: 
15370           - Added ResetMouseHover method to allow controls to retrigger
15371             hovering if they need it more than once
15372           - Implemented MouseHoverTime and MouseHoverSize properties
15373         * Timer.cs: Start() must reset the interval
15374         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
15375           properties
15376
15377 2006-03-21  Jackson Harper  <jackson@ximian.com>
15378
15379         * X11Keyboard.cs: improved layout detection. Move the nonchar
15380         tables into this file.
15381         * KeyboardLayouts.cs: Move the tables into resource files.
15382
15383 2006-03-21  Mike Kestner  <mkestner@novell.com>
15384
15385         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
15386
15387 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
15388
15389         * Mime.cs: Various speed optimizations. Looking up mime types
15390           is now 2 times faster than before
15391
15392 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
15393
15394         * CreateParams.cs: Added internal menu field
15395         * Control.cs: 
15396           - Switched call order for UpdateBounds; now we always call
15397             the one that also takes ClientSize, and we're calculating the 
15398             client size via driver method in the others. The previous
15399             method of tracking client size by difference wasn't working
15400             for forms where even the starting client size wouldn't match
15401             the overall form size (due to borders) (Part of fix for #77729)
15402           - CreateParams(): Do not use parent.Handle unless the handle is
15403             already created. Causes havoc with Nexxia and throws off our
15404             creation of controls
15405         * XplatUIX11.cs:
15406           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
15407           - Switched handling of ConfigureNotify over to new PerformNCCalc 
15408             method (consolidates code)
15409           - Changed RequestNCRecalc to use new PerformNCCalc method
15410           - Added calls to RequestNCRecalc when menus and borders are changed
15411             to allow app to set NC size. (Part of fix for #77729) This matches
15412             when MS send a WM_NCRECALC on Win32 windows.
15413           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
15414             (Part of fix for #77729). This matches what MS does, they also
15415             send that message when the form is made visible.
15416           - XException.GetMessage: Improved usability of X errors by including
15417             a translation of the window into Hwnd and Control class
15418           - Improved debug info for window creation, reparenting and destruction
15419           - Created helper method WindowIsMapped() [Currently not used]
15420         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
15421         * Form.cs:
15422           - CreateParams: Now setting our menu on the new internal menu field
15423           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
15424             avoid calculating the same property twice
15425         * Hwnd.cs:
15426           - Improved usability of ToString() for debugging purposes
15427           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
15428             determine the height of the menu, instead of just the font. This
15429             required to also create a graphics context and to keep a bmp 
15430             around (for performance reasons)
15431
15432 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
15433
15434         * MenuAPI.cs: Added OnMouseUp method
15435         * Form.cs:
15436           - Now remembering the requested client size, avoids size errors
15437           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
15438             instead of base if the menu is active. This is required due to
15439             control now capturing and releasing on down/up and it would
15440             prematurely release our menu capture
15441
15442 2006-03-17  Jackson Harper  <jackson@ximian.com>
15443
15444         * KeyboardLayouts.cs: Add the czech layouts.
15445
15446 2006-03-16  Jackson Harper  <jackson@ximian.com>
15447
15448         * Control.cs: Use the viewport space when sizing not the controls
15449         client size, so things like ScrollableControl that effect the
15450         viewport size (when scrollbars are added) are computed correctly.
15451         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
15452         of ManagerEntrys.
15453         - Handle creating BindingManagers for null data sources.
15454         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
15455         source, otherwise when rows are added they are added to the 'fake'
15456         datasource and we will crash when trying to set the position in
15457         those rows.
15458         - Use Implicit scrollbars on the datagrid so they arent
15459         selectable.
15460         
15461 2006-03-16  Jackson Harper  <jackson@ximian.com>
15462
15463         * Binding.cs:
15464         * InternalWindowManager.cs:
15465         * MdiWindowManager.cs:
15466         * X11Keyboard.cs: I really want Mike to love me again (fix
15467         compiler warnings).
15468
15469 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
15470
15471         * DataGrid.cs:
15472           - OnMouseDown: Switch to editing mode when clicking on the cell
15473                          even if we're clicking on the cell that's currently 
15474                          selected
15475           - ProcessGridKey: Left/Right now wrap like MS.Net does
15476           - ProcessGridKey: Tab now knows to add a new row when tab is
15477                             pressed in the cell of the last column of the 
15478                             last row
15479           - ProcessGridKey: Enter now adds another row  if pressed in the last
15480                             row and selectes the new row, same column cell
15481           - ProcessGridKey: Home/End navigate columns, not rows, like 
15482                             originally implemented
15483           - Broke ProcessKeyPreview code out into an extra Internal method
15484             so it can be called from the edit code
15485         * DataGridTextBox.cs (ProcessKeyMessage):
15486           - Switched to accept Tab keypresses
15487           - Added F2 handling to allow jumping to the end of the edited cell
15488           - Added logic to allow moving caret left/right inside edited cell
15489             and making the edited cell jump when the caret hits cell borders
15490           - Tab and Enter are now passed to the datagrid after being handled
15491         * TextBoxBase.cs:
15492           - Removed capture code now that Control handles it
15493           - set_SelectionStart now ensures caret is visible
15494
15495 2006-03-16  Jackson Harper  <jackson@ximian.com>
15496
15497         * TrackBar.cs: Debackwards the increment/decrement for handling
15498         mouse clicks on the bar with vertical trackbars.
15499         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
15500         bottom to match MS.
15501
15502 2006-03-16  Mike Kestner  <mkestner@novell.com>
15503
15504         * ListView.cs: make shift/ctrl keyboard and mouse selection 
15505         consistent with the MS control. Fix a bug in
15506         SelectedListViewItemCollection.Clear that was pissing me off for the
15507         better part of a day because the collection was being altered
15508         underneath us as we walked the list.
15509
15510 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
15511
15512         * Control.cs: Not sure how we could miss this so long, but it seems
15513           that MS.Net has Capture set all the way from before calling 
15514           OnMouseDown through sending the mouse events until after
15515           OnMouseUp. This will fix DataGrid's selection being set to end
15516           at the location of the MouseUp.
15517
15518 2006-03-15  Jackson Harper  <jackson@ximian.com>
15519
15520         * BindingContext.cs: Check the binding after its added so that it
15521           can initialize the binding managers and hookup to events.
15522         * Binding.cs: Data members seem to sometimes include rows/cols in
15523           the format Row.Column we now take this into account.
15524           - Hookup to the position changed event so we can update the
15525           control when the position has changed in the data set.
15526         * CurrencyManager.cs: Take into account the row/col naming
15527           convention when creating dataset tables.
15528         * BindingContext.cs: Using a newer better way of storing
15529           datasource/datamember pairs.  Hopefully this better matches MS for
15530           looking up binding managers.
15531
15532
15533 2006-03-15  Jackson Harper  <jackson@ximian.com>
15534
15535         * BindingContext.cs: The currency manager needs the data member
15536         name, if the member is a data set we use the name to find the
15537         correct table.
15538         * CurrencyManager.cs: When creating the list prefer an IList over
15539         an IListSource.
15540         - Attempt to create a DataTable from a DataSet (TODO: might need
15541         some better error checking here, although MS doesn't seem to have much)
15542         - If we have a DataTable create a view and use it as our list.
15543
15544 2006-03-15  Mike Kestner  <mkestner@novell.com>
15545
15546         * ListView.cs: keep a matrix of the icon mode layout to facilitate
15547         keyboard navigation. Support Up/Down/Left/Right selection correctly
15548         for all 4 View modes.
15549         * ListViewItem.cs: add internal row/col fields for icon layouts.
15550
15551 2006-03-15  Jackson Harper  <jackson@ximian.com>
15552
15553         * TabControl.cs: Redraw the tabs when we resize so their newly
15554         calculated sizes are drawn on screen.
15555         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
15556         composite characters.
15557         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
15558         - filter events so that composite characters can be created
15559         patches by peter
15560         * X11Structs.cs: Add XIMProperties enum.
15561
15562 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15563
15564         * Control.cs (BringToFront, SendToBack): Don't use window or handle
15565           unless it's created
15566
15567 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15568
15569         * Control.cs (PerformLayout): We don't need to consider visiblity
15570           for anchoring, only for docking. This fixes 'whacky' alignment
15571           in listbox and other controls that use implicit scrollbars after
15572           the previous PerformLayout patch
15573         * ListBox.cs: Switched to use implicit scrollbars
15574           
15575 2006-03-14  Mike Kestner  <mkestner@novell.com>
15576
15577         * ToolBar.cs: 
15578         * VScrollBar.cs:
15579         - chain up the "new event" overrides to base and use
15580         OnEvent to raise them.  Part of fix for bug #76509.
15581
15582 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
15583
15584         * FileDialog.cs: Do not select an item in the parent directory
15585           on backspace
15586
15587 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
15588
15589         * Control.cs (PerformLayout): It would seem that we considered
15590           invisible windows for our layout. Not quite the right thing
15591           to do. Now we don't any longer, thereby fixing bug #76889.
15592
15593 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
15594
15595         * Control.cs (CanFocus): I goofed. A control can have focus 
15596           even though it's not selectable. Made it match MS docs.
15597
15598 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15599
15600         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
15601           center by default (fixes #76895)
15602         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
15603           all uses of Border3DSides.All with the explicit ORd together
15604           Left|Right|Top|Bottom because I assume that nobody was aware 
15605           that All also implies a center fill. Most places I checked had
15606           a fill right above.
15607         * ProgressBarStyle.cs: Added
15608
15609 2006-03-13  Mike Kestner  <mkestner@novell.com>
15610
15611         * ListView.cs: fix breakage in drag shadow header positioning 
15612         from Peter's csc compilation fix.
15613
15614 2006-03-13  Mike Kestner  <mkestner@novell.com>
15615
15616         * ListView.cs: fix NRE produced by backspacing twice in a focused
15617         FileDialog.
15618
15619 2006-03-13  Mike Kestner  <mkestner@novell.com>
15620
15621         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
15622
15623 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15624
15625         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
15626           be changed
15627         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
15628           the allowed size before making programmatic size changes
15629
15630 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
15631
15632         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
15633           set, metacity is broken and will still use the emty sizes in 
15634           the struct. (Fix for #77089)
15635
15636 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
15637
15638         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
15639           WindowExStyles and marked both enums as Flags
15640         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
15641           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
15642           to match WindowStyles split
15643         * XplatUIX11.cs:
15644           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
15645           - Updated to match WindowStyles split
15646         * XplatUIWin32.cs:
15647           - Fixed FosterParent creation, was using ExStyle on the Style field
15648             (This should help with Popup focus issues)
15649           - Updated to match WindowStyles split
15650
15651 2006-03-13  Jackson Harper  <jackson@ximian.com>
15652
15653         * MdiWindowManager.cs: Use the system menu height. Fixes some
15654         strange sizing issues.
15655
15656 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15657
15658         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
15659         * TextBoxBase.cs:
15660           - Scroll to caret after inserting text (#77672)
15661           - Make scroll range one pixel higher, fixes off-by-one error (and
15662             makes underlines visible on the last line)
15663
15664 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
15665
15666         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
15667           the keyboard state from being stuck with keys in 'pressed' state when
15668           focus is switched away via keyboard
15669         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
15670           reset the keyboard if no X11 KeyUp events are expected to come
15671         * X11Structs.cs: Switched type of Visible to bool to match driver
15672
15673 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
15674
15675         * TextControl.cs:
15676           - Switched caret to be just 1 pixel wide, matches MS and looks less
15677             clunky
15678           - Moved caret display 1 pixel down from the top of the control
15679             to improve view
15680           - InsertCharAtCharet: Update the selection start if moving the caret
15681             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
15682           - No longer always creating the caret when the caret methods are
15683             called. Only the actual ShowCaret/HideCaret will do that now
15684           - Only setting caret visible if the owner control has focus
15685           - UpdateView: Added invalidation-shortcut logic for center and right 
15686             aligned text. Previously we'd update all according to the left
15687             logic which caused drawing errors. Also fixed height of invalidated
15688             areas, now properly invalidating the whole area (was off-by-one)
15689           - owner_HandleCreated: Always generate the document when the
15690             handle is created; this ensures that 
15691         * TextBoxBase.cs:
15692           - Fixed situation where caret would disappear under the right
15693             window border, also improved scrolling behaviour on left-
15694             aligned textboxes
15695           - Fixed right-aligned textboxes to have a border to the
15696             right instead of the caret being under the right border
15697         * XplatUIX11.cs:
15698           - Switched from 'nested' to simple visible/not visible tracking 
15699             for caret (part of fix for #77671)
15700           - No longer passing through translated FocusIn/FocusOut messages
15701             since we were notifying too often and the wrong windows. Instead
15702             we just notify our focussed window of receiving or loosing focus
15703         * XplatUIWin32.cs: Switched from 'nested' show/hide 
15704           counting for caret to simple visible yes/no behaviour (part of 
15705           fix for #77671)
15706
15707 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15708
15709         * Mime.cs: Remove debug code...
15710
15711 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
15712
15713         * MimeGenerated.cs: Removed
15714         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
15715           and subclasses) from /usr/(local/)share/mime and
15716           $HOME/.local/share/mime.
15717
15718 2006-03-10  Jackson Harper  <jackson@ximian.com>
15719
15720         * MdiWindowManager.cs: Recalc the NC area when a window is
15721         maximized/restored so that the menu area is drawn on forms that
15722         don't have a menu.
15723
15724 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15725
15726         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
15727           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
15728           us to force a WM_NCCALCRESIZE message being sent. This is needed
15729           for MDI maximizing.
15730
15731 2006-03-10  Jackson Harper  <jackson@ximian.com>
15732
15733         * Form.cs: We need to use the ActiveMenu when calculating menu
15734         height.
15735         - Fix nullref when the window manager hasn't been created yet.
15736         * Control.cs: Fix nullref when we try to bring a control to the
15737         front that has no parent.
15738         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
15739         height.
15740         - Add a dummy item to the maximized menu so it always has the
15741         correct height. Otherwise when there are no menus we don't get our
15742         icon and buttons.
15743         
15744
15745 2006-03-10  Jackson Harper  <jackson@ximian.com>
15746
15747         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
15748         stuff.
15749         * Form.cs: Make the window_state internal so the window managers
15750         can track it.
15751         - When an MDI child is maximized let its window manager create the
15752         main menu (so it can add its icon).
15753         - Notify the window managers of state changes
15754         - Let the window manager paint its buttons and handle button
15755         clicks on the menu when it is maximized.
15756         * InternalWindowManager.cs: Move the prev_bounds into the mdi
15757         window manager, since tool windows don't use it, only mdi windows.
15758         - Tell the main form that we don't want it to handle NCPAINT
15759         itself to avoid extra painting.
15760         - Handle clicks on a maximized windows menu.
15761         - Handle window state changes
15762         - Handle minimize/maximize clicks correctly by setting the window state.
15763         * MdiWindowManager.cs: Add an icon menu that (the menu you get
15764         when clicking on the forms icon).
15765         - New method to create a forms maximized menu. This is its normal
15766         menu + an icon.
15767         - Handle window state changes.
15768         - Handle sizing of maximized windows.  Maximized windows are just
15769         drawn bigger then the parent visible area. All controls are still
15770         there, they are just outside the visible area (this matches windows).
15771         * MdiClient.cs: No scrollbars when a child window is maximized.
15772         - Let the children windows figure out how big they should be when
15773         sizing maximized windows.
15774         - Implement a version of ArrangeIconicWindows somewhat similar to
15775         Windows version.  There are some little differences, but I don't
15776         think any app will rely on the layout of minimized mdi windows.
15777
15778 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15779
15780         * Padding.cs: Several fixes to allow compiling with csc 2.0
15781
15782 2006-03-09  Jackson Harper  <jackson@ximian.com>
15783
15784         * Menu.cs:
15785         * MenuItem.cs: Cheap hack so we can add items to the list without
15786         the events being raised.  This allows adding mdi items during
15787         drawing. TODO: Should probably find a better time to add the items.
15788
15789 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15790
15791         * ThemeWin32Classic.cs:
15792           - CheckBox_DrawText: Added logic to not wrap if not enough space
15793             is available (Fix for bug #77727)
15794           - RadioButton_DrawText: Added logic not to wrap if not enough
15795             space is available (Fix for bug #77727). Also removed some
15796             duplicate code, DrawString always drawing the regular text
15797             before hitting the if statement.
15798
15799 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
15800
15801         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
15802
15803 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
15804
15805         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
15806         * ContainerControl.cs: Partial implementation of some 2.0 scaling
15807           methods. Moved the new 2.0 properties into alphabetical order with
15808           other properties and added MonoTODO tags
15809
15810 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15811
15812         * AutoScaleMode.cs: Added. Fix build.
15813
15814 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15815
15816         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
15817           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
15818           and was requiring premature handle creation for calls from above
15819         * Form.cs, Control.cs: Removed handle arguments from calls to
15820           CalculateClientRect()
15821
15822 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15823
15824         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
15825           drag_column.column_rect is MarshalByRef and can't be used that way
15826
15827 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15828
15829         * AxHost.cs: Added deserialization constructor for 
15830           AxHost+State (fixes 77743)
15831
15832 2006-03-09  Mike Kestner  <mkestner@novell.com>
15833
15834         * ListView.cs: 
15835         - Added column drag reordering for details view.
15836         - fixed behavior when mouse is dragged off column and
15837         AllowColumnReorder is false.
15838         * ColumnHeader.cs: clone the format too in Clone.
15839         * Theme.cs: add DrawListViewHeaderDragDetails method.
15840         * ThemeWin32Classic.cs:
15841         - impl new method for drawing drag column shadows and targets.
15842         - support column offset for details mode in DrawListViewItem.
15843
15844 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15845
15846         * TextControl.cs: Reset the char_count when the document is cleared
15847           (Fixes bug reported on mono-winforms mailing list)
15848
15849 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
15850
15851         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
15852           of calling base we simply process the key ourselves, since both
15853           DefWindowProc and the handled method would set m.Result. 
15854           (Fixes #77732)
15855
15856 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
15857
15858         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
15859           method also moves the window; instead implemented a copy of
15860           Control.ScaleCore (Part of fix for #77456)
15861         * TextBoxBase.cs: 
15862           - Created new CreateGraphicsInternal method to allow providing
15863             a graphics context when no handle is created without triggering
15864             handle creation. (Part of fix for #77456)
15865           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15866         * TextControl.cs: 
15867           - Switched Constructor to require TextBoxBase instead of Control (to
15868             allow uncast access to CreateGraphicsInternal)
15869           - Safeguarded use of owner.Handle property. No longer accessing it
15870             unless the handle is already created.
15871           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
15872           - Now triggering a recalc when owning control becomes visible
15873         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
15874           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
15875           premature handle creation (Part of fix for #77456)
15876         * Control.cs:
15877           - We now only destroy our double-buffering buffers when the
15878             control is resized or disposed, but not when visibility
15879             changes. (The code even re-created them twice every time)
15880           - Now requiring a redraw of the buffer on visibility changes
15881             (fixes bug 77654 part 2)
15882           - Not passing OnParentVisibleChanged up unless the control
15883             is visible
15884           - CanFocus: Fixed to match MS documentation
15885           - Focus: Fixed to return actual focus state and to check if
15886             setting focus is legal before setting it
15887
15888 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
15889
15890         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
15891           when to draw focus rectangle by looking at parent focus and
15892           selected state instead. This fixes TabPages on Linux sometimes
15893           having none or multiple focus rectangles.
15894         * XplatUIX11.cs (SetFocus): 
15895           - Don't set the focus if the same window already has focus
15896           - Use SendMessage instead of PostMessage (like it's Win32
15897             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
15898             to match MS behaviour
15899         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
15900           are not selectable.
15901
15902 2006-03-07  Jackson Harper  <jackson@ximian.com>
15903
15904         * PictureBox.cs: Revert line I accidently committed last week.
15905
15906 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
15907
15908         * Control.cs: 
15909           - Added new IsRecreating and ParentIsRecreating properties to
15910             allow testing if RecreateHandle has been called on ourselves
15911             or one of our parents
15912           - WndProc(WM_DESTROY): If our control handle is being recreated
15913             we immediately need to create the handle when receiving the
15914             destroy, that way our child windows find a valid parent handle
15915             when they themselves are being recreated upon WM_DESTROY receipt
15916             (fix for bug #77654 part 1)
15917         * XplatUIX11.cs:
15918           - DestroyWindow: WM_DESTROY must be sent to our own window before
15919             notifying any child windows. MS documents that child windows
15920             are still valid when WM_DESTROY is received. (Control now relies on
15921             this behaviour)
15922           - Added some fine-grain debug options
15923
15924 2006-03-06  Jackson Harper  <jackson@ximian.com>
15925
15926         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
15927         box and base calculations off this.
15928         * MdiChildContext.cs:
15929         * MdiWindowManager.cs: Don't need to ensure scrollbars here
15930         anymore.
15931         
15932 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
15933
15934         * Splitter.cs: In situations where the affected control is added
15935           to the parent's control list after the splitter, we would not
15936           populate affected. Now we try populating it on mousedown, if
15937           it's not already set, and force it to be re-set whenever our
15938           parent changes.
15939
15940 2006-03-03  Matt Hargett  <matt@use.net>
15941
15942         * Control.cs: implement Control.Padding
15943         * Padding.cs: -Padding.All returns -1 when constructing with the
15944         implicit default ctor
15945         -Padding.ToString() matches MS.NET
15946         * ContainerControl.cs: implement
15947         ContainerControl.AutoScaleDimensions
15948         * ListControl.cs: implement ListControl.FormattingEnabled
15949         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
15950         * ButtonBase.cs:
15951         * TabPage.cs: Implement UseVisualStyleBackColor.
15952         * PictureBox.cs: Implement PictureBox.InitialImage.
15953
15954 2006-03-03  Mike Kestner  <mkestner@novell.com>
15955
15956         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
15957         event declarations to proxy to base event.
15958         * ListViewItem.cs: update to use ItemControl.
15959         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
15960         * ThemeWin32Classic.cs: update to new ListView theme API and fix
15961         column header label rendering for 0 width columns.
15962
15963 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
15964
15965         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
15966           that causes the control to be created. Fixes #77476.
15967
15968 2006-03-02  Jackson Harper  <jackson@ximian.com>
15969
15970         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
15971         expose_pending.
15972
15973 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
15974
15975         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
15976           passed in for the EventArgs (fixes #77690)
15977
15978 2006-03-01  Jackson Harper  <jackson@ximian.com>
15979
15980         * ScrollBar.cs: Refresh afterbeing resized.
15981
15982 2006-02-28  Mike Kestner  <mkestner@novell.com>
15983
15984         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
15985         Clean up a tracker compile warning.
15986         * MenuItem.cs: add internal PerformPopup method.
15987         [Fixes #77457]
15988
15989 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
15990
15991         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
15992           implicit expose) when the text is set to null
15993
15994 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
15995
15996         * RichTextBox.cs (FlushText): When newline is true, we always
15997           need to split the line, even if no text is on it and we may
15998           never eat newlines. (Fixes #77669)
15999
16000 2006-02-28  Mike Kestner  <mkestner@novell.com>
16001
16002         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
16003         and set Selected instead.
16004         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
16005         collections.
16006
16007 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
16008
16009         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
16010
16011 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
16012
16013         * FontDialog.cs:
16014           - Got rid of the panel. All controls are now directly added to
16015             the dialog form
16016           - It is now possible to set a font with the Font property
16017           - MinSize and MaxSize property do now what they should
16018           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
16019           - Searching and selecting a font with the font textbox works now,
16020             the same applies to the style and size textbox
16021           - Draw the correct 3D border in the example panel
16022           - Fixed a little mem leak (unused fonts didn't get disposed)
16023           - Many other internal updates/rewrites...
16024           - Fix typo
16025
16026 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
16027
16028         * TextControl.cs: 
16029           - InsertRTFFromStream: Added 'number of characters inserted' argument
16030           - set_SelectedRTF: Now using the number of characters to calculate
16031             the new location for the selection and cursor (x/y cannot be used
16032             due to potentially already wrapped text)
16033
16034 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
16035
16036         * TextControl.cs: Added property and implemented means to allow 
16037           disabling recalculation of a document (can be used to speed up
16038           multiple inserts and is needed to make RTF inserts predictable, see
16039           bug #77659)
16040         * RichTextBox.cs: Using the new NoRecalc property of Document to
16041           keep x/y insert locations predictable. Also makes it faster inserting
16042           large chunks of RTF
16043
16044 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
16045
16046         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
16047           it's easier for a child control to handle the other messages without
16048           having to duplicate the special functionality
16049         * TextBoxBase.cs
16050           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
16051             code to handle processing the key ourselves, in order to get 
16052             access to the result of KeyEventArgs.Handled. We now only call 
16053             ProcessKey if they key hasn't been handled already. Fixes #77526.
16054           - set_Text: If null or empty string is given, just clear the 
16055             document. Fixes part of #77526
16056
16057 2006-02-27  Jackson Harper  <jackson@ximian.com>
16058
16059         * SizeGrip.cs: Paint the background color before painting the grip
16060         so things look right.
16061         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
16062
16063 2006-02-27  Mike Kestner  <mkestner@novell.com>
16064
16065         * ListView.cs:
16066           - Restructure layout and invalidation model to remove a ton of
16067           flicker from the control and speed up performance in general.
16068           - Add manual column resize, flickers like crazy, but I already have
16069           some ideas on how I'll fix that. (#76822)
16070           - Merge the three Icon-based views into a single layout method.
16071           - Move item selection interaction logic from the item since 
16072           interaction with the collections is more appropriate to the view.
16073           - Deselection on non-item clicks.
16074         * ListViewItem.cs:
16075           - Encapsulate most of the layout. Add some internal props to trigger
16076           layout.  Move to a model where Items invalidate themselves instead
16077           of just invalidating the whole control every time something changes.
16078           - Invalidate on Text/Caption changes.
16079           - switch to an offset based layout model to avoid having to absolute
16080           position every element on item moves.
16081           - correct checkbox layout to conform to MS layout.
16082         * ThemeWin32Classic.cs:
16083           - refactor some column header drawing code.
16084           - fix string justification for column headers (#76821)
16085           - make SmallIcon labels top justified for compat with MS impl.
16086         * ThemeClearlooks.cs:
16087           - adjust to new ListViewItem internal checkbox bounds api.
16088
16089 2006-02-27  Jackson Harper  <jackson@ximian.com>
16090
16091         * Control.cs:  Change where implicit controls fall in the zorder.
16092         They are now on top of all children.
16093         - Synced AddImplicit code with Add
16094         - Removed unused enumerator.
16095         * SizeGrip.cs: Remove the TODO as its been TODONE.
16096
16097 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
16098
16099         * TextControl.cs(Insert): Combine the last lines unless the insertion
16100           string ends with \n\n, otherwise we leave one line too many (Fixes
16101           something I noticed with the testapp for #77526; the bug itself was
16102           already fixed in the previous checkin)
16103
16104 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
16105
16106         * RichTextBox.cs:
16107           - SelectionColor and SelectionFont methods no longer set absolute
16108             styles. Instead, the keep font or color respectively (This 
16109             resolves a long-standing FIXME in the code)
16110           - When flushing RTF text, the insert code now considers text trailing
16111             behind the insertion point (Fixes the bug where when replacing
16112             the selected text via SelectedRTF the remainder of the line behind 
16113             the selection would stay on the first insertion line)
16114         * TextBoxBase.cs:
16115           - AppendText now updates the selection points after inserting text
16116           - AppendText now ensures that the last tag (sometimes 0-length) of
16117             the document is used for the style information (Fixes part of 
16118             bug #77220)
16119         * TextControl.cs:
16120           - Created new FontDefiniton class to allow describing partial style
16121             changes
16122           - StreamLine() now takes a lines argument, to allow it to decide
16123             whether an encountered zero-length tag is the last in the document
16124             (which must be kept to not loose the font/color contained in it,
16125             for later appends)
16126           - Created Combine() and Split() methods for Marker structs, to 
16127             support marker updates due to reformatted documents (soft line
16128             wraps)
16129           - Implemented Document.CaretTag setter
16130           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
16131             of the last line (Not the cause, but also exposed by bug #77220)
16132           - Added LineTag argument to InsertString method, to allow callers
16133             to force a certain tag to be used (required to force use of the
16134             trailing zero-length tag of a document)
16135           - Now updating markers in Combine(), to avoid stale tag markers
16136           - Added some method descriptions to aid maintenance
16137           - Implemented new FormatText concept, allowing additive/subtractive
16138             formatting by only specifying the components that are to be 
16139             changed. This was needed for resolving the RTB.SelectedColor/
16140             RTB.SelectedFont fixmes
16141           - Added Break() support method to allow breaking up linetags (used
16142             for partial formatting)
16143           - Added GenerateTextFormat() method. It is used for partial 
16144             formatting and allows to generate a full font/color from given
16145             attributes and an existing tag.
16146
16147 2006-02-26  Jackson Harper  <jackson@ximian.com>
16148
16149         * XplatUIX11.cs:  Use the correct caption height.
16150         - Translate hittest coordinates to screen coords to match MS.
16151         * XplatUIWin32.cs: When we create MDI windows we need to reset
16152         some of the style flags, so we get a nice blank window, and can
16153         draw all the decorations ourselves.
16154         - Set a clipping rectangle on the non client paint event, the
16155         window manager drawing code needs one.
16156         * Form.cs: The window manager needs to know when the window state
16157         has been updated.
16158         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
16159         don't need to factor in border and title sizes in these
16160         methods. TODO: Remove the args and fix the call points.
16161         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
16162         properly.
16163         - Let the driver set the cursors.
16164         - Improve active window handling
16165         - Correct sizes for title bars and buttons.
16166         - Match MS drawing better
16167         * MdiWindowManager.cs: We don't need to handle border style
16168         updates specially anymore.
16169         - Check for scrollbars when windows are done moving
16170         - Handle Active properly.
16171         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
16172         correctly. I am spewing the exception though, so we don't hide the
16173         bugs.
16174         
16175 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
16176
16177         * DataGridViewRowPostPaintEventArgs.cs,
16178           DataGridViewCellPaintingEventArgs.cs,
16179           DataGridViewRowCollection.cs,
16180           DataGridViewRowPrePaintEventArgs.cs,
16181           DataGridViewCell.cs: Clear a few warnings and implement a few
16182           exceptions that should be thrown.
16183
16184 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16185
16186         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
16187           'inheriting' our parent's (non-default) cursor. (Part of
16188            the fix for #77479)
16189
16190 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
16191
16192         * XplatUIX11.cs: Fixed cast to make csc happy
16193
16194 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
16195
16196         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
16197           it's for the client area (part of fix for #77479 and needed
16198           for MDI window cursor handling)
16199         * XplatUIX11.cs
16200           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
16201             the appropriate default cursors and also passing the message
16202             up the parent chain 
16203           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
16204             for non-client areas
16205
16206 2006-02-15  Jackson Harper  <jackson@ximian.com>
16207
16208         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
16209         is a real MDI window
16210
16211 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
16212
16213         * X11DesktopColors.cs: Instead of checking the desktop session
16214           string for "KDE" check if it starts with "KDE"
16215
16216 2006-02-10  Jackson Harper  <jackson@ximian.com>
16217
16218         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
16219         systems).
16220
16221 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16222
16223         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
16224           errors
16225         * ColorDialog.cs:
16226           - Got rid of the panel. All controls are now directly added to
16227             the dialog form
16228           - Changed to mono coding style
16229
16230 2006-02-10  Jackson Harper  <jackson@ximian.com>
16231
16232         * InternalWindowManager.cs: We don't need the set visibility to
16233         false hack anymore now that peter has written beautiful shutdown
16234         code.
16235
16236 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
16237
16238         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
16239           where already explicitly destroyed
16240
16241 2006-02-10  Jackson Harper  <jackson@ximian.com>
16242
16243         * MdiClient.cs: Handle the case where windows are too high or to
16244         the left and we need scrollbars.
16245
16246 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
16247
16248         * MimeIcon.cs: Added some icons
16249         * FileDialog.cs:
16250           - Fixed bug #77477
16251           - Got rid of the panel. All controls are now directly added to
16252             the dialog form
16253           - Changed to mono coding style
16254           - On Linux "My Computer" and "My Network" will now show some
16255             more usefull information. A new class, MasterMount, gathers
16256             this information from /proc/mount. Updated MWFFileView to make
16257             use of this information
16258           - Fixed a bug that caused FileDialog to crash when
16259             ".recently_used" file had a zero size
16260           - FilterIndex does now what it should
16261           - Some Refactoring
16262         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
16263             FileDialog changes
16264
16265 2006-02-09  Jackson Harper  <jackson@ximian.com>
16266
16267         * ComboBox.cs: Don't touch if null.
16268
16269 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
16270
16271         * Cursor.cs: 64bit safeness fix
16272         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
16273
16274 2006-02-09  Jackson Harper  <jackson@ximian.com>
16275
16276         * Form.cs: If a form is made into an MDI form update the styles so
16277         all the props can get set correctly.
16278         - Kill the mdi_container when we dont need it anymore.
16279         * InternalWindowManager.cs: Add missing NOT
16280
16281 2006-02-08  Jackson Harper  <jackson@ximian.com>
16282
16283         * InternalWindowManager.cs: Respek clipping when drawing MDi
16284         decorations.
16285
16286 2006-02-08  Jackson Harper  <jackson@ximian.com>
16287
16288         * Hwnd.cs: Add bits to track non client expose events.
16289         * XplatUIX11.cs: Track non client expose events on the hwnd. This
16290         gives us a proper invalid rect and will allow for some nice
16291         optimizations with NC client drawing
16292         - MDI windows are children windows, so move their style handling
16293         into the child window block.
16294         * InternalWindowManager.cs: Remove a state reset that was
16295         getting invoked at the wrong time. Fixes managed windows getting
16296         into a 'stuck' captured state.
16297
16298 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16299
16300         * TextControl.cs (Document.ctor): Now initializing 
16301           selection_anchor. Fixes #77493
16302
16303 2006-02-07  Jackson Harper  <jackson@ximian.com>
16304
16305         * TrackBar.cs: The increment/decrements were backwards.
16306
16307 2006-02-07  Mike Kestner  <mkestner@novell.com>
16308
16309         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
16310         to the instance itself.
16311
16312 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
16313
16314         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
16315           on ulongs and pointers, the size differs between 32bit and 64bit
16316           systems. 
16317
16318 2006-02-07  Mike Kestner  <mkestner@novell.com>
16319
16320         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
16321         for 64 bit platforms to work around a metacity bug. 
16322
16323 2006-02-07  Jackson Harper  <jackson@ximian.com>
16324
16325         * TrackBar.cs: Process the input keys we need, and hookup to
16326         KeyDown instead of using WndProc, so we get key messages.
16327
16328 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
16329
16330         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
16331           machine we're on. 
16332         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
16333           we need to translate the XdndVersion atoms array before sending it
16334
16335 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
16336
16337         * XplatUIX11.cs: 
16338           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
16339             number of bits for the property, not the number of bytes. The
16340             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
16341             but would not crash since it specified 8 bits instead of 4 bits)
16342           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
16343             defined as XID -> long in the C headers)
16344           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
16345             references since those are now IntPtr to begin with
16346           - Switched all Atom.XXX 'int' casts to IntPtr casts
16347           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
16348           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
16349           - Added XChangeActivePointerGrab DllImport (for X11DnD)
16350         * X11Structs.cs:
16351           - Changed 'int' type for Atoms in XEvent structures to IntPtr
16352           - Changed atom in HoverStruct to be IntPtr
16353         * X11DnD.cs:
16354           - Removed local DllImports, switched code to use those from XplatUIX11
16355           - Removed/fixed casts related to the switch of Atom to be a IntPtr
16356
16357 2006-02-06  Mike Kestner  <mkestner@novell.com>
16358
16359         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
16360         method signatures in the import region.  There may still be some
16361         lingering struct marshaling issues, as I didn't drill down into those.
16362         Yet.
16363
16364 2006-02-06  Jackson Harper  <jackson@ximian.com>
16365
16366         * ComboBox.cs: Dont manually set the top_item, this is computed
16367         when the scrollbar position is set.
16368
16369 2006-02-06  Mike Kestner  <mkestner@novell.com>
16370
16371         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
16372         startup crashes on amd64.  There's other fixes needed.  All pinvoke
16373         usage of Atom needs to be mapped to IntPtr for example.  And there are
16374         likely other int/long issues to be addressed.
16375
16376 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
16377
16378         * FileDialog.cs: One more...
16379
16380 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16381
16382         * FileDialog.cs: Next try
16383
16384 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16385
16386         * FileDialog.cs: First part of fix for #77464
16387
16388 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
16389
16390         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
16391           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
16392           AcceptButton border drawing.
16393
16394 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
16395
16396         * Form.cs: Moved positioning of form after auto scaling is applied,
16397           otherwise it would possibly use wrong form size.
16398
16399 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
16400
16401         * Control.cs (RecreateHandle): No need to re-create any child
16402           controls, the child windows will get destroyed automatically by
16403           the windowing system or driver, and re-created when the handle
16404           is being accessed the first time. Fixes #77456
16405         * Form.cs: No longer setting the form to closing if the handle is 
16406           being recreated. This seems like the right thing to do, don't
16407           have a bug or testcase for this, though.
16408
16409 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16410
16411         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
16412           controls to avoid unwanted side effects
16413
16414 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
16415
16416         * Control.cs: 
16417           - ScaleCore needs to scale the bounds, not the ClientSize of the 
16418             control. Fixes #77416.
16419           - DefaultSize is 0,0 for control
16420         * TextBoxBase.cs: 
16421           - DefaultSize is 100, 20
16422           - SetBoundsCore: Now enforcing the height, no matter if the provided
16423             height is more or less than the preferred one, as long as AutoSize
16424             is on
16425         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
16426
16427 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
16428
16429         * Control.cs:
16430           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
16431             call unless both performLayout is true *and* we have a pending
16432             layout change
16433           - ResumeLayout: MS does not completely nest Suspend and Resume,
16434             they bottom out at 0, fixed our code to match that.
16435           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
16436             SetBoundsCore, we were updating even when we shouldn't. This fixes
16437             swf-anchors mis-anchoring when resizing the app fast and lots.
16438           - UpdateDistances: Now only setting the left and top distance if 
16439             we have a parent and are not suspended, this is based on
16440             a suggestion by Don Edvaldson in bug #77355.
16441           - OnVisibleChanged: Fixed logic when to create the control. We may
16442             not create the control if we have no parent or if it's not visible;
16443             switched to using Visible property instead of is_visible field 
16444             since the property also considers parent states. This fixes a bug
16445             when starting Paint.Net
16446
16447 2006-02-02  Jackson Harper  <jackson@ximian.com>
16448
16449         * Form.cs: If the forms handle hasn't been created yet don't call
16450         into xplatui to make it top most, just set the topmost flag on the
16451         form in CreateParams
16452         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
16453
16454 2006-02-01  Jackson Harper  <jackson@ximian.com>
16455
16456         * ScrollableControl.cs: Refactored the Recalculate method a
16457         little, this wasn't handling all the variants of bottom and right
16458         bars needed to be added and added/removed based on their
16459         counterparts being added/removed (which changes the drawable
16460         size). Also we special case client widths and heights of 0 and
16461         don't add the scrollbar for those.
16462
16463 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
16464
16465         * XplatUIX11.cs: 
16466           - Added method to get AbsoluteGeometry(); currently unused, but might
16467             be used in the future, if we try again to figure out toplevel
16468             coordinates with some more crappy window managers
16469           - Added FrameExtents() method to retrieve the WM set decoration size
16470           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
16471             to deal with at least KDE, FVWM and metacity (Fixes #77092)
16472         * Hwnd.cs: 
16473           - Added whacky_wm tracking var for metacity
16474           - Added logic to have default menu height if the actual menu height
16475             has not yet been calculated (part of fix for #77426)
16476         * Form.cs: Keep track whether client size has been set and re-set 
16477           it if a menu is added/removed afterwards (Fixes #77426)
16478
16479 2006-01-31  Jackson Harper  <jackson@ximian.com>
16480
16481         * Control.cs: When a new Site is set on the component attempt to
16482         pull the AmbientProperties from it.
16483
16484 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
16485
16486         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
16487           in the background of the owning form. Fixes #77332
16488
16489 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16490
16491         * MimeIcon.cs: Fix for #77409
16492
16493 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
16494
16495         * XplatUIX11GTK.cs: Initial import
16496
16497 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
16498
16499         * FixedSizeTextBox: fixes class signature
16500
16501 2006-01-30  Jackson Harper  <jackson@ximian.com>
16502
16503         * FixedSizeTextBox.cs: New internal class that represents a
16504         textBox that will not be scaled.
16505         * TreeView.cs:
16506         * ComboBox.cs:
16507         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
16508         standard TextBox.
16509                 
16510 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
16511
16512         * XplatUIX11.cs: Retrieve default screen number instead of
16513           assuming 0. Attempted fix for #77318
16514
16515 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
16516
16517         * XplatUIWin32.cs: 
16518           - GetWindowPos: When a window is parented by FosterParent, use 
16519             the desktop instead of FosterParent as the base to get coordinates
16520           - CreateWindow: Don't make FosterParent the parent window for Popups
16521             if we don't want a taskbar entry, Popups automatically don't get one
16522         * Hwnd.cs: Need to call remove to actually remove the key from the
16523           hash table
16524
16525 2006-01-30  Mike Kestner  <mkestner@novell.com>
16526
16527         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
16528
16529 2006-01-30  Jackson Harper  <jackson@ximian.com>
16530
16531         * TreeView.cs:
16532         * TreeNode.cs: Raise events no matter how the treenode is
16533         checked. Patch by Don Edvalson.
16534
16535 2006-01-30  Jackson Harper  <jackson@ximian.com>
16536
16537         * TreeNode.cs: Signature fix.
16538
16539 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
16540
16541         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
16542
16543 2006-01-20  Mike Kestner  <mkestner@novell.com>
16544
16545         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
16546         event forwarding when menus are active.
16547         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
16548         Most of the patch is pdb's with a little rework.
16549
16550 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16551
16552         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
16553           Removed GetMenuDC and ReleaseMenuDC methods; replaced
16554           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
16555         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
16556         * InternalWindowManager.cs: Added use of PaintEventStart/End to
16557           handling of WM_NCPAINT message, now passing the PaintEventArgs to
16558           the PaintWindowDecorations method
16559         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
16560         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
16561         * MenuAPI.cs: Made tracker window invisible
16562         * XplatUIWin32.cs:
16563           - Removed GetMenuDC and ReleaseMenuDC methods
16564           - Implemented the client=false path for PaintEventStart and
16565             PaintEventEnd
16566
16567 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16568
16569         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
16570         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
16571           styles
16572         * Form.cs: 
16573           - MaximizeBox, MinimizeBox: Recreate the handle when setting
16574             the style
16575           - CreateParams: Reworked the styles to match MS look'n'feel,
16576             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
16577             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
16578
16579 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
16580
16581         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
16582           window is not mapped, since otherwise every form that's being 
16583           created is considered minimized, which is wrong.
16584         * Form.cs: Catching the exception and returning our internal value
16585           instead
16586
16587 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
16588
16589         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
16590           SetWindowMinMax() to have means to tell the driver about the minimum,
16591           maximum and maximized state window sizes. (Part of the fix for #76485)
16592         * Form.cs:
16593           - Implemented tracking of minimum and maximum window size, now calling
16594             new SetWindowMinMax() driver method to tell the driver (Part of the
16595             fix for #76485)
16596           - Finished handling of WM_GETMINMAXINFO method, now setting all values
16597             (Completes fix for #76485)
16598           - Calling new SetWindowMinMax driver method when the handle for a 
16599             form is created, to make sure the driver knows about it even if
16600             the values have been set before the window was created
16601           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
16602             to avoid messing up our anchoring calculations (partial fix
16603             for #77355)
16604         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
16605         * XplatUIX11.cs:
16606           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
16607           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
16608             (and presumably other freedesktop.org compliant WMs). Left the
16609             assumption unmapped=minimized, needed for SetVisible to work.
16610           - Now setting the window state when creating windows
16611           - Fixed SetVisible to consider/set the window state when mapping
16612             a Form. We cannot set the state before it's mapped, and we cannot
16613             use Form.WindowState once it's mapped (since it would ask the
16614             driver and get 'normal'. Therefore, we grab the state before
16615             mapping, map, and then set state.
16616           - Implmemented SetWindowMinMax method; Metacity does not seem to
16617             honor the ZoomHints, though.
16618         * XplatUIWin32.cs:
16619           - Removed MINMAXINFO (moved to XplatUIStructs)
16620           - Added SetWindowMinMax stub (on Win32 the only way to set that
16621             information is in response to the WM_GETMINMAXINFO message, which
16622             is handled in Form.cs)
16623           - Added logic to SetVisible to set the proper window state when a 
16624             form is made visible (fixes #75720)
16625
16626 2006-01-26  Jackson Harper  <jackson@ximian.com>
16627
16628         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
16629         same way we handle them with Invoke.
16630
16631 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
16632
16633         * Form.cs:
16634           - Added tracking of window state so CreateParams can return
16635             the appropriate style
16636           - Moved setting of WS_CAPTION style in CreateParams to allow
16637             styles without caption
16638         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
16639           control if the TextBox property is accessed. Fixes #77345
16640         * Control.cs:
16641           - get_Created: now uses is_disposed and is_created to determine
16642             return value (suggested by Jackson)
16643           - CreateHandle: No longer exits if the handle is being recreated
16644           - RecreateHandle: If the handle is not yet created call the 
16645             appropriate method to create either control or handle. If the
16646             control is already created CreateHandle will simply exit instead
16647             of just creating the handle
16648         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
16649           now SendMessage WM_DESTROY directly to the control when DestroyWindow
16650           is called.
16651         * XplatUIX11.cs: 
16652           - When DestroyWindow is called, instead of waiting for the 
16653             DestroyNotification from X11, we directly post it to the WndProc
16654             and immediately dispose the hwnd object.
16655             Same applies to DestroyChildWindows, and this obsoletes the
16656             expose_pending tracking. Contrary to Win32 behaviour we destroy our
16657             child windows before our own, to avoid X11 errors.
16658           - Removed the direct sending of WM_PAINT on UpdateWindow
16659         * XplatUIWin32.cs:
16660           - Reworked DoEvents and GetMessage to allow access to internal queue
16661             even when trying non-blocking access to the queue.  Fixes #77335. 
16662             Based on a patch suggestion by Don Edvalson. The new private
16663             GetMessage can now also be used as a backend for a PeekMessage
16664             frontend version.
16665         * XplatUI.cs: Improved debug output for CreateWindow
16666
16667 2006-01-25  Jackson Harper  <jackson@ximian.com>
16668
16669         * Help.cs: Allow param to be null. Patch by Don Edvalson.
16670
16671 2006-01-24  Jackson Harper  <jackson@ximian.com>
16672
16673         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
16674         when we have a MaxDropItems lower then the selected index.
16675
16676 2006-01-24  Jackson Harper  <jackson@ximian.com>
16677
16678         * Control.cs: Don't allow selection of non visible controls, allow
16679         selection of controls without parents.
16680
16681 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16682
16683         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
16684         * DataGridDrawingLogic.cs: Add editing row only when is necessary
16685
16686 2006-01-23  Jackson Harper  <jackson@ximian.com>
16687
16688         * UpDownBase.cs: Make the textbox handle all the selection and
16689         tabbing. This fixes tabing to updown controls.
16690
16691 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
16692
16693         * TextBoxBase.cs: fixes exception thown the object was null
16694
16695 2006-01-23  Jackson Harper  <jackson@ximian.com>
16696
16697         * ButtonBase.cs: Just use the base CreateParams. They set
16698         visibility and enabled correctly.
16699         * ComboBox.cs:
16700         * TrackBar.cs:
16701         * MonthCalendar.cs: Lets let the base set as much of the
16702         createparams as possible so we don't have duplicate code all over
16703         the place.
16704
16705 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
16706
16707         * ThemeGtk.cs: Added TrackBar and some experimental code to
16708           get double buffering back
16709
16710 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
16711
16712         * DataGrid.cs: Allows row number set internally higher than the last
16713         when creating a new row. Restores the editing functionality.
16714
16715 2006-01-20  Mike Kestner  <mkestner@novell.com>
16716
16717         * MimeIcon.cs: delay Image creation until the icons are accessed
16718         instead of creating 190 scaled images on GnomeHandler startup.
16719
16720 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
16721
16722         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
16723           first call base before processing the event. Fixes #77279
16724
16725 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
16726
16727         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
16728           that the stride for the GDI bitmap would match the stride of
16729           a DIB or a Cursor.
16730
16731 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
16732
16733         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
16734
16735 2006-01-19  Jackson Harper  <jackson@ximian.com>
16736
16737         * ComboBox.cs: Hookup the text controls keydown event so we get
16738         those when the text control has the focus.
16739
16740 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16741
16742         * Label.cs: Now using the base events instead of defining new ones;
16743           this allows us to just call the base properties without having to
16744           duplicate all base property logic 
16745
16746 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16747
16748         * Label.cs: A label by default is not a tabstop (Fixes one of our
16749           failing nunit tests)
16750
16751 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
16752
16753         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
16754         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
16755
16756 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
16757
16758         * Cursor.cs: Reimplemented creating cursor bitmaps without using
16759           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
16760           This fixes #77218
16761         * XplatUIWin32.cs: 
16762           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
16763             constructor creates images that can't be saved. Part of the fix
16764             for #76103
16765           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
16766           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
16767             bug fix for handling window state in forms properly)
16768
16769 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16770
16771         * ThemeGtk.cs: Simplify ScrollBar drawing
16772
16773 2006-01-18  Jackson Harper  <jackson@ximian.com>
16774
16775         * Splitter.cs: Set the default dock style for the splitter control
16776         in the constructor.
16777
16778 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16779
16780         * ThemeGtk.cs: Corrected StateType and ShadowType for
16781           gtk_paint_box
16782
16783 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16784
16785         * Control.cs: Make use of Theme.DoubleBufferingSupported
16786         * ThemeGtk.cs:
16787           - Added drawing for flat style buttons
16788           - Added ScrollBar drawing
16789
16790 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
16791
16792         * ThemeClearlooks.cs: Removed some unneeded code.
16793         * ThemeGtk.cs: First part of ThemeGtk enhancements.
16794
16795 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16796
16797         * LinkLabel.cs: We need to update the hover drawing when
16798           leaving the control as well.
16799
16800 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
16801
16802         * DataGrid.cs: Clicking on non empty areas in the columns
16803            area was giving an exception
16804
16805 2006-01-17  Jackson Harper  <jackson@ximian.com>
16806
16807         * ThemeWin32Classic.cs:
16808         * ListView.cs: Do not draw/clip the headers when the header style
16809         is None.
16810
16811 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16812
16813         * DataGrid.cs: Fixes 77260
16814         
16815 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
16816
16817         * DataGrid.cs: Clicking on a column on a empty grid was giving
16818           an exception
16819
16820 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
16821
16822         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
16823           or any keypress will crash the grid.
16824
16825 2006-01-17  Mike Kestner  <mkestner@novell.com>
16826
16827         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
16828         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
16829         invisible/previously-visible items.
16830         [Fixes #76909]
16831
16832 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
16833
16834         * ThemeClearlooks.cs:
16835         - Added CL_Draw_Button method; now other theme controls that are 
16836           not derived from button or do not have a button can draw buttons
16837           too
16838         - Updated ComboBox drawing
16839         - Beautified RadioButton drawing
16840         - Corrected drawing of bottom and left tabs
16841         - Beautified DateTimePicker and MonthCalendar
16842         - Added CPDrawButton and CPDrawRadioButton
16843
16844 2006-01-16  Jackson Harper  <jackson@ximian.com>
16845
16846         * ComboBox.cs: Set the initial value of the scrollbar to the
16847         current index. Reduce the numbers of refreshs and IndexOfs called.
16848
16849 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
16850
16851         * FileDialog.cs: When the file listview is focused hitting the
16852           backspace key moves the fileview to the parent directory
16853
16854 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16855
16856         * Form.cs: 
16857           - Added RecreateHandle call when changing taskbar visibility to 
16858             trigger reparenting in Win32 driver (Fixes #75719)
16859           - If a window has minimize or maximize buttons, it cannot have
16860             a help button
16861         * XplatUIWin32.cs:
16862           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
16863             the toplevel form with FosterParent (A toolwindow not on the
16864             taskbar) (Fixes #75719)
16865           - Made FosterParent a toolwindow
16866
16867 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16868
16869         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
16870
16871 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16872
16873         * ToolTip.cs: If SetToolTip is called from a control and the mouse
16874           is currently over that control, make sure that tooltip_window.Text
16875           gets updated
16876
16877 2006-01-13  Mike Kestner  <mkestner@novell.com>
16878
16879         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
16880
16881 2006-01-13  Jackson Harper  <jackson@ximian.com>
16882
16883         * TreeView.cs: On MS GetNodeAt never actually factors in the X
16884         value passed.  Also redraw the selected node when we recieve
16885         focus, so tabbing between trees works correctly.
16886
16887 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
16888
16889         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
16890           ~/.gconf/%gconf-tree.xml, so use
16891           .gconf/desktop/gnome/interface/%gconf.xml
16892
16893 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16894
16895         * TextControl.cs: Draw text in gray if control is disabled
16896
16897 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
16898
16899         * TreeView.cs: Draw the focus rectangle outside the highlight, to
16900           make sure it's always visible. Fixes #76680.
16901
16902 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
16903
16904         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
16905
16906 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
16907
16908         * PageSetupDialog.cs: Added.
16909         * PrintDialog.cs: Attributes.
16910         * PrintPreviewControl.cs: Updates.
16911         * PrintPreviewDialog.cs: Updates.
16912         
16913 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16914
16915         * Control.cs: Undid my selection check fix, since it's not needed
16916         * TextBoxBase.cs:
16917           - Now considering the presence of hscroll/vscroll when sizing
16918             vscroll/hscroll respectively. Fixed bug #77077
16919           - Added Left/Up/Down/Right to IsInputKey list to prevent
16920             ContainerControl from stealing them. This fixes what I broke
16921             with my last checkin.
16922
16923 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
16924
16925         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
16926           I finally understand how the property can be set without a setter :-)
16927
16928 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16929
16930         * Application.cs:
16931           - Switched RunLoop to use static Message.Create to create a 
16932             Message object
16933           - Added PreProcessMessage call in runloop for keyboard events; this
16934             is part of the fix for #77219, I overlooked this originally in the
16935             MSDN doc for PreProcessMessage
16936         * Control.cs:
16937           - Removed call to PreProcessMessage from handling of keyboard 
16938             messages; it's supposed to be done in the message pump
16939           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
16940             per MSDN documentation.
16941           - IsInputChar: All chars are input chars by default; removed the 
16942             parent calling chain, MS does not document that
16943           - PreProcessMessage: If IsInputChar is true, we want to return false
16944             to allow dispatching of the message
16945           - When selecting the next control, now also check that we're not
16946             selecting ourselves again and therefore return a false positive.
16947         * TextBoxBase.cs:
16948           - Tried to match return values for IsInputKey and ProcessDialogKey
16949             to what MS returns; moved processing of our special keys outside
16950             ProcessDialogKey since MS does not seem to return true on those.
16951           - Moved code that previously was in ProcessDialogKey into new private
16952             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
16953           - Reworked handling of WM_CHAR to not have to duplicate code from
16954             Control.cs anymore, instead we simply call down to base.
16955            
16956 2006-01-12  Jackson Harper  <jackson@ximian.com>
16957
16958         * ComboBox.cs: We always need to refresh the text area when
16959         EndUpdate is called. Fixes the combobox in the file dialog.
16960         * Control.cs: Don't create the creator_thread until the controls
16961         handle is created.  Also in InvokeRequired we check if the
16962         creator_thread is null. This gives the effect of InvokeRequired
16963         returning true if the controls handle is not created yet, and
16964         matches MS.
16965
16966 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
16967
16968         * XplatUI.cs:
16969           - Added StartLoop() driver method. This is used to allow drivers to
16970             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
16971             loop for a particular thread
16972           - Added EndLoop() driver method. This is called once the message
16973             pump for the thread is shut down
16974           - Added SupportsTransparency method to allow the driver to indicate
16975             opacity support for windows
16976         * Form.cs:
16977           - Removed TODO attribute, completed AllowTransparency property
16978           - Added documented logic to Opacity
16979         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
16980           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
16981           versions of CompatibleTextRendering
16982         * X11Structs.cs: Added opacity atom to our atom enumeration
16983         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
16984           of a form might be set before it's reparented by the WM, and we need
16985           the opacity value without calling up to Form)
16986         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
16987           SupportsTransparency() driver methods
16988         * Application.cs: Now calling StartLoop and EndLoop driver methods
16989         * XplatUIX11.cs:
16990           - Added opacity atom registration
16991           - Added StartLoop()/EndLoop() methods. They're empty right now but
16992             will need to get implemented when we switch to a per-thread queue
16993           - Implemented SupportsTransparency() method
16994           - Implemented SetWindowTransparency() method
16995           - Added support for setting the opacity value when a window is
16996             reparented (since the opacity needs to be set on the WM frame)
16997         * XplatUIOSX.cs, XplatUIWin32.cs:
16998           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
16999
17000 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
17001
17002         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
17003
17004 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
17005
17006         * FileDialog.cs: Added ToolTip for MWFFileView
17007         * MimeIcon.cs: Rewrote GnomeHandler.
17008           - Get currently used gnome icon theme from
17009             ($HOME)/.gconf/%gconf-tree.xml
17010           - Make use of inherited icon themes
17011           - Support SVG icon themes like Tango via librsvg
17012
17013 2006-01-12  Miguel de Icaza  <miguel@novell.com>
17014
17015         Revert's Jackson's revert which broke 2.0 builds.   Fix both
17016         builds. 
17017         
17018         * Application.cs: Move the use_compatible_text_rendering outside
17019         the NET_2_0 define.  If we ever need to use the
17020         use_compatible_text_rendering on the individual controls they will
17021         access the variable from the common shared code paths.
17022
17023 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
17024
17025         * XplatUI.cs:
17026           - Added more granular debug options
17027           - Added method to print both window text and id
17028           - Switched debug output to use new Window() debug method
17029           - Added IsEnabled() driver method
17030           - Added EnableWindow() driver method
17031         * Form.cs:
17032           - Removed end_modal; no longer needed, new loop handles termination
17033             via 'closing' variable
17034           - If form is modal, setting DialogResult will now initiate loop
17035             termination via 'closing' variable
17036           - Added support for is_enabled/WS_DISABLED to CreateParams
17037           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
17038             does all the work
17039           - Removed code that's now in RunLoop from ShowDialog()
17040           - Added various documented sanity checks to ShowDialog()
17041           - Added handling of WM_DESTROY message; we set 'closing' on getting
17042             the message to indicate the message pump to terminate
17043           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
17044             send by the Application.ExitThread method. (We send the message
17045             to destroy the window after all other events have been
17046             processed through the queue, instead of destroying the handle 
17047             directly)
17048           - Moved code from Close() method to WM_CLOSE handler; added logic
17049             to only send close-related events if the form is not displayed
17050             modal
17051         * Splitter.cs (..ctor): Fixed typo in resource name
17052         * Control.cs:
17053           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
17054             brush now
17055           - set_Cursor: Now only setting calling into XplatUI if the handle for
17056             the control is already created; this avoids implict handle creation
17057             or crashes if it's not created
17058           - set_Enabled: Now setting the enabled state via the new driver method
17059             instead of just tracking it
17060           - CreateParams: Added logic to set WS_DISABLED based on enabled state
17061           - CreateControl: Reordered event firing and method calls to more
17062             closely fire events in the order MS does. Now setting the
17063             enabled state in the driver when creating the control.
17064           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
17065             match MS order
17066         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
17067           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
17068         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
17069         * Hwnd.cs:
17070           - Added tracking of window enabled state (get_Enabled/set_Enabled)
17071           - Added EnabledHwnd property to easily allow a driver to find the
17072             handle of the first enabled window in the parent chain (this is
17073             used by drivers to pass up input events of disabled windows)
17074         * XplatUIDriver.cs: Added IsEnabled() method
17075         * Application.cs:
17076           - Removed crude and obsolete exiting tracking variable
17077           - Removed internal ModalRun(); replaced by RunLoop()
17078           - Implemented private CloseForms() method to allow closing all 
17079             windows owned by a particular (or all) threads
17080           - Exit() now properly closes all windows without forcing the message
17081             pump to quit
17082           - Removed obsolete InternalExit() method
17083           - Changed Run() methods to use new RunLoop() message pump
17084           - Implemented new RunLoop() method for both modal and non-modal forms
17085         * CommonDialog.cs:
17086           - get_CreateParams: Added setting of WS_DISABLED
17087           - Simplified ShowDialog(); now all the work is done in RunLoop(),
17088             invoked via Form.ShowDialog()
17089         * NativeWindow.cs: We don't remove the window from the collection when
17090           the handle is destroyed; there might still be messages for it in the
17091           queue (mainly the resulting WM_DESTROY); instead it will be removed
17092           when Control calls InvalidateHandle in the WM_DESTROY handler
17093         * XplatUIX11.cs:
17094           - CreateWindow: Added logic to handle the WS_DISABLED window style
17095           - EnableWindow: Implemented based on Hwnd.Enabled
17096           - GetMessage: Reset PostQuitState so the method can be called again
17097           - Implemented support for disabled windows (passing messages to the
17098             first enabled parent) in handling all input messages
17099           - Added optimizations for handling Expose events
17100           - Implemeted new driver method IsEnabled()
17101           - Now always resetting paint pending tracking vars when we start paint
17102           - Re-implemented UpdateWindow via just sending a WM_PAINT message
17103         * XplatUIOSX.cs: Added IsEnabled method stub
17104         * XplatUIWin32.cs: Implemented new IsEnabled() method
17105
17106 2006-01-11  Jackson Harper  <jackson@ximian.com>
17107
17108         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17109         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
17110         variables a little.
17111         * ColorDialog.cs: Clear out the old form before adding the new
17112         panel.  
17113
17114 2006-01-11  Jackson Harper  <jackson@ximian.com>
17115
17116         * X11Dnd.cs: Make sure to add all the text formats when adding
17117         strings to the data object.
17118         * TreeNodeCollection.cs: When adding to a sorted tree we need to
17119         do some redrawing too.  Also change the UpdateNode to an
17120         UpdateBelow so the newly added node gets painted.
17121         
17122 2006-01-11  Miguel de Icaza  <miguel@novell.com>
17123
17124         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
17125         LinkLabel.cs, PropertyGrid.cs: Implement the
17126         UseCompatibleTextRendering property for 2.x
17127
17128         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
17129
17130 2006-01-11  Jackson Harper  <jackson@ximian.com>
17131
17132         * TreeView.cs: Use the property for setting the selected node so
17133         the correct events get raised.
17134         * TreeNode.cs: Update the tree when the fore/back colours of a
17135         node are set.
17136
17137 2006-01-10  Jackson Harper  <jackson@ximian.com>
17138
17139         * TreeView.cs: Allow setting SelectedNode to null.
17140
17141 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17142
17143         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
17144
17145 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17146
17147         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
17148
17149 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17150
17151         * PrintDialog.cs: Added attributes and set default property values.
17152
17153 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17154
17155         * PrintControllerWithStatusDialog.cs: 
17156         Added PrintControllerWithStatusDialog.
17157
17158 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17159
17160         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
17161         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
17162
17163 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
17164
17165         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
17166
17167 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
17168
17169         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
17170         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
17171
17172 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17173
17174         * MimeIcon.cs: Added internal class SVGUtil.
17175
17176 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
17177
17178         * FileDialog.cs: Don't crash if there are two files with the
17179           same name but different locations.
17180
17181 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
17182
17183         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
17184         dates across multiple month grids. Used to not highlight entire 
17185         month, but does now.
17186         
17187 2006-01-06  Jackson Harper  <jackson@ximian.com>
17188
17189         * MonthCalendar.cs: Removed DoEvents call to prevent a running
17190         message loop. Change timer intervals to numbers that seem more
17191         natural.
17192
17193 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
17194
17195         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
17196           object for location info since screen object is now implemented.
17197
17198 2006-01-05  Jackson Harper  <jackson@ximian.com>
17199
17200         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
17201         * AsyncMethodResult.cs: We no longer use a WeakReference for the
17202         AsyncMethodResult, this is because we ALWAYS want the
17203         ManualResetEvent to get set.
17204         * Control.cs: When disposing use an async invoke to call shutdown
17205         code, so that thigns don't block on the finalizer thread.  Also
17206         check if we even have a message loop before trying to send
17207         messages, if we don't then don't bother sending messages.
17208         - No more weak references for async methods
17209         * XplatUIDriver.cs: No more weak references for async methods.
17210
17211 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17212
17213         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
17214           returns two FontFamily with the same name
17215
17216 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17217
17218         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
17219           drawing disabled text. Instead using the ColorGrayText color
17220
17221 2006-01-04  Jackson Harper  <jackson@ximian.com>
17222
17223         * TreeNode.cs: redraw the node when its image index is changed.
17224
17225 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
17226
17227         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
17228           time I checked there are no others like it.
17229
17230 2006-01-04  Jackson Harper  <jackson@ximian.com>
17231
17232         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
17233         this gives the behavoir I was looking for.
17234         * Control.cs: Special case Invoking EventHandlers, this matches MS
17235         and fixes part of bug #76326.
17236
17237 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17238
17239         * ThemeClearlooks.cs, FileDialog.cs:
17240           - Reflect the latest Theme class changes
17241           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
17242             with DateTime
17243             
17244 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
17245
17246         * Theme.cs: Cache UI resource images and resize them if needed
17247
17248 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17249
17250         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
17251           is called. This fixes the crash in Nexxia when setting the font
17252           attributes in the chat. [However, RTF needs a look-over to make sure
17253           that all SelectionXXX methods handle the special case that selection
17254           is empty and therefore the change must be applied to all text starting
17255           at the cursor/selection start]
17256
17257 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
17258
17259         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17260           XplatUIOSX.cs: Added SendMessage and PostMessage methods
17261         * X11Keyboard.cs: Switched to new way of calling PostMessage
17262
17263 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
17264
17265         * Theme.cs: Added theme interface for images to allow the theme to
17266           control what images are used for things like FileDialog, MessageBox
17267           icons, etc.
17268         * MessageBox.cs: Now uses the new Theme icon/image interfaces
17269
17270 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
17271
17272         * FileDialog.cs:
17273           - Removed some dead code
17274           - Opening a recently used file does work now
17275           - Small UI enhancements
17276           - Refactoring
17277
17278 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17279
17280         * FileDialog.cs: Forgot too add __MonoCS__
17281
17282 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
17283
17284         * FileDialog.cs: We are able to read recently used files now let's
17285           go on and write them.
17286
17287 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
17288
17289         * FileDialog.cs: Breathe some life into "last open"/"recently used"
17290           button
17291         * MimeIcon.cs: Do a check for the top level media type also
17292
17293 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17294
17295         * ThemeClearlooks.cs:
17296           - Added CPDrawStringDisabled
17297           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
17298             some chars if the text doesn't fit into text_rect
17299           - DrawListViewItem: If View = View.LargeIcon center the image;
17300             rewrote the drawing of ListViewItem.Text if View = 
17301             View.LargeIcon
17302
17303 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
17304
17305         * MimeIcon.cs: Use default KDE icon theme if there is no
17306           "48x48" directory for the current icon theme, fixes #77114
17307         * Mime.cs: Disable not working and actually not used code. 
17308         * ThemeWin32Classic.cs:
17309           - Replace "new SolidBrush" in GetControlBackBrush and
17310             GetControlForeBrush with ResPool.GetSolidBrush
17311           - Changed DrawListViewItem from private to protected virtual
17312         * FileDialog.cs:
17313           - Added form.MaximizeBox = true
17314           - Don't throw an exception if there is a broken symbolic link
17315
17316 2005-12-23  Jackson Harper  <jackson@ximian.com>
17317
17318         * TabControl.cs: Give the panels focus, keyboard navigation is
17319         fixed so this works correctly now.
17320         - We need these key events also.
17321         * ToolBar.cs: Remove some of the poor mans double buffering.
17322         
17323 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
17324
17325         * ComboBox.cs: The internal TextBox now returns the focus.
17326
17327 2005-12-23  Jackson Harper  <jackson@ximian.com>
17328
17329         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
17330
17331 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17332
17333         * Control.cs: Removed debug code
17334         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
17335           implicit children
17336
17337 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
17338
17339         * Control.cs: When creating the control, update the Z-order after
17340           all it's children are created, too. (Fixes nexxia not showing
17341           picturebox bug)
17342
17343 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
17344
17345         * Control.cs: Do not update the anchoring distances if layout is
17346           suspended, instead do it once layout is resumed
17347
17348 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
17349
17350         * Control.cs: 
17351           - After many hours of debugging, for both Jackson and
17352             myself, it turns out that it helps to set the parent of a control
17353             if you want to actually see it onscreen. In the spirit of that
17354             discovery, we're now setting the parent of the control and
17355             it's children when the control's handle is created. This fix
17356             will make Lutz Roeder's Reflector run happily. 
17357           - now just creating the handle instead of the whole control when
17358             getting a graphics context for the control.
17359
17360 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17361
17362         * ScrollableControl.cs: When calculating the canvas, don't consider
17363           the scrollbar widths. Instead, predict if horizontal scrollbar
17364           will affect canvas when deciding on vertical display and vice versa.
17365
17366 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
17367
17368         * RichTextBox.cs: Set default RTF font for documents that don't
17369           have a font table (Fixes #77076)
17370
17371 2005-12-22  Jackson Harper  <jackson@ximian.com>
17372
17373         * TextBoxBase.cs: It's difficult to do, but you can have an empty
17374         clipboard. This prevents a NullRef in that case.
17375         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
17376         clipboard. PRIMARY is for the currently selected text only. (We
17377         should implement PRIMARY at some point.
17378
17379 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17380
17381         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
17382           a Unicode function with a structure that was defined in Ansi way.
17383           This fixes #76942.
17384
17385 2005-12-21  Jackson Harper  <jackson@ximian.com>
17386
17387         * StatusBar.cs: Statusbar handles its fore/back colours on it's
17388         on. Because thats how it rolls. (and this avoids it using ambient
17389         colours).
17390         * ThemeWin32Classic.cs: Use the proper back color for filling.
17391         * Menu.cs: Use the system menu bar color for drawing menu
17392         bars. Using the window back color will bring ambient colours into
17393         the picture.
17394
17395 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
17396
17397         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
17398           Bitmaps were created and not disposed.
17399
17400 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17401
17402         * Control.cs (CreateControl): Don't do anything if the control is
17403           already created, otherwise we'd fire the OnCreated event more than
17404           once
17405
17406 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17407
17408         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
17409           will always match. Instead return -1. Fixes #76464.
17410
17411 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
17412
17413         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
17414           neither the beginning nor the end of the line (Fixes bug #76479)
17415
17416 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
17417
17418         * Control.cs:
17419           - ControlNativeWindow.ControlFromHandle(): Now handling situation
17420             where handle is invalid
17421           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
17422             instead of slower linear search
17423         * NativeWindow.cs: Don't remove the window from the hashtable until
17424           after the driver has destroyed it (since the driver might use
17425           Control.FromHandle to lookup the control object
17426         * Hwnd.cs: Added DestroyPending property to track if a window is 
17427           already destroyed as far as the driver is concerned and only hasn't
17428           yet notified the control
17429         * XplatUIX11.cs:
17430           - Activate(): Check if the window is still valid before using the 
17431             handle
17432           - Implemented DestroyChildWindow() method to mark child windows as
17433             destroyed when a window is destroyed. This prevents situations 
17434             where we might call an X method based on queued events for a
17435             window that already has been destroyed but we haven't yet pulled
17436             the destroy method from the queue.
17437           - Added a call to the new DestroyChildWindow() method to the drivers
17438             DestroyWindow code. Also now marking the destroyed window itself
17439             as pending
17440
17441 2005-12-20  Jackson Harper  <jackson@ximian.com>
17442
17443         * StatusBar.cs:
17444         * StatusBarPanel.cs: Don't calculate panel sizes on draw
17445         anymore. Just do them when needed, also track the rects of panels
17446         so that we can optimize refreshing more in the future.
17447
17448 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
17449
17450         * ColorDialog.cs: Fixed focus drawing in small color controls
17451
17452 2005-12-19  Jackson Harper  <jackson@ximian.com>
17453
17454         * InternalWindowManager.cs:
17455         * MdiWindowManager.cs: Cleanup some coordinate system changes so
17456         moving windows works properly.
17457
17458 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
17459
17460         * Control.cs: 
17461           - Removed call to InitLayout() from SetBoundsCore(); doc says
17462             it's only called when a control is added to a container
17463           - Split InitLayout logic, moved to separate UpdateDistances() method
17464             since we need to perform those calculations more often than just
17465             when adding the control to a container. (Needed to fix #77022)
17466           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
17467           - Reduced the OnBindingContextChanged events count, don't send them
17468             unless the control is created, we still aren't totally matching
17469             MS, but I can't quite figure out some of their rules
17470
17471 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17472
17473         * ThemeClearlooks.cs: Corrected distance between ProgressBar
17474           stripes
17475
17476 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17477
17478         * ThemeClearlooks.cs:
17479           - Updated ProgressBar drawing
17480           - Corrected drawing of ScrollBars and scroll buttons
17481           - Some temporary fixes for minor pixel artefacts
17482
17483 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
17484
17485         * Control.cs:
17486           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
17487             cause events to be sent in the same order as MS does.
17488           - Added ChangeParent() method to trigger various OnXXXChanged events
17489             that need to be fired when a parent changes (This is a reworking
17490             of the patch from r54254, with the X11 errors fixed)
17491           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
17492             since on MS we get OnLayoutChanged events when calling Clear()
17493           - Changed Enabled property to consider parent state as well, if a
17494             parent is not enabled, the control will not be either
17495           - Changed Parent property to simply call Controls.Add() since that
17496             now does all the work required, this way we avoid code duplication
17497           - Threw in a few OnBindingsContextChanged calls to try and match
17498             when MS sends them. We seem to send a few too many, though.
17499           - Added call to CreateControl when adding the control to a parent.
17500             We were never calling CreateControl. Still needs some work, in
17501             some places we treat HandleCreated and ControlCreated as equal, 
17502             which is wrong
17503           - Removed obsolete commented out code from UpdateZOrder()
17504
17505 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
17506
17507         * ThemeClearlooks.cs: Updated TrackBar drawing.
17508
17509 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17510
17511         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
17512
17513 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
17514
17515         * FileDialog.cs: Add the Help button and the open readonly
17516           checkbox only if needed
17517
17518 2005-12-16  Jackson Harper  <jackson@ximian.com>
17519
17520         * Control.cs: Make sure we have an active menu before trying to
17521         process commands on it. Prevents menu-less forms from crashing
17522         when Alt is pressed.
17523         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
17524         Dieter Bremes.
17525         * RichTextBox.cs: Expand statement to help out gmcs and fix the
17526         2.0 build.
17527
17528 2005-12-16  Jackson Harper  <jackson@ximian.com>
17529
17530         * InternalWindowManager.cs: Don't translate tool windows screen
17531         coordinates. This fixes windows 'bouncing' around when being moved.
17532
17533 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17534
17535         * TextBoxBase.cs:
17536           - MaxLength now treats 2^31-1 equal to unlimited length (this is
17537             not quite MS compatible, MS uses that number only for single line
17538             and 2^32-1 for multi-line, but I figure it won't hurt keeping
17539             the limit at 2GB)
17540           - Now enforcing the MaxLength limit when entering characters
17541           - Added argument to internal Paste() method to track if it's called
17542             from programatically or via keyboard, since keyboard driven pastes
17543             need to enforce max-length
17544           - Added logic to Paste to only paste as many chars as MaxLength 
17545             allows
17546         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
17547         * TextControl.cs:
17548           - Added Length property to return number of characters in document
17549           - Added private CharCount property which only tracks actual chars
17550             in the document (no linefeeds) and fires event when CharCount
17551             changes
17552           - Added tracking of character count to all methods that alter it
17553           - Added LengthChanged event to allow applications to subscribe
17554             to any changes to the document
17555
17556 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
17557
17558         * TextBox.cs: 
17559           - Removed local password_char field (moved to TextBoxBase)
17560           - Now setting the document's password var when password is
17561             set
17562         * TextBoxBase.cs:
17563           - Added password_char field (needed here so MultiLine can
17564             access it)
17565           - Added logic to MultiLine property setter to set the document's
17566             variable when password display is allowed
17567           - Removed debug code and made some debug code conditional
17568         * TextControl.cs:
17569           - Added RecalculatePasswordLine() method to handle special password
17570             char only lines
17571           - Added PasswordChar property, also added related tracking vars
17572           - Draw() method now uses local text var for grabbing text to draw,
17573             this var is set to line.text unless we're doing password display,
17574             then it is set to the pre-generated all-password-chars line
17575           - Added calling RecalculatePasswordLine() method for password lines
17576
17577 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17578
17579         * Hwnd.cs: 
17580           - Added Reparented property to allow tracking of Window Manager
17581             reparenting actions (which affect X/Y calculations of toplevel 
17582             windows)
17583           - Made ToString() print window handles in hex
17584         * XplatUIX11.cs:
17585           - AddConfigureNotify(): Now uses reparented state off Hwnd to
17586             determine if X/Y needs offsetting
17587           - AddConfigureNotify(): Fixed offset calculations
17588           - Now adds ReparentNotify messages into the queue
17589           - Now processes ReparentNotify messages and causes a 
17590             WM_WINDOWPOSCHANGED message to be sent upstream if a window
17591             is reparented (as most likely it's X/Y coordinates are changed
17592             due to that)
17593
17594 2005-12-14  Jackson Harper  <jackson@ximian.com>
17595
17596         * XplatUIX11.cs: Tool windows still need to respek focus.
17597
17598 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
17599
17600         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
17601           have a working release
17602
17603 2005-12-13  Jackson Harper  <jackson@ximian.com>
17604
17605         * Form.cs: Update styles after setting the border style regardless
17606         of whether or not the window is using a window manager.
17607
17608 2005-12-13  Jackson Harper  <jackson@ximian.com>
17609
17610         * Form.cs: We now hook into an internal window manager instead of just an
17611         MDI subsystem, this is so we can have properly behaving tool windows.
17612         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
17613         * InternalWindowManager.cs: New internal class that acts as a
17614         window manager for tool windows and as a base for mdi windows.
17615         * MdiWindowManager.cs: New class that acts as a window manager for
17616         mdi windows.
17617
17618 2005-12-12  Jackson Harper  <jackson@ximian.com>
17619
17620         * Control.cs: Updates so we match behavoir for for implicit
17621         controls. Fixes explosions in MDI.
17622
17623 2005-12-12  Jackson Harper  <jackson@ximian.com>
17624
17625         * Control.cs: Implement Invalidate (Region).
17626
17627 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
17628
17629         * Control.cs: 
17630           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
17631             the same events as MS does. MS fires events for each property 
17632             except, for unknown reasons, Cursor, when the control is reparented. 
17633             I can't seem to totally match add/remove since MS also fires some 
17634             VisibleChanged events, which makes no sense. Consolidated the
17635             parenting code into a separate method so it can be called from
17636             both Add and Remove. set_Parent no longer needs any special logic
17637             as it calls the parent's add method which implicitly fires
17638             all events
17639           - Removed some obsolete code and debug output
17640           - Enabled state is inherited from parents, if this is enabled
17641
17642 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
17643
17644         * Form.cs: Removed commented out code
17645
17646 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
17647
17648         * Control.cs:
17649           - Added internal version of Invoke, with additional argument 
17650             indicating if we're calling it from a Dispose() handler. That
17651             way we can avoid BeginInvoke throwing an exception if we're
17652             calling for an already destroyed window.
17653           - Added a dispose argument to BeginInvokeInternal, and made the
17654             check if a valid window handle chain exists conditional on
17655             it not being a dispose call
17656           - Removed code in DestroyHandle to destroy our children. Since we
17657             now handle the WM_DESTROY message we will catch all our children
17658             being destroyed.
17659           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
17660         * Form.cs:
17661           - Added a field to track the application context of the form.
17662           - No need to set closing variable as response to WM_CLOSE, instead
17663             we destroy the window. We also call PostQuitMessage if the form
17664             has an application context (which makes it the main app form,
17665             which, when closed terminates the app)
17666         * XplatUI.cs:
17667           - Dropped Exit() method, it's naming was confusing
17668           - Added PostQuitMessage() which causes GetMessage to return false
17669             once the message queue is empty
17670         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
17671           PostQuitMessage()
17672         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
17673           no longer a valid XplatUI method, but left it in since it's used
17674           internally. Added empty PostQuitMessage() method.
17675         * MenuAPI.cs: Replaced call to Exit() with call to
17676           PostQuitMessage, even though this is probably no longer needed.
17677         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
17678         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
17679         * Application.cs:
17680           - Replaced call to XplatUI.Exit() with PostQuitMessage()
17681           - Removed old debug code that would call XplatUI for exception
17682             display, enabled standard exception handling (Still not enabled
17683             though, until NativeWindow's ExternalExceptionHandler define
17684             is removed
17685         * NativeWindow.cs:
17686           - Added internal method to allow control to update NativeWindow
17687             after a window has been destroyed
17688           - Added handling of already destroyed windows when calling i
17689             DestroyWindow
17690           - Added removal of handle from list on ReleaseHandle
17691         * XplatUIX11.cs:
17692           - Dropped GetMessageResult var and related code
17693           - Added PostQuitState to field to track if PostQuitMessage has been
17694             called
17695           - Dropped Exit() method
17696           - Added PostQuitMessage() method
17697           - GetMessage now will return false if PostQuitState is set and no
17698             more messages are in the queue.
17699           - Expose handler will no longer generate WM_PAINT messages if we are
17700             in PostQuitState since it's very likely any windows have already
17701             been destroyed, and since Hwnd won't get updated until we have
17702             processed the DestroyNotify we'd be causing X errors.
17703         
17704 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17705
17706         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
17707           Thanks to Mike for pointing out the err of my ways.
17708
17709 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17710
17711         * Control.cs(PreProcessMessage): Moved menu handling back, but
17712           after all other key handling, to match MS (who handles Menu in
17713           DefWndProc)
17714         * Menu.cs (WndProc): Removed my brainfart
17715
17716 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17717
17718         * Control.cs(PreProcessMessage): Removed special menu handling 
17719         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
17720
17721 2005-12-07  Mike Kestner  <mkestner@novell.com>
17722
17723         * Control.cs : special case SYSKEYUP so that we can adjust keynav
17724         state according in tracker.
17725         * Menu.cs : promote tracker field to base class and provide a tracker
17726         lookup capability.  Add/Remove shortcuts dynamically if the top menu
17727         has a tracker. Unparent items that are removed from the collection.
17728         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
17729         * Theme*.cs: add always_show_hotkeys field to support configurability
17730         of mnemonic display.  win32 doesn't show mnemonics until Alt is
17731         pressed.
17732
17733 2005-12-07  Jackson Harper  <jackson@ximian.com>
17734
17735         * MdiChildContext.cs: Use Control.ResetCursor.
17736         * Control.cs: ResetCursor needs to set the property so that the
17737         correct XplatUI call gets made.
17738
17739 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17740
17741         * Control.cs: More fixes to make our key events match MS. We
17742           were not setting the modifier state on KeyData, and we were
17743           not generating any events when Alt was pressed with a key
17744           since handling of WM_SYSxxx was missing for the OnKey methods.
17745
17746 2005-12-07  Jackson Harper  <jackson@ximian.com>
17747
17748         * MdiChildContext.cs: reenable the sizing code.
17749         - When the mouse leaves a window reset its cursor.
17750
17751 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17752
17753         * ThemeClearlooks.cs: Reflect latest Hwnd changes
17754
17755 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
17756
17757         * Hwnd.cs: Now using the theme 3d bordersize to calculate
17758           widths of Fixed3D borders
17759
17760 2005-12-07  Jackson Harper  <jackson@ximian.com>
17761
17762         * MdiClient.cs: Fix warnings. Earn Mike's love.
17763
17764 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
17765
17766         * ThemeClearlooks.cs:
17767           - Adjusted mouse over button color
17768           - Added first parts of CheckBox drawing
17769           - Added correct color for selected text background
17770           - Fixed ComboBox drawing
17771           - Added CPDrawBorder3D and CPDrawBorder
17772
17773 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17774
17775         * XplatUIX11.cs: Added call to XBell for AudibleAlert
17776
17777 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
17778
17779         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
17780           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
17781           alert users via sound. We could add an enum arg with different
17782           types of alerts in the future
17783
17784 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
17785
17786         * Control.cs: Fix behaviour problems pointed out by Mike
17787
17788 2005-12-05  Mike Kestner  <mkestner@novell.com>
17789
17790         * StatusBarPanel.cs: add Invalidate method and hook it into all the
17791         prop setters.  Calls parent.Refresh for now, but could be maybe be
17792         optimized with an internal method on StatusBar at some point.
17793         [Fixes #76513]
17794
17795 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
17796
17797         * RichTextBox.cs: Implemented get_SelectionColor
17798
17799 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
17800
17801         * ThemeClearlooks.cs:
17802           - Removed dead code
17803           - Draw black button border only if button is Form.AcceptButton
17804           - Draw correct button color for pressed RadioButton if the mouse 
17805             has entered the button
17806           - Updated ProgressBar drawing!
17807           - Updated CPDrawSizeGrip drawing
17808           - Updated StatusBarPanel drawing
17809
17810 2005-12-05  Mike Kestner  <mkestner@novell.com>
17811
17812         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
17813         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
17814
17815 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
17816
17817         * ThemeClearlooks.cs: Initial check-in, activate with
17818           export MONO_THEME=clearlooks
17819         * ThemeEngine.cs: Added ThemeClearlooks
17820
17821 2005-12-03  Mike Kestner  <mkestner@novell.com>
17822
17823         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
17824         [Fixes #76897]
17825
17826 2005-12-02  Jackson Harper  <jackson@ximian.com>
17827
17828         * Form.cs: If the child form has no menu the default main menu is
17829         used as the active menu.
17830
17831 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
17832
17833         * ListBox.cs: Check if any items exist before trying to resolve 
17834           coordinates into items
17835
17836 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17837
17838         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
17839           as the second color for the background hatch
17840
17841 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
17842
17843         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
17844         * RichTextBox.cs: FormatText position arguments are 1-based, now making
17845           sure that what we pass to FormatText is always 1-based. Fixes #76885
17846
17847 2005-11-29  Miguel de Icaza  <miguel@novell.com>
17848
17849         * NumericUpDown.cs (EndInit): When we are done initializing,
17850         reflect any updates on the UI.
17851
17852 2005-12-02  Jackson Harper  <jackson@ximian.com>
17853
17854         * ImplicitHScrollBar.cs:
17855         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
17856         their container controls.
17857         * TreeView.cs: Use the new implicit scrollbars.
17858
17859 2005-12-02  Jackson Harper  <jackson@ximian.com>
17860
17861         * TreeView.cs: Make top_node internal so the TreeNodeCollections
17862         can play with it.
17863         * TreeNodeCollection.cs: If we remove the topnode we need to
17864         update topnode to the next node in line.
17865         - When clearing nodes go through the same process as removing
17866         them, so they get depareneted and checked if they are top node.
17867
17868 2005-12-01  Jackson Harper  <jackson@ximian.com>
17869
17870         * TreeView.cs: When imagelists are used the image area is
17871         selectable as well as the text.
17872         - If there are no selected nodes select the first one.
17873         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
17874         so don't do it more then we need to.
17875
17876 2005-12-01  Jackson Harper  <jackson@ximian.com>
17877
17878         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
17879         that arrows can be scaled.
17880
17881 2005-12-01  Jackson Harper  <jackson@ximian.com>
17882
17883         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
17884         fail. Patch by Dieter Bremes
17885
17886 2005-11-30  Jackson Harper  <jackson@ximian.com>
17887
17888         * Form.cs: Property is 2.0 only
17889         * PrintDialog.cs: Signature fix.
17890
17891 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17892
17893         * TextControl.cs: 
17894           - No longer artificially moves text 2 pixels down (now that we have
17895             borders this is no longer needed)
17896           - Added calcs for left, hanging and right indent
17897
17898 2005-11-23  Mike Kestner  <mkestner@novell.com>
17899
17900         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
17901
17902 2005-11-30  Jackson Harper  <jackson@ximian.com>
17903
17904         * MdiChildContext.cs: Set the cloned menus forms, as these don't
17905         get cloned as part of CloneMenu ().
17906         * Menu.cs: Make sure the parent of the items get set correctly
17907         when they are added.  And the owners are notified of the changes.
17908         * Form.cs: Create an ActiveMenu property, so that when MDI is used
17909         we can change the menu being displayed/handled by the form without
17910         changing the menu assosciated with the form.
17911         - Don't let Mdi children draw/handle menus.
17912         
17913 2005-11-30  Jackson Harper  <jackson@ximian.com>
17914
17915         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
17916         a MenuChanged event. Just to make the API a little more
17917         consistent.
17918         * MainMenu.cs:
17919         * MenuItem.cs: Use the new OnMenuChanged
17920         * MdiChildContext.cs: Handle menu merging.
17921         * Form.cs: Implement MergedMenu.
17922         
17923 2005-11-30  Jackson Harper  <jackson@ximian.com>
17924
17925         * Menu.cs: We were misusing Add. Add goes behind the specified
17926         index according to the docs, and does not replace the specified
17927         index. So I added an Insert method.
17928
17929 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
17930
17931         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
17932           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
17933           is for Jackson
17934         * RichTextBox.cs: Added calls to base for DnD events
17935
17936 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
17937
17938         * TextControl.cs:
17939           - Fixed drag-selection related crash; style fixes
17940           - Implemented undo class
17941             o Implemented method to capture document state for specified
17942               range in document tree
17943             o Implemented method to restore captured document state
17944             o Implemented cursor tracking
17945             o Implemented basic undo stack
17946           - Added undo cursor tracking to methods altering cursor location
17947           - Added undo tracking to selection deletion (still missing
17948             other text-altering hookups)
17949         * RichTextBox.cs:
17950           - Added SelectionLength property
17951           - Implemented CanPaste()
17952           - Implemented Paste()
17953           - Added missing protected methods
17954           - Fixed RTF->Document conversion; now uses font index 0 and color 
17955             index 0 as the default font for the parsed text
17956           - Fixed RTF<->Document font size translation
17957           - Fixed RTF generation, now properly handles cross-tag boundaries
17958             for single line selection
17959           - No longer always appends blank line to generated RTF
17960           - Removed TODOs
17961           - Added missing attributes
17962           - Hooked up undo-related methods
17963         * TextBoxBase.cs:
17964           - Implemented Copy()
17965           - Implemented Paste()
17966           - Implemented Cut()
17967           - Fixed caret mis-behaviour on backspace across line-boundaries
17968
17969 2005-11-29  Jackson Harper  <jackson@ximian.com>
17970
17971         * MdiClient.cs: Add a method for activating mdi children. Very
17972         basic right now. I imagine someday it might need more girth.
17973         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
17974         children windows names are added to the menu item.
17975         * ThemeWin32Classic.cs: Draw the arrow if the item is an
17976         mdilist. This happens regardless of whether or not there are any
17977         mdi windows to see in the list, and according to my tests happens
17978         before the items are even added. Also happens if there isn't even
17979         an mdi client to get windows from.
17980
17981 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
17982
17983         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
17984         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
17985
17986 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
17987
17988         * DataGridTableStyle.cs:
17989           - Create always the styles for the missing columns even if they are
17990             provided by the user (not default table style)
17991         * DataGrid.cs:
17992           - Fixes bug 76770
17993           - Fixes SetDataBinding (always re-attach source)
17994           - Fixes SetNewDataSource (only clear styles if they are not for 
17995             this source)
17996          -  Expands OnTableStylesCollectionChanged to handle style refresh 
17997             and remove properly
17998
17999 2005-11-29  Jackson Harper  <jackson@ximian.com>
18000
18001         * FileDialog.cs: Implement missing bits, remove some dead
18002         code.
18003         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
18004         creation of the panel so that the options set on the dialog are
18005         seen when the panel is created.
18006         * TreeView.cs: raise a click when items are clicked.
18007         
18008 2005-11-29  Jackson Harper  <jackson@ximian.com>
18009
18010         * MdiClient.cs: Pass some signature methods through to base.
18011
18012 2005-11-28  Jackson Harper  <jackson@ximian.com>
18013
18014         * ListView.cs: Raise the click event when items are clicked.
18015
18016 2005-11-28  Jackson Harper  <jackson@ximian.com>
18017
18018         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
18019         a nullref.
18020
18021 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
18022
18023         * ThemeNice.cs: - Removed 1 pixel bitmaps
18024           - Use SmoothingMode.AntiAlias where it makes sense
18025             (ScrollButton arrow for example)
18026           - Enhanced Button focus drawing
18027           - Fixed ComboBox drawing (no artefacts anymore, focus
18028             rectangle is back again, reduced size of ComboButton, etc.)
18029           - Fixed RadioButton focus drawing for Appearence.Button
18030           - Slight ScrollButton redesign
18031           - Some LinearGradientBrush size fixes
18032           - GroupBoxes have now rounded edges
18033           - Fixed StatusBar drawing
18034
18035 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
18036
18037         * ThemeNice.cs: - Remove dead code
18038           - use correct background colors for menus, etc.
18039           - Fake pixel drawing with 1 pixel bitmaps
18040
18041 2005-11-24  Jackson Harper  <jackson@ximian.com>
18042
18043         * MdiClient.cs: Size the scrollbars when resizing the window.
18044         - Resize the maximized windows when the client is resized
18045         * Form.cs: Make the child context available
18046         
18047 2005-11-23  Jackson Harper  <jackson@ximian.com>
18048
18049         * MdiChildContext.cs: Don't size windows if they are maximized.
18050
18051 2005-11-23  Mike Kestner  <mkestner@novell.com>
18052
18053         * ContextMenu.cs: use MenuTracker.
18054         * Control.cs: remove menu handle usage.
18055         * Form.cs: remove menu handle usage.
18056         * Hwnd.cs: remove menu handle usage.
18057         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
18058         motion and clicks to the new Tracker handlers.
18059         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
18060         and handle usage.
18061         * MenuAPI.cs: refactored to combine popup and menubar event handling.
18062         Killed the MENU and MENUITEM data types and associated collections
18063         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
18064         MenuTracker class that exposes the leftovers from the old MenuAPI
18065         static methods. Restructured Capture handling so that only one grab is
18066         done for the entire menu hierarchy instead of handing off grabs to
18067         submenus. Tracker now has an invisible control to Capture when active.
18068         * MenuItem.cs: add sizing accessors, kill Create
18069         and handle usage.
18070         * Theme.cs: remove menu handle and MENU(ITEM) usage.
18071         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
18072         MENU(ITEM). remove menu handle usage, use Menu directly.
18073         * XplatUIDriver.cs: remove menu handle usage.
18074         * XplatUIOSX.cs: remove menu handle usage.
18075         * XplatUIWin32.cs: remove menu handle usage.
18076         * XplatUIX11.cs: remove menu handle usage.
18077
18078 2005-11-22  Jackson Harper  <jackson@ximian.com>
18079
18080         * Hwnd.cs: Don't compute the menu size for
18081         DefaultClientRectangle.
18082         - Reenable menu sizes being computed for GetClienRectangle.
18083         * Form.cs: Remove comment of trechery
18084         
18085 2005-11-22  Jackson Harper  <jackson@ximian.com>
18086
18087         * Hwnd.cs: The adjustments for the menu bar are made when it is
18088         attached to the form.
18089
18090 2005-11-19  Jackson Harper  <jackson@ximian.com>
18091
18092         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
18093         (just like on windows).
18094
18095 2005-11-19  Jackson Harper  <jackson@ximian.com>
18096
18097         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
18098         use real buttons anymore because they are in non client area. The
18099         one TODO here is that I need to somehow invalidate a section of
18100         the non client area.
18101
18102 2005-11-18  Jackson Harper  <jackson@ximian.com>
18103
18104         * Control.cs: Put the enum check back in now that MDI doesnt have
18105         to use this to set border styles.
18106         * Form.cs: Only set mdi child windows borders if the handle has
18107         been created.
18108         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
18109         this directly on to the driver.
18110         - Get the move start position before adjusting for the titlebar
18111         height, this fixes the windows "skipping" when they are first
18112         moved.
18113
18114 2005-11-18  Jackson Harper  <jackson@ximian.com>
18115
18116         * XplatUIX11.cs: Just compute the mdi borders separately as they
18117         don't totally match up with normal form borders.
18118
18119 2005-11-18  Jackson Harper  <jackson@ximian.com>
18120
18121         * Control.cs: Set WS_ styles for borders, so that the driver does
18122         not have to retrieve the control instance to figure out what kind
18123         of borders it should have.
18124         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
18125         driver can know its an mdi child easily.
18126         * XplatUIX11.cs: Get the border styles and whether the window is
18127         MDI from the Styles and ExStyles params instead of having to get a
18128         control. This prevents a chicken and egg problem.       
18129
18130 2005-11-18  Jackson Harper  <jackson@ximian.com>
18131
18132         * MdiClient.cs: Fix typo so scrollbars show up correctly.
18133
18134 2005-11-18  Jackson Harper  <jackson@ximian.com>
18135
18136         * MdiClient.cs: Calculate when to add and remove scrollbars
18137         correctly.
18138         * MdiChildContext.cs: Adjust the y position to take the titlebar
18139         into account.
18140         - No height for FormBorderStyle.None
18141
18142 2005-11-18  Jackson Harper  <jackson@ximian.com>
18143
18144         * Control.cs: Allow non enum values to be used for
18145         InternalBorderStyle.  MDI does this to set a special border style.
18146         - New utility methods for converting points to/from client coords
18147         - Add the newly created control to the Controls collection before
18148         updating its style. This way UpdateStyle can walk the control
18149         heirarchy to find the control if needed.
18150         so I don't need to create a new Point object all the time.
18151         * Form.cs: Let MDI windows handle their border styles.
18152         - Set styles on MDI windows so the correct title style is derived.
18153         * MdiChildContext.cs: Move all the painting and window handling
18154         into the non client area.
18155         - Use correct sizing and put correct buttons on frames based on
18156         the FormBorderStyle.
18157         - Notify the mdi client about scrolling
18158         - Need to handle the buttons ourselves now, because they are all
18159         in non client areas and we can't add controls there.
18160         * MdiClient.cs: Halfway to scrolling, this implementation is
18161         somewhat broken though, we need to check to make sure other
18162         windows aren't causing scrolling before removing the bars. Also
18163         the bars need to be drawn on top, maybe I can switch implicit
18164         controls to be on top.
18165         * Hwnd.cs: caption_height and tool_caption_height are now
18166         properties of an hwnd, this way they can be set by the driver
18167         based on the type of window they are.  In X11 the window manager
18168         handles the decorations so caption_height is zero unless its an
18169         MDI window.
18170         - Add 3 pixel borders for MDI windows (0xFFFF).
18171         - Get rid of some code duplication, have DefaultClientRectanle
18172         just call GetClientRectangle.
18173         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
18174         Hwnd now.
18175         - Set border styles differently for mdi windows.
18176         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
18177         Hwnd now.
18178         
18179 2005-11-15  Mike Kestner  <mkestner@novell.com>
18180
18181         * Menu.cs: when adding an item to the collection, if item is already 
18182         parented, remove it from the parent.
18183
18184 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
18185
18186         * X11DesktopColors.cs: Added KDE support
18187
18188 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
18189
18190         * XplatUIWin32.cs: 
18191           - Clipboard methods now can translate Rtf format
18192           - No longer removes clipboard contents whenever a new format is added
18193             to allow placing multiple formats on the clipboard
18194         * Clipboard.cs: Clipboard now supports getting a IDataObject and
18195           will place all formats contained in it onto the clipboard. Also
18196           now cleans the clipboard before placing a new object onto it
18197         * RichTextBox.cs:
18198           - Implemented set_Rtf
18199           - Implemented set_SelectedRtf
18200           - Created InsertRTFFromStream() method to allow single code base
18201             for all properties and methods that insert RTF into document
18202           - Removed debug output
18203         * TextControl.cs:
18204           - Fixed Delete(int) to fix up line numbers
18205           - Fixed ReplaceSelection to combine start and end line
18206           - Fixed serious DeleteChars bug that would leave the document tree
18207             broken
18208           - Improved DumpTree with several logic checks to detect broken
18209             document trees
18210           - Removed debug lines
18211           - Fixed Caret.WordForward/WordBack moving code, now always also 
18212             updates caret.tag (fixes crash when word-selecting across tag
18213             boundaries via keyboard)
18214           - Added Insert() method for inserting multiline text into documents
18215           - Fixed DeleteChars() calculation errors that would cause a broken
18216             tag chain with multiple tag lines
18217           - DeleteChars() no longer crashes on multi-tag lines if not all tags
18218           - Split() no longer moves caret if split is at caret location
18219           - ReplaceSelection() now updates the cursor and re-displays it
18220           - ReplaceSelection() now uses new Insert() method to avoid code
18221             duplication
18222           - FormatText() can now handle formatting partial lines
18223         * TextBoxBase.cs:
18224           - Append now uses new TextControl.Insert() method (this avoids 
18225             duplicate code)
18226           - Implemented Ctrl-X (Cut) (
18227           - Implemented Ctrl-C (Copy)
18228           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
18229             regeneration when pasting text; roundtripping Copy&Paste within
18230             edit control still fails due to some calculation bugs in GenerateRTF)
18231           - The Delete key will now remove the current selection if it is visible
18232         * TextBox.cs: Removed debug lines
18233         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
18234           driver to be initialized and can't therefore be done via a static ctor)
18235
18236 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
18237
18238         * TextControl.cs: Added backend code for finding char arrays and strings
18239         * TextBoxBase.cs:
18240           - Added mouse wheel scroll support
18241           - Added support for VScroll and HScroll events
18242         * RichTextBox.cs:
18243           - Implemented all seven Find() variants
18244           - Implemented GetCharFromPosition()
18245           - Implemented GetCharIndexFromPosition()
18246           - Implemented GetLineFromIndex()
18247           - Implemented GetPositionFromCharIndex();
18248           - Implemented SaveFile for PlainText and UnicodeText
18249           - Fixed set_Font, now setting a new font applies that font to
18250             the whole document
18251           - Implemented generic Document to RTF converter
18252           - Implemented SaveFile for RichText format (still missing unicode
18253             conversion for non-ansi chars)
18254           - Implemented get_Rtf
18255           - Implemented get_SelectedRtf
18256
18257 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
18258
18259         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
18260           to allow any captures to be released before triggering OnClick. This
18261           way a click handler may capture the mouse without interference.
18262         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
18263           This way we send them even though X may not allow a grab (if the window
18264           isn't visible, for example)
18265
18266 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
18267
18268         * DataGridViewRowEventArgs.cs: DataGridView implementation
18269         * DataGridViewElement.cs: DataGridView implementation
18270         * DataGridViewComboBoxCell.cs: DataGridView implementation
18271         * DataGridViewDataErrorContexts.cs: DataGridView implementation
18272         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
18273         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
18274         * ImageLayout.cs: DataGridView implementation
18275         * DataGridViewComboBoxColumn.cs: DataGridView implementation
18276         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
18277         * DataGridViewSelectionMode.cs: DataGridView implementation
18278         * IDataGridViewEditingControl.cs: DataGridView implementation
18279         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
18280         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
18281         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
18282         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
18283         * DataGridViewColumnSortMode.cs: DataGridView implementation
18284         * DataGridView.cs: DataGridView implementation
18285         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
18286         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
18287         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
18288         * Padding.cs: DataGridView implementation
18289         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
18290         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
18291         * DataGridViewRowEventHandler.cs: DataGridView implementation
18292         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
18293         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
18294         * DataGridViewButtonCell.cs: DataGridView implementation
18295         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
18296         * DataGridViewEditMode.cs: DataGridView implementation
18297         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
18298         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
18299         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
18300         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
18301         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
18302         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
18303         * DataGridViewCellEventHandler.cs: DataGridView implementation
18304         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
18305         * DataGridViewCellStyleConverter.cs: DataGridView implementation
18306         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
18307         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
18308         * DataGridViewColumnEventArgs.cs: DataGridView implementation
18309         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
18310         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
18311         * QuestionEventArgs.cs: DataGridView implementation
18312         * IDataGridViewEditingCell.cs: DataGridView implementation
18313         * DataGridViewTriState.cs: DataGridView implementation
18314         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
18315         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
18316         * DataGridViewColumnCollection.cs: DataGridView implementation
18317         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
18318         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
18319         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
18320         * DataGridViewColumn.cs: DataGridView implementation
18321         * DataGridViewCellBorderStyle.cs: DataGridView implementation
18322         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
18323         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
18324         * DataGridViewRow.cs: DataGridView implementation
18325         * DataGridViewImageCellLayout.cs: DataGridView implementation
18326         * DataGridViewImageCell.cs: DataGridView implementation
18327         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
18328         * DataGridViewCheckBoxCell.cs: DataGridView implementation
18329         * DataGridViewHeaderCell.cs: DataGridView implementation
18330         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
18331         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
18332         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
18333         * DataGridViewTextBoxColumn.cs: DataGridView implementation
18334         * QuestionEventHandler.cs: DataGridView implementation
18335         * DataGridViewCellStyleScopes.cs: DataGridView implementation
18336         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
18337         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
18338         * DataGridViewCell.cs: DataGridView implementation
18339         * DataGridViewCellEventArgs.cs: DataGridView implementation
18340         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
18341         * DataGridViewCellStyle.cs: DataGridView implementation
18342         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
18343         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
18344         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
18345         * TextFormatFlags.cs: DataGridView implementation
18346         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
18347         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
18348         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
18349         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
18350         * DataGridViewButtonColumn.cs: DataGridView implementation
18351         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
18352         * HandledMouseEventArgs.cs: DataGridView implementation
18353         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
18354         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
18355         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
18356         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
18357         * DataGridViewRowCollection.cs: DataGridView implementation
18358         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
18359         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
18360         * DataGridViewHitTestType.cs: DataGridView implementation
18361         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
18362         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
18363         * DataGridViewColumnEventHandler.cs: DataGridView implementation
18364         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
18365         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
18366         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
18367         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
18368         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
18369         * DataGridViewContentAlignment.cs: DataGridView implementation
18370         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
18371         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
18372         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
18373         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
18374         * DataGridViewPaintParts.cs: DataGridView implementation
18375         * DataGridViewCellCollection.cs: DataGridView implementation
18376         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
18377         * DataGridViewImageColumn.cs: DataGridView implementation
18378         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
18379         * DataGridViewElementStates.cs: DataGridView implementation
18380         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
18381         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
18382         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
18383         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
18384         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
18385         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
18386         * DataGridViewRowHeaderCell.cs: DataGridView implementation
18387         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
18388         * DataGridViewTextBoxCell.cs: DataGridView implementation
18389         * DataGridViewBand.cs: DataGridView implementation
18390         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
18391         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
18392         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
18393         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
18394         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
18395         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
18396         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
18397         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
18398         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
18399         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
18400         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
18401
18402 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
18403
18404         * ThemeWin32Classic.cs: 
18405           - Draw the outside focus rectangle around buttons
18406           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
18407             doesn't use end caps for every dash of a line anymore. This
18408             workaround ignores the forecolor.
18409
18410 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
18411
18412         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
18413           endian safe.
18414
18415 2005-11-07  Jackson Harper  <jackson@ximian.com>
18416
18417         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
18418
18419 2005-11-07  Jackson Harper  <jackson@ximian.com>
18420
18421         * ScrollableControl.cs: Calculate the maximum and change vars
18422         (more) correctly so that scrollbars appear as a sensible size.
18423
18424 2005-11-04  Jackson Harper  <jackson@ximian.com>
18425
18426         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
18427         collection.
18428         * TreeView.cs: When the tree is sorted null out the top_node so
18429         that it is recalculated.
18430         - Use dotted lines instead of dashed lines to match MS better.
18431
18432 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
18433
18434         * ListView.cs: 
18435           - Implements key search for items. Useful when browsing files with FileDialog
18436           - When changing view mode or when clear the items reset scrollbar positions
18437
18438 2005-11-04  Jackson Harper  <jackson@ximian.com>
18439
18440         * CurrencyManager.cs: Implement the MetaDataChanged event, the
18441         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
18442         as to what the method may do as there is no real way of creating a
18443         derived CurrencyManager and calling the method. 
18444
18445 2005-11-03  Jackson Harper  <jackson@ximian.com>
18446
18447         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
18448         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
18449         method which seems to just be used internally to refresh the tabs.
18450
18451 2005-11-03  Jackson Harper  <jackson@ximian.com>
18452
18453         * TabControl.cs: Implement the remove method. Fix some broken
18454         comments.
18455
18456 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18457
18458         * DateTimePicker.cs:
18459           - Added missing DateTimePickerAccessibleObject class
18460           - Added missing events
18461           - Added OnFontChanged method
18462         * Form.cs: Added missing attributes
18463         * TreeView.cs: Added missing attributes
18464
18465 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
18466
18467         * GridItemCollection.cs: Fix signatures
18468
18469 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18470
18471         * XplatUI.cs: Updated build rev/date
18472         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
18473           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
18474         * Application.cs: Trigger context-specific ExitThread events
18475
18476 2005-11-03  Jackson Harper  <jackson@ximian.com>
18477
18478         * Menu.cs:
18479         * MainMenu.cs:
18480         * GridTableStylesCollection.cs:
18481         * Timer.cs:
18482         * TabPage.cs:
18483         * HelpProvider.cs:
18484         * StatusBar.cs:
18485         * MonthCalendar.cs: Signature fixes
18486
18487 2005-11-03  Jackson Harper  <jackson@ximian.com>
18488
18489         * TreeNodeCollection.cs: Remove should not be virtual.
18490         * TreeView.cs: Implement the last of the missing methods.
18491
18492 2005-11-03  Jackson Harper  <jackson@ximian.com>
18493
18494         * TreeNodeConverter.cs: Implement to get off my class-status back.
18495
18496 2005-11-03  Jackson Harper  <jackson@ximian.com>
18497
18498         * TreeView.cs: Hookup the bits for drag and drop.
18499         * TreeNode.cs: Don't cache the tree_view or index anymore, now
18500         that nodes can be moved from tree to tree easily this just causes
18501         all sorts of problems.
18502         * TreeNodeCollection: Don't need to give treenodes an index and
18503         treeview anymore when they are added, these are computed on the
18504         fly. Also make sure to remove a node before its added.
18505
18506 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
18507
18508         * TextControl.cs:
18509           - Added CaretSelection enum
18510           - Added comparison methods to Marker struct, makes selection code
18511             more readable
18512           - Added SelectionStart and SelectionEnd as 'moveable' location for
18513             the CaretDirection enum and handler
18514           - Added selection_prev variable to track optimized invalidation for
18515             word and line selection
18516           - Added SelectionVisible property (returns true if there is a valid 
18517             selection)
18518           - Switched CaretHasFocus to only display the caret if there is no
18519             visible selection
18520           - Avoiding StringBuilder.ToString to retrieve a single char, instead
18521             using the direct character index; should be much faster
18522           - Added various conditional debug statements
18523           - Fixed invalidation calculation for selection ranges
18524           - Added ExpandSelection() method to support word and line selection
18525           - Switched SetSelectionToCaret to use new Marker compare overloads
18526           - Added central IsWordSeparator() method to determine word 
18527             separators/whitespace and FindWordSeparator() to streamline common
18528             usage of IsWordSeparator()
18529         * TextBoxBase.cs:
18530           - Removed unneeded grabbed variable, it was just mirroring
18531             Control.Capture
18532           - No longer firing OnTextChanged event when Text setter is called,
18533             since the base will fire the event for us
18534           - Added handling of Ctrl-Up/Down selection
18535           - Added handling of Shift-Cursorkey selection
18536           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
18537             words
18538           - Added handling of Shift and Ctrl-Shift-Home/End selection
18539           - Removed some debug output
18540           - Added handling for single/double/tripple-click to place caret/
18541             select word/select line respectively (Fixes bug #76031)
18542           - Added support for drag expansion of word/line selection
18543         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
18544           current selection
18545
18546 2005-11-02  Jackson Harper  <jackson@ximian.com>
18547
18548         * X11Dnd.cs: If the drag is going to and from a MWF window just
18549         copy the data instead of sending it out through the X Selection
18550         mechanism.
18551
18552 2005-11-02  Jackson Harper  <jackson@ximian.com>
18553
18554         * X11Dnd.cs:
18555         * XplatUIX11.cs: When in a drag we don't want motion notify
18556         messages to get passed on to the other controls. This prevents
18557         mouse move messages from showing up in the drag source.
18558
18559 2005-11-02  Jackson Harper  <jackson@ximian.com>
18560
18561         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
18562         the correct button is release to end a drag.
18563         * XplatUIX11.cs: Make the button state internal so the drag system
18564         can access it.  Dragging needs to know about all button releases,
18565         not just left button.
18566
18567 2005-11-02  Miguel de Icaza  <miguel@novell.com>
18568
18569         * Form.cs (Icon): If the icon is null, reset the icon to the
18570         default value. 
18571
18572         * Cursor.cs: When writing the AND-mask bitmap do not include the
18573         number of colors, but hardcode those to two (black and white),
18574         fixes the loading of color cursors (Paint Dot Net).
18575
18576         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
18577         turn off autoscaling.
18578
18579         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
18580
18581 2005-11-02  Jackson Harper  <jackson@ximian.com>
18582
18583         * X11Dnd.cs: Make sure to send a status message if the pointer
18584         enters a control that can not accept a drop, otherwise the cursor
18585         isn't updated correctly. Also tried to compress the lines of code
18586         a bit.
18587
18588 2005-11-02  Jackson Harper  <jackson@ximian.com>
18589
18590         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
18591         set actions correctly.  This isn't perfect as XDND and win32 have
18592         some differences on how you allow actions. I'll clear this up by
18593         adding a path for drag from MWF to MWF windows.
18594         * XplatUIX11.cs: Hook into the dnd system.
18595
18596 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
18597
18598         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
18599         previously shown but they are no longer need it. Very obvious when 
18600         browsing files with FileDialog.
18601
18602 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
18603
18604         * Control.cs: We always need to call OnPaintBackground. We pretty much
18605           ignore AllPaintingInWmPaint and always do the painting there, whether 
18606           it's set or not, since we always ignore the WM_ERASEBKGND message 
18607           (which we don't generate on X11). This fixes #76616.
18608         * Panel.cs: Removed unneeded background painting. This happens properly
18609           in Control.cs already
18610
18611 2005-10-31  Mike Kestner  <mkestner@novell.com>
18612
18613         * Menu.cs: Add items to collection before setting their index.
18614         * MenuItem.cs : add range checking with ArgumentException like MS.
18615         [Fixes #76510]
18616
18617 2005-10-31  Jackson Harper  <jackson@ximian.com>
18618
18619         * ListBox.cs: Invalidate if the area is visible at all not just
18620         contained in the visible rect. Fixes unselection of semi visible
18621         items.
18622
18623 2005-10-31  Jackson Harper  <jackson@ximian.com>
18624
18625         * Control.cs: Consistently name the dnd methods. Make them
18626         internal so we can override them to match some MS behavoir
18627         internally.
18628         * Win32DnD.cs: Use the new consistent names.
18629
18630 2005-10-31  Jackson Harper  <jackson@ximian.com>
18631
18632         * TreeView.cs: Don't draw the selected node when we lose focus.
18633
18634 2005-10-31  Jackson Harper  <jackson@ximian.com>
18635
18636         * X11Dnd.cs: We still need to reset the state even though a full
18637         reset isn't being done, otherwise status's still get sent all over
18638         the place.
18639
18640 2005-10-31  Jackson Harper  <jackson@ximian.com>
18641
18642         * Control.cs: Make the dnd_aware flag internal so the dnd
18643         subsystem can check it. Catch exceptions thrown in dnd handlers to
18644         match MS behavoir.
18645         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
18646         * X11Dnd.cs: Handle null data in the converters. Set the XDND
18647         version when sending a XdndEnter. Use the control/hwnd dnd_aware
18648         flags to reduce the number of dnd enters/status's sent.
18649
18650 2005-10-31  Jackson Harper  <jackson@ximian.com>
18651
18652         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
18653
18654 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
18655
18656         * PictureBox.cs: Fixes 76512
18657
18658 2005-10-28  Jackson Harper  <jackson@ximian.com>
18659
18660         * X11Dnd.cs: Early implementation to support winforms being a drag
18661         source for data on X11. Also restructured the converters so they
18662         can go both ways now.
18663         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
18664         
18665 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
18666
18667         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
18668           clipboard requests
18669
18670 2005-10-27  Jackson Harper  <jackson@ximian.com>
18671
18672         * TreeNode.cs: Implement serialization so my DnD examples will work.
18673
18674 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
18675
18676         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
18677           TreeView.cs: Don't dispose objects that are not owned.
18678           
18679 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
18680
18681         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
18682           should retrieve the current cursor and report that, but XplatUI
18683           doesn't (yet) have an interface for that (and I'm not sure I even
18684           can, on X11)
18685         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
18686           until any message loop processing is done (and the WM_SETCURSOR
18687           replaces the cursor to the proper one)
18688         * XplatUIX11.cs: 
18689           - Fixed override behaviour, we can't set the cursor globally on X11, 
18690             just for our windows.
18691           - Invalidating the System.Drawing X11 display handle when we are
18692             shutting down
18693         * Control.cs: Fix to make csc happy
18694
18695 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
18696
18697         * TextBoxBase.cs: 
18698           - get_Text: Add last line (without trailing newline) to returned
18699             value (Fixes 76212)
18700           - get_TextLength: Count last line in returned length
18701           - ToString: Call Text property instead of duplicating code
18702
18703 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
18704
18705         * ImageList.cs: Dispose ImageAttributes objects.
18706
18707 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18708
18709         * ImageList.cs: Use attribute constructors with less arguments where
18710           possible.
18711
18712 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
18713
18714         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
18715           Use typeof instead of strings when assembly is referenced. Added
18716           some more comments.
18717
18718 2005-10-21  Jackson Harper  <jackson@ximian.com>
18719
18720         * ListView.cs: Raise a double click event. Also tried to somewhat
18721         fix when the selectedindexchanged event is raised. Its still
18722         broken though.
18723
18724 2005-10-21  Jackson Harper  <jackson@ximian.com>
18725
18726         * TreeView.cs: New method to invalidate the plus minus area of a
18727         node without invalidating the whole node (maybe this can be used
18728         in some more places).
18729         * TreeNodeCollection.cs: When adding to an empty node we need to
18730         invalidate its plus minus area so the little block shows up.
18731         
18732 2005-10-21  Jackson Harper  <jackson@ximian.com>
18733
18734         * TreeView.cs: Make sure that when we invalidate a node the bounds
18735         are big enough to cover the selected box and the focus
18736         rectangle. Use a different colour for the lines connecting nodes
18737         so they show up with all themes.
18738
18739 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18740
18741         * NativeWindow.cs: Don't call anything that could call into the driver,
18742           we might be on a different thread.
18743
18744 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
18745
18746         * Control.cs(Dispose): Since Dispose might run on a different thread,
18747           make sure that we call methods that could call into the driver via
18748           invoke, to avoid thread issues
18749
18750 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
18751
18752         * XplatUI.cs: Removed finalizer
18753         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
18754           not allowing to be called on the finalizer thread.
18755
18756 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
18757
18758         * ImageList.cs:
18759           - Reverted r51889 and r51891.
18760           - Added ImageListItem class that stores unmodified image items and image
18761             properties required to create list images until handle is created.
18762           - Added AddItem and moved image creation logic to AddItemInternal.
18763           - Added CreateHandle method that creates images based on unmodified items.
18764           - Added DestroyHandle that changes state to store unmodified items.
18765           - Add and AddStrip methods no more create handle.
18766           - ReduceColorDepth has no return value.
18767           - Dispose destroys handle.
18768           - Modified other methods to reflect the above changes.
18769           - Implemented key support.
18770           - Added profile 2.0 members and attributes.
18771           - Added private Reset and ShouldSerialize methods that provide the same
18772             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
18773             them as they are private.
18774           - Added some more comments about implementation details.
18775
18776 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18777
18778         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
18779
18780 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18781
18782         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
18783
18784 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
18785
18786         * DataGridDrawingLogic.cs: Fixes column hit calcultation
18787         * DataGridColumnStyle.cs: Remove debug message
18788
18789 2005-10-20  Jackson Harper  <jackson@ximian.com>
18790
18791         * TreeView.cs: We can always get input keys regardless of whether
18792         or not editing is enabled. They are used for navigation.
18793
18794 2005-10-20  Jackson Harper  <jackson@ximian.com>
18795
18796         * TreeNode.cs: Use the viewport rect for determining if a node
18797         needs to be moved for visibility. Don't use Begin/End edit. This
18798         calls a full refresh when its done.
18799         * TreeView.cs: New SetBottom works correctly.  Make the viewport
18800         rect property internal so the treenodes can see it. When clicking
18801         on a node we need to ensure that its visible because it might just
18802         be partly visible when clicked.
18803
18804 2005-10-20  Jackson Harper  <jackson@ximian.com>
18805
18806         * TreeNodeCollection.cs: Remove debug code.
18807
18808 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18809
18810         * Datagrid.cs: Implements column sorting in Datagrid
18811         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
18812
18813 2005-10-20  Jackson Harper  <jackson@ximian.com>
18814
18815         * TreeNodeCollection.cs: Remove items properly. Update the correct
18816         area after removing them.
18817
18818 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
18819
18820         * Datagrid.cs: Should not call base.OnPaintBackground
18821
18822 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18823
18824         * XplatUIX11.cs (GetMessage):
18825           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
18826             window instead of client window
18827           - Now properly calculates NC_xBUTTONUP message coordinates
18828           - ScreenToMenu now properly calculates it's coordinates of whole 
18829             window, since menus are in the whole window, not in the client
18830             window
18831           - Added WholeToScreen coordinate translation method
18832
18833 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
18834
18835         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
18836           want to return a message, loop back to the beginning of the function
18837           and grab the next real message to process instead.
18838
18839 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
18840
18841         * Splitter.cs: Properly set limits if no filler control is used
18842
18843 2005-10-19  Jackson Harper  <jackson@ximian.com>
18844
18845         * ColorDialog.cs: Don't show the help button if it is not enabled
18846         instead of disabling it (this is what MS does). Don't create the
18847         panel until the dialog is run, otherwise the vars (such as
18848         ShowHelp) are not set yet.
18849
18850 2005-10-19  Jackson Harper  <jackson@ximian.com>
18851
18852         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
18853         are reduced when adding nodes.
18854         * TreeNode.cs:
18855         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
18856         tree.
18857         
18858 2005-10-19  Jackson Harper  <jackson@ximian.com>
18859
18860         * FolderBrowserDialog.cs: End editing our treeview so the window
18861         actually gets refreshed.
18862
18863 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18864
18865         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
18866           Obsoleted handling of WM_ERASEBKGND, now always draws our background
18867           inside of WM_PAINT
18868
18869 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18870
18871         * MenuAPI.cs: Returns after Hidding window
18872         * XplatUIX11.cs: Added TODO found while debugging menu issues
18873
18874 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
18875
18876         * XplatUIX11.cs: Do not re-map the whole window when it's size
18877           becomes non-zero unless it's supposed to be actually visible
18878
18879 2005-10-18  Jackson Harper  <jackson@ximian.com>
18880
18881         * TreeView.cs: We don't need to keep a count anymore.
18882         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
18883         use the Grow method.
18884
18885 2005-10-18  Jackson Harper  <jackson@ximian.com>
18886
18887         * TreeNodeCollection.cs: Insert is not supported on arrays, so
18888         implement it manually here.
18889
18890 2005-10-18  Jackson Harper  <jackson@ximian.com>
18891
18892         * ImageList.cs: Dont kill the list when the colour depth is
18893         changed, just change the colour depth of all the images.
18894         - Same goes for setting the image size. Just resize them all
18895         instead of killing the list softly.
18896
18897 2005-10-18  Jackson Harper  <jackson@ximian.com>
18898
18899         * Control.cs: Don't invalidate empty rectangles.
18900
18901 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18902
18903         * ListViewItem.cs:
18904           - Adds checked item to the Checked/Item lists (where empty before)
18905           - Do not add items to the Selected lists if they are already present
18906         * ListView.cs:
18907           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
18908           - When deleting items make sure that we delete them for the Selected
18909           and Checked list also.
18910
18911 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
18912
18913         * Label.cs: Dispose objects no longer used
18914         * ThemeWin32Classic.cs: Dispose objects no longer used
18915
18916 2005-10-18  Jackson Harper  <jackson@ximian.com>
18917
18918         * TabControl.cs: Don't refresh the whole control when the tabs are
18919         scrolled, we just need to refresh the tab area.
18920
18921 2005-10-17  Jackson Harper  <jackson@ximian.com>
18922
18923         * XplatUIX11.cs: Compress code a little bit. Only calculate the
18924         after handle when we need it.
18925
18926 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18927
18928         * Control.cs: When the parent size changes, recalculate anchor 
18929           positions. Partial fix for #76462
18930
18931 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
18932
18933         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
18934           drawn. Fixes #76462
18935
18936 2005-10-17  Jackson Harper  <jackson@ximian.com>
18937
18938         * MonthCalendar.cs: Don't create the numeric up down until our
18939         handle is created. Otherwise our handle is created in the
18940         constructor and we don't know if we are a WS_CHILD or WS_POPUP
18941         yet.
18942
18943 2005-10-17  Jackson Harper  <jackson@ximian.com>
18944
18945         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
18946         correctly.
18947
18948 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
18949         * TreeNode.cs : small logical fix (was using local var instead of field)
18950         
18951 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18952
18953         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
18954
18955 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
18956
18957         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
18958
18959 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
18960
18961         * Control.cs: 
18962           - Re-implemented anchoring code. My first version was really broken.
18963             This fixes bug #76033. Unlike the previous implementation we will
18964             no longer have round errors since all numbers are calculated from
18965             scratch every time. Removed various anchor-related obsolete vars.
18966           - InitLayout no longer causes layout event firing and layout to be 
18967             performed
18968
18969 2005-10-16  Jackson Harper  <jackson@ximian.com>
18970
18971         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
18972         which was broken).
18973
18974 2005-10-16  Jackson Harper  <jackson@ximian.com>
18975
18976         * TabControl.cs: Remove debug code.
18977
18978 2005-10-16  Jackson Harper  <jackson@ximian.com>
18979
18980         * XEventQueue.cs: Increase the default queue size (very simple
18981         apps needed to grow the queue).
18982         * Hwnd.cs: No finalizer so we don't need to suppress
18983         finalization. Compute the invalid area manually so a new rectangle
18984         does not newto be created.
18985         * ScrollableControl.cs: Don't set any params (otherwise visibility
18986         isn't set correctly).
18987         * MdiChildContext.cs: New constructor takes the mdi parent so it
18988         doesn't have to be computed and avoids a crash on windows. Draw
18989         the window icon properly, and allow the text to be seen.
18990         * Form.cs: Use new MdiChildContext constructor. Make sure the
18991         child context isn't null in wndproc.
18992         * TabControl.cs: Don't set focus, this is muddling keyboard
18993         behavoir. Expand the tab rows when a window size increase will
18994         allow extra tabs to be seen. Don't allow tabs smaller than the
18995         width of a window to be scrolled out of view.
18996         * TreeNode.cs:
18997         * TreeView.cs: Use measure string to calculate a nodes width, the
18998         width is cached and only updated when the text or the font is
18999         changed. Don't check for expand/collapse clicks on the first level
19000         nodes if root lines are disabled.
19001         
19002 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
19003
19004         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
19005
19006 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
19007
19008         * DataGridBoolColumn.cs: fixes warning
19009
19010 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
19011
19012         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
19013         to match more to match more precisely the MS Net behavior
19014
19015 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
19016
19017         * Hwnd.cs: Added field to track if window is mapped
19018         * XplatUIX11.cs: 
19019           - Unmap windows if they become 0-size, re-map when 
19020             they are >0 again; fixes #76035
19021           - Re-set our error handler after initializing X11Desktop
19022             to override any error handlers Gtk or whatever was called
19023             may have set.
19024
19025 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
19026
19027         * CheckedListBox.cs: Removed unused vars
19028         * ListView.cs: Fixed signatures
19029         * RichTextBox.cs: Removed unused vars
19030         * TextBoxBase.cs: Removed unused vars
19031         * XplatUIWin32.cs: Removed unused vars
19032         * XplatUIX11.cs: Removed unused vars
19033         * XplatUI.cs: Updated version and date to latest published
19034
19035 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
19036
19037         * Cursor.cs: Added private .ctor to work around a bug in
19038           resourceset (Thanks to Geoff Norton for the help on this)
19039         * SplitterEventArgs.cs: Made fields accessible so we don't
19040           waste boatloads of objects and can reuse the same one
19041           in Splitter
19042         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
19043           any captions and borders when generating screen coordinates
19044         * Splitter.cs: Reimplemented control, now fully complete, uses
19045           rubberband drawing, supports and obeys all properties, has
19046           proper cursors
19047
19048 2005-10-13  Miguel de Icaza  <miguel@novell.com>
19049
19050         * Form.cs (Form): Setup default values for autoscale and
19051         autoscale_base_size;  Make these instance variables, not static
19052         variables. 
19053
19054         (OnLoad): on the first load, adjust the size of the form.
19055
19056 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
19057
19058         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
19059           width argument to DrawReversibleRectangle()
19060         * XplatUIWin32.cs, XplatUIX11.cs: 
19061           - Implemented width for DrawReversibleRectangle()
19062           - Added logic to DrawReversibleRectangle that recognizes a zero
19063             width or height and only draws a line in that situation
19064         
19065 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
19066
19067         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
19068         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
19069         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
19070           method (it uses our FosterParent window to get a graphics context)
19071
19072 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
19073
19074         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
19075           and SetWindowBackground methods
19076         * Control.cs:
19077           - Setting proper ControlStyles
19078           - We no longer call XplatUI.SetWindowBackground and XplatUI.
19079             EraseWindowBackground, instead we draw the window background
19080             ourselves in PaintControlBackground. This behaviour is
19081             required to match MS, where, when OnPaintBackground is not
19082             called, the background is not drawn.
19083           - Removed unneeded Refresh() in set_Text
19084         * Hwnd.cs: Dropped the ErasePending support. No longer needed
19085         * XplatUIX11.cs:
19086           - Created DeriveStyles method to translate from CreateParams to
19087             FormBorderStyle and TitleStyle, also handles BorderStyle (which
19088             matches FormBorderStyle enum values)
19089           - Consolidated SetHwndStyles and CalculateWindowRect border/title
19090             style calculations into single DeriveStyles method
19091           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
19092             from redrawing the whole window on any resize or expose.
19093           - Fixed CreateWindow usage of SetWindowValuemask. Before not
19094             all styles were applied to our whole/client window appropriately
19095           - Removed EraseWindowBackground() and SetWindowBackground() methods
19096           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
19097             no longer clear/redraw the background through X
19098           - Removed handling of erase_pending bit, we have no use for it (or
19099             so it seems)
19100         * XplatUIOSX.cs:
19101           - Removed generation and handling of WM_ERASEBKGND message
19102           - Removed EraseWindowBackground() and SetWindowBackground() methods
19103           - Removed handling of hwnd.ErasePending flag
19104         * XplatUIWin32.cs:
19105           - Removed EraseWindowBackground() and SetWindowBackground() methods
19106           - We no longer call EraseWindowBackground on PaintEventStart, we 
19107             ignore the fErase flag, erasing is handled in Control in the
19108             background handler
19109         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
19110           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
19111           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
19112           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
19113           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
19114           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
19115           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
19116
19117 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
19118
19119         * PropertyGrids.cs: Get sub properties
19120         * PropertyGridView.cs: Fix drawing code
19121
19122 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19123
19124         * ListBox.cs: Fixes 76383
19125
19126 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19127
19128         * DataGridTextBoxColumn.cs: Sets location and size before attachment
19129         * ThemeWin32Classic.cs: Fixes border drawing and calculations
19130         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
19131
19132
19133 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19134
19135         * ComboBox.cs: Fixes border drawing
19136
19137 2005-10-10  Miguel de Icaza  <miguel@novell.com>
19138
19139         * MimeIcon.cs: Ignore errors if the file can not be read.
19140
19141 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
19142
19143         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
19144          - Fixed border calculations
19145          - Fixed horizontal scrolling in single column listboxes
19146          - Fixed drawing issues
19147
19148 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
19149
19150         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
19151           FormBorderStyle enum
19152         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
19153           code to determine FormBorderStyles from CreateParams
19154         * Form.cs:
19155           - Fixed bug where we'd set the wrong window styles if we were
19156             not creating an MDI window
19157           - Added call to XplatUI.SetBorderStyle when form borders are set
19158         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
19159         * Hwnd.cs:
19160           - Removed obsolete edge style
19161           - Switched from BorderStyle to FormBorderStyle
19162         
19163 2005-10-10  Jackson Harper  <jackson@ximian.com>
19164
19165         * Form.cs: Use the property to get the window handle instead of
19166         accessing it directly. Prevents a null reference exception.
19167
19168 2005-10-10  Jackson Harper  <jackson@ximian.com>
19169
19170         * TreeView.cs: Don't adjust the rect given to DrawString now that
19171         our libgdiplus draws correctly.
19172
19173 2005-10-08  Jackson Harper  <jackson@ximian.com>
19174
19175         * TreeView.cs: Don't try to find the clicked on node if there are
19176         no nodes in the tree.
19177
19178 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19179
19180         * RichTextBox.cs:
19181
19182           restore
19183
19184 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
19185
19186         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
19187           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
19188           ErrorProvider.cs:
19189           Use ResPool for brushes and dispose System.Drawing objects that
19190           are not used anymore.
19191
19192 2005-10-07  Jackson Harper  <jackson@ximian.com>
19193
19194         * MdiChildContext.cs: Use the new borders instead of drawing them
19195         ourselves.
19196
19197 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19198
19199         * Calling UpdateBounds after changing the window's BorderStyle 
19200         since the style can change the ClientSize
19201
19202 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19203
19204         * Control.cs: Made PaintControlBackground virtual
19205         * Panel.cs: Overriding PaintControlBackground instead of using paint
19206           event; paint event method was interfering with 'real' users of the
19207           event.
19208
19209 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
19210
19211         * ThemeWin32Classic.cs: remove border drawing since it is handled
19212         by the base control class now and was causing double border drawing.
19213
19214 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19215
19216         * Panel.cs: Redraw our background on paint. Not a pretty solution,
19217           but it does seem to match MS behaviour. This fixes bug #75324
19218
19219 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19220
19221         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
19222           somewhat hackish looking
19223
19224 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19225
19226         * TextBoxBase.cs:
19227           - We now accept Enter even if AcceptEnter is false, if the containing
19228             form does not have an AcceptButton configured (fixes bug #76355)
19229           - Calculations are now fixed to no longer use Width/Height, but
19230             ClientSize.Width/Height, since we now support borders (this was
19231             a result of fixing borders and therefore bug #76166)
19232           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
19233             true (fixes bug #76354)
19234         
19235 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19236
19237         * Control.cs: 
19238           - Defaulting BorderStyle and setting it in XplatUI when our window 
19239             is created
19240           - Added enum check to InternalBorderStyle setter
19241         * XplatUIX11.cs: 
19242           - Added drawing of window borders
19243           - Now properly calculates WM decorations offset for toplevel 
19244             windows (fixes bug #74763)
19245         * XplatUIWin32.cs: 
19246           - Implemented BorderStyles for windows (we're letting win32 draw 
19247             the border for us)
19248           - Fixed the signature for SetWindowLong
19249         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
19250           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
19251           setting borders
19252         * UpDownBase.cs: Remove drawing of borders, this is handled by
19253           the driver, outside the client area
19254         * ListView.cs: Removed bogus border calculations. The control should
19255           be oblivious to borders, since those are not part of the client
19256           area. 
19257         * X11DesktopColors.cs: Commented out (currently) unneeded variables
19258         * ThemeWin32Classic.cs: Removed border calculations from ListView 
19259           drawing code
19260
19261 2005-10-06  Jackson Harper  <jackson@ximian.com>
19262
19263         * MdiChildContext.cs: Clear out the old virtual position remove
19264         all the unneeded calls to CreateGraphics.
19265
19266 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19267
19268         * TextControl.cs: Use proper color for highlighted text; fixes #76350
19269
19270 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
19271
19272         * Form.cs: 
19273           - Added loading and setting of our new default icon
19274           - Only set icon if window is already created
19275
19276 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
19277
19278         * Label.cs:
19279           - Do not explicitly set the foreground and background colors, to
19280             allow inheriting from parents (fixes #76302)
19281           - Use Control's InternalBorderStyle property to deal with borders
19282
19283 2005-10-06  Jackson Harper  <jackson@ximian.com>
19284
19285         * MdiChildContext.cs: Use the new xplatui function to draw a
19286         reversible rect.
19287
19288 2005-10-06  Jackson Harper  <jackson@ximian.com>
19289
19290         * Form.cs: Add the parent before creating the child context cause
19291         we need the parent when setting up the child.
19292
19293 2005-10-06  Jackson Harper  <jackson@ximian.com>
19294
19295         * FolderBrowserDialog.cs: redo the tree population code so a
19296         second thread isn't used. Should be a lot faster and more stable
19297         now.
19298
19299 2005-10-05  Jackson Harper  <jackson@ximian.com>
19300
19301         * TreeView.cs: There are no expand/collapse boxes if the node has
19302         no children.
19303
19304 2005-10-05  Jackson Harper  <jackson@ximian.com>
19305
19306         * X11DesktopColors.cs: Get menu colours for the gtk theme.
19307
19308 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
19309
19310         * FileDialog.cs: Fix InitialDirectory
19311
19312 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19313
19314         * ComboBox.cs:
19315                 - Fixes changing between styles
19316                 - Fixes simple mode
19317                 - Fixes last item crashing when navigating with keyboard
19318
19319 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
19320
19321         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
19322
19323 2005-10-05  Jackson Harper  <jackson@ximian.com>
19324
19325         * TreeView.cs: If updating the root node do a full refresh.
19326         * TreeNode.cs: The root node should be expanded by default. Also
19327         added a utility prop to tell if we are the root node.
19328         * TreeNodeCollection.cs: Only refresh if the node we are being
19329         added to is expanded. Also added a comment on a potential
19330         optimization.
19331         
19332 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
19333
19334         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
19335           in dispose method. Fixes #76330
19336
19337 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
19338
19339         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
19340
19341                 - Implements vertical and horizontal scrolling using XplatUI
19342                 - Fixes keyboard navagation
19343                 - Fixes EnsureVisible
19344                 - Drawing fixes
19345                 - Handles and draws focus properly
19346
19347
19348 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
19349
19350         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
19351           Create handle. NET_2_0: Destroy handle when value is null.
19352
19353 2005-10-03  Jackson Harper  <jackson@ximian.com>
19354
19355         * ScrollBar.cs: My last scrollbar patch was broken. This is a
19356         revert and a new patch to prevent the thumb from refreshing so
19357         much.
19358
19359 2005-10-02  Jackson Harper  <jackson@ximian.com>
19360
19361         * ScrollBar.cs: Don't update position if it hasn't actually
19362         changed. This occurs when you hold down the increment/decrement
19363         buttons and the thumb gets to the max/min.
19364
19365 2005-10-01  Jackson Harper  <jackson@ximian.com>
19366
19367         * Form.cs:
19368         * MdiChildContext.cs:
19369         * MdiClient.cs: Implement ActiveMdiChild in Form.
19370
19371 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
19372
19373         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
19374
19375 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
19376
19377         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
19378           be found
19379
19380 2005-09-30  Jackson Harper  <jackson@ximian.com>
19381
19382         * ListBox.cs: Don't do a full refresh unless some data has
19383         actually changed.
19384
19385 2005-09-30  Jackson Harper  <jackson@ximian.com>
19386
19387         * TreeView.cs: Make sure that the checkboxes size is factored in
19388         even when not visible.
19389
19390 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19391
19392         * FileDialog.cs: Fix Jordi's build break
19393
19394 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19395
19396         * FileDialog.cs: 
19397                 - Use standard the Windows colours for the combobox as espected
19398                 - Dispose objects that use resouces when no longer need them
19399
19400 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
19401
19402         * X11DesktopColors.cs: Initial incomplete implementation
19403         * XplatUIX11.cs: Added call to initialize X11DesktopColors
19404
19405 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
19406
19407         * Theme.cs: 
19408           - Switched Theme color names to match the names defined in 
19409             System.Drawing.KnownColors. Life's hard enough, no need to make 
19410             it harder.
19411           - Added setters to all theme color properties so themes can set
19412             their color schemes. The setters also propagate the color changes
19413             to System.Drawing.KnownColors via reflection
19414         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
19415           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
19416           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
19417           use the new, more logical theme color names
19418         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
19419           post-NT colors
19420         * ThemeWin32Classic.cs:
19421           - Removed code to set the old classic Windows colors. Instead it
19422             now relies on the colors returned by System.Drawing.KnownColors
19423             which will be either modern static colors (Unix) or colors
19424             read from the user's configuration (Win32)
19425           - Updated to use the new, more logical theme color names
19426           - Switched DataGrid drawing code to use only Theme colors instead of
19427             a mix of System.Drawing.KnownColors and Theme colors
19428           - DrawFrameControl(): Removed code that fills the button area, the
19429             fill would overwrite any previous fill done by a control. This
19430             fixes bug #75338 
19431           - Added DrawReversibleRectangle() stub
19432         * ScrollableControl.cs: Set visible state to false when scrollbars
19433           are removed (pdn fix)
19434         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
19435           DrawReversibleRectangle() method to allow drawing primitive 
19436           'rubber bands'
19437         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
19438
19439 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19440
19441         * ImageList.cs: Add(Icon): Create handle.
19442
19443 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
19444
19445         * ListView.cs:
19446         * ThemeWin32Classic.cs:
19447                 - Fixes detail mode
19448                 - Sets clippings
19449                 - Issues with drawing
19450
19451 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19452
19453         * ImageList.cs: Moved RecreateHandle back to ImageList as event
19454           source has to be the ImageList.
19455
19456 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19457
19458         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
19459
19460 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19461
19462         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
19463
19464 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19465
19466         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
19467
19468 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
19469         * GridItem.cs: Fixed TODOs
19470         * GridItemCollection.cs: Added ICollection interface
19471
19472 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
19473
19474         * ImageList.cs: Resize icons when needed.
19475
19476 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
19477
19478         * ListViewItem.cs
19479                 - Fixes GetBounds and returns on screen rects
19480         * ListView.cs:
19481                 - Fixes vertical and horzintal scrolling of items
19482         * ThemeWin32Classic.cs:
19483                 - Fixes drawing
19484                 
19485 2005-09-29  Raja R Harinath  <harinath@gmail.com>
19486
19487         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
19488
19489 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
19490
19491         * ImageList.cs: Added comments about handle creation. Moved Handle,
19492           HandleCreated and OnRecreateHandle implementations to ImageCollection.
19493           Handle is created in Add methods.
19494
19495 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19496          
19497         * DataGridDrawingLogic.cs: 
19498                 - Takes rows into account on Colum calculations
19499                 - Returns the column when clickig
19500         * DataGrid.cs:
19501                 - Fixes default HitTestInfo values
19502                 - Fixes HitTestInfo.ToString
19503                 - Fixes ResetBackColor          
19504         
19505 2005-09-28  Jackson Harper  <jackson@ximian.com>
19506
19507         * MdiChildContext.cs: Obey rules for fixed sized windows (no
19508         sizing or cursor changes). Also added some temp code to draw the
19509         titlebars text (Makes dev a little easier).
19510
19511 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19512
19513         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
19514
19515 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
19516          
19517         * ListBox.cs: Fixes bug 76253
19518
19519 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
19520
19521         * ImageList.cs: Added comments about the current implementation. Added
19522           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
19523           Format32bppArgb to preserve transparency and can use Graphics.FromImage
19524           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
19525           with Bitmap.LockBits for better performance. Revised the whole file to
19526           match MS.NET behaviour and provide better performance. Non-public
19527           interface members are calling public members even when they throw
19528           NotSupportedException for better maintainability. Moved ColorDepth,
19529           ImageSize, ImageStream and TransparentColor implementations to
19530           ImageCollection for better performance as these properties are not used
19531           by ImageList.
19532         * ImageListStreamer.cs: Added a new internal constructor that takes an
19533           ImageList.ImageCollection and serializes Images based on
19534           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
19535           match ImageList property name.
19536
19537 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
19538
19539         * ListBox.cs: Fixes IndexFromPoint for last item
19540
19541 2005-09-27  Jackson Harper  <jackson@ximian.com>
19542
19543         * Form.cs: Set the position of new mdi children correctly.
19544
19545 2005-09-27  Jackson Harper  <jackson@ximian.com>
19546
19547         * MdiClient.cs: New mdi children need to be added to the back of
19548         the controls collection so the zorder is set correctly. Also add a
19549         count of all the child windows that have been created.
19550
19551 2005-09-27  Jackson Harper  <jackson@ximian.com>
19552
19553         * Form.cs (CreateParams): Setup MDI forms correctly.
19554
19555 2005-09-27  Jackson Harper  <jackson@ximian.com>
19556
19557         * MdiChildContext.cs:
19558         * MonthCalendar.cs:
19559         * UpDownBase.cs:
19560         * ListBox.cs:
19561         * ListView.cs:
19562         * TextBoxBase.cs:
19563         * TreeView.cs:
19564         * ScrollableControl.cs:
19565         * ComboBox.cs: Add implicit controls using the new implict control
19566         functionality in ControlCollection. Also try to block multiple
19567         control add in a suspend/resume layout to save some cycles.
19568         
19569 2005-09-27  Jackson Harper  <jackson@ximian.com>
19570
19571         * Control.cs: Add functionality to the controls collection to add
19572         'implicit controls' these are controls that are created by the
19573         containing control but should not be exposed to the user. Such as
19574         scrollbars in the treeview.
19575         * Form.cs: The list var of the ControlsCollection is no longer
19576         available because of the potential of implicit controls getting
19577         ignored by someone accessing the list directly.
19578
19579 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
19580
19581         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
19582           loose it's parent. (Fixed bug introduced in r49103 when we added
19583           setting the child parent to null on Remove)
19584
19585 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
19586
19587         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
19588         * Splitter.cs: Added missing attributes for BorderStyle property.
19589         * TextBoxBase.cs: Marked Calculate* methods internal.
19590         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
19591         MS.NET.
19592
19593 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
19594          
19595         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
19596
19597 2005-09-25  Jackson Harper  <jackson@ximian.com>
19598
19599         * TreeView.cs: Update the node bounds correctly regardless of
19600         whether the node is visible.
19601
19602 2005-09-25  Jackson Harper  <jackson@ximian.com>
19603
19604         * ImageList.cs: Don't dispose the image after it is added to the
19605         image list. Only reformat images that need to be resized.
19606
19607 2005-09-25  Jackson Harper  <jackson@ximian.com>
19608
19609         * ImageList.cs: Don't set the format when changing the image.
19610
19611 2005-09-25  Jackson Harper  <jackson@ximian.com>
19612
19613         * TreeView.cs: We can't just assume the node has a font. Use the
19614         treeviews font if no node font is available.
19615
19616 2005-09-25  Jackson Harper  <jackson@ximian.com>
19617
19618         * TreeView.cs: Allow the scrollbars to be reset with negative
19619         values.
19620         - Don't add scrollbars to negative sized windows.
19621
19622 2005-09-23  Jackson Harper  <jackson@ximian.com>
19623
19624         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
19625         old Mono.Posix. Also remove some stray code that shouldn't have
19626         been committed.
19627
19628 2005-09-23  Jackson Harper  <jackson@ximian.com>
19629
19630         * TreeView.cs: Attempt at proper sizing of the horizontal
19631         scrollbar. Also don't resize the scrollbars unless they are
19632         visible.
19633
19634 2005-09-23  Jackson Harper  <jackson@ximian.com>
19635
19636         * TreeView.cs: We don't need to expand the invalid area when the
19637         selection changes, as this is all drawn in the node's bounding
19638         box. The area needs to be expanded (previous typo was contracting
19639         it) when the focus rect moves.
19640
19641 2005-09-23  Jackson Harper  <jackson@ximian.com>
19642
19643         * TreeView.cs: Display the selection box under the correct
19644         circumstances. We were rendering white text with no selection box
19645         before.
19646
19647 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
19648
19649         * TextControl.cs(Split): Now updates selection start/end if it points 
19650           into a line that's being split. Fixes a FIXME and bug #75258
19651
19652 2005-09-23  Jackson Harper  <jackson@ximian.com>
19653
19654         * Binding.cs:
19655         * ListControl.cs: Don't use the path when retrieving binding
19656         managers from the binding context. My bat sense tells me that the
19657         path is only used on insertion.
19658
19659 2005-09-22  Jackson Harper  <jackson@ximian.com>
19660
19661         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
19662
19663 2005-09-22  Jackson Harper  <jackson@ximian.com>
19664
19665         * Splitter.cs: There are special cursors used for splitting.
19666         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
19667
19668 2005-09-22  Jackson Harper  <jackson@ximian.com>
19669
19670         * Splitter.cs: Change the cursor appropriately when the splitter
19671         is moused over, so the user actually knows there is a splitter
19672         there.
19673
19674 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19675
19676        * Label.cs : Fix ToString method to give same output as MS.NET
19677
19678 2005-09-22  Jackson Harper  <jackson@ximian.com>
19679
19680         * TreeView.cs: Create the scrollbars when the handle is created
19681         and add them right away, just make them invisble. Also account for
19682         the window being shrunk vertically to the point that the vert
19683         scrollbar needs to be added.
19684         - Remove some 0.5 adjustments to get around anti aliasing issues.
19685         
19686 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
19687          
19688         * MainMenu.cs: Fixes default value
19689         * MenuItem.cs: Fixes default value
19690
19691 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
19692
19693         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
19694
19695 2005-09-21  Jackson Harper  <jackson@ximian.com>
19696
19697         * Control.cs: Don't try to set the border style on the window if
19698         it hasn't been created. When the window is created the border
19699         style will be used.
19700
19701 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19702
19703         * Control.cs (Update): Don't call XplatUI if we don't have a
19704           window handle yet
19705
19706 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19707
19708         * ContainerControl.cs: Instead of throwing an exception, print
19709           a one-time warning about Validate not being implemented
19710         * XplatUIWin32.cs: Removed debug output
19711
19712 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
19713
19714         * Control.cs: Only set XplatUI background if we expect the windowing
19715           system to handle the background. This stops controls that draw their
19716           own background from flickering
19717
19718         * XplatUIX11.cs: Support custom visuals and colormaps for window 
19719           creation. This allows, amongst other things, using MWF X11 windows 
19720           with OpenGL.
19721
19722 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
19723
19724         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
19725           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
19726           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
19727           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
19728           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
19729           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
19730           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
19731           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
19732           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
19733           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
19734           GridColumnStylesCollection.cs, 
19735           IDataGridColumnStyleEditingNotificationService.cs,
19736           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
19737           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
19738           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
19739           TreeNodeCollection.cs, AmbientProperties.cs, 
19740           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
19741           DataObject.cs, ErrorProvider.cs, Splitter.cs,
19742           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
19743           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
19744           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
19745           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
19746           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
19747           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
19748           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
19749           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
19750           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
19751           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
19752           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
19753           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
19754           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
19755           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
19756           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
19757           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
19758           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
19759           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
19760           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
19761           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
19762           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
19763           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
19764           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
19765           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
19766           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
19767           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
19768           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
19769           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
19770           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
19771           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
19772           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
19773           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
19774           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
19775           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
19776           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
19777
19778 2005-09-21  Jackson Harper  <jackson@ximian.com>
19779
19780         * TreeNode.cs: Call Before/After Expand not Collapse when
19781         expanding.
19782
19783 2005-09-20  Jackson Harper  <jackson@ximian.com>
19784         
19785         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
19786
19787 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19788          
19789         * ListViewItem.cs:
19790                 - Fixes bug 76120
19791                 - Fixes proper storing of subitems
19792                 - Fixes not updated items
19793
19794 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
19795
19796         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
19797           things if our window handle isn't created yet. Also disabled 
19798           debug for TextBoxBase
19799
19800 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
19801
19802         * MenuAPI.cs: Remove filtering of events to allow menu usage
19803
19804 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19805
19806         * Cursor.cs: Allow null to be passed to Cursor.Current.
19807
19808 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
19809
19810         * ThemeWin32Classic.cs:
19811           - Change some private methods/fields to protected virtual so that 
19812             they can be accessed and overriden in derived classes
19813           - First refactoring of some methods. Derived themes now don't 
19814             need to duplicate the complete code from ThemeWin32Classic
19815         * ThemeNice.cs:
19816           - Added nice StatusBar
19817           - Derive from ThemeWin32Classic and not Theme
19818           - Removed duplicate ThemeWin32Classic code
19819
19820 2005-09-20  Miguel de Icaza  <miguel@novell.com>
19821
19822         * Control.cs (ControlCollection.Add): If the value null is passed
19823         the control is ignored. 
19824
19825         Optimize this loop.
19826
19827 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
19828
19829         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
19830           PostQuitMessage state.
19831         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
19832
19833 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
19834
19835         * Application.cs: Our constructor will never get called, move 
19836           initialization to fields; fixes bug #75933
19837
19838 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
19839
19840         * FileDialog.cs :
19841                 - Allow files to be selected properly using file name
19842                 combo box.
19843                 - Add ability to change diretory (absolute / relative)
19844                 using file name combo box.
19845
19846 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
19847          
19848         * ListBox.cs: 
19849                 - Fixes Multicolumn listboxes item wrong calculations
19850                 - Allows to click when only one item is in the listbox
19851                 - Fixes crash when no items using keyboard navigation
19852
19853 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
19854
19855         * ComboBox.cs: Reverted almost everything from the latest patch which
19856           broke ComboBox
19857
19858 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
19859         
19860         * ToolTip.cs:
19861                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
19862         * ComboBox.cs:
19863                 - When DropDownStyle is Simple, it does not show scrollbar 
19864                 to the last item of the list.
19865                 - When DropDownStyle is Simple, it crashed when the list was 
19866                 scrolled down with the down cursor key.
19867                 - Fixed a bug that when DropDownStyle is DropDownList, the 
19868                 selected item was not shown.
19869                 - The position of the selected item was not preserved when 
19870                 the next dropdown happened.
19871         * ThemeWin32Classic.cs:
19872                 - Items were wrapped at the right end.
19873         * CheckedListBox.cs:
19874                 - Fixed Add method
19875         * ListBox.cs:
19876                 - Items should be fully shown.
19877                 - When resizing and vertical scrollbar disappeared, the item 
19878                 of index 0 should be on the top of the list.
19879                 - GetItemRectangle should consider the size of ver. scrollbar
19880         * StatusBar.cs:
19881                 - SizingGrip area should not be allocated when it is not 
19882                 displayed.
19883                 - Now it reflects MinWidth of the containing panel and 
19884                 fixed a crash that happens when its width becomes so small.
19885
19886 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19887
19888         * CheckedListBox.cs: Fixes bug 76028
19889         * ListBox.cs: Fixes bug 76028
19890
19891 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
19892
19893         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
19894         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
19895
19896 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
19897
19898         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
19899
19900 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19901
19902         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
19903
19904 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
19905
19906         * IRootGridEntry.cs: Added
19907         * PropertyGridCommands.cs: Added
19908         * PropertiesTab.cs: Added missing methods and property
19909         * PropertyGridView.cs: Made class internal
19910         * PropertyGridTextBox.cs: Made class internal
19911
19912 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19913
19914         * MimeIcon.cs: Try to check some other environment variables
19915           if "DESKTOP_SESSION" returns "default"
19916
19917 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19918
19919         * ThemeNice.cs: Corrected background colors (e.g. menus)
19920         * ColorDialog.cs: Use correct background colors for controls
19921
19922 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
19923
19924         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
19925
19926 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
19927
19928         * RichTextBox.cs: Added initial implementation
19929         * lang.cs: Removed. Was accidentally checked in long time ago
19930         * TODO: Removed. Contents were obsolete
19931
19932 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19933                                                                                 
19934         * PropertiesTab.cs : Added
19935
19936 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
19937                                                                                 
19938         * PropertyGrid.cs : Update
19939         * PropertyGridView.cs : Update
19940         * System.Windows.Forms.resx : Added images and strings
19941
19942 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
19943
19944         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
19945  
19946 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
19947
19948         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
19949           a busy loop right after the Ungrab the X11 display is otherwise 
19950           blocked
19951
19952 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
19953
19954         * ThemeWin32Classic.cs: Optimise the use of clipping
19955
19956 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
19957
19958         * DataGrid.cs: fixes recursion bug
19959
19960 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
19961
19962         * ThemeNice.cs: 
19963           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
19964           - Cleanup
19965
19966 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
19967
19968         * ThemeNice.cs: Draw nice ProgressBars
19969
19970 2005-09-01  Miguel de Icaza  <miguel@novell.com>
19971
19972         * VScrollBar.cs: Another buglet found by Aaron's tool. 
19973
19974         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
19975         bug finder.
19976
19977 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
19978
19979         * ThemeNice.cs:
19980           - Added nicer menu drawing
19981           - Updated DrawTab
19982           - some refactoring
19983
19984 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
19985
19986         * CreateParams.cs (ToString): Made output match MS
19987         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
19988             handle is already created (to avoid forcing window creation)
19989         * XplatUIX11.cs: Set window text to caption after creating window,
19990           in case Text was set before window was created
19991         * Form.cs: Use this.Text instead of a static string as caption
19992
19993 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
19994
19995         * NotifyIcon.cs: Don't set the window to visible; this screws
19996           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
19997           OnPaint without a bitmap)
19998         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
19999           happen very often anyway; we could add the check to the WM_PAINT 
20000           event generation code
20001
20002 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
20003
20004         * NotifyIcon.cs: Fill the icon area with a background color, to 
20005           avoid 'residue' when transparent icons are drawn
20006         * XplatUIX11.cs:
20007           - Handle whole_window == client_window when destroying windows
20008           - SystrayAdd(): Set client_window to whole_window value to
20009             get mouse and other events passed to NotifyIcon
20010
20011 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
20012
20013         * Form.cs: Set proper default for Opacity property
20014         * NotifyIcon.cs:
20015           - ShowSystray(): Don't bother creating telling the OS
20016             about the systray item if no icon is provided
20017           - Now handles WM_NCPAINT message to deal with whole/client window
20018             split
20019           - Create window as visible to not get caught by Expose optimization
20020         * Hwnd.cs: Removed debug message
20021         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
20022           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
20023             PaintEventStart/End to use new client argument
20024         * TextBoxBase.cs:
20025           - Commented out debug messages
20026           - Switched PaintEventStart/End to use new client argument
20027         * XplatUI.cs: Added client window bool to PaintEventStart()/
20028           PaintEventEnd() calls, to support drawing in non-client areas
20029         * XplatUIDriver.cs: 
20030           - Added client window bool to PaintEventStart()/PaintEventEnd() 
20031             calls, to support drawing in non-client areas
20032           - Added conditional compile to allow using MWF BeginInvoke 
20033             on MS runtime
20034         * XplatUIX11.cs:
20035           - Added some conditional debug output
20036           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
20037             whole/client window split
20038           - Implemented handling of client argument to PaintEventStart()/End()
20039         * Control.cs:
20040           - Throw exception if BeginInvoke() is called and the window handle
20041             or one of the window's parent handles is not created
20042           - Added conditional compile to allow using MWF BeginInvoke on
20043             MS runtime
20044           - get_Parent(): Only sets parent if handle is created. This avoids
20045             forcing window handle creation when parent is set.
20046           - Now fires Layout and Parent changed events in proper order
20047           - Switched to use Handle instead of window.Handle for Z-Order setting,
20048             the get_Parent() patch above causes us to possibly get null for 'window'
20049           - Implemented handling of client argument to PaintEventStart()/End()
20050           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
20051             default handling)
20052           - Now sends a Refresh() to all child windows when Refresh() is called
20053
20054 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
20055
20056         * Form.cs: Added (non-functional) Opacity property
20057         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
20058
20059 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
20060         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
20061           use export MONO_THEME=nice to activate it.
20062           Currently supported controls:
20063           - Button
20064           - ComboBox
20065           - ScrollBar
20066           - TabControl (TabAlignment.Top only, other will follow)
20067         * ThemeEngine.cs: Add theme nice
20068         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
20069           if enabled
20070
20071 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
20072
20073         * Splitter.cs: Resize docked control and its neighbor.
20074
20075 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20076         -- Making Windows with Menus layout correctly --
20077         * Form.cs : The first leg of the fix
20078                 Menu setter - adjust Client Size as needed to make space for the menu
20079                 SetClientSizeCore - doesn't call base version to be able to pass the 
20080                         menu handle to XplatUI.CalculateWindowRect
20081         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
20082         * XplatUIX11.cs: The critical second leg of the fix
20083                 GetWindowPos needs to use a recalculated client_rect
20084                 so that resizing the window doesn't break layout of child controls. 
20085                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
20086                 Lots of \t\n killed
20087
20088 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
20089
20090         * Label.cs: Now properly recalculates width and height on Font and Text
20091           changes if AutoSize is set
20092
20093 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
20094         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
20095
20096 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
20097
20098         * ImageList.cs: Makes ToString method compatible with MS
20099
20100 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
20101
20102         * MenuAPI.cs: fixes bug 75716
20103
20104 2005-08-11 Umadevi S <sumadevi@novell.com>
20105         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
20106
20107 2005-08-11 Umadevi S <sumadevi@novell.com>
20108         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
20109
20110 2005-08-10  Umadevi S <sumadevi@novell.com>
20111         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
20112
20113 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
20114
20115         * Menu.cs: fixes bug 75700
20116         * MenuAPI.cs: fixes navigation issues
20117
20118 2005-08-09  Umadevi S <sumadevi@novell.com>
20119         * CheckedListBox.cs - simple fix for GetItemChecked.
20120
20121 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
20122
20123         * ComboBox.cs: Serveral fixes
20124         * ListBox.cs: Serveral fixes
20125
20126 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20127
20128         * ComboBox.cs: Fixes FindString methods and GetItemHeight
20129         * ListBox.cs: Fixes FindString methods
20130
20131 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
20132
20133         * DataGrid.cs: fixes bugs exposed by new tests
20134
20135 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
20136
20137         * Mime.cs: Compile Mono assembly references only if compiling
20138           with Mono (Allows to build with VS.Net again)
20139
20140 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
20141
20142         * Control.cs (PaintControlBackground): Draw background image
20143         corrrectly.
20144         (CheckForIllegalCrossThreadCalls): Stubbed.
20145         
20146         * Form.cs (OnCreateControl): Center when should be centered.
20147         
20148         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
20149
20150 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
20151
20152         * Binding.cs: Binding to properties should be case unsensitive
20153
20154 2005-07-18 vlindos@nucleusys.com
20155
20156         * DataGrid.cs: fixes setmember order
20157
20158 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
20159
20160         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
20161         * FileDialog.cs: FileDialog is now resizable and uses the new
20162           MimeIconEngine
20163
20164 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
20165
20166         * DataGridTextBoxColumn.cs: default value
20167         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
20168         * GridTableStylesCollection.cs: fixes checking MappingName
20169         * DataGridDrawingLogic.cs: fixes drawing logic issues
20170         * DataSourceHelper.cs: rewritten to make compatible with more data sources
20171         * DataGrid.cs: fixes    
20172
20173 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
20174
20175         * MimeGenerated.cs: Use case sensitive comparer for
20176           NameValueCollections
20177
20178 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
20179
20180         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
20181         * ThemeWin32Classic.cs: bug fixes, code refactoring
20182         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
20183         * DataGrid.cs: bug fixes, code refactoring
20184         * DataGridTextBox.cs: bug fixes, code refactoring
20185         * DataGridColumnStyle.cs:  bug fixes, code refactoring
20186         * Theme.cs:  bug fixes, code refactoring
20187
20188 2005-07-01  Peter Bartok  <pbartok@novell.com> 
20189
20190         * TextControl.cs: Quick fix for the reported crash on ColorDialog
20191           and other text box usage
20192
20193 2005-07-01  Jackson Harper  <jackson@ximian.com>
20194
20195         * TabControl.cs: Make sure the bottom of the tab covers the pages
20196         border.
20197
20198 2005-06-30  Peter Bartok  <pbartok@novell.com> 
20199
20200         * Form.cs (ShowDialog): Assign owner of the dialog
20201         * TextBoxBase.cs: Always refresh caret size when deleting, caret
20202           might have been moved to a tag with different height
20203
20204 2005-06-30  Jackson Harper  <jackson@ximian.com>
20205
20206         * Form.cs: Don't create an infinite loop when setting focus
20207         * MenuItem.cs: Don't dirty the parents if we don't have any
20208
20209 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
20210
20211         * LibSupport.cs: Rename
20212
20213 2005-06-29  Peter Bartok  <pbartok@novell.com>
20214
20215         * TextBoxBase.cs: Re-align caret after deleting a character
20216         * TextControl.cs:
20217           - DeleteChars(): Ensure that tag covers the provided position
20218           - StreamLine(): Drop reference for dropped tag
20219
20220 2005-06-29  Peter Bartok  <pbartok@novell.com> 
20221
20222         * TextControl.cs: 
20223           - Selections now work properly, anchoring at the initial location
20224             and properly extending in either direction (SetSelectionToCaret(),
20225             SetSelectionStart() and SetSelectionEnd())
20226           - No longer redraws the whole control on selection change, now
20227             calculates delta between previous and new selection and only
20228             invalidates/redraws that area
20229           - Fixed FindPos() math off-by-one errors
20230           - Changed DeleteChars() to verify the provided tag covers the
20231             provided position, selections may have a tag that doesn't cover
20232             the position if the selection is at a tag border
20233           - Fixed off-by-one errors in DeleteChars()
20234           - Added missing streamlining check in DeleteChars() to remove
20235             zero-length tags
20236           - Implemented Invalidate() method, now properly calculates exposures
20237             between two given lines/positions
20238           - Implemented SetSelection()
20239           - Obsoleted and removed FixupSelection()
20240           - Improved RecalculateDocument() logic, removing code duplication
20241
20242 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20243
20244         * LibSupport.cs: changes to match different input/output arguments.
20245
20246 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20247
20248         * LibSupport.cs: added libsupport.so init routine.
20249
20250 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
20251         
20252         * ControlBindingsCollection.cs
20253                 - Throws an exception on null datasource when adding
20254                 - Checks for duplicated bindings when adding
20255
20256 2005-06-28  Jackson Harper  <jackson@ximian.com>
20257
20258         * TreeView.cs (OnKeyDown): Support left and right properly
20259         (navigates as well as expanding and collapsing.
20260         - Add support for Multiply, this expands all the selected nodes
20261         children.
20262         - Fix some tabbing.
20263
20264 2005-06-28  Jackson Harper  <jackson@ximian.com>
20265
20266         * TreeView.cs: Implement keyboard navigation, currently supports,
20267         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
20268         support for toggling checkboxes with the space bar.
20269
20270 2005-06-28  Jackson Harper  <jackson@ximian.com>
20271
20272         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
20273         tree.
20274
20275 2005-06-28  Jackson Harper  <jackson@ximian.com>
20276
20277         * TreeView.cs: Add missing event.
20278
20279 2005-06-27  Peter Bartok  <pbartok@novell.com> 
20280
20281         * TextControl.cs:
20282           - Made line ending size configurable (now allows for counting 
20283             lineendings as \n or \r\n)
20284           - Added margin to viewport to keep caret visible on right side
20285           - Fixed translation routines for line/pos to documentpos to consider
20286             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
20287           - Fixed some line-endings to be unix style
20288           - Fixed Document.FormatText to perform it's calculations 1-based
20289           - Added descriptions for a few methods that might otherwise get 
20290             used wrong
20291           - Added NOTE section with some basic conventions to remember at 
20292             the top of the file
20293           - Major fixup for RichTextBox selection drawing:
20294             * Fixed crashes when multiple tags on a single line were selected
20295             * fixed selection box drawing not overlaying text
20296             * fixed bogus offset calculation for tags not starting at index 1
20297             * Switched behaviour from using multiple Substrings of a 
20298               StringBuilder.ToString() to using multiple 
20299               StringBuilder.ToString(start, length) statements, hoping this is
20300               faster (kept original version commented out in the code, in case
20301               original version was faster)
20302         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
20303           alignment != Left
20304         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
20305           call it as well
20306
20307 2005-06-27  Jackson Harper  <jackson@ximian.com>
20308
20309         * TabControl.cs: Move to the left and right with the arrow
20310         keys. These keys don't cycle beyond first and last like
20311         tab. Refresh all the tabs when scrolling them to the left or
20312         right.
20313
20314 2005-06-27  Jackson Harper  <jackson@ximian.com>
20315
20316         * TabControl.cs:
20317           - ToString: Added method
20318           - CreateParams: Remove TODO and comment
20319           - OnKeyDown: Cycle through bounds properly.
20320           - SelectedIndex: Scroll to the right or left if we need to
20321           display the newly selected tab.
20322
20323 2005-06-23  Jackson Harper  <jackson@ximian.com>
20324
20325         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
20326         set.
20327
20328 2005-06-23  Jackson Harper  <jackson@ximian.com>
20329
20330         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
20331         CTRL-SHIFT-TAB, and HOME, END are there any others?
20332
20333 2005-06-23  Jackson Harper  <jackson@ximian.com>
20334
20335         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
20336
20337 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20338         
20339         * DataGridTextBoxColumn.cs: fixes and enhancements
20340         * ThemeWin32Classic.cs: fixes and enhancements
20341         * DataGridBoolColumn.cs:  fixes and enhancements
20342         * DataGridDrawingLogic.cs:  fixes and enhancements
20343         * CurrencyManager.cs: fixes and enhancements
20344         * DataGrid.cs: fixes and enhancements
20345         * DataGridColumnStyle.cs:  fixes and enhancements
20346
20347 2005-06-22  Jackson Harper  <jackson@ximian.com>
20348
20349         * TabControl.cs: Add some missing methods that just call into the
20350         base. Make the TabPageCollection's IList interface behave in the
20351         same manner as the MS implementation.
20352
20353 2005-06-22  Peter Bartok  <pbartok@novell.com> 
20354
20355         * TextControl.cs: Added sanity check
20356         * TextBoxBase.cs: 
20357           - Fixed wrapping behaviour, don't set wrap on single line controls
20358             (this fixes the breakage of colordialog introduced in an earlier
20359              checkin)
20360           - Added rudimentary support for autoscrolling right-aligned controls
20361             (still needs fixing, also, center alignment scroll is missing)
20362
20363 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
20364         
20365         * ScrollBar.cs: Fixes thumbpos on Maximum values
20366
20367 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
20368         
20369         * PropertyGridView.cs: Pass context information to UITypeEditors 
20370
20371 2005-06-21  Peter Bartok  <pbartok@novell.com> 
20372
20373         * TextBoxBase.cs:
20374           - Now calling PositionCaret with absolute space coordinates
20375           - Enabled vertical scrolling
20376           - Better tracking of scrollbar changes, tied into WidthChange
20377             event
20378           - Improved cursor tracking
20379           - Removed debug output
20380         * TextControl.cs:
20381           - PositionCaret coordinates are now works in absolute space, not 
20382             the canvas
20383           - Improved tracking of document size
20384           - Added events for width and height changes
20385
20386 2005-06-21  Peter Bartok  <pbartok@novell.com>
20387
20388         * Form.cs: Set focus to active control when form is activated
20389         * TextControl.cs: 
20390           - Added word-wrap functionality to RecalculateLine() 
20391           - Added some short function descriptions for VS.Net to aid in
20392             writing dependent controls
20393           - Added Caret property, returning the current coords of the caret
20394           - Added ViewPortWidth and ViewPortHeight properties
20395           - Added Wrap property
20396           - Added CaretMoved event
20397           - Removed some old debug code
20398           - Split() can now create soft splits
20399           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
20400           - Added method to format existing text
20401           - Fixed size/alignment calculations to use viewport
20402           - RecalculateDocument now can handle changing line-numbers while
20403             calculating lines
20404
20405         * TextBox.cs:
20406           - Added some wrap logic, we don't wrap if alignment is not left
20407           - Added casts for scrollbar var, base class switched types to
20408             also support RichTextBoxA
20409           - Implemented handling of scrollbar visibility flags
20410
20411         * TextBoxBase.cs:
20412           - Switched scrollbars type to RichTextBoxScrollBars to support
20413             RichTextBox
20414           - Added tracking of canvas width/height
20415           - Switched scrollbars to be not selectable (to keep focus on text)
20416           - Added central CalculateDocument() method to handle all redraw
20417             requirements
20418           - Added ReadOnly support
20419           - Added WordWrap support
20420           - Fixed handling of Enter key (we now treat it as a DialogKey)
20421           - Fixed caret positioning when h or v scroll is not zero
20422           - Fixed placing/generation of vertical scrollbar
20423           - Added CalculateScrollBars() method to allow updating scrollbar
20424             limits and visibility
20425           - Fixed handling of horizontal scroll
20426           - Added handling of vertical scroll
20427           - Implemented auto-'jump' when caret moves to close to a left or
20428             right border and there is text to be scrolled into view (currently
20429             there's the potential for a stack overflow, until a bug in
20430             scrollbar is fixed)
20431
20432 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
20433         
20434         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
20435
20436 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
20437
20438         * Mime.cs:
20439         - added inodes.
20440         - return application/x-zerosize for files with size zero
20441           (if no extension pattern matches).
20442         - check matches collection for strings too.
20443         - return only the first mime type if the name value
20444           collection has more than one mime type.
20445
20446 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
20447         
20448         * PropertyGrid.cs: Cleaned up some TODOs
20449         * PropertyGridView.cs: Added support for UITypeEditors
20450
20451 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20452         
20453         * DataGrid.cs: clears cached value
20454
20455 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
20456
20457         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
20458         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
20459         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
20460         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
20461         
20462 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
20463
20464         * ThemeWin32Classic.cs: fixes colour
20465
20466 2005-06-15  Peter Bartok  <pbartok@novell.com>
20467
20468         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
20469         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
20470         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
20471         * Control.cs: Added some MWFCategory and MWFDescription attributes
20472         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
20473
20474 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
20475
20476         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
20477         usage
20478
20479 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
20480
20481         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
20482         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
20483         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
20484         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
20485         * DataGrid.cs: default datagrid settings for Default Styles, fixes
20486         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
20487
20488 2005-06-13  Jackson Harper  <jackson@ximian.com>
20489
20490         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
20491         isn't printed when the user enables dropping. (X11 does accept
20492         drops).
20493         
20494 2005-06-13  Jackson Harper  <jackson@ximian.com>
20495
20496         * TreeView.cs: Remove some TODOS.
20497
20498 2005-06-13  Jackson Harper  <jackson@ximian.com>
20499
20500         * Form.cs: Hook into the mdi framework.
20501         * MdiClient.cs: Use the base control collections add method so
20502         parents get setup correctly. Set the default back colour and dock
20503         style.
20504         * MdiChildContext.cs: New class, this bad actor handles an
20505         instance of an MDI window. Right now there is only basic
20506         support. You can drag, close, and resize windows. Minimize and
20507         Maximize are partially implemented.
20508
20509 2005-06-13  Jackson Harper  <jackson@ximian.com>
20510
20511         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
20512         freaky when both vals are negative. NOTE: There are probably other
20513         places in XplatUIX11 that this needs to be done.
20514
20515 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
20516
20517         * DataGrid.cs: implement missing methods, move KeyboardNavigation
20518         * DataGridColumnStyle.cs: fixes signature
20519
20520 2005-06-12  Jackson Harper  <jackson@ximian.com>
20521
20522         * XplatUIX11.cs: Use sizing cursors similar to the ones on
20523         windows.
20524
20525 2005-06-11  Jackson Harper  <jackson@ximian.com>
20526
20527         * StatusBarPanel.cs: Signature cleanups. Implement
20528         BeginInit/EndInit.
20529
20530 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
20531
20532         * DataGridTextBoxColumn.cs: Honors aligment
20533         * GridColumnStylesCollection.cs: Contains is case unsensitive
20534         * GridTableStylesCollection.cs: several fixes
20535         * DataGridTableStyle.cs: default column creation
20536         * DataGridDrawingLogic.cs: fixes
20537         * CurrencyManager.cs: ListName property
20538         * DataGrid.cs: multiple styles support
20539         * DataGridColumnStyle.cs: fixes
20540         
20541
20542 2005-06-10  Peter Bartok  <pbartok@novell.com>
20543
20544         * Control.cs(Select): Moved SetFocus call to avoid potential
20545           loops if controls change the active control when getting focus
20546         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
20547           the up/down buttons
20548
20549 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
20550
20551         * ImageListConverter.cs: Implemented
20552
20553 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20554
20555         * MonthCalendar.cs: Wired in NumericUpDown control for year
20556
20557 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
20558
20559         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
20560           DoubleClick events, since they are not meant to be fired.
20561
20562 2005-06-09  Peter Bartok  <pbartok@novell.com>
20563
20564         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
20565           Jonathan's standalone controls into MWF, implemented missing
20566           events, attributes and methods; added xxxAccessible classes
20567         * AccessibleObject.cs: Made fields internal so other classes
20568           can change them if needed
20569
20570 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
20571
20572         * UpDownBase.cs: Complete implementation
20573         * NumericUpDown.cs: Complete implementation
20574         * DomainUpDown.cs: Complete implementation
20575
20576 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
20577
20578         * DataGridTextBoxColumn.cs: drawing fixes
20579         * DataGridCell.cs: fixes ToString method to match MSNet
20580         * DataGridTableStyle.cs: fixes
20581         * DataGridBoolColumn.cs: fixes, drawing
20582         * DataGridDrawingLogic.cs: fixes, new methods
20583         * DataGridTextBox.cs: Keyboard and fixes
20584         * DataGrid.cs:
20585                 - Keyboard navigation
20586                 - Scrolling fixes
20587                 - Row selection (single, multiple, deletion, etc)
20588                 - Lots of fixes
20589         
20590 2005-06-07  Jackson Harper  <jackson@ximian.com>
20591
20592         * ThemeWin32Classic.cs: Clear the background area when drawing
20593         buttons.
20594
20595 2005-06-06  Peter Bartok  <pbartok@novell.com>
20596
20597         * ImageListStreamer.cs: Fixed signature for GetData
20598         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
20599         * ComboBox.cs:
20600           - Added missing ChildAccessibleObject class
20601           - Added missing OnXXXFocus overrides, switched to using those
20602             instead of the event handler
20603         * Control.cs:
20604           - Added Parent property for ControlAccessibleObject
20605           - Fixed signatures
20606           - Fixed attributes
20607           - Added ResetBindings()
20608         * ListBindingConverter.cs: Implemented some methods
20609         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
20610         * ImageList.cs: Implemented basic handle scheme, removed TODOs
20611         * ContainerControl.cs: Fixed signature, now subscribing to the
20612           ControlRemoved event instead of overriding the handler, LAMESPEC
20613         * CurrencyManager.cs: Added missing attribute
20614         * MonthCalendar.cs: Added missing properties
20615
20616 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20617
20618         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
20619         
20620 2005-06-06  Gaurav Vaish and Ankit Jain
20621
20622         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
20623         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
20624         
20625 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
20626
20627         * Control.cs: fixes CreateParams Width / Height.
20628
20629 2005-06-05  Peter Bartok  <pbartok@novell.com>
20630
20631         * Win32DnD.cs: Removed compilation warnings
20632
20633 2005-06-05  Peter Bartok  <pbartok@novell.com>
20634
20635         * Control.cs (CreateParams): Since we don't know if one of the
20636           properties we use is overridden, lets make sure if we fail accessing
20637           we continue with a backup plan
20638
20639 2005-06-05  Peter Bartok  <pbartok@novell.com>
20640
20641         * Win32DnD.cs:
20642           - Removed debug output
20643           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
20644             struct
20645           - Plugged resource leak
20646         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
20647           MS size
20648
20649 2005-06-05  Peter Bartok  <pbartok@novell.com>
20650
20651         * XplatUIWin32.cs: Removed DnD code
20652         * Win32DnD.cs: Implemented drop source and drop target functionality
20653
20654 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
20655
20656         * UpDownBase.cs: remove duplicate addition of event, enable some code
20657         that was commented out.
20658         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
20659         Validate input when a key is pressed. It works fine now for every
20660         combination of Hexadecimal. Only missing some drawing love when sharing
20661         space with other controls.
20662
20663 2005-06-04  Peter Bartok  <pbartok@novell.com>
20664
20665         * Control.cs:
20666           - We need to pass a window for DragDrop, so enable callback events
20667           - Added DnD callback events when being a DragSource
20668         * XplatUI.cs (StartDrag): Added window handle argument
20669         * XplatUIDriver.cs (StartDrag): Added window handle argument
20670         * QueryContinueDragEventArgs: Made fields internally accessible so
20671           drivers can set them
20672         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
20673           can set them
20674
20675 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
20676
20677         * DataGridTextBoxColumn.cs: column text editing
20678         * DataGridTableStyle.cs: Respect columns styles created by the user
20679         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
20680         * DataGridBoolColumn.cs: bool column editing
20681         * DataGrid.cs: fixes to scrolling, properties, etc
20682         * DataGridTextBox.cs: handle keyboard
20683         * DataGridColumnStyle.cs: fixes
20684
20685 2005-06-02  Jackson Harper  <jackson@ximian.com>
20686
20687         * ImageListStreamer.cs: Somewhat broken implementation of
20688         GetObjectData. The RLE needs some work to match MS properly.
20689
20690 2005-06-02  Jackson Harper  <jackson@ximian.com>
20691
20692         * X11Dnd.cs: Attempting to keep at least one file in MWF
20693         monostyled.
20694
20695 2005-06-02  Peter Bartok  <pbartok@novell.com>
20696
20697         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
20698           that way
20699
20700 2005-06-02  Peter Bartok  <pbartok@novell.com>
20701
20702         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
20703         * XplatUI.cs: Added DoDragDrop() method
20704         * XplatUIDriver.cs: Added DoDragDrop() method
20705
20706 2005-06-02  Jackson Harper  <jackson@ximian.com>
20707
20708         * Splitter.cs: Implement BorderStyle.
20709
20710 2005-06-02  Jackson Harper  <jackson@ximian.com>
20711
20712         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
20713         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
20714         X11 using XDND.
20715
20716 2005-06-02  Peter Bartok  <pbartok@novell.com>
20717
20718         * DataObject.cs:
20719           - Added Data setter
20720           - Fixed broken insertion code for SetData, now also
20721             overwrites any existing entry of the same format name
20722         * Hwnd.cs: Added list of pointers that automatically gets
20723           freed when the window is disposed
20724         * XplatUI.cs: Call driver initialization method when loading
20725           a driver
20726         * Control.cs:
20727           - OnDragLeave takes EventArgs, not DragEventArgs
20728           - Added setting of WS_EX_ACCEPTFILES style when dropping is
20729             supported
20730           - Forces style update when drop state changes
20731         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
20732           not perfect since we cannot (yet) call the IDataObject.GetData()
20733           method, we keep getting 0x80004005 error, dunno why)
20734
20735 2005-06-02  Peter Bartok  <pbartok@novell.com>
20736
20737         * DragEventArgs.cs: Make fields internal so we can cache the
20738           object and re-set the fields from XplatUI
20739
20740 2005-06-02  Jackson Harper  <jackson@ximian.com>
20741
20742         * Control.cs: Add some internal methods so the DnD subsystem can
20743         raise DnD events. Also call into the driver when AllowDrop is set.
20744         * XplatUI.cs:
20745         * XplatUIDriver.cs: New method for setting whether or not a window
20746         is allowed to accept drag and drop messages.
20747                 
20748 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
20749         
20750         * ScrollBar.cs: Make sure that values sent in Scroll events
20751         are always between Maximum and Minimum.
20752
20753 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
20754
20755         * Menu.cs: Call MenuChanged when menuitem visibility has been
20756         changed.
20757         * MenuItem.cs: Rebuild menu when item is (not) visible.
20758         * MainMenu.cs: MainMenu has special MenuChanged.
20759         * Theme.cs: Caption and FrameBorderSize are not fixed.
20760         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
20761         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
20762         * XplatUIX11.cs,
20763         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
20764         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
20765
20766 2005-05-30  Jackson Harper  <jackson@ximian.com>
20767
20768         * DataFormat.cs: We can't statically initialize this stuff because
20769         it calls into the xplatui and could create a loop. So we lazy init
20770         it.
20771
20772 2005-05-28  Jackson Harper  <jackson@ximian.com>
20773
20774         * Control.cs: Proper implementation of Product(Name/Version).
20775
20776 2005-05-27  Jackson Harper  <jackson@ximian.com>
20777
20778         * DataObject.cs: Dont crash if no data is found.
20779
20780 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
20781         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
20782                 as per status page, guessing it should be set to true
20783
20784 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
20785
20786         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
20787         * DataGridTableStyle.cs: set proper formatting text, def header text
20788         * ThemeWin32Classic.cs: new themable paramaters
20789         * DataGridBoolColumn.cs: paint check box, get data, fixes
20790         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
20791         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
20792         * DataGridColumnStyle.cs: fixes
20793         * Theme.cs: new themable paramaters
20794                 
20795 2005-05-26  Peter Bartok  <pbartok@novell.com>
20796
20797         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
20798
20799 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20800         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
20801
20802 2005-05-24  Peter Bartok  <pbartok@novell.com>
20803
20804         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
20805           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
20806           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
20807           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
20808           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
20809           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
20810           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
20811           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
20812           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
20813           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
20814           missing attributes, etc
20815         * DataGridPreferredColumnWidthTypeConverter.cs: Added
20816
20817 2005-05-24  Peter Bartok  <pbartok@novell.com>
20818
20819         * Help.cs: Added, implemented trivial functions, throws up MessageBox
20820           when user tries to get help
20821         * DataObject.cs, DataFormats.cs, LinkArea.cs,
20822           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
20823           to suppress warnings
20824         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
20825           avoid unreachable code warning
20826
20827 2005-05-20  Peter Bartok  <pbartok@novell.com>
20828
20829         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
20830
20831 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20832
20833         * DataGridTextBoxColumn.cs: Basic painting methods
20834         * DataGridTableStyle.cs: Set table style in the column
20835         * ThemeWin32Classic.cs: Use Theme for colors
20836         * DataGridDrawingLogic.cs: Implement more drawing
20837         * DataGrid.cs: drawing, theming, enhacements, fixes
20838         * DataGridColumnStyle.cs: fixes, drawing
20839         * Theme.cs: theming for Datagrid
20840
20841 2005-05-20  Peter Bartok  <pbartok@novell.com>
20842
20843         * Cursor.cs: Implemented GetObjectData() method
20844
20845 2005-05-20  Peter Bartok  <pbartok@novell.com>
20846
20847         * Cursors.cs: Added setting of cursor name
20848         * Cursor.cs:
20849           - Implemented constructors
20850           - Implemented Draw and DrawStretched
20851           - Implemented Current property
20852           - Implemented == and != operators
20853           - Implemented Dispose()
20854           - Implemented ToString
20855           - Added missing attributes
20856         * XplatUIX11.cs:
20857           - Added missing reset for OverrideCursor when DoEvents is called
20858           - Fixed creation of cursor, logic was wrong
20859         * XplatUIWin32.cs:
20860           - Added missing reset for OverrideCursor when DoEvents is called
20861           - Fixed creation of cursor, bit arrays were swapped
20862         * Clipboard.cs: Removed obsolete MonoTODO attribute
20863
20864 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20865
20866         * ComboBox.cs: fixes OnSelectedItemChanged
20867         * ControlBindingsCollection.cs: fixes item range check
20868
20869 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
20870
20871         * UpDownBase.cs:
20872                 - Calc preferred height properly
20873                 - Implement missing properties
20874                 
20875         * NumericUpDown.cs: Implement missing events
20876
20877 2005-05-19  Jackson Harper  <jackson@ximian.com>
20878
20879         * TabControl.cs: New method that resizes the tab pages before
20880         redrawing them. This as needed as the control is double buffered
20881         and sizing will not be recalculated unless ResizeTabPages is
20882         called.
20883         * TabPage.cs: Set base.Text instead of Text in the constructor so
20884         that UpdateOwner does not get called. Use the new Redraw method of
20885         TabControl instead of Refresh so the sizing is recalculated.
20886         * ThemeWin32Classic.cs: Draw the text for button tabs.
20887
20888 2005-05-19  Jackson Harper  <jackson@ximian.com>
20889
20890         * Control.cs: Paint control background images. Fix typo where
20891         PaintControlBackground was not getting called correctly.
20892
20893 2005-05-19  Peter Bartok  <pbartok@novell.com>
20894
20895         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
20896           I can investigate, apparently I broke FileDialog
20897
20898 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
20899
20900         * AxHost.cs: Some simple properties.
20901         * Control.cs: window must be accessible after ctor.
20902         * Form.cs: Added TransparencyKey property.
20903         * TextBoxBase.cs: Implemented Clear. Text property can be null.
20904         * XplatUIWin32.cs: SetBorderStyle implemented.
20905
20906 2005-05-18  Peter Bartok  <pbartok@novell.com>
20907
20908         * DataObject.cs: Entries are not global but particular to the
20909           DataObject, now it behaves that way
20910         * XplatUIWin32.cs: Implemented Clipboard methods
20911         * Clipboard.cs: Implemented
20912         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
20913         * XplatUIOSX.cs: Updated to final clipboard prototypes
20914         * XplatUIX11.cs: Implemented Clipboard methods
20915         * XplatUIDriver.cs: Updated to final clipboard prototypes
20916         * XplatUIStructs.cs:
20917           - Added BITMAPINFOHEADER struct
20918           - Added ClipboardFormats enum
20919         * X11Structs.cs:
20920           - Added ClipboardStruct
20921           - Added Atom enum items for clipboard types
20922           - Fixed atom types for Selection event structures
20923         * DataFormats.cs:
20924           - Added internal properties and methods for drivers to enumerate
20925             all known formats
20926           - Switched initialization method to allow drivers to assign their
20927             own IDs even for the MS predefined clipboard IDs
20928         * XplatUI.cs: Updated to final clipboard interface
20929
20930 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20931         * PropertyGridView.cs: Fixed compiler warnings.
20932
20933 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
20934         * PropertyGrid.cs: Added some event calls
20935         * PropertyGridView.cs: Change drawing code to use double buffering
20936         * PropertyGridTextBox.cs: Changed Text property name
20937         * GridItem.cs: Added Bounds property.
20938         * GridEntry.cs: Added Bounds property.
20939
20940 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
20941
20942         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
20943         since GetType() may not return the correct type if the object is
20944         a remoting proxy.
20945
20946 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
20947
20948         * TreeNodeCollection.cs: fixes get/set item ranges
20949         
20950 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20951
20952         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
20953                 
20954 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
20955
20956         * ComboBox.cs: Fix item range comparation
20957         * ListView.cs: Fix item range comparation
20958
20959 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
20960
20961         * FontDialog.cs:
20962           - Clear example panel when OnPaint is called
20963           - Better solution for displaying the example panel text
20964           - Select default indexes in the ListBoxes
20965
20966 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20967
20968         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
20969
20970 2005-05-11  Peter Bartok  <pbartok@novell.com>
20971
20972         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
20973         * SelectionRangeConverter.cs: Implemented
20974         * PropertyGrid.cs: Fixed attribute value
20975         * Control.cs:
20976           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
20977           - Added Sebastien Pouliot's CAS Stack Propagation fixes
20978         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
20979           that's common to all drivers. First methods to go there are
20980           Sebastien Pouliot's CAS Stack Propagation helper methods
20981         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
20982           Sebastien Pouliot for CAS Stack Propagation
20983
20984 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
20985
20986         * OSXStructs.cs:
20987           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
20988
20989 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
20990
20991         * DataGridTextBoxColumn.cs: fixed some members
20992         * GridColumnStylesCollection.cs: indexed column is case insensitive
20993         * DataGridTableStyle.cs: fixes
20994         * ThemeWin32Classic.cs: add new theme parameter
20995         * Theme.cs: add new theme parameter
20996         * DataGridDrawingLogic.cs: Datagrid's drawing logic
20997         * DataGrid.cs: fixes, new internal properties, etc.
20998         * DataGridColumnStyle.cs: allows to set grid value
20999         *
21000
21001 2005-05-10  Peter Bartok  <pbartok@novell.com>
21002
21003         * AccessibleObject.cs:
21004           - Removed MonoTODO attribute on help, method is correct
21005           - Fixed Bounds property
21006         * AxHost.cs: Moved MonoTODO
21007         * ButtonBase.cs: Now setting AccessibleObject properties
21008         * RadioButton.cs: Setting proper AccessibleObject role
21009         * CheckBox.cs: Setting proper AccessibleObject role
21010         * ControlBindingsCollection.cs: Added properties, methods and attributes
21011         * DataFormats.cs: Fixed awkward internal API, and changed to enable
21012           userdefined DataFormats.Format items as well
21013         * ListControl.cs: Removed data_member from the public eye
21014         * OpenFileDialog.cs:
21015           - Made class sealed
21016           - Added missing attributes
21017         * SaveFileDialog.cs: Added missing attributes
21018         * ImageListStreamer.cs: Fixed code that caused warnings
21019         * LinkLabel.cs: Removed unreachable code
21020         * TreeView.cs: Fixed code that caused warnings
21021         * PropertyGridView.cs: Fixed code that caused warnings
21022         * GridColumnStylesCollection.cs: Added missing attributes
21023         * GridTableStylesCollection: Added missing attribute
21024         * PropertyManager: Added .ctor
21025         * SecurityIDType: Added
21026         * DataObject.cs: Implemented class
21027         * LinkArea.cs: Added missing attribute
21028
21029 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
21030
21031         * RadioButton.cs: call base method to allow to fire OnClick event
21032         * UpDownBase.cs: OnMouseUp call base method
21033         * CheckedListBox.cs: call base method before returning
21034         * TrackBar.cs: call base method before returning
21035         
21036
21037 2005-05-10  Peter Bartok  <pbartok@novell.com>
21038
21039         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
21040           for messages
21041
21042 2005-05-10  Peter Bartok  <pbartok@novell.com>
21043
21044         * DataFormats.cs: Implemented
21045         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
21046           XplatUIX11.cs: Added Clipboard APIs
21047         * XplatUIWin32.cs: Implemented Clipboard APIs
21048         * FolderBrowserDialog.cs: Added missing event, attributes
21049
21050 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
21051
21052         * CheckBox.cs: call base method to allow to fire OnClick event
21053
21054 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
21055
21056         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
21057
21058 2005-05-06  Peter Bartok  <pbartok@novell.com>
21059
21060         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
21061         * Screen.cs: Implemented
21062         * HelpNavigator.cs: Added
21063         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
21064           property
21065         * HelpProvider.cs: Implemented all we can do until we have a CHM
21066           help library (which means that "What's This" does work now)
21067
21068 2005-05-06  Jackson Harper  <jackson@ximian.com>
21069
21070         * XplatUIX11.cs: Fix waking up the main loop.
21071                 
21072 2005-05-05  Peter Bartok  <pbartok@novell.com>
21073
21074         * XplatUI.cs: Updated revision
21075         * Form.cs: Removed enless loop
21076         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
21077         * Label.cs (OnPaint): Added call to base.OnPaint()
21078         * ToolTip.cs: Made ToolTipWindow reusable for other controls
21079         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
21080         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
21081         * AxHost.cs: Added
21082         * ButtonBase.cs: Moved base.OnPaint() call to end of method
21083         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
21084           to ToolTip.ToolTipWindow for drawing and size methods; this allows
21085           reuse of ToolTipWindow by other controls
21086         * SizeGrip.cs: Moved base.OnPaint() call to end of method
21087         * XplatUIX11.cs: Now clipping drawing area (experimental)
21088         * PictureBox.cs: Moved base.OnPaint() call to end of method
21089         * Theme.cs: Fixed ToolTip abstracts to match new format
21090         * ErrorProvider.cs: Implemented
21091
21092 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
21093
21094         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
21095         * LinkLabel.cs:
21096                 - Adds cursors
21097                 - Handles focus
21098                 - Implements LinkBehavior
21099                 - Fixes many issues
21100
21101 2005-05-03  Jackson Harper  <jackson@ximian.com>
21102
21103         * ListView.cs: Calculate the scrollbar positioning on resize and
21104         paint, so they get put in the correct place.
21105
21106 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
21107
21108         * ColorDialogs.cs: The small color panels are now handled by
21109           SmallColorControl. This fixes drawing of the focus rectangle
21110           and adds a 3D border.
21111
21112 2005-05-03  Peter Bartok  <pbartok@novell.com>
21113
21114         * Control.cs: Modified version of Jonathan Chamber's fix for
21115           double-buffering
21116
21117 2005-05-03  Jackson Harper  <jackson@ximian.com>
21118
21119         * ListView.cs: Remove redraw variable. Control now handles whether
21120         or not a redraw needs to be done, and will only raise the paint
21121         event if redrawing is needed.
21122
21123 2005-05-03  Jackson Harper  <jackson@ximian.com>
21124
21125         * Splitter.cs: No decorations for the splitter form. Cache the
21126         hatch brush.
21127
21128 2005-05-03  Jackson Harper  <jackson@ximian.com>
21129
21130         * TreeView.cs: Use dashed lines to connect nodes. Use the
21131         ControlPaint method for drawing the focus rect instead of doing
21132         that in treeview.
21133
21134 2005-05-02  Peter Bartok  <pbartok@novell.com>
21135
21136         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
21137
21138 2005-04-29  Jackson Harper  <jackson@ximian.com>
21139
21140         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
21141         entire image buffer. Just clear the clipping rectangle.
21142
21143 2005-04-29  Jackson Harper  <jackson@ximian.com>
21144
21145         * ThemeWin32Classic.cs: Don't draw list view items that are
21146         outside the clipping rectangle.
21147
21148 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
21149
21150         * ListBox.cs: added horizontal item scroll
21151
21152 2005-04-29  Jackson Harper  <jackson@ximian.com>
21153
21154         * ThemeWin32Classic.cs: Remove some old debug code that was
21155         causing flicker with the new double buffering code.
21156
21157 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
21158
21159         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
21160         behave like combobox and comboboxlist (still not sure if this is
21161         correct though).
21162
21163 2005-04-28  Jackson Harper  <jackson@ximian.com>
21164
21165         * ThemeWin32Classic.cs: Don't fill the middle of progress
21166         bars. This fills areas outside of the clip bounds that don't need
21167         to be filled.
21168
21169 2005-04-28  Jackson Harper  <jackson@ximian.com>
21170
21171         * Control.cs: Don't expose functionality to touch the image buffers.
21172         * ProgressBar.cs:
21173         * ListView.cs: We do not need to (and no longer can) manipulate
21174         the image buffers directly. All of this is handled by Control.
21175
21176 2005-04-28  Peter Bartok  <pbartok@novell.com>
21177
21178         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
21179           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
21180           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
21181
21182 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21183
21184         * Combobox:
21185                 - Adjust control's height for non-simple comboboxes (bug fix)
21186                 - Remove dead code
21187         * MenuAPI.cs: remove unused var
21188         * ScrollBar.cs: remove unsed var
21189                  
21190         * ListBox.cs: unselect items when clearing
21191
21192 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
21193
21194         * ListControl.cs: honors OnPositionChanged and default Selected Item
21195         * ListBox.cs: unselect items when clearing
21196
21197 2005-04-27  Jackson Harper  <jackson@ximian.com>
21198
21199         * X11Keyboard.cs: Initialize a default keyboard and give a warning
21200         if a "correct" keyboard is not found. This will make us not crash,
21201         but might give some users bad keyboard layouts...seems to be the
21202         same thing rewind does.
21203
21204 2005-04-27  Jackson Harper  <jackson@ximian.com>
21205
21206         * BindingManagerBase.cs: Attach the current/position changed
21207         handlers to their respective events.
21208
21209 2005-04-27  Jackson Harper  <jackson@ximian.com>
21210
21211         * Control.cs: Make sure that the first WM_PAINT does a full draw,
21212         not just a blit.
21213         * ThemeWin32Classic.cs: Don't fill the background for picture
21214         boxes. This could overright user drawing.
21215         * ComboBox.cs: Just fill the clipping rect not the entire client
21216         rect when drawing the background. This prevents pieces of the
21217         image buffer from getting overwritten and is theoretically faster.
21218
21219 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
21220
21221         * ComboBox.cs: Databinding support fixes, fire missing events
21222         * ListControl.cs: implement missing methods and properties, fixes
21223         * ThemeWin32Classic.cs: Databiding support on Drawing
21224         * CheckedListBox.cs: Databinding support fixes, fire missing events
21225         * ListBox.cs: Databinding support fixes, fire missing events
21226         
21227 2005-04-25  Peter Bartok  <pbartok@novell.com>
21228
21229         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
21230
21231 2005-04-25  Jackson Harper  <jackson@ximian.com>
21232
21233         * TreeView.cs: Use the horizontal scrollbars height not width when
21234         determining how much of the client area is available.
21235
21236 2005-04-25  Jackson Harper  <jackson@ximian.com>
21237
21238         * Control.cs: Double buffering is handled differently now. As per
21239         the spec, the extra buffer is created in the WM_PAINT message and
21240         passed down to the control's drawing code.
21241         * GroupBox.cs:
21242         * Label.cs:
21243         * CheckBox.cs:
21244         * ProgressBar.cs:
21245         * RadioButton.cs:
21246         * ColorDialog.cs:
21247         * ComboBox.cs:
21248         * PropertyGridView.cs:
21249         * UpDownBase.cs:
21250         * MessageBox.cs:
21251         * MenuAPI.cs:
21252         * ListView.cs:
21253         * ButtonBase.cs:
21254         * SizeGrip.cs:
21255         * ScrollBar.cs:
21256         * ListBox.cs:
21257         * TrackBar.cs:
21258         * ToolBar.cs:
21259         * PictureBox.cs:
21260         * DateTimePicker.cs:
21261         * StatusBar.cs:
21262         * TreeView.cs: Update to new double buffering system.
21263         * MonthCalendar.cs: Uncomment block, as Capture is now
21264         working. Update to new double buffering
21265         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
21266         * PaintEventArgs.cs: New internal method allows us to set the
21267         graphics object. This is used for double buffering.
21268         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
21269         rectangle. The internal paint_area var has been removed from
21270         StatusBar. The clipping rect should be used instead.
21271         * Theme.cs: Give the PictureBox drawing method a clipping rect.
21272         * TabPage.cs: The RefreshTabs method was removed, so just call the
21273         tab controls Refresh method now.
21274         * TabControl.cs: Update to new double buffering. Make sure the
21275         handle is created before sizing the tab pages, otherwise we will
21276         get stuck in a loop.
21277
21278 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
21279
21280         * LinkLabel.cs: Fix typo, bug #74719; patch
21281           from Borja Sanchez Zamorano
21282
21283 2005-04-22  Jackson Harper  <jackson@ximian.com>
21284
21285         * TreeNode.cs: Implement Handle stuff.
21286         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
21287
21288 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
21289
21290         * DataGridTextBoxColumn.cs: call base constructors, fixes
21291         * GridColumnStylesCollection.cs: missing events, methods, and functionality
21292         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
21293         * DataGridTableStyle.cs: implements create default column styles
21294         * DataGridBoolColumn.cs: which types can handle
21295         * DataGrid.cs: missing methods, fixes, new functionality
21296         * DataGridColumnStyle.cs: fixes
21297
21298 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
21299         * FolderBrowserDialog.cs:
21300         - Use a thread to fill the TreeView
21301         - Adjusted some sizes
21302
21303 2005-04-19  Peter Bartok  <pbartok@novell.com>
21304
21305         * LinkLabel.cs: (Re-)create the pieces when setting the Text
21306           property. Fixes #74360.
21307
21308 2005-04-19  Jackson Harper  <jackson@ximian.com>
21309
21310         * XEventQueue.cs: Lock when getting the lockqueue size.
21311         * PictureBox.cs: Call base OnPaint
21312         
21313 2005-04-19  Peter Bartok  <pbartok@novell.com>
21314
21315         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
21316           messages were no longer being processed (this broke BeginInvoke)
21317
21318           
21319 2005-04-18  Jackson Harper  <jackson@ximian.com>
21320
21321         * TreeView.cs: buglet that caused node images to get drawn
21322         regardless of whether or not they were in the clipping rectangle.
21323
21324 2005-04-18  Jackson Harper  <jackson@ximian.com>
21325
21326         * CurrencyManager.cs: There are four rules for GetItemProperties:
21327         - If the type is an array use the element type of the array
21328         - If the type is a typed list, use the type
21329         - If the list contains an Item property that is not an object, use
21330         that property
21331         - use the first element of the list if there are any elements in
21332         the list.
21333         
21334 2005-04-17  Jackson Harper  <jackson@ximian.oom>
21335
21336         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
21337         click. This handles offsets for scrolling properly and reduces
21338         memory. Also fixed GetNode to not offset now that TopNode works
21339         properly.
21340         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
21341         
21342 2005-04-17  Jackson Harper  <jackson@ximian.com>
21343
21344         * CursorConverter.cs: Initial implementation.
21345
21346 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21347
21348         * ListControl.cs: work towards complex data binding support on ListControl
21349         * CurrencyManager.cs: work towards complex data binding support on ListControl
21350         * ListBox.cs: work towards complex data binding support on ListControl
21351
21352
21353 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
21354
21355         * GridTableStylesCollection.cs: fixes name and constructor
21356         * DataGridTableStyle.cs: fixes
21357         * DataGridBoolColumn.cs: fixes names and constructors
21358         * DataGrid.cs: define methods and properties. Some init implementations
21359         * DataGridCell.cs: define methods and properties. Some init implementations
21360         * GridTablesFactory.cs: Define methods and properties
21361
21362 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
21363
21364         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
21365         graphics port changes.  We still want the coordinates in global screen
21366         coordinates.
21367
21368 2005-04-14  Jackson Harper  <jackson@ximian.com>
21369
21370         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
21371         check plus minus or checkbox clicks unless those features are enabled.
21372
21373 2005-04-14  Jackson Harper  <jackson@ximian.com>
21374
21375         * TreeView.cs: Add methods for setting the top and bottom visible
21376         nodes. TreeNode::EnsureVisible uses these methods.
21377         * TreeNode.cs: Implement EnsureVisible
21378
21379 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
21380
21381         * Form.cs: Pospone menu assignation if the window has not been created yet
21382         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
21383         size and position
21384
21385 2005-04-12  Jackson Harper  <jackson@ximian.com>
21386
21387         * TreeView.cs: Set the TopNode properly when scrolling
21388         occurs. This has the added benifit of reducing the amount of
21389         walking that needs to be done when drawing. Also removed an old
21390         misleading TODO.
21391         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
21392         
21393 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
21394
21395         * Timer.cs: fixes interval setting when the timer is already enabled
21396         
21397 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
21398
21399         * FolderBrowserDialog.cs: First approach
21400
21401 2005-04-09  Peter Bartok  <pbartok@novell.com>
21402
21403         * FolderBrowserDialog: Added
21404
21405 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
21406
21407         * LinkLabel.cs: move drawing code into the theme
21408         * ThemeWin32Classic.cs: drawing code and painting background bugfix
21409         * Theme.cs: define DrawLinkLabel method
21410
21411 2005-04-05  Jackson Harper  <jackson@ximian.com>
21412
21413         * BindingContext.cs: Use weak references so these bad actors don't
21414         stay alive longer then they need to.
21415
21416 2005-04-05  Jackson Harper  <jackson@ximian.com>
21417
21418         * ListControl.cs: Basic implementation of complex databinding.
21419         * ComboBox.cs:
21420         * ListBox.cs: Add calls to ListControl databinding methods.
21421
21422 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
21423
21424         * FileDialog.cs:
21425           - Don't change PopupButtonState to Normal when the
21426             PopupButton gets pressed several times.
21427           - Renamed ButtonPanel to PopupButtonPanel
21428
21429 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
21430
21431         * ColorDialog.cs: Use cached objects instead of creating them
21432         * LinkLabel.cs: Use cached objects instead of creating them
21433         * Splitter.cs: Use cached objects instead of creating them
21434         * FontDialog.cs: Use cached objects instead of creating them
21435         * PropertyGridView.cs: Use cached objects instead of creating them
21436         * MessageBox.cs: Use cached objects instead of creating them
21437         * FileDialog.cs: Use cached objects instead of creating them
21438         * ThemeWin32Classic.cs: Use cached objects instead of creating them
21439         * TreeView.cs: Use cached objects instead of creating them
21440         
21441 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
21442
21443         * Control.cs: use Equals to compare the font since no == op
21444         * ScrollBar.cs: use Equals to compare the font since no == op
21445
21446 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
21447
21448         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
21449
21450 2005-04-01  Jackson Harper  <jackson@ximian.com>
21451
21452         * Binding.cs: Implement IsBinding.
21453         * BindingManagerBase.cs:
21454         * PropertyManager.cs:
21455         * CurrencyManager.cs: Add IsSuspended property.
21456
21457 2005-04-01  Jackson Harper  <jackson@ximian.com>
21458
21459         * Binding.cs: Had some IsAssignableFrom calls backwards.
21460
21461 2005-04-01  Jackson Harper  <jackson@ximian.com>
21462
21463         * Binding.cs: Handle null data members when pulling data.
21464         * PropertyManager.cs: Handle the data member being a property that
21465         does not exist.
21466
21467 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21468
21469         * DataGridTextBoxColumn.cs: fixes signature
21470         * DataGrid.cs: calls right constructor
21471
21472 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
21473
21474         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
21475         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
21476         * GridTableStylesCollection.cs: implements GridTableStylesCollection
21477         * DataGridTableStyle.cs: implements DataGridTableStyle
21478         * DataGridBoolColumn.cs: implements DataGridBoolColumn
21479         * DataGridTextBox.cs: implements DataGridTextBox
21480         * DataGridColumnStyle.cs: implements DataGridColumnStyle
21481
21482 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
21483
21484         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
21485
21486 2005-03-29  Peter Bartok  <pbartok@novell.com>
21487
21488         * Application.cs:
21489           - Properly implemented CompanyName property
21490           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
21491             returns a path that includes CompanyName, ProductName and
21492             Version (fixes bug #70330)
21493
21494 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
21495
21496         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
21497           fixes bug #72588.
21498
21499 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21500
21501         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
21502         
21503           - Added ReadOnly CheckBox
21504           - Further refactoring: moved some code from Open-/SaveFileDialog
21505             to FileDialog
21506
21507 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
21508
21509         * OpenFileDialog.cs: Fixed CheckFileExists
21510         * FileDialog.cs:
21511           Moved FileView and DirComboBox outside FileDialog class.
21512           They can now be used outside FileDialog
21513
21514 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21515
21516         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
21517         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
21518
21519 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
21520
21521         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21522           - Added missing CreatePrompt property in SaveDialog
21523           - Overall SaveDialog handling should be better now
21524           - Added non standard ShowHiddenFiles property
21525           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
21526           - Added InitialDirectory and RestoreDirectory support
21527
21528 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
21529
21530         * FileDialog.cs: Made dirComboBox usable
21531
21532 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
21533
21534         * FileDialog.cs: Added Filter support (case sensitiv)
21535
21536 2005-03-24  Jackson Harper  <jackson@ximian.com>
21537
21538         * TabControl.cs: Need a couple more pixels for the lines.
21539
21540 2005-03-23  Jackson Harper  <jackson@ximian.com>
21541
21542         * TabControl.cs: Give the tab page focus when it is selected.
21543
21544 2005-03-23  Jackson Harper  <jackson@ximian.com>
21545
21546         * TabControl.cs: Account for the drawing of tabs borders when
21547         invalidating. If the slider was clicked dont do click detection on
21548         the tabs.
21549
21550 2005-03-23  Jackson Harper  <jackson@ximian.com>
21551
21552         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
21553
21554 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
21555
21556         * CategoryGridEntry.cs: Added
21557         * GridItem.cs: Added helper properties
21558         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
21559         * GridEntry.cs: Updated code for collection
21560         * PropertyGrid.cs: Cleaned up some formatting
21561         * PropertyGridView.cs: Added drop down functionality for enums.
21562         * GridItemCollection.cs: Added enumerator logic
21563         * PropertyGridEntry.cs: Added
21564
21565 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21566
21567         * FileDialog.cs:
21568           - Removed unnecessary commented code
21569           - Fixed handling for entering the filename manually in the combobox
21570
21571 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
21572
21573         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
21574
21575 2005-03-18  Peter Bartok  <pbartok@novell.com>
21576
21577         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
21578           them being touching the border
21579
21580 2005-03-18  Peter Bartok  <pbartok@novell.com>
21581
21582         * TextControl.cs: Quick hack to center text better
21583
21584 2005-03-18  Peter Bartok  <pbartok@novell.com>
21585
21586         * ControlPaint.cs:
21587           - Don't throw NotImplemented exceptions, just print a notice once
21588             instead (requested by Miguel). This makes running existing SWF
21589             apps a bit easier
21590         * Control.cs:
21591           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
21592           - Added context menu trigger on right click
21593         * Panel.cs: Trigger invalidate on resize
21594         * StatusBar.cs:
21595           - Removed old double-buffer drawing
21596           - Added ResizeRedraw style to force proper update of statusbar
21597         * ListView.cs:
21598           - Removed debug output
21599         * ThemeWin32Classic.cs:
21600           - Fixed drawing of status bar, now draws Text property if there
21601             are no defined panels
21602
21603 2005-03-18  Jackson Harper  <jackson@ximian.com>
21604
21605         * ImageList.cs: When the image stream is set pull all the images
21606         from it.
21607         * ImageListStreamer.cs: Implement reading image list streams.
21608
21609 2005-03-18  Peter Bartok  <pbartok@novell.com>
21610
21611         * ThemeWin32Classic.cs (DrawPictureBox):
21612           - Fixed calculations for centered drawing
21613           - Fixed drawing for normal mode, not scaling the image on normal
21614
21615 2005-03-18  Peter Bartok  <pbartok@novell.com>
21616
21617         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
21618           textbox
21619         * FileDialog.cs:
21620           - Made Open/Save button the accept button for FileDialog
21621           - Tied the cancel button to the IButtonControl cancel button
21622           - Save/Open now properly builds the pathname
21623           - Now handles user-entered text
21624           - Preventing crash on right-click if no item is selected
21625           - Fixed Text property, now uses contents of textbox
21626           - Fixed SelectedText property, now just returns the text part that
21627             is selected in the text box
21628
21629 2005-03-18  Jackson Harper  <jackson@ximian.com>
21630
21631         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
21632         rect, make sure to de-adjust the interior rect after drawing the
21633         tab text.
21634
21635 2005-03-18  Peter Bartok  <pbartok@novell.com>
21636
21637         * MenuAPI.cs: Remove menu *before* executing selected action to
21638           prevent the menu from 'hanging around'
21639           
21640 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
21641
21642         * XplatUIOSX.cs: Implemented WorkingArea property
21643
21644 2005-03-17  Peter Bartok  <pbartok@novell.com>
21645
21646         * XplatUIX11.cs: Fixed menu coord calculations
21647         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
21648           for calculating offsets
21649
21650 2005-03-17  Peter Bartok  <pbartok@novell.com>
21651
21652         * Hwnd.cs: Do not consider menu presence for default client
21653           rectangle location/size
21654         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
21655           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
21656           translation functions
21657         * FileDialog.cs: Fixed (what I presume is a) typo
21658
21659 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
21660
21661         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
21662           X access (avoids X-Async errors)
21663
21664 2005-03-16  Jackson Harper  <jackson@ximian.com>
21665
21666         * TabControl.cs: Raise the SelectedIndexChanged event.
21667
21668 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
21669
21670         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
21671           - Removed vertical ToolBar and replaced it with a custom panel
21672             (desktop and home button already work)
21673           - Added Help button (some controls get resized or relocated then)
21674           - Draw correct text depending on Open or Save.
21675           - Fixed some typos...
21676
21677 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
21678
21679         * ScrollBar.cs:
21680           - Only change Maximum and Minimum when need it (bug fix)
21681
21682 2005-03-15  Peter Bartok  <pbartok@novell.com>
21683
21684         * Form.cs: Use Handle for icon, to trigger creation if
21685           the window does not yet exist
21686         * Control.cs:
21687           - CanSelect: Slight performance improvement
21688           - Focus(): Preventing possible recursion
21689           - Invalidate(): Removed ControlStyle based clear flag setting
21690           - WM_PAINT: fixed logic for calling OnPaintBackground
21691           - WM_ERASEBKGND: Fixed logic, added call to new driver method
21692             EraseWindowBackground if the control doesn't paint background
21693         * XplatUIWin32.cs:
21694           - Moved EraseWindowBackground() method to internal methods
21695           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
21696             is sent via SendMessage on BeginPaint call on Win32
21697         * XplatUIX11.cs:
21698           - Added EraseWindowBackground() method
21699           - No longer sends WM_ERASEBKGND on .Expose, but on call to
21700             PaintEventStart, which more closely matches Win32 behaviour
21701           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
21702           - Fixed SetFocus() to properly deal with client and whole windows
21703         * Hwnd.cs: Added ErasePending property
21704         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
21705         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
21706
21707 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
21708
21709         * XplatUIOSX.cs:
21710           - Fix hard loop when timers exist.
21711           - Fix bugs with middle and right click for 3 button mice.
21712
21713 2005-03-11  Peter Bartok  <pbartok@novell.com>
21714
21715         * XplatUIX11.cs:
21716           - get_WorkingArea: Need to call X directly, GetWindowPos only
21717             returns cached data now
21718           - Added sanity check to GetWindowPos hwnd usage
21719
21720 2005-03-11  Jackson Harper  <jackson@ximian.com>
21721
21722         * BindingManagerBase.cs: This method isn't used anymore as
21723         PullData now updates the data in the control.
21724
21725 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
21726
21727         * Form.cs: fixes menu drawing on X11
21728         * MenuAPI.cs:  fixes menu drawing on X11
21729
21730 2005-03-11  Peter Bartok  <pbartok@novell.com>
21731
21732         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
21733           from Jonathan Gilbert; should fix bug #73606
21734         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
21735           in Screen coordinates. Thanks, Jordi.
21736         * Form.cs: Added missing attribute
21737
21738 2005-03-11  Peter Bartok  <pbartok@novell.com>
21739
21740         * Form.cs:
21741           - Rudimentary Mdi support
21742           - Removed outdated FormParent code
21743           - Implemented lots of missing properties and methods, still missing
21744             transparency support
21745           - Added missing attributes
21746           - Implemented support for MaximumBounds
21747           - Added firing of various events
21748         * XplatUI.cs: Added SetIcon() method
21749         * XplatUIDriver.cs: Added SetIcon() abstract
21750         * XplatUIOSX.cs: Stubbed out SetIcon() method
21751         * XplatUIX11.cs:
21752           - Implemented SetIcon() support
21753           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
21754           - Switched to unix line endings
21755         * XplatUIWin32.cs:
21756           - Made POINT internal so for can access it as part of MINMAX
21757           - Implemented SetIcon() support
21758           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
21759             native Mdi support again, might have to go managed)
21760         * Control.cs: Now fires the StyleChanged event
21761         * MdiClient.cs: Added; still mostly empty
21762
21763 2005-03-10  Peter Bartok  <pbartok@novell.com>
21764
21765         * SaveFileDialog.cs: Added emtpy file
21766
21767 2005-03-08  Peter Bartok  <pbartok@novell.com>
21768
21769         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
21770           in turn triggers OnCreateContro) when creating a handle for the
21771           first time.
21772         * TextControl.cs: Fixed endless loop in certain cases when
21773           replacing the current selection
21774
21775 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
21776
21777         * ScrollBar.cs:
21778           - Honors NewValue changes in Scroll events allowing apps to change it
21779           - Adds First and Last Scroll events
21780           - Fixes Thumb events
21781
21782 2005-03-07  Peter Bartok  <pbartok@novell.com>
21783
21784         * Hwnd.cs: Added DefaultClientRectangle property
21785         * XplatUI.cs: Now using the X11 driver Where() method, which provides
21786           more detailed debug information
21787         * XplatUIX11.cs:
21788           - Fixed size-change feedback loop, where we would pull an old size
21789             off the queue and mistakenly change our window's size to an
21790             earlier value
21791           - Now compressing ConfigureNotify events, to reduce looping and
21792             redraw issues
21793         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
21794           is called
21795
21796 2005-03-07  Jackson Harper  <jackson@ximian.com>
21797
21798         * Binding.cs: Push data pushes from data -> property. Check if the
21799         property is readonly when attempting to set it.
21800
21801 2005-03-07  Jackson Harper  <jackson@ximian.com>
21802
21803         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
21804         instead of IsSubclassOf. Pulling data now sets the value on the
21805         control.
21806         * PropertyManager.cs:
21807         * CurrencyManager.cs: Just need to pull data when updating now,
21808         because PullData will set the value on the control.
21809
21810 2005-03-04  Jackson Harper  <jackson@ximian.com>
21811
21812         * Binding.cs: Implement data type parsing and converting on pulled
21813         data. TODO: Are there more ways the data can be converted?
21814
21815 2005-03-04  Jackson Harper  <jackson@ximian.com>
21816
21817         * Binding.cs: Support <Property>IsNull checks. Also bind to the
21818         controls Validating method so we can repull the data when the
21819         control loses focus.
21820
21821 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
21822
21823         * ColumnHeader.cs:
21824           - Fixes null string format
21825           
21826         * ListView.cs:
21827           - Adds enum type checks
21828           - Fixes redrawing and recalc need after changing some properties
21829           - Fixes on focus_item set after the event
21830           - Fixes adding columns after the control has been created
21831           
21832         * ThemeWin32Classic.cs:
21833           - Fixes CheckBox focus rectangle
21834           - Fixes ColumnHeader drawing
21835
21836
21837 2005-03-03  Jackson Harper  <jackson@ximian.com>
21838
21839         * Binding.cs: Bind to <Property>Changed events so we can detect
21840         when properties are changed and update the data.
21841
21842 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
21843
21844         * ImageList.cs:
21845           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
21846           - Fixes ImageList constructor with ImageList container
21847           - Fixes image scaling (wrong parameters at DrawImage)
21848
21849 2005-02-02  Jackson Harper  <jackson@ximian.com>
21850
21851         * Binding.cs: Make property searches case-insensitive. Eliminate
21852         some duplicated code.
21853
21854 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
21855
21856         * ComboBox.cs:
21857                 - Handle focus event
21858                 - Fix scrollbar events
21859                 - Discard highlighted item if remove it
21860                 - Fixes SelectedItem with strings
21861
21862 2005-03-01  Peter Bartok  <pbartok@novell.com>
21863
21864         * Control.cs:
21865           - Fixed Visible property, now follows (once again) parent chain
21866             to return false if any control in the chain is visible=false
21867           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
21868           - Fixed several places where is_visible instead of Visible was used
21869           - Implemented FIXME related to focus selection when setting focused
21870             control to be invisible
21871
21872         * XplatUIWin32.cs: Now using proper method to find out if window is
21873           visible. Thanks to Jordi for pointing it out
21874
21875 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
21876
21877         * ComboBox.cs: show/hide scrollbar instead of creating it
21878
21879 2005-02-27  Jackson Harper  <jackson@ximian.com>
21880
21881         * CurrencyManager.cs: Add PositionChanged stuff.
21882
21883 2005-02-27  Peter Bartok  <pbartok@novell.com>
21884
21885         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
21886         * XplatUIOSX.cs: Added GetMenuOrigin() stub
21887         * XplatUIWin32.cs: Implemented GetMenuOrigin()
21888         * XplatUIX11.cs:
21889           - Implemented GetMenuDC()
21890           - Implemented GetMenuOrigin()
21891           - Implemented ReleaseMenuDC()
21892           - Implemented generation of WM_NCPAINT message
21893           - Implemented generation and handling of WM_NCCALCSIZE message
21894         * Form.cs: Added debug helper message for Jordi's menu work
21895         * Hwnd.cs:
21896           - Modified ClientRect property; added setter, fixed getter to handle
21897             setting of ClientRect
21898           - Added MenuOrigin property
21899
21900 2005-02-26  Peter Bartok  <pbartok@novell.com>
21901
21902         * XplatUIX11.cs:
21903           - Destroys the caret if a window that's being destroyed contains it
21904           - Ignores expose events coming from the X11 queue for windows that
21905             already are destroyed
21906           - Now uses the proper variable for handling DestroyNotify, before we
21907             marked the wrong window as destroyed
21908           - Improved/added some debug output
21909
21910 2005-02-26  Peter Bartok  <pbartok@novell.com>
21911
21912         * X11Keyboard.cs: Fixes to work on 64bit systems
21913
21914 2005-02-26  Peter Bartok  <pbartok@novell.com>
21915
21916         * Control.cs:
21917           - Now calling OnHandleDestroyed from DestroyHandle()
21918             instead of Dispose()
21919           - Removed bogus call to controls.Remove() from DestroyHandle()
21920
21921 2005-02-26  Peter Bartok  <pbartok@novell.com>
21922
21923         * Control.cs: Properly destroy child windows when our handle is
21924           destroyed
21925
21926 2005-02-25  Peter Bartok  <pbartok@novell.com>
21927
21928         * XplatUI.cs:
21929           - Added 'DriverDebug' define to allow tracing XplatUI API calls
21930           - Alphabetized Static Methods and Subclasses
21931
21932         * XplatUIX11.cs:
21933           - Added XException class to allow custom handling of X11 exceptions
21934           - Created custom X11 error handler, tied into XException class
21935           - Added support for MONO_XEXCEPTIONS env var to allow the user
21936             to either throw an exception on X errors or continue running
21937             after displaying the error
21938           - Added handling of DestroyNotify message
21939           - Added handler for CreateNotify message (still disabled)
21940           - Improved (tried to at least) Where method to provide file and lineno
21941         * X11Structs.cs:
21942           - Added XErrorHandler delegate
21943           - Added XRequest enumeration (to suppor translation of errors)
21944
21945 2005-02-25  Jackson Harper  <jackson@ximian.com>
21946
21947         * PropertyManager.cs: Implement editing features
21948         * CurrencyManager.cs:
21949         * Binding.cs: First attempt at UpdateIsBinding
21950         * BindingManagerBase.cs: Call UpdateIsBinding before
21951         pushing/pulling data.
21952
21953 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
21954
21955         * MenuAPI.cs: Respect disabled items
21956         * ThemeWin32Classic.cs
21957                 - Caches ImageAttributes creation for DrawImageDisabled
21958                 - Fixes vertical menu line drawing
21959                 - Draws disabled arrows in disable menu items
21960
21961 2005-02-24  Peter Bartok  <pbartok@novell.com>
21962
21963         * Hwnd.cs:
21964           - Added UserData property to allow associating arbitrary objects
21965             with the handle
21966           - Fixed leak; now removing Hwnd references from static windows array
21967         * XplatUIWin32.cs:
21968           - Fixed Graphics leak in PaintEventEnd
21969           - Removed usage of HandleData, switched over to Hwnd class
21970         * HandleData.cs: Removed, obsoleted by Hwnd.cs
21971
21972 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21973
21974         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
21975         * ScrollBar.cs: Fixes bug
21976         * TrackBar.cs: removes death code, clipping, mimize refreshes,
21977          keyboard navigation enhancements
21978
21979 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
21980
21981         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
21982         * GroupBox.cs: Add control styles
21983         * Label.cs: Add control styles
21984         * UpDownBase.cs: Add control styles
21985         * ListBox.cs: Add control styles
21986         * XplatUIWin32.cs: Fixes wrong parameter order
21987
21988
21989 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
21990
21991         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
21992
21993 2005-02-23  Jackson Harper  <jackson@ximian.com>
21994
21995         * PropertyManager.cs: Implement property binding. This doesn't
21996         seem to work yet though as (I think) there are some bugs in
21997         System.ComponentModel.PropertyDescriptor.
21998         * BindingContext.cs: Use new PropertyManager constructor.
21999
22000 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
22001
22002         * ProgressBar.cs: use clip region in ProgressBar
22003         * ThemeWin32Classic.cs: use clip region in ProgressBar
22004
22005 2004-02-22  Jackson Harper  <jackson@ximian.com>
22006
22007         * BindingsCollection.cs: Remove some debug code.
22008
22009 2005-02-22  Jackson Harper  <jackson@ximian.com>
22010
22011         * BindingContext.cs:
22012         * ControlBindingsCollection.cs:
22013         * CurrencyManager.cs:
22014         * Binding.cs:
22015         * BindingManagerBase.cs: Initial implementation
22016         * BindingsCollection.cs: Add an internal contains method that the
22017         BindingManagerBase uses to ensure bindings aren't added twice to
22018         the collection.
22019         * PropertyManager.cs: Stubbed out.
22020         * Control.cs:
22021         * ContainerControl.cs: Hook up databinding
22022         
22023 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
22024
22025         * XplatUIOSX.cs:
22026           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
22027           Fixed Invalidate/Update chain.
22028           Fixed tons of other minor bugs (this is almost a complete rewrite).
22029
22030 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
22031
22032         * ComboBox.cs: do subcontrol creation when the control is created
22033
22034 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22035
22036         * Label.cs: fixes image drawing (image and imagelist)
22037         * ThemeWin32Classic.cs: cache brushes
22038         
22039 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22040
22041         * Form.cs: Move menu drawing code to Theme class
22042         * ComboBox.cs: Move ComboBox drawing code to Theme class
22043         * MenuItem.cs: Move menu drawing code to Theme class
22044         * MenuAPI.cs: Move menu drawing code to Theme class
22045         * ThemeWin32Classic.cs: New methods
22046         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
22047         * ListBox.cs: Move Listbox drawing code to Theme class
22048         * Theme.cs: New methods
22049
22050 2005-02-20  Peter Bartok  <pbartok@novell.com>
22051
22052         * Control.cs:
22053           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
22054             only process mnemonics on those)
22055           - Fixed event sequence for key handling; first calling
22056             ProcessKeyEventArgs now
22057         * TextBoxBase.cs:
22058           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
22059             for processing non-character keys
22060           - Fixed WM_CHAR to generate proper event sequence before processing
22061         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
22062           generation
22063
22064 2005-02-19  Peter Bartok  <pbartok@novell.com>
22065
22066         * UserControl.cs: Added TextChanged event; added attributes
22067         * SizeGrip.cs: Implemented resizing and optional display of grip
22068         * Form.cs: Fixed attribute
22069         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
22070           Changed meaning of ScrollWindow bool argument; instead of the
22071           clear attribute (which will be true usually anyway), it gives the
22072           option of moving child controls as well.
22073         * XplatUIX11.cs:
22074           - Changed to match new ScrollWindow argument
22075           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
22076             now handles the implicit parent window a WM puts around us
22077         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
22078           to work)
22079         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
22080         * TreeView.cs: Adjusted to new ScrollWindow arguments
22081
22082 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
22083
22084         * Form.cs: Menu integration with non-client area
22085         * MenuItem.cs: Menu integration with non-client area
22086         * MenuAPI.cs: Menu integration with non-client area
22087
22088 2005-02-18  Peter Bartok  <pbartok@novell.com>
22089
22090         * MethodInvoker.cs: Added
22091         * MdiLayout.cs: Added
22092         * SendKeys.cs: Started implementation
22093         * ErrorIconAlignment.cs: Added
22094
22095 2005-02-18  Peter Bartok  <pbartok@novell.com>
22096
22097         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
22098         * Form.cs: Added handling for Menu-related Non-client messages
22099
22100 2005-02-17  Peter Bartok  <pbartok@novell.com>
22101
22102         * UpDownBase.cs: Fixed typo, compilation errors
22103         * DomainUpDown.cs: Fixed attribute value
22104
22105 2005-02-16  Miguel de Icaza  <miguel@novell.com>
22106
22107         * UpDownBase.cs: Attach entry events.
22108         Propagate events.
22109         Add ForeColor property, Focused, InterceptArrowKeys (interception
22110         does not work yet).
22111
22112 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
22113
22114         * Form.cs:
22115                 - Redraw non client are on Setmenu
22116                 - Calc proper menu starting point
22117
22118 2005-02-17  Peter Bartok  <pbartok@novell.com>
22119
22120         * Application.cs: Fixed message_filter check
22121
22122 2005-02-17  Peter Bartok  <pbartok@novell.com>
22123
22124         * Application.cs: Now calls registered message filters
22125         * DockStyle.cs: Fixed attribute
22126         * Form.cs: Fixed attribute
22127         * Menu.cs: Fixed attribute
22128         * ToolTip.cs: Fixed attribute
22129         * TreeNode.cs: Added missing attributes and arranged in regions
22130         * PropertyGrid.cs: Fixed signatures
22131         * TreeNodeCollection.cs: Added attributes
22132         * Splitter.cs: Added missing attributes; arranged into regions
22133         * TabPage.cs: Added missing attributes; arranged into regions
22134         * TextBoxBase.cs: Added missing attributes
22135         * TextBox.cs: Added missing attributes
22136         * ArrangeDirection.cs: Added missing attributes
22137         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
22138         * ToolBarButton.cs: Fixed attributes
22139         * AnchorStyles.cs: Fixed attribute
22140         * TrackBar.cs: Fixed attributes
22141         * TabControl.cs: Added missing attributes and arranged into regions
22142         * ToolBar.cs: Fixed attribute
22143         * StatusBar.cs: Fixed signature, organized into regions and added
22144           attributes
22145         * StatusBarPanel.cs: Fixed attributes
22146         * ContentsResizedEventArgs.cs: Implemented
22147         * ContentsResizedEventHandler.cs: Implemented
22148         * DateBoldEventArgs.cs: Implemented
22149         * DateBoldEventHandler.cs: Implemented
22150         * UpDownEventArgs.cs: Implemented
22151         * UpDownEventHandler.cs: Implemented
22152         
22153 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
22154
22155         * Form.cs: first Menu NC refactoring
22156         * MenuAPI.cs: first Menu NC refactoring
22157         
22158 2005-02-16  Peter Bartok  <pbartok@novell.com>
22159
22160         * ImeMode.cs: Added missing attributes
22161         * Menu.cs: Fixed attribute
22162         * GroupBox.cs: Fixed attribute
22163         * Label.cs: Fixed attribute
22164         * ColorDialog.cs (RunDialog): Removed TODO attribute
22165         * ComboBox.cs: Fixed attributes
22166         * ListControl.cs: Added missing attributes
22167         * PropertyGrid.cs: Fixed attributes
22168         * Control.cs: Fixed attributes
22169         * ListViewItem.cs: Added TypeConverter attribute
22170         * NotifyIcon.cs: Fixed attributes
22171         * ListView.cs: Fixed attributes
22172         * ButtonBase.cs: Fixed attribute
22173         * ImageList.cs: Added missing attributes
22174         * ContainerControl.cs: Fixed signature
22175         * CheckedListBox.cs: Fixed attribute; added missing attributes
22176         * Panel.cs: Fixed attributes
22177         * PropertyTabChangedEventArgs.cs: Added missing attribute
22178         * PropertyValueChangedEventArgs.cs: Added missing attribute
22179         * Binding.cs: Fixed attribute
22180         * ListViewItemConverter: Implemented ListViewSubItemConverter class
22181         * ListBox.cs: Fixed attribute; added missing attributes;
22182         * ScrollableControl.cs: Added missing attributes
22183         * PictureBox.cs: Added missing attributes; implemented missing property
22184         * DateTimePicker.cs: Added missing attributes
22185         * Theme.cs (ToolWindowCaptionHeight): Fixed type
22186         * MonthCalendar.cs: Fixed attributes
22187         * StatusBarPanel.cs: Added missing attributes
22188         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
22189
22190 2005-02-16  Peter Bartok  <pbartok@novell.com>
22191
22192         * TextBoxBase.cs: The previous method to enforce height yet remember
22193           the requested high was less than ideal, this is an attempt to do
22194           it better.
22195         * Control.cs: Added comment about possible problem
22196         * Copyright: Updated format
22197         * GridItemType.cs: Fixed swapped values
22198
22199 2005-02-15  Jackson Harper  <jackson@ximian.com>
22200
22201         * BaseCollection.cs: Use property so we never access an
22202         uninitialized list. Also initialize the list in the property.
22203
22204 2005-02-15  Peter Bartok  <pbartok@novell.com>
22205
22206         * GroupBox.cs (ProcessMnemonic): Implemented
22207         * Label.cs (ProcessMnemonic): Implemented
22208         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
22209           hotkeys
22210
22211 2005-02-15  Peter Bartok  <pbartok@novell.com>
22212
22213         * RadioButton.cs (ProcessMnemonic): Implemented
22214         * CheckBox.cs (ProcessMnemonic): Implemented
22215         * Control.cs:
22216           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
22217             handling
22218           - Added internal method to allow calling ProcessMnemonic from other
22219             controls
22220         * ContainerControl.cs:
22221           - Started support for handling validation chain handling
22222           - Implemented ProcessMnemonic support
22223           - Added Select() call to Active, to make sure the active control
22224             receives focus
22225         * Form.cs: Setting toplevel flag for Forms (this was lost in the
22226           FormParent rewrite)
22227         * ThemeWin32Classic.cs:
22228           - DrawCheckBox(): Fixed stringformat to show hotkeys
22229           - DrawRadioButton(): Fixed stringformat to show hotkeys
22230         * CommonDialog.cs: Removed WndProc override, not needed
22231
22232 2005-02-14  Peter Bartok  <pbartok@novell.com>
22233
22234         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
22235           missed those in the rewrite
22236
22237 2005-02-14  Miguel de Icaza  <miguel@novell.com>
22238
22239         * NumericUpDown.cs (Increment, ToString): Add.
22240         (DecimalPlaces): implement.
22241         
22242         Add attributes.
22243         
22244         * UpDownBase.cs: Add the designer attributes.
22245
22246 2005-02-13  Peter Bartok  <pbartok@novell.com>
22247
22248         * Panel.cs: Removed border_style, now in Control
22249         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
22250           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
22251
22252 2005-02-13  Peter Bartok  <pbartok@novell.com>
22253
22254         * MouseButtons.cs: Added missing attributes
22255         * XplatUIStructs.cs: Added enumeration for title styles
22256         * LeftRightAlignment.cs: Added missing attributes
22257         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
22258           it compatible with Graphics.FromHwnd()
22259         * SelectedGridItemChangedEventArgs.cs: Fixed property type
22260         * Keys.cs: Added missing attributes
22261         * SelectionRange.cs: Added missing attributes
22262         * SelectionRangeConverter.cs: Added
22263         * XplatUI.cs:
22264           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
22265             ReleaseMenuDC methods
22266           - Renamed ReleaseWindow to UngrabWindow
22267           - Added proper startup notice to allow version identification
22268         * Form.cs:
22269           - Added missing attributes
22270           - Removed FormParent concept
22271         * Label.cs: Removed border_style field, now in Control
22272         * RadioButton.cs: Now properly selects RadioButton when focus is
22273           received
22274         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
22275         * Control.cs:
22276           - Added missing attributes
22277           - Added borderstyle handling
22278           - Removed FormParent concept support
22279           - Fixed calls to XplatUI to match changed APIs
22280           - Fixed bug that would case us to use disposed Graphics objects
22281           - Removed unneeded internal methods
22282           - PerformLayout(): Fixed to handle DockStyle.Fill properly
22283           - SelectNextControl(): Fixed to properly check common parents
22284         * TextBoxBase.cs: Removed border_style field (now in Control)
22285         * MessageBox.cs:
22286           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
22287             fixed calculations for form size
22288           - Added support for localized strings and icons
22289           - Improved form size calculations, added border
22290         * ListView.cs: Removed border_style field (now in Control)
22291         * X11Structs.cs: Moved several structs from X11 driver here
22292         * X11Keyboard.cs: Changed debug message
22293         * Application.cs: Removed FormParent concept support
22294         * CommonDialog.cs:
22295           - Resetting end_modal flag
22296           - Removed FormParent concept support
22297         * NativeWindow.cs: Removed FormParent concept support
22298         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
22299           Client area and Non-Client whole window to allow support for WM_NC
22300           messages
22301         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
22302           prevent using it until it supports Hwnd as per Geoff Norton's request
22303         * ToolBar.cs: Fixed drawing, was not doing proper drawing
22304         * PictureBox.cs: Removed border_style field, now in Control
22305         * XplatUIWin32.cs: Added new driver methods
22306
22307 2005-02-12  Peter Bartok  <pbartok@novell.com>
22308
22309         * OpacityConverter.cs: Implemented
22310         * Hwnd.cs: Internal class to support drivers that need to emulate
22311           client area/non-client area window behaviour
22312
22313 2005-02-11  Peter Bartok  <pbartok@novell.com>
22314
22315         * KeysConverter.cs: Implemented
22316
22317 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
22318
22319         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
22320         * LinkLabel: Added missing attributes
22321         * MainMenu.cs: fixes ToString
22322         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
22323         * ListBox.cs: fixes event position
22324         * TrackBar.cs: adds missing attributes and events
22325         
22326 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
22327
22328         * MenuItem.cs: Use SystemInformation and bug fixes
22329         * MenuAPI.cs: Use SystemInformation and bug fixes
22330
22331 2005-02-09  Jackson Harper  <jackson@ximian.com>
22332
22333         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
22334         their keystate otherwise things like VK_MENU get stuck "on".
22335
22336 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
22337
22338         * ListBox.cs: Fixes AddRange bug
22339         
22340 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
22341
22342         * ProgressBar.cs
22343                 - Add missing attributes
22344                 - Add missing method
22345                 
22346         * CheckedListBox.cs: Added missing attributes
22347                 - Add missing attributes
22348                 - Remove extra method
22349         
22350         * ComboBox.cs: Added missing attributes
22351         * VScrollBar.cs: Added missing attributes
22352         * ScrollBar.cs:  Added missing attributes
22353         * ListBox.cs: Fixes signature, add missing consts
22354         * LinkArea.cs:   Added missing attributes
22355         
22356
22357 2005-02-08  Peter Bartok  <pbartok@novell.com>
22358
22359         * Menu.cs: Added missing attributes
22360         * MainMenu.cs: Added missing attributes
22361         * GroupBox.cs: Added missing attributes
22362         * Label.cs: Added missing attributes
22363         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
22364         * ColorDialog.cs:
22365           - Added Instance and Options properties
22366           - Added missing attributes
22367         * Cursor.cs: Made Serializable
22368         * NotifyIcon: Added missing attributes
22369         * MenuItem.cs: Added missing attributes
22370         * TextBoxBase.cs: Implemented AppendText() and Select() methods
22371         * Panel.cs: Added Missing attributes
22372         * MonthCalendar.cs: Fixed CreateParams
22373
22374 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22375         
22376         * LinkLabel.cs:
22377                 - Fixes signature
22378                 - Fixes issues with links
22379                 - Adds the class attributes
22380
22381 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
22382         
22383         * ComboBox.cs:
22384                 - Fixes button when no items available in dropdown
22385                 - Fixes repainting problems
22386                 - Adds the class attributes
22387                 
22388 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22389
22390         * XplatUIOSX.cs: Detect the menu bar and title bar height from
22391         the current theme.  Cache these on startup.
22392
22393 2005-02-07  Jackson Harper  <jackson@ximian.com>
22394
22395         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
22396         the scrollbar buttons when they are depressed.
22397
22398 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22399
22400         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
22401         Get the display size from the main displayid.  We currently dont
22402         support multiple display configurations.
22403
22404 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
22405
22406         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
22407
22408 2005-02-07  Miguel de Icaza  <miguel@novell.com>
22409
22410         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
22411
22412 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
22413
22414         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
22415
22416 2005-02-04  Jackson Harper  <jackson@ximian.com>
22417
22418         * ThemeWin32Classic.cs: Respect the clipping rect when
22419         drawing. Only fill the intersection of clips and rects so there
22420         isn't a lot of large fills.
22421         * ScrollBar.cs: Pass the correct clipping rect to the theme
22422         engine. Remove some debug code.
22423
22424 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
22425         
22426         * DateTimePicker.cs:
22427                 - Fixed crash on DateTime.Parse, use Constructor instead
22428
22429 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22430         
22431         * MenuItem.cs:
22432         * MenuAPI.cs:
22433                 - Owner draw support (MeasureItem and DrawItem)
22434
22435 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
22436         
22437         *  Menu.cs:
22438                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
22439                 - Fixes MenuItems.Add range
22440         * MenuItem.cs:
22441                 - MergeMenu and Clone and CloneMenu functions
22442
22443 2005-02-03  Jackson Harper  <jackson@ximian.com>
22444
22445         * ScrollBar.cs: Make abstract
22446         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
22447         is abstract.
22448
22449 2005-02-03  Jackson Harper  <jackson@ximian.com>
22450
22451         * ScrollBar.cs: First part of my scrollbar fixups. This removes
22452         all the unneeded refreshes and uses invalidates with properly
22453         computed rects.
22454
22455 2005-02-03  Peter Bartok  <pbartok@novell.com>
22456
22457         * ComponentModel.cs: Added
22458         * IDataGridEditingService.cs: Added
22459         * Timer.cs: Added missing attributes
22460         * ToolTip.cs: Added missing attributes
22461
22462 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
22463
22464         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
22465
22466 2005-02-03  Peter Bartok  <pbartok@novell.com>
22467
22468         * ListBox.cs: Added missing attributes
22469
22470 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
22471         
22472         * ListBox.cs:
22473                 - Fixes font height after font change
22474                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
22475                 
22476 2005-02-02  Peter Bartok  <pbartok@novell.com>
22477
22478         * HandleData.cs: Introduced static methods to allow class
22479           to be more self-contained and track it's own HandleData objects
22480         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
22481           HandleData to use new static methods
22482
22483 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
22484
22485         * Combobox.cs:
22486                 - Fixes default size and PreferredHeight
22487                 - Missing events
22488                 - ObjectCollection.Insert implementation
22489                 
22490         * ListControl.cs
22491                 - Fixes signature
22492         * ListBox.cs:
22493                 - Several fixes
22494                 - ObjectCollection.Insert implementation
22495                 - No selection after clean
22496                 - Small fixes
22497
22498 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22499
22500         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
22501
22502 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
22503
22504         * Combobox.cs:
22505                 - Caches ItemHeight calculation for OwnerDrawVariable
22506                 - Handles dropdown properly
22507                 - Fixes several minor bugs
22508
22509 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22510
22511         * ListBox.cs:
22512                 - Fixes 71946 and 71950
22513                 - Fixes changing Multicolumn on the fly
22514                 - Fixes keyboard navigation on Multicolumn listboxes
22515
22516 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22517         
22518         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
22519         crash reporter log.
22520
22521 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22522
22523         * XplatUIOSX.cs: Allow applications to actually exit.
22524
22525 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
22526
22527         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
22528         their parent at creation time rather than lazily later.  Fixes a major
22529         regression we were experiencing.
22530
22531 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
22532
22533         * ThemeWin32Classic.cs: more date time picker painting fixes
22534         * DateTimePicker.cs: more monthcalendar drop down fixes
22535         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
22536
22537 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
22538
22539         * ScrollBar.cs:
22540                 - When moving the thumb going outside the control should stop the moving
22541                 - Adds the firing of missing events
22542                 - Fixes no button show if Size is not specified
22543                 - End / Home keys for keyboard navigation
22544
22545 2005-01-30  Peter Bartok  <pbartok@novell.com>
22546
22547         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
22548           sanity check to prevent theoretical loop
22549         * XplatUIWin32.cs (SetVisible): Removed debug output
22550         * XplatUIX11.cs (SystrayChange): Added sanity check
22551         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
22552         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
22553           behaviour, valid until the X11 client window rewrite is done
22554         * TextBox.cs (ctor): Setting proper default foreground and background
22555           colors
22556
22557 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
22558
22559         * Theme: Added DrawDateTimePicker to interface
22560         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
22561         * DateTimePicker.cs: Created (still needs keys and painting code)
22562         * DateTimePickerFormat.cs: added
22563         * MonthCalendar.cs: fixed CreateParams for popup window mode
22564           
22565 2005-01-29  Peter Bartok  <pbartok@novell.com>
22566
22567         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
22568           this should also the calculations for ligher/darker
22569         * Theme.cs: Fixed defaults for ScrollBar widths/heights
22570
22571 2005-01-29  Peter Bartok  <pbartok@novell.com>
22572
22573         * ArrangeDirection.cs: Added
22574         * ArrangeStartingPositon.cs: Added
22575         * SystemInformation.cs: Implemented
22576         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22577           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
22578           used by SystemInformation class
22579         * X11Strucs.cs: Added XSizeHints structure
22580         * MenuAPI.cs:
22581           - Fixed CreateParams to make sure the menu window is always visible
22582           - TrackPopupMenu: Added check to make sure we don't draw the
22583             menu offscreen
22584
22585 2005-01-29  Peter Bartok  <pbartok@novell.com>
22586
22587         * HandleData.cs: Added method for altering invalid area
22588         * TextBoxBase.cs: Implemented TextLength
22589
22590 2005-01-28  Peter Bartok  <pbartok@novell.com>
22591
22592         * XplatUIX11.cs: Improvement over last patch, not sending
22593           the WM_PAINT directly anymore, instead we scroll any pending
22594           exposed areas and let the system pick out the WM_PAINT later
22595
22596 2005-01-28  Peter Bartok  <pbartok@novell.com>
22597
22598         * SWF.csproj: Deleted, no longer used. Instead,
22599           Managed.Windows.Forms/SWF.csproj should be used
22600         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
22601           directly, to avoid a potential race condition with the next
22602           scroll
22603
22604 2005-01-28  Peter Bartok  <pbartok@novell.com>
22605
22606         * XplatUI.cs: Made class internal
22607
22608 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
22609
22610         * CheckedListBox.cs:
22611                 - Draw focus
22612                 - Fixed Drawing
22613                 - Missing methods and events
22614
22615 2005-01-27  Peter Bartok  <pbartok@novell.com>
22616
22617         * Application.cs (Run): Don't use form if we don't have one
22618
22619 2005-01-27  Peter Bartok  <pbartok@novell.com>
22620
22621         * TextBoxBase.cs (get_Lines): Fixed index off by one error
22622
22623 2005-01-27  Peter Bartok  <pbartok@novell.com>
22624
22625         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
22626         * GridItem.cs: Added; Patch by Jonathan S. Chambers
22627         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
22628         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
22629         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
22630         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
22631         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22632         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22633         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22634         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22635         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
22636         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
22637
22638 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22639
22640         * Combobox.cs:
22641                 - Draw focus on Simple Combobox
22642                 - Fixes drawing issues
22643                 - fixes 71834
22644
22645 2005-01-27  Peter Bartok  <pbartok@novell.com>
22646
22647         * Form.cs:
22648           - Place window in default location, instead of hardcoded 0/0
22649           - Send initial LocationChanged event
22650         * Control.cs:
22651           - UpdateBounds after creation to find out where the WM placed us
22652           - Make sure that if the ParentForm changes location the Form
22653             is notified
22654         * XplatUIX11.cs: XGetGeometry will not return the coords relative
22655             to the root, but to whatever the WM placed around us.
22656             Translate to root coordinates before returning toplevel
22657             coordinates
22658         * XplatUIWin32.cs: Removed debug output
22659         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
22660           flag to GetWindowPos, to allow translation of coordinates on X11
22661
22662 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
22663
22664         * ListBox.cs: connect LostFocus Event
22665
22666 2005-01-27  Peter Bartok  <pbartok@novell.com>
22667
22668         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
22669           XplatUIX11.cs: Extended the Systray API
22670         * Form.cs: Removed debug output
22671         * Application.cs: Fixed focus assignment, always need to call
22672           XplatUI.Activate() since Form.Activate() has rules that may
22673           prevent activation
22674         * NotifyIcon.cs: Should be complete now
22675         * ToolTip.cs: Worked around possible timer bug
22676
22677 2005-01-27  Jackson Harper  <jackson@ximian.com>
22678
22679         * TabControl.cs:
22680         - Only invalidate the effected tabs when the
22681         selected index changes. This reduces drawing and gets rid of some
22682         flicker.
22683         - Only refresh if the tabs need to be shifted, otherwise only
22684         invalidate the slider button.
22685         - On windows the tabs are not filled to right if the slider is
22686         visible.
22687         
22688 2005-01-27  Jackson Harper  <jackson@ximian.com>
22689
22690         * TabControl.cs: Only refresh on mouseup if we are showing the
22691         slider. Also only invalidate the button whose state has changed.
22692
22693 2005-01-26  Peter Bartok  <pbartok@novell.com>
22694
22695         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
22696         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
22697           and SystrayRemove() methods
22698         * XplatUIOSX.cs: Stubbed Systray methods
22699         * XplatUIX11.cs:
22700           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
22701             methods
22702           - Fixed broken XChangeProperty calls (marshalling messed up things)
22703         * X11Structs.cs: Added enums and structs required for Size hinting
22704         * NotifyIcon.cs: Added & implemented
22705
22706 2005-01-26  Jackson Harper  <jackson@ximian.com>
22707
22708         * TabControl.cs: Space vertically layed out tabs properly.
22709
22710 2005-01-26  Peter Bartok  <pbartok@novell.com>
22711
22712         * Form.cs (CreateClientParams): Always set the location to 0,0
22713           since we're a child window.
22714
22715         * Control.cs (SetVisibleCore): Always explicitly setting the location
22716           of a toplevel window, apparently X11 doesn't like to move windows
22717           while they're not mapped.
22718
22719 2005-01-26  Jackson Harper  <jackson@ximian.com>
22720
22721         * TabControl.cs: Implement FillToRight size mode with vertically
22722         rendered tabs.
22723
22724 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22725
22726         * ControlPaint.cs, ThemeWin32Classic.cs
22727                 - Fixes DrawFocusRectangle
22728
22729 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
22730
22731         * MenuAPI.cs:
22732                 - MenuBar tracking only starts when item is first clicked
22733                 - Fixes menu hidding for multiple subitems
22734                 - Unselect item in MenuBar when item Executed
22735                 - Fixes bug 71495
22736
22737 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
22738
22739         * ListControl.cs:
22740                 - IsInputKey for ListBox
22741         * ListBox.cs:
22742                 - Focus item
22743                 - Shift and Control item selection
22744                 - Implement SelectionMode.MultiExtended
22745                 - Fixes RightToLeft
22746         * ComboBox.cs:
22747                 - IsInputKey implemented
22748                 - Do not generate OnTextChangedEdit on internal txt changes
22749                 
22750 2005-01-23  Peter Bartok  <pbartok@novell.com>
22751
22752         * AccessibleObject.cs: Partially implemented Select()
22753         * MonthCalendar.cs: Added missing attributes and events
22754         * Form.cs: Fixed CreateParams behaviour, now controls derived from
22755           form can properly override CreateParams.
22756         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
22757           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
22758           Control performs Invalidate & Update
22759         * NativeWindow (CreateHandle): Added special handling for Form
22760           and Form.FormParent classes to allow overriding of From.CreateParams
22761         * Control.cs:
22762           - ControlNativeWindow: Renamed 'control' variable to more intuitive
22763             name 'owner'
22764           - ControlNativeWindow: Added Owner property
22765           - Removed usage of Refresh() on property changes, changed into
22766             Invalidate(), we need to wait until the queue is processed for
22767             updates, direct calls might cause problems if not all vars for
22768             Paint are initialized
22769           - Added call to UpdateStyles() when creating the window, to set any
22770             styles that CreateWindow might have ignored.
22771           - Added support for Form CreateParent overrides to UpdateStyles()
22772         * MessageBox.cs: Removed no longer needed FormParent override stuff,
22773           CreateParams are now properly overridable
22774         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
22775           CreateParams are now properly overridable
22776
22777 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
22778
22779         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
22780         OnTextBoxChanged.
22781
22782         Capture LostFocus and OnTextBoxChanged.  The later introduces a
22783         recursive invocation that I have not figured out yet.
22784
22785         Reset the timer when not using (it was accumulating).
22786
22787
22788         (OnTextBoxChanged): Set UserEdit to true here to track whether the
22789         user has made changes that require validation.
22790
22791         Reset changing to avoid loops.
22792
22793 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
22794
22795         * NumericUpDown.cs: Display value at startup.
22796
22797         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
22798         ValidateEditText.
22799
22800         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
22801         filled in.  Added some basic parsing of text.
22802
22803         Still missing the OnXXX method overrides, and figuring out the
22804         events that must be emitted.
22805
22806         * UpDownBase.cs: Handle UserEdit on the Text property.
22807         
22808 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
22809
22810         * ComboBox.cs:
22811           - Fixes IntegralHeight
22812           - ToString method
22813
22814 2005-01-21  Jackson Harper  <jackson@ximian.com>
22815
22816         * TabControl.cs: Set the SelectedIndex property when SelectedTab
22817         is set so that the page visibility is updated and the tabs are
22818         sized correctly.
22819
22820 2005-01-21  Jackson Harper  <jackson@ximian.com>
22821
22822         * TabControl.cs: Use cliping rectangle for blitting. Give the
22823         theme the clipping rect so we can do clipping while
22824         drawing. Remove some debug code.
22825
22826 2005-01-21  Jackson Harper  <jackson@ximian.com>
22827
22828         * TabPage.cs: Add a new method so tab pages can force the tab
22829         control to recalculate the tab page sizes.
22830         * TabControl.cs: UpdateOwner needs to make the tab control recalc
22831         sizes.
22832
22833 2005-01-20  Jackson Harper  <jackson@ximian.com>
22834
22835         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
22836
22837 2005-01-20  Jackson Harper  <jackson@ximian.com>
22838
22839         * TreeView.cs: Set the bounds for nodes properly. They were
22840         getting screwed up when checkboxes were not enabled, but images
22841         were.
22842
22843 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
22844
22845         * ListBox.cs:
22846                 - Owner draw support
22847                 - Fixes
22848                 
22849 2005-01-20  Jackson Harper  <jackson@ximian.com>
22850
22851         * XplatUIStructs.cs: More misc keys
22852         * X11Keyboard.cs: Ignore some control keys.
22853
22854 2005-01-20  Jackson Harper  <jackson@ximian.com>
22855
22856         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
22857         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
22858
22859 2005-01-19  Peter Bartok  <pbartok@novell.com>
22860
22861         * Control.cs: Un-selecting the control when it is loosing focus
22862
22863 2005-01-19  Jackson Harper  <jackson@ximian.com>
22864
22865         * TreeView.cs: Hook up to the text controls leave event so we can
22866         end editing when the users clicks outside the text box.
22867         
22868 2005-01-19  Jackson Harper  <jackson@ximian.com>
22869
22870         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
22871         get set in the conversion array.
22872
22873 2005-01-19  Peter Bartok  <pbartok@novell.com>
22874
22875         * Application.cs (ModalRun): Added a call to CreateControl to ensure
22876           focus is properly set
22877         * Button.cs:
22878           - Added missing attributes
22879           - removed styles, those are already set in the base class
22880         * ButtonBase.cs:
22881           - Added missing attributes
22882           - Added clip window styles
22883         * CheckBox.cs: Added missing attributes
22884         * CommonDialog.cs:
22885           - FormParentWindow.CreateParams: Added required clip styles
22886         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
22887           also filters modifier keys
22888         * MessageBox.cs:
22889           - Added assignment of Accept and Cancel button to enable Enter
22890             and Esc keys in MessageBox dialogs
22891           - FormParentWindow.CreateParams: Added required clip styles
22892         * RadioButton.cs: Added missing attributes
22893         * TextControl.cs: No longer draws selection if control does not
22894           have focus
22895         * TextBoxBase.cs:
22896           - Now draws simple rectangle around test area to make it obvious
22897             there's a control. This is a hack until we properly support borders
22898           - A few simple fixes to support selections better, now erases selected
22899             text when typing, and resets selection when using movement keys
22900
22901 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
22902
22903         * UpDownBase.cs: Added some new properties.
22904
22905         * DomainUpDown.cs: Implement a lot to get my test working.
22906
22907 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22908
22909         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
22910
22911 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22912
22913         * OSXStructs (WindowAttributes): Fixed csc complaints
22914
22915 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22916
22917         * XplayUIOSX.cs:
22918           OSXStructs.cs: Initial refactor to move enums and consts into
22919           OSXStructs and use them in the driver for greater readability.
22920
22921 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
22922
22923         * XplatUIOSX.cs: Initial support for Standard Cursors.
22924         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
22925
22926 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
22927
22928         * ComboBox.cs: ability to change style when the ctrl is already
22929         created, missing methods and events, bug fixes, signature fixes
22930
22931 2005-01-19  Peter Bartok  <pbartok@novell.com>
22932
22933         * Cursors.cs (ctor): Added ctor to fix signature
22934
22935 2005-01-18  Peter Bartok  <pbartok@novell.com>
22936
22937         * Button.cs: Implemented DoubleClick event
22938         * ButtonBase.cs:
22939           - Fixed keyboard handling to behave like MS, where the press of
22940             Spacebar is equivalent to a mousedown, and the key release is
22941             equivalent to mouseup. Now a spacebar push will give the same
22942             visual feedback like a mouse click.
22943           - Added missing attributes
22944           - Added ImeModeChanged event
22945           - Added support for generating DoubleClick event for derived classes
22946         * CheckBox.cs:
22947           - Implemented DoubleClick event
22948           - Added missing attributes
22949         * CommonDialog.cs: Added missing attribute
22950         * ContextMenu.cs: Added missing attributes
22951         * RadioButton.cs:
22952           - AutoChecked buttons do not allow to be unselected when clicked
22953             (otherwise we might end up with no selected buttons in a group)
22954           - Added missing attributes
22955           - Implemented DoubleClickEvent
22956         * ThreadExceptionDialog.cs: Enabled TextBox code
22957
22958 2005-01-18  Peter Bartok  <pbartok@novell.com>
22959
22960         * Form.cs: Removed debug output
22961         * Button.cs: Added support for DoubleClick method
22962
22963 2005-01-18  Peter Bartok  <pbartok@novell.com>
22964
22965         * Form.cs:
22966           - Added method to parent window that allows triggering size
22967             calculations when a menu is added/removed
22968           - set_Menu: Cleaned up mess from early days of Form and Control,
22969             now properly triggers a recalc when a menu is added/removed
22970           - Added case to select form itself as focused form if no child
22971             controls exist
22972           - Added PerformLayout call when showing dialog, to ensure properly
22973             placed controls
22974         * Control.cs:
22975           - Select(): Made internal so Form can access it
22976           - Focus(): Only call Xplat layer if required (avoids loop), and sets
22977             status
22978         * Application.cs (Run): Removed hack and calls PerformLayout instead
22979           to trigger calculation when Form becomes visible
22980
22981 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
22982
22983         * ComboBox.cs: fixes for ownerdraw
22984
22985 2005-01-18  Peter Bartok  <pbartok@novell.com>
22986
22987         * TextControl.cs:
22988           - Sentinel is no longer static, each Document gets it's own, this
22989             avoids locking or alternatively overwrite problems when more
22990             than one text control is used simultaneously.
22991           - Switched to use Hilight and HilightText brushes for text selection
22992
22993         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
22994
22995 2005-01-18  Peter Bartok  <pbartok@novell.com>
22996
22997         * Control.cs:
22998           - Hooked up the following events:
22999                 o ControlAdded
23000                 o ControlRemoved
23001                 o HandleDestroyed
23002                 o ImeModeChanged
23003                 o ParentChanged
23004                 o TabStopChanged
23005                 o Invalidated
23006                 o SystemColorsChanged
23007                 o ParentFontChanged
23008                 o Move
23009           - Removed debug output
23010           - Added a call to the current theme's ResetDefaults when a color change
23011             is detected
23012         * Form.cs: Now setting the proper ImeMode
23013         * Theme.cs: Defined a method to force recreation of cached resources
23014           and rereading of system defaults (ResetDefaults())
23015         * ThemeWin32Classic.cs: Added ResetDefaults() stub
23016
23017 2005-01-17  Peter Bartok  <pbartok@novell.com>
23018
23019         * Control.cs: Added missing attributes
23020
23021 2005-01-17  Jackson Harper  <jackson@ximian.com>
23022
23023         * TreeNode.cs: Implement editing. Add missing properties selected
23024         and visible.
23025         * TreeView.cs: Implement node editing. Also some fixes to use
23026         Invalidate (invalid area) instead of Refresh when selecting.
23027
23028 2005-01-17  Peter Bartok  <pbartok@novell.com>
23029
23030         * Control.cs:
23031           - Implemented InvokeGotFocus() method
23032           - Implemented InvokeLostFocus() method
23033           - Implemented InvokePaint() method
23034           - Implemented InvokePaintBackground() method
23035           - Implemented InvokeClick() method
23036           - Implemented FindForm() method
23037           - Implemented RectangleToClient() method
23038           - Implemented ClientToRectangle() method
23039           - Implemented ResetBackColor() method
23040           - Implemented ResetCursor() method
23041           - Implemented ResetFont() method
23042           - Implemented ResteForeColor() method
23043           - Implemented ResetImeMode() method
23044           - Implemented ResetLeftToRight() method
23045           - Implemented ResetText() method
23046           - Implemented Scale() methods
23047           - Implemented ScaleCore() method
23048           - Implemented Update() method
23049           - Removed unused variables
23050           - Stubbed AccessibilityNotifyClients and
23051             ControlAccessibleObject.NotifyClients() methods (dunno what to do
23052             with those yet)
23053           - Now setting proper default for RightToLeft property
23054           - Fixed bug in SetClientSizeCore that would cause windows to get
23055             really big
23056           - Now sending Click/DoubleClick events
23057           - Now selecting controls when left mouse button is clicked on
23058             selectable control
23059         * AccessibleEvents.cs: Added
23060         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
23061         * XplatUIOSX.cs: Stubbed UpdateWindow() method
23062         * XplatUIWin32.cs: Implemented UpdateWindow() method
23063         * XplatUIX11.cs: Implemented UpdateWindow() method
23064         * Form.cs: Removed stray semicolon causing CS0162 warning
23065         * ThemeWin32Classic.cs: Fixed unused variable warnings
23066         * ScrollableControl.cs: Now calls base method for ScaleCore
23067         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
23068           style to avoid interference with internal click handler (which is
23069           different than standard Control click handling)
23070         * RadioButton.cs:
23071           - Now unchecks all sibling radio buttons when control is
23072             selected (Fixes #68756)
23073           - Removed internal tabstop variable, using the one inherited from
23074             Control
23075
23076 2005-01-17  Jackson Harper  <jackson@ximian.com>
23077
23078         * NavigateEventArgs.cs: Fix base type.
23079         * LinkLabel.cs: Sig fix
23080         
23081 2005-01-17  Jackson Harper  <jackson@ximian.com>
23082
23083         * TreeView.cs: Only invalidate the effected nodes bounds when
23084         selecting nodes.
23085
23086 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23087
23088         * XplatUIWin32.cs: fixes Win32 marshaling
23089         * XplatUIX11.cs: fixes method signature
23090
23091 2005-01-17  Peter Bartok  <pbartok@novell.com>
23092
23093         * XplatUIX11.cs: Clean up resources when we no longer need them
23094
23095 2005-01-17  Peter Bartok  <pbartok@novell.com>
23096
23097         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
23098           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
23099           and DestroyCursor() methods.
23100         * Cursor.cs: Partially implemented, now supports standard cursors;
23101           still contains some debug code
23102         * Cursors.cs: Implemented class
23103         * Control.cs:
23104           - WndProc(): Added handling of WM_SETCURSOR message, setting the
23105             appropriate cursor
23106           - Implemented Cursor property
23107           - Replaced break; with return; more straightforwar and possibly
23108             faster
23109           - Now properly setting the result for WM_HELP
23110         * X11Structs.cs: Added CursorFontShape enum
23111         * XplatUIStructs.cs:
23112           - Added StdCursor enum (to support DefineStdCursor() method)
23113           - Added HitTest enum (to support sending WM_SETCURSOR message)
23114         * XplatUIX11.cs:
23115           - Now sends the WM_SETCURSOR message
23116           - Implemented new cursor methods
23117         * XplatUIOSX.cs: Stubbed new cursor methods
23118         * XplatUIWin32.cs:
23119           - Implemented new cursor methods
23120           - Added GetSystemMetrics function and associated enumeration
23121
23122 2005-01-15  Peter Bartok  <pbartok@novell.com>
23123
23124         * Control.cs:
23125           - WndProc(): Now handles EnableNotifyMessage
23126           - SelectNextControl(): Fixed bug where if no child or sibling
23127             controls exist we looped endlessly
23128
23129 2005-01-14  Jackson Harper  <jackson@ximian.com>
23130
23131         * TreeView.cs: Recalculate the tab pages when a new one is added
23132         so that the proper bounding rects are created.
23133
23134 2005-01-14  Jackson Harper  <jackson@ximian.com>
23135
23136         * TreeView.cs: Draw a gray box instead of a grip in the lower
23137         right hand corner when there are both horizontal and vertical
23138         scroll bars.
23139
23140 2005-01-14  Jackson Harper  <jackson@ximian.com>
23141
23142         * Control.cs: When erasing backgrounds use FromHwnd instead of
23143         FromHdc when there is a NULL wparam. This occurs on the X driver.
23144         * XplatUIX11.cs: Set the wparam to NULL.
23145
23146 2005-01-13  Jackson Harper  <jackson@ximian.com>
23147
23148         * PictureBox.cs: Implement missing methods (except ToString, need
23149         to test that on windows) and events. When visibility is changed we
23150         need to redraw the image because the buffers are killed. When size
23151         is changed refresh if the sizemode needs it.
23152
23153 2005-01-13  Peter Bartok  <pbartok@novell.com>
23154
23155         * Control.cs (SelectNextControl): Was using wrong method to select
23156           a control
23157
23158 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23159
23160         * ComboBox.cs: fixes dropstyle
23161
23162 2005-01-13  Peter Bartok  <pbartok@novell.com>
23163
23164         * Form.cs:
23165           - Implemented Select() override
23166           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
23167           - Now sets keyboard focus on startup
23168         * Control.cs (SelectNextControl): Now properly handles directed=true
23169         * TextBoxBase.cs:
23170           - WndProc: Now passes tab key on to base if AcceptTabChar=false
23171           - Added (really bad) focus rectangle (mostly for testing)
23172         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
23173           to enforce redraw on focus changes
23174         * ContainerControl.cs:
23175           - Fixed detection of Shift-Tab key presses
23176           - Fixed traversal with arrow keys
23177         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
23178           gonna keep this or if it's complete yet
23179         
23180 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
23181
23182         * ComboBox.cs: missing properties, fixes
23183
23184 2005-01-13  Peter Bartok  <pbartok@novell.com>
23185
23186         * Panel.cs (ctor): Setting Selectable window style to off
23187         * Splitter.cs (ctor): Setting Selectable window style to off
23188         * GroupBox.cs (ctor): Setting Selectable window style to off
23189         * Label.cs (ctor): Setting Selectable window style to off
23190
23191 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
23192
23193         * UpDownBase.cs (InitTimer): If the timer has been already
23194         created, enable it.
23195
23196         Use a TextBox instead of a Label.
23197
23198 2005-01-12  Jackson Harper  <jackson@ximian.com>
23199
23200         * TreeView.cs: Refresh the tree after sorting the nodes. Always
23201         draw the connecting node lines (when ShowLines is true).
23202         * TreeNode.cs: The nodes index can now be updated. This is used
23203         when a node collection is sorted.
23204         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
23205         insert or an existing unsorted node collection can be sorted.
23206         
23207 2005-01-12  Peter Bartok  <pbartok@novell.com>
23208
23209         * ContainerControl.cs: Implemented ProcessDialogKeys()
23210
23211 2005-01-12  Peter Bartok  <pbartok@novell.com>
23212
23213         * Control.cs:
23214           - Implemented SelectNextControl() method
23215           - Several focus related bug fixes
23216           - Fixed Docking calculations to match MS documentation and
23217             behaviour
23218
23219 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
23220
23221         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
23222         bug fixes
23223
23224 2005-01-12  Peter Bartok  <pbartok@novell.com>
23225
23226         * Control.cs:
23227           - Fixed broken Contains() method
23228           - Implemented GetNextControl() method. Finally. This is the pre-
23229             requisite for focus handling.
23230
23231 2005-01-12  Peter Bartok  <pbartok@novell.com>
23232
23233         * OSXStrucs.cs: Added
23234
23235 2005-01-12  Peter Bartok  <pbartok@novell.com>
23236
23237         * XplatUIWin32.cs:
23238           - Removed PeekMessageFlags
23239           - Implemented SetWindowStyle() method
23240         * XplatUIStructs.cs: Added PeekMessageFlags
23241         * X11Structs: Added missing border_width field to XWindowChanges struct
23242         * XplatUIX11.cs:
23243           - PeekMessage: Now throws exception if flags which are not yet
23244             supported are passed
23245           - Implemented SetWindowStyle() method
23246           - Fixed SetZOrder to handle AfterHwnd properly
23247         * XplatUI.cs: Added SetWindowStyle() method
23248         * XplatUIDriver.cs: Added SetWindowStyle() abstract
23249         * Control.cs:
23250           - Implemented UpdateStyles() method
23251           - Implemented UpdateZOrder() method
23252         * XplatUIOSX.cs: Added SetWindowStyle() stub
23253
23254 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
23255
23256         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
23257         button mouse).
23258
23259
23260 2005-01-11  Jackson Harper  <jackson@ximian.com>
23261
23262         * TreeView.cs: Still need to draw lines to siblings even if out of
23263         the current node is out of the clip.
23264
23265 2005-01-11  Jackson Harper  <jackson@ximian.com>
23266
23267         * TreeView.cs: When setting the hbar/vbar/grip position use
23268         SetBounds so that perform layout is only called once. Also suspend
23269         and resume layout so layout is only done once for all controls.
23270         - Removed some debug fluff
23271         * SizeGrip.cs: Call base implmentation in overriding methods.
23272         - When visibility is changed the drawing buffers are killed so we
23273         need to redraw.
23274
23275 2005-01-11  Jackson Harper  <jackson@ximian.com>
23276
23277         * TreeView.cs: Calculate the open node count while drawing. This
23278         saves us an entire tree traversal for every paint operation. Use
23279         a member var for the open node count so less vars are passed around.
23280
23281 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
23282
23283         * MonthCalendar.cs:
23284         - fixed selection to use mousemove, not mouse polling on timer
23285         * ThemeWin32Classic.cs
23286         - removed redundant unused variable "no_more_content"
23287         
23288 2005-01-11  Peter Bartok  <pbartok@novell.com>
23289
23290         * XplatUIX11.cs (DoEvents): Needs to return when no more events
23291           are pending, so it now calls PeekMessage instead of GetMessage;
23292           implemented a incomplete version of PeekMessage
23293         
23294 2005-01-11  Peter Bartok  <pbartok@novell.com>
23295
23296         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
23297           I18n issues
23298         * TextBoxBase.cs: Added sending of TextChanged event
23299
23300 2005-01-10  Jackson Harper  <jackson@ximian.com>
23301
23302         * TreeView.cs: Try not to draw outside the clipping rectangle on
23303         each node element.
23304
23305 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
23306
23307         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
23308
23309 2005-01-10  Jackson Harper  <jackson@ximian.com>
23310
23311         * TreeView.cs:
23312         - Implement fast scrolling. Now only the newly
23313         exposed nodes are drawn and the old image is moved using the
23314         XplatUI::ScrollWindow method.
23315         - Factor in height of nodes when calculating whether or not the
23316         node is in the clipping rect.
23317
23318 2005-01-10  Jackson Harper  <jackson@ximian.com>
23319
23320         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
23321
23322 2005-01-10  Peter Bartok  <pbartok@novell.com>
23323
23324         * Application.cs: Added temporary hack to resolve all our resize
23325           required issues on startup. This will get fixed properly at
23326           some point in the future
23327
23328 2005-01-10  Jackson Harper  <jackson@ximian.com>
23329
23330         * SizeGrip.cs: New internal class that is used as a sizing
23331         grip control...hence the name.
23332
23333 2005-01-10  Peter Bartok  <pbartok@novell.com>
23334
23335         * Control.cs: Implemented proper TabIndex handling, now assigning
23336           a tabindex when a control is added to a container
23337         * GroupBox.cs (ctor): Now sets the Container style bit, required
23338           for Control.GetNextControl()
23339
23340 2005-01-09  Jackson Harper  <jackson@ximian.com>
23341
23342         * TextBoxBase.cs: Clear window when scrolling (fixes build).
23343
23344 2005-01-09  Peter Bartok <pbartok@novell.com>
23345
23346         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
23347           XplatUIX11.cs: Added ability to control ScrollWindow expose and
23348           an overload for ScrollWindow to allow only scrolling a rectangle
23349
23350 2005-01-09  Peter Bartok <pbartok@novell.com>
23351
23352         * Form.cs:
23353           - Implemented SetDesktopBounds method
23354           - Implemented SetDesktopLocation method
23355
23356 2005-01-08  Jackson Harper  <jackson@ximian.com>
23357
23358         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
23359         the node count has changed, this removes to VScroll::Refresh calls
23360         when drawing.
23361
23362 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
23363
23364         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
23365
23366 2005-01-07  Jackson Harper  <jackson@ximian.com>
23367
23368         * TreeNode.cs: Just update the single node when it is
23369         checked. Don't refresh after toggling, the Expand/Collapse already
23370         handles this.
23371         * TreeView.cs: Respect clipping a little more when drawing. Try
23372         not to redraw things that don't need to be redrawn. Just hide the
23373         scrollbars when they are no longer needed instead of removing
23374         them, so they don't have to be created again and again.
23375         
23376 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
23377
23378         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
23379         coordinates to window space to place the caret properly, FIXED.
23380         Implement GetWindowState & SetWindowState
23381
23382 2005-01-06  Peter Bartok <pbartok@novell.com>
23383
23384         * Form.cs:
23385           - Implemented ClientSize property
23386           - Implemented DesktopBounds property
23387           - Implemented DesktopLocation property
23388           - Implemented IsRestrictedWindow property
23389           - Implemented Size property
23390           - Implemented TopLevel property
23391           - Implemented FormWindowState property
23392         * Control.cs:
23393           - Implemented GetTopLevel() method
23394           - Implemented SetTopLevel() method
23395         * X11Structs.cs (Atom):
23396           - Added AnyPropertyType definition
23397           - Added MapState definiton and updated XWindowAttribute struct
23398         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
23399         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
23400         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
23401         * XplatUIWin32.cs:
23402           - Implemented GetWindowState() and SetWindowState() methods
23403           - Fixed Win32GetWindowLong return type
23404         * XplatUIX11.cs:
23405           - Introduced central function for sending NET_WM messages
23406           - Implemented GetWindowState() and SetWindowState() methods
23407         * TextBoxBase.cs (set_Lines):
23408           - Now uses Foreground color for text added via Text property (Duh!)
23409           - Added code to remember programmatically requested size (fixes
23410             behaviour when Multiline is set after Size)
23411           - Added AutoSize logic
23412
23413 2005-01-06  Jackson Harper  <jackson@ximian.com>
23414
23415         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
23416
23417 2005-01-06  Jackson Harper  <jackson@ximian.com>
23418
23419         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
23420         set to less then 0.
23421
23422 2005-01-06  Jackson Harper  <jackson@ximian.com>
23423
23424         * ScrollableControl.cs: Lazy init the scrollbars.
23425         
23426 2005-01-06  Jackson Harper  <jackson@ximian.com>
23427
23428         * Theme.cs: Speed up getting pens and solid brushes, by using
23429         their ARGB as a hash instead of tostring and not calling Contains.
23430
23431 2005-01-06  Peter Bartok <pbartok@novell.com>
23432
23433         * Form.cs:
23434           - Implemented OnActivated and OnDeactivate event trigger
23435           - Implemented Activate() method
23436           - Fixed ShowDialog() to activate the form that was active before
23437             the dialog was shown
23438         * XplatUIX11.cs:
23439           - Added global active_window var that tracks the currently active
23440             X11 window
23441           - Now always grabs Property changes from the root window to always
23442             catch changes on the active window property
23443           - Added code to PropertyNotify handler to send Active/Inactive
23444             messages when state changes. This puts X11 and Win32 en par on
23445             WM_ACTIVATE notifications (except for double notifications when
23446             the user clicks away from our modal window to another one of our
23447             windows)
23448
23449 2005-01-05  Jackson Harper  <jackson@ximian.com>
23450
23451         * ImageList.cs: Implment ctor
23452
23453 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23454
23455         * XplatUIOSX.cs: Implement Activate/SetTopmost
23456
23457 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23458
23459         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
23460
23461 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
23462
23463         * XplatUIOSX.cs: Implement GetActive/SetFocus.
23464
23465 2005-01-05  Peter Bartok <pbartok@novell.com>
23466
23467         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
23468           XplatUIOSX.cs: Added GetActive method to return the currently
23469           active window for the application (or null, if none is active)
23470         * Form.cs:
23471           - Implemented ActiveForm
23472           - Commented out owner assignment for modal dialogs (causes problems
23473             on Win32, since the owner will be disabled)
23474           - Reworked some Active/Focus handling (still incomplete)
23475         * CommonDialog.cs: Commented out owner assignment for modal dialogs
23476           (causes problems on Win32, since the owner will be disabled)
23477         * IWin32Window: Added ComVisible attribute
23478
23479 2005-01-05  Peter Bartok <pbartok@novell.com>
23480
23481         * ToolTip.cs (WndProc): Enable setting focus now that we have the
23482           required XplatUI functions.
23483
23484 2005-01-05  Peter Bartok <pbartok@novell.com>
23485
23486         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
23487           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
23488           to implement focus and activation handling; still incomplete and
23489           with debug output
23490
23491 2005-01-04  Peter Bartok <pbartok@novell.com>
23492
23493         * TextBoxBase.cs: Changed access level for Document property to
23494           match switch to internal for TextControl
23495
23496 2005-01-04  Peter Bartok <pbartok@novell.com>
23497
23498         * AccessibleObject: Added ComVisible attribute
23499
23500 2005-01-04  Jackson Harper  <jackson@ximian.com>
23501
23502         * X11Keyboard.cs: Remove unneeded var.
23503
23504 2005-01-04  Jackson Harper  <jackson@ximian.com>
23505
23506         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
23507         but PAINT.
23508         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
23509         ClientMessage. This makes apps exit cleanly (more often).
23510         
23511 2005-01-04  Jackson Harper  <jackson@ximian.com>
23512
23513         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
23514         handling focus, return correct colors and fonts,
23515         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
23516         handle selection, horizontal scrolling, and mouse interaction.
23517
23518 2005-01-04  Peter Bartok <pbartok@novell.com>
23519
23520         * ICommandExecutor.cs: Added
23521         * IDataGridColumnStyleEditingNotificationService.cs: Added
23522         * IFeatureSupport.cs: Added
23523         * IFileReaderService.cs: Added
23524         * IDataObject.cs: Added ComVisible attribute
23525         * AmbientProperties.cs: Added
23526         * BaseCollection.cs: Added missing attributes
23527         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
23528         * BaseCollection.cs: Added missing attributes
23529         * Binding.cs: Added TypeConverter attribute
23530         * BindingContext.cs: Added DefaultEvent attribute
23531         * BindingsCollection.cs: Added DefaultEvent attribute
23532         * Button.cs: Added DefaultValue attribute
23533         * DragEventArgs.cs: Added ComVisible attribute
23534         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
23535         * KeyEventArgs.cs: Added ComVisible attribute
23536         * KeyPressEventArgs.cs: Added ComVisible attribute
23537         * MouseEventArgs.cs: Added ComVisible attribute
23538         * NavigateEventArgs.cs: Added
23539         * NavigateEventHandler.cs: Added
23540         * FeatureSupport.cs: Added
23541         * OSFeature.cs: Added
23542         * Theme.cs: Added abstract Version property to support OSFeature
23543         * ThemeWin32Classic.cs: Added Version property to
23544           support OSFeature.Themes
23545         * ProgressBar.cs: Removed OnPaintBackground override, not required since
23546           the proper styles to avoid background drawing are set, also doesn't
23547           match MS signature
23548         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
23549         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
23550         * ScrollEventArgs.cs: Added ComVisible attribute
23551         * SplitterEventArgs.cs: Added ComVisible attribute
23552         * AccessibleSelection.cs: Added Flags attribute
23553         * Appearance.cs: Added ComVisible attribute
23554         * Border3DSide.cs: Added ComVisible attribute
23555         * Border3DStyle.cs: Added ComVisible attribute
23556         * BorderStyle.cs: Added ComVisible attribute
23557         * DragAction.cs: Added ComVisible attribute
23558         * ErrorBlinkStyle.cs: Added
23559         * ScrollEventType.cs: Added ComVisible attribute
23560         * AnchorStyles.cs: Added Editor attribute
23561         * DockStyle.cs: Added Editor attribute
23562         * HorizontalAlignment.cs: Added ComVisible attribute
23563         * HelpEventArgs.cs: Added ComVisible attribute
23564         * PaintEventArgs.cs: Added IDisposable
23565
23566 2005-01-04  Peter Bartok <pbartok@novell.com>
23567
23568         * TextControl.cs: Switched Line, LineTag and Document classes to
23569           internal
23570
23571 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23572
23573         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
23574         Simple mode, fixes, IntegralHeight, etc.
23575
23576 2005-01-04  Peter Bartok <pbartok@novell.com>
23577
23578         * TextBoxBase.cs: Using proper font variable now
23579
23580 2005-01-04  Peter Bartok <pbartok@novell.com>
23581
23582         * Form.cs (ShowDialog): Set parent to owner, if provided
23583         * GroupBox.cs: Removed unused vars
23584         * TextControl.cs:
23585           - Added GetHashCode() for Document and LineTag classes
23586           - Removed unused variables
23587           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
23588             to allow translation between continuous char position and line/pos
23589         * CheckBox.cs: Removed vars that are provided by base class
23590         * RadioButton.cs: Removed vars that are provided by base class, added
23591           new keyword where required
23592         * LinkLabel.cs: Added new keyword where required
23593         * Control.cs (WndProc): Removed unused variable
23594         * TextBoxBase.cs:
23595           - Finished SelectionLength property
23596           - Implemented SelectionStart property
23597           - Implemented Text property
23598           - Removed unused vars
23599         * MessageBox.cs: Added new keyword where required
23600         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
23601           WndProc signature
23602         * MenuAPI.cs: Added new keyword where required
23603         * ButtonBase.cs: Removed vars that are provided by base class, added
23604           new keyword where required
23605         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
23606           argument to double, to allow compiling with csc 2.0 (Atsushi ran
23607           into this)
23608         * Application.cs (Run): Now triggers the ThreadExit event
23609         * CommonDialog.cs: Added new keyword where required; now properly sets
23610           parent (owner) for dialog
23611         * XplatUIX11.cs: Commented out unused vars
23612         * StatusBar.cs: Fixed signature for Text property
23613         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
23614
23615 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
23616
23617         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
23618         TrackBar.cs, MonthCalendar.cs: remove unused vars
23619
23620 2005-01-03  Jackson Harper  <jackson@ximian.com>
23621
23622         * ThemeWin32Classic.cs:
23623         * X11Keyboard.cs: Remove unused vars.
23624
23625 2005-01-03  Peter Bartok  <pbartok@novell.com>
23626
23627         * TextBox.cs:
23628           - set_Text: Tied into TextControl
23629           - set_TextAlignment: Tied into TextControl
23630         * TextControl.cs:
23631           - Added alignment properties and implemented alignment handling
23632             and drawing (still has a bug, not generating proper expose events)
23633           - Added new Line() constructor to allow passing the line alignment
23634           - Fixed selection setting, properly handling end<start now
23635           - Added aligment considerations to RecalculateDocument()
23636         * TextBoxBase.cs:
23637           - Now properly enforces control height for single line controls
23638           - Added support for CharacterCasing
23639           - Added IsInputKey override
23640           - Fixed Keys.Enter logic
23641           - Added SetBoundsCore override
23642           - Fixed mouse selection handling
23643
23644 2005-01-03  Jackson Harper  <jackson@ximian.com>
23645
23646         * TreeView.cs:
23647           - Collapse and uncheck all nodes when CheckBoxes is disabled.
23648           - Checkboxes are always aligned to the bottom of the node,
23649           regardless of item height.
23650           - Use the node bounds to draw the text so we can center it when
23651           the item height is greater then the font height.
23652           - Node::Bounds are only the text part of the node.
23653         * TreeNode.cs: New method to combine collapsing and unchecking all
23654           nodes recursively.
23655
23656 2005-01-02  Jackson Harper  <jackson@ximian.com>
23657
23658         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
23659         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
23660         tree when a check is changed. TODO: Only refresh the checked node.
23661
23662 2004-12-30  Jackson Harper  <jackson@ximian.com>
23663
23664         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
23665         * TreeNode.cs: When collapsing make sure to never collapse the
23666         root node.
23667
23668 2004-12-29  Jackson Harper  <jackson@ximian.com>
23669
23670         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
23671         
23672 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
23673
23674         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
23675
23676 2004-12-28  Peter Bartok  <pbartok@novell.com>
23677
23678         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
23679           not yet assigned
23680
23681 2004-12-28  Peter Bartok  <pbartok@novell.com>
23682
23683         * Control.cs (WndProc): Added WM_HELP handler, now generates
23684           HelpRequested event
23685         * Form.cs: Added HelpButton property and required support code
23686         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
23687
23688 2004-12-28  Peter Bartok  <pbartok@novell.com>
23689
23690         * CommonDialog.cs:
23691           - Made DialogForm.owner variable internal
23692           - Added check to ensure owner form is set before setting
23693             owner properties in CreateParams
23694
23695 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
23696
23697         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
23698           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
23699           GetCursorPos.  Fix major visibility issues.  Rework the windowing
23700           system to support borderless/titleless windows (implements menus).
23701           Fix GetWindowPos.  Implement initial background color support for
23702           views.
23703
23704 2004-12-28  Peter Bartok  <pbartok@novell.com>
23705
23706         * Form.cs (get_CreateParams): Make sure we have an owner before using
23707           the owner variable. Implement proper default if no owner exists
23708
23709 2004-12-28  Peter Bartok  <pbartok@novell.com>
23710
23711         * In preparation for making Managed.Windows.Forms the default build target
23712           for System.Windows.Forms, the following stubbed files were added.
23713           Dialogs are currently being implemented by contributors and are only
23714           short-term place holders.
23715         * ColorDialog.cs: Initial check-in (minmal stub)
23716         * DataGrid.cs: Initial check-in (minimal stub)
23717         * DataGridLineStyle.cs: Initial check-in (minimal stub)
23718         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
23719         * DataGridTableStyle.cs: Initial check-in (minimal stub)
23720         * FontDialog.cs: Initial check-in (minimal stub)
23721         * FileDialog.cs: Initial check-in (minimal stub)
23722         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
23723         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
23724         * OpenFileDialog: Initial check-in (minimal stub)
23725         * IComponentEditorPageSite.cs: Initial check-in
23726         * Splitter.cs: Initial check-in (for Jackson)
23727         * SplitterEventArgs.cs: Initial check-in (for Jackson)
23728         * SplitterEventHandler.cs: Initial check-in (for Jackson)
23729         * TextBox.cs: Initial check-in; still needs some wiring to
23730           TextControl backend
23731         * Form.cs: Implemented ControlBox property
23732         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
23733         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
23734         * TextControl.cs: Added selection functionality; added todo header
23735         * TextBoxBase.cs:
23736           - Implemented Lines property
23737           - Implemented TextHeight property
23738           - Implemented SelectedText property
23739           - Implemented SelectionLength property
23740           - Implemented SelectAll method
23741           - Implemented ToString method
23742           - Removed and cleaned up some debug code
23743           - Implemented (still buggy) mouse text selection
23744
23745 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
23746
23747         * ComboBox.cs: Complete DropDownList implementation, fixes.
23748
23749 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
23750
23751         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
23752         * ComboBoxStyle.cs: ComboBoxStyle enum
23753         * ComboBox.cs: Initial work on ComboBox control
23754
23755 2004-12-21  Peter Bartok  <pbartok@novell.com>
23756
23757         * Control.cs (ctor, CreateParams): Moved setting of is_visible
23758           forward so that anything that creates a window gets the default,
23759           also no longer uses Visible property in CreateParams to avoid
23760           walking up the parent chain and possibly get the wrong visible
23761           status. Fixed IsVisible to no longer walk up to the parent.
23762
23763 2004-12-21  Peter Bartok  <pbartok@novell.com>
23764
23765         * Form.cs (ShowDialog): Unset modality for the proper window
23766  
23767 2004-12-20  Peter Bartok  <pbartok@novell.com>
23768
23769         * CommonDialog.cs: Initial check-in
23770
23771 2004-12-20  Peter Bartok  <pbartok@novell.com>
23772
23773         * Control.cs (Visible): Now uses the parent window instead of the
23774           client area window for the property
23775
23776         * Form.cs
23777           - ShowDialog(): Now uses the proper window for modality
23778           - The default visibility state for the form parent is now false. This
23779             will prevent the user from seeing all the changes to the form and
23780             its controls before the application hits Application.Run()
23781           - Removed some stale commented out code
23782
23783         * NativeWindow.cs:
23784           - Added FindWindow() method to have a method to check for existence
23785             of a window handle
23786           - Added ability to override default exception handling (for example
23787             when debugging with VS.Net; to do this the ExternalExceptionHandler
23788             define must be set
23789           - Removed some useless debug output
23790
23791         * XplatUIX11.cs:
23792           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
23793             not working as expected
23794           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
23795             property to allow switching back to the modal window if focus is
23796             given to another one of our windows (Application Modal)
23797           - Now only sets override_redirect if we create a window
23798             without WS_CAPTION
23799           - Moved EventMask selection before mapping of newly created window
23800             so we can catch the map event as well
23801           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
23802           - Added various Atom related DllImports
23803           - Implemented Exit() method
23804           - .ctor() : No longer shows window if WS_VISIBLE is not defined
23805             in the CreateParams
23806
23807         * MessageBox.cs: Now properly deals with the FormParent window by
23808           providing an override the FormParent CreateParams property to
23809           set as POPUP instead of OVERLAPPED window.
23810
23811 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23812
23813         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
23814         Minor code cleanup.
23815
23816 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
23817         
23818         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
23819
23820 2004-12-18  Peter Bartok  <pbartok@novell.com>
23821
23822         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
23823           implementing SetModal() method
23824
23825 2004-12-18  Peter Bartok  <pbartok@novell.com>
23826
23827         * X11Structs.cs (XGCValues): Fixed type of function element
23828         * XplatUI.cs: Added ScrollWindow() method
23829         * XplatUIDriver.cs: Added ScrollWindow() abstract
23830         * XplatUIWin32.cs: Implemented ScrollWindow() method
23831         * XplatUIX11.cs: Implemented ScrollWindow() method
23832         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
23833
23834 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23835
23836         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
23837         Some more keyboard support (INCOMPLETE)
23838
23839 2004-12-17  Peter Bartok  <pbartok@novell.com>
23840
23841         * TextControl.cs:
23842         - Added color attribute to line tags.
23843         - Added color argument to all functions dealing with tags
23844         - Added color argument support to various functions
23845         - Fixed miss-calculation of baseline/shift in certain circumstances
23846
23847         * TextBoxBase.cs: Added new color option to test code
23848
23849 2004-12-17  Jackson Harper  <jackson@ximian.com>
23850
23851         * TreeNode.cs:
23852         * MonthCalendar.cs: Signature fixes
23853
23854 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23855
23856         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
23857         keyboard event moved it.  Create a new graphics context for each paint resolves this
23858
23859 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
23860
23861         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
23862         Make caret exist and go blink blink.  Initial keyboard support.
23863         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
23864         works.
23865
23866 2004-12-17  Jackson Harper  <jackson@ximian.com>
23867
23868         * XplatUIStructs.cs: Updated set of virtual keycodes.
23869         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
23870
23871 2004-12-17  Jackson Harper  <jackson@ximian.com>
23872
23873         * XplatUIX11.cs: Prune old keyboard code.
23874
23875 2004-12-17  Jackson Harper  <jackson@ximian.com>
23876
23877         * XplatUIX11.cs: When generating mouse wparams get the modifier
23878         keys from the ModifierKeys property.
23879
23880 2004-12-17  Jackson Harper  <jackson@ximian.com>
23881
23882         * X11Keyboard.cs: Send up/down input when generating
23883         messages. Remove some unused vars.
23884
23885 2004-12-17  Jackson Harper  <jackson@ximian.com>
23886
23887         * TabControl.cs:
23888         * TreeView.cs: get rid of warnings.
23889
23890 2004-12-17  Jackson Harper  <jackson@ximian.com>
23891
23892         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
23893
23894 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
23895
23896         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
23897           CheckedListBox.cs: Implementation
23898
23899 2004-12-17  Peter Bartok  <pbartok@novell.com>
23900
23901         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
23902
23903 2004-12-16  Peter Bartok  <pbartok@novell.com>
23904
23905         * TextControl.cs:
23906           - InsertCharAtCaret(): Fixed start pos fixup
23907           - CaretLine_get: No longer derives the line from the tag, the tag
23908             could be stale if lines in the document have been added or deleted
23909           - RebalanceAfterDelete(): Fixed bug in balancing code
23910           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
23911           - Line.Streamline(): Now can also elminate leading empty tags
23912           - DumpTree(): Added a few more tests and prevented exception on
23913             uninitialized data
23914           - Added Debug section for Combining lines
23915           - Delete(): Now copies all remaining properties of a line
23916           
23917         * TextBoxBase.cs:
23918           - Left mousebutton now sets the caret (and middle button still acts
23919             as formatting tester, which must go away soon)
23920           - Added Debug section for Deleting/Combining lines
23921           - Fixed calculations for UpdateView after Combining lines
23922
23923 2004-12-16  Peter Bartok  <pbartok@novell.com>
23924
23925         * TextControl.cs: Now properly aligns text on a baseline, using the
23926           new XplatUI.GetFontMetrics() method. Simplified several calculations
23927         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
23928           defined
23929
23930 2004-12-16  Peter Bartok  <pbartok@novell.com>
23931
23932         * XplatUI.cs: Added GetFontMetrics() method
23933         * XplatUIDriver.cs: Added GetFontMetrics() abstract
23934         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
23935           into libgdiplus, our private GetFontMetrics function
23936         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
23937         * XplatUIWin32.cs: Implemented GetFontMetrics() method
23938
23939 2004-12-16  Jackson Harper  <jackson@ximain.com>
23940
23941         * XplatUIStruct.cs: Add enum for dead keys
23942         * X11Keyboard.cs: Map and unmap dead keys.
23943
23944 2004-12-16  Jackson Harper  <jackson@ximian.com>
23945
23946         * X11Keyboard.cs: Detect and use the num lock mask.
23947
23948 2004-12-16  Peter Bartok  <pbartok@novell.com>
23949
23950         * Control.cs (CreateGraphics): Added check to make sure the
23951           handle of the window exists before calling Graphics.FromHwnd()
23952
23953 2004-12-16  Peter Bartok  <pbartok@novell.com>
23954
23955         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
23956           contains a lot of code that's not supposed to be there for the
23957           real thing, but required for developing/testing the textbox
23958           backend.
23959
23960 2004-12-16  Peter Bartok  <pbartok@novell.com>
23961
23962         * TextControl.cs:
23963         - Fixed Streamline method
23964         - Added FindTag method to Line
23965         - Added DumpTree method for debugging
23966         - Added DecrementLines() method for deleting lines
23967         - Fixed UpdateView to update the cursor to end-of-line on single-line
23968           updates
23969         - Added PositionCaret() method
23970         - Fixed MoveCaret(LineDown) to move into the last line, too
23971         - Added InsertChar overload
23972         - Fixed InsertChar tag offset calculations
23973         - Added DeleteChar() method
23974         - Added Combine() method for folding lines
23975         - Fixed Delete() method, no longer allocates wasted Line object and
23976           now copies all properties when swapping nodes
23977         - Delete() method now updates document line counter
23978
23979 2004-12-15  Jackson Harper  <jackson@ximian.com>
23980
23981         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
23982         * X11Keyboard.cs: Expose the currently selected modifier keys
23983         through a property.
23984
23985 2004-12-15  Peter Bartok  <pbartok@novell.com>
23986
23987         * TextControl.cs: Initial check-in. Still incomplete
23988
23989 2004-12-15  Jackson Harper  <jackson@ximian.com>
23990
23991         * TreeNode.cs:
23992         * TreeView.cs: Fix build on csc (second time today ;-))
23993
23994 2004-12-15  Jackson Harper  <jackson@ximian.com>
23995
23996         * TreeView.cs: Store the treenodes plus/minus box bounds when it
23997         is calculated and use this for click testing.
23998         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
23999
24000 2004-12-15  Jackson Harper  <jackson@ximian.com>
24001
24002         * TreeView.cs: Pass the nodes image index to the image list when
24003         drawing that image.
24004
24005 2004-12-15  Jackson Harper  <jackson@ximian.com>
24006
24007         * X11Keyboard.cs: Set messages hwnd.
24008         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
24009         post_message calls.
24010
24011 2004-12-15  Jackson Harper  <jackson@ximian.com>
24012
24013         * X11Keyboard.cs: Fix to compile with csc.
24014         
24015 2004-12-15  Jackson Harper  <jackson@ximian.com>
24016
24017         * X11Structs.cs: Add key mask values
24018         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
24019         * X11Keyboard.cs: New file - Extrapolates and interpolates key
24020         down/up foo into WM_CHAR foo
24021         * KeyboardLayouts.cs: Common keyboard layouts
24022         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
24023         post messages into the main queue.
24024
24025 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
24026
24027         * Button.cs: implement ProcessMnemonic
24028         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
24029           brushes everytime
24030         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
24031         * ButtonBase.cs: Show HotkeyPrefix (not the &)
24032
24033 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
24034         
24035         * MonthCalendar.cs: Implemented click-hold for next/previous month
24036           and date selection
24037           
24038 2004-12-11  Peter Bartok  <pbartok@novell.com>
24039
24040         * X11Structs.cs:
24041           - Added XKeyboardState (moved from XplatUIX11.cs)
24042           - Added XCreateGC related enums and structures
24043           - Added GXFunction for XSetFunction
24044
24045         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
24046
24047         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
24048           CaretVisible() calls
24049
24050         * ToolTip.cs: Added code to prevent stealing focus from app windows
24051
24052         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
24053           DestroyCaret, SetCaretPos and CaretVisible)
24054
24055         * XplatUIX11.cs:
24056           - Added implementation for caret functions
24057           - Moved hover variables into a struct, to make it a bit easier
24058             on the eyes and to debug
24059           - Removed XKeyboardState (moved to XplatUIX11.cs)
24060           - Moved Keyboard properties into the properties region
24061
24062         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
24063           call to get a graphics context for our control
24064
24065         * XplatUIOSX.cs: Added empty overrides for the new caret functions
24066
24067         * TreeView.cs: Fixed bug. No matter what color was set it would always
24068           return SystemColors.Window
24069
24070         * XplatUIWin32.cs: Implemented caret overrides
24071
24072 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
24073
24074         * ListBox.cs: fire events, implement missing methods and properties,
24075         sorting.
24076
24077 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
24078
24079         * MonthCalendar.cs: invalidation bug fixing
24080         * ThemeWin32Classic.cs: paint fixing
24081
24082 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
24083
24084         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
24085         prepare the CGContextRef there now.
24086
24087 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
24088
24089         * MonthCalendar.cs:
24090           - optimisationL only invalidate areas that have changed
24091         * ThemeWin32Classic.cs:
24092           - only paint parts that intersect with clip_area
24093
24094 2004-12-09  Peter Bartok  <pbartok@novell.com>
24095
24096         * Application.cs: Undid changes from r37004 which cause problems
24097         on X11
24098
24099 2004-12-09  Ravindra  <rkumar@novell.com>
24100
24101         * ToolBar.cs: Added support for displaying ContextMenu
24102         attached to a button on ToolBar.
24103         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
24104         property.
24105
24106 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24107
24108         * Label.cs: autosize works in text change and removes unnecessary
24109         invalidate
24110
24111 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
24112
24113         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
24114         remove warnings
24115
24116 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
24117
24118         * XplatUIOSX.cs: Added mouse move/click/grab support
24119         Remove some debugging WriteLines not needed anymore.
24120         Add window resizing/positioning.
24121         Fix visibility on reparenting.
24122
24123 2004-12-08  Peter Bartok  <pbartok@novell.com>
24124
24125         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
24126
24127 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
24128
24129         * XplatUIOSX.cs: Initial checkin
24130         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
24131
24132 2004-12-03  Ravindra <rkumar@novell.com>
24133
24134         * ListView.cs: Added some keybindings and fixed scrolling.
24135         ScrollBars listen to ValueChanged event instead of Scroll
24136         Event. This would let us take care of all changes being
24137         done in the scrollbars' values programmatically or manually.
24138         * ListView.cs (CanMultiselect): Added a check for shift key.
24139         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
24140         * ListViewItem.cs (Clone): Fixed. We need to make a copy
24141         of ListViewSubItemCollection as well.
24142
24143 2004-12-06  Peter Bartok <pbartok@novell.com>
24144
24145         * Control.cs (Parent): Added check and exception to prevent
24146         circular parenting
24147
24148 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
24149
24150         * ListBox.cs: implemented clipping, selection single and multiple,
24151         bug fixing
24152
24153 2004-12-03  Ravindra <rkumar@novell.com>
24154
24155         * ListView.cs (ListView_KeyDown):
24156         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
24157         when CTRL key is pressed.
24158         * ListViewItem.cs (Selected): Fixed setting the property.
24159
24160 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24161
24162         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
24163
24164         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
24165         MinimizeBox, ShowInTaskbar, TopMost properties.
24166
24167         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
24168         will be implemented).
24169
24170 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
24171
24172         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
24173
24174         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
24175         tests.
24176         
24177         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
24178         
24179         * TreeView.cs: BackColor is Colors.Window.
24180
24181 2004-12-01  Jackson Harper  <jackson@ximian.com>
24182
24183         * TreeView.cs: When resizing the tree if the user is making it
24184         smaller we don't get expose events, so we need to handle adding
24185         the horizontal scrollbar in the size changed handler as well as
24186         the expose handler.
24187
24188 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
24189
24190         * DrawItemState.cs: fixes wrong enum values
24191
24192 2004-12-01  Jackson Harper  <jackson@ximian.com>
24193
24194         * TreeView.cs: Resize the hbar as well as the vbar on resize.
24195
24196 2004-12-01  Jackson Harper  <jackson@ximian.com>
24197
24198         * NodeLabelEditEventArgs.cs:
24199         * NodeLabelEditEventHandler.cs:
24200         * OpenTreeNodeEnumerator.cs:
24201         * TreeNode.cs:
24202         * TreeNodeCollection.cs:
24203         * TreeView.cs:
24204         * TreeViewAction.cs:
24205         * TreeViewCancelEventArgs.cs:
24206         * TreeViewCancelEventHandler.cs:
24207         * TreeViewEventArgs.cs:
24208         * TreeViewEventHandler.cs: Initial implementation.
24209
24210 2004-12-01  Ravindra <rkumar@novell.com>
24211
24212         * ListView.cs (CalculateListView): Fixed scrolling related
24213         calculations. Also, removed some debug statements from other
24214         places.
24215         * ListViewItem.cs: Changed access to 'selected' instance variable
24216         from private to internal.
24217         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
24218
24219 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
24220
24221         * ThemeWin32Classic.cs: remove cache of brush and pens for
24222         specific controls and use the global system, fixes scrollbutton
24223         bugs (for small sizes, disabled, etc)
24224         
24225         * ScrollBar.cs: does not show the thumb for very small controls
24226         (as MS) and allow smaller buttons that the regular size
24227
24228 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
24229
24230         * UpDownBase.cs: Add abstract methods for the interface.
24231         Add new virtual methods (need to be hooked up to TextEntry when it
24232         exists).
24233         Add override methods for most features.
24234         Computes the size, forces the height of the text entry.
24235
24236         * NumericUpDown.cs: Put here the current testing code.
24237
24238         * Set eol-style property on all files that do not have mixed line
24239         endings, to minimize the future problems.  There are still a few
24240         files with mixed endings, and someone should choose whether they
24241         want to move it or not.
24242
24243 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
24244
24245         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
24246         System.Colors
24247         
24248 2004-11-30  Ravindra <rkumar@novell.com>
24249
24250         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
24251         drawing and replaced use of SystemColors by theme colors.
24252         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
24253         * ListView.cs (ListViewItemCollection.Add): Throw exception when
24254         same ListViewItem is being added more than once.
24255
24256 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
24257
24258         * MonthCalendar.cs:
24259           - ControlStyles love to make the control not flicker
24260           
24261 2004-11-30  Peter Bartok  <pbartok@novell.com>
24262
24263         * CharacterCasing.cs: Added
24264
24265 2004-11-29  Peter Bartok  <pbartok@novell.com>
24266
24267         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24268           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
24269           I am removing these files as they conflict with already completed
24270           work. While it is fantastic to get contributions to MWF, I
24271           respectfully ask that everyone please coordinate their contributions
24272           through mono-winforms-list or #mono-winforms at this time. We're
24273           explicitly avoiding stubbing and don't want controls that don't have
24274           their basic functionality implemented in svn. Please also see
24275           http://www.mono-project.com/contributing/winforms.html
24276
24277
24278 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
24279
24280         * Application.cs (ModalRun): Don't hang after exit.
24281
24282         * Theme.cs: New TreeViewDefaultSize property.
24283
24284         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
24285         with less hardcoded SystemColors constant.
24286         Implemented TreeViewDefaultSize.
24287
24288         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
24289         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
24290
24291
24292 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
24293
24294         * MonthCalendar.cs:
24295           - Fix NextMonthDate and PrevMonthDate click moving calendar
24296
24297 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24298
24299         * MonthCalendar.cs:
24300           - Fix usage of ScrollChange Property when scrolling months
24301
24302 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
24303
24304         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
24305          - Fixes menu destroying
24306          - Support adding and removing items on already created menus
24307
24308 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
24309
24310         * MonthCalendar.cs:
24311           - Re-worked all bolded dates handling to match win32
24312         * ThemeWin32Classic.cs:
24313           - Fixed rendering with bolded dates
24314
24315 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
24316
24317         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
24318         - Horizontal scroolbar
24319         - Multicolumn
24320         - Fixes
24321
24322
24323 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
24324
24325         * MonthCalendar.cs:
24326           - Fix Usage of MaxSelectionCount from SelectionRange
24327           - Fixed Shift + Cursor Selection
24328           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
24329           - Fixed normal cursor selection to be compat with win32
24330           - Fixed Shift + Mouse Click selection
24331
24332 2004-11-24  Peter Bartok <pbartok@novell.com>
24333
24334         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
24335         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
24336         * XplatUIX11.cs:
24337           - CreatedKeyBoardMsg now updates keystate with Alt key
24338           - Added workaround for timer crash to CheckTimers, Jackson will
24339             develop a proper fix and check in later
24340           - Implemented DispatchMessage
24341           - Removed calling the native window proc from GetMessage (call
24342             now moved to DispatchMessage)
24343
24344         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
24345           the keydata (Fixes bug #69831)
24346
24347         * XplatUIWin32.cs:
24348           - (DispatchMessage): Switched to return IntPtr
24349           - Added DllImport for SetFocus
24350
24351 2004-11-24  Ravindra <rkumar@novell.com>
24352
24353         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
24354         background drawing.
24355         * ListViewItem.cs: Fixed various properties, calculations
24356         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
24357         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
24358         and some internal properties. Fixed MouseDown handler and Paint
24359         method.
24360
24361 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24362
24363         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
24364
24365 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24366
24367         * ContainerControl.cs: correct accidental check in of local changes
24368
24369 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
24370
24371         * ThemeWin32Classic.cs:
24372                 - Fixed Drawing Last month in grid (sometimes not showing)
24373         * MonthCalendar.cs:
24374                 - Fixed title width calculation bug (makeing title small)
24375
24376 2004-11-23  Peter Bartok <pbartok@novell.com>
24377
24378         * XplatUIX11.cs:
24379           - Added generation of WM_MOUSEHOVER event
24380           - Added missing assignment of async_method atom
24381           - Fixed WM_ERASEBKGND; now only redraws the exposed area
24382
24383 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24384
24385         * ThemeWin32Classic.cs:
24386                 - Fixed Drawing of today circle when showtodaycircle not set
24387                 - fixed drawing of first and last month in the grid (gay dates)
24388         * MonthCalendar.cs:
24389                 - Fixed Drawing of today circle
24390                 - Fixed drawing of grady dates
24391                 - Fixed HitTest for today link when ShowToday set to false
24392                 - Fixed DefaultSize to obey ShowToday
24393
24394 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
24395
24396         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
24397         * System.Windows.Forms/Theme.cs
24398         * MonthCalendar.cs: added for MonthCalendar
24399         * SelectionRange.cs: added for MonthCalendar
24400         * Day.cs: added for MonthCalendar: added for MonthCalendar
24401         * DateRangeEventArgs.cs: added for MonthCalendar
24402         * DateRangeEventHandler.cs: added for MonthCalendar
24403
24404 2004-11-22  Ravindra <rkumar@novell.com>
24405
24406         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
24407         property.
24408
24409 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
24410
24411         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
24412         event handler.
24413         
24414         * NumericUpDown.cs: Added new implementation.
24415         * UpDownBase.cs: Added new implementation.
24416
24417         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
24418         implementations.
24419         
24420         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
24421         implementations.
24422
24423         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
24424         methods.
24425
24426 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
24427
24428         * Timer.cs  (Dispose): Should call the base dispose when
24429         overriding.
24430
24431 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24432
24433         * ScrollBar.cs: updates thumb position when max, min or increment
24434         is changed
24435
24436 2004-11-21  Ravindra <rkumar@novell.com>
24437
24438         * ListView.cs: Implemented item selection, activation and
24439         column header style. Fixed properties to do a redraw, if
24440         required. Added support for MouseHover, DoubleClick, KeyDown
24441         and KeyUp event handling and some minor fixes.
24442         * ListViewItem.cs: Fixed constructor.
24443         * ThemeWin32Classic.cs: Improved drawing for ListView.
24444
24445 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
24446
24447         * ThemeWin32Classic.cs: initial listbox drawing code
24448         * DrawMode.cs: new enumerator
24449         * ListControl.cs: stubbed class
24450         * ListBox.cs: initial implementation
24451         * Theme.cs: new methods definitions
24452         * SelectionMode.cs: new enumerator
24453
24454 2004-11-17  Peter Bartok  <pbartok@novell.com>
24455
24456         * XplatUIWin32.cs: Added double-click events to the class style
24457         * Control.cs (WndProc):
24458           - Added handling of click-count to MouseDown/ MouseUp events.
24459           - Added handling of middle and right mouse buttons
24460           - Removed old debug code
24461
24462 2004-11-17  Jackson Harper  <jackson@ximian.com>
24463
24464         * XplatUIX11.cs: Use the new Mono.Unix namespace.
24465
24466 2004-11-17  Ravindra <rkumar@novell.com>
24467
24468         * ListView.cs: Added event handling for MouseMove/Up/Down.
24469         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
24470         * ThemeWin32Classic.cs: We need to clear the graphics context and
24471         draw column header in a proper state.
24472
24473
24474 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
24475
24476         *  Menu.cs: fixes signature
24477
24478 2004-11-16  Peter Bartok  <pbartok@novell.com>
24479
24480         * XplatUIX11.cs (GetMessage): Implemented generation of
24481           double click mouse messages
24482
24483 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
24484
24485         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
24486         not by menu
24487
24488 2004-11-11  Peter Bartok  <pbartok@novell.com>
24489
24490         * HandleData.cs: Added Visible property
24491         * XplatUIX11.cs (IsVisible): Now uses Visible property from
24492           HandleData
24493         * XplatUIX11.cs: Removed old debug leftovers
24494         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
24495         * Control.cs (WndProc): Removed old debug leftovers,
24496           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
24497           needed WM_SIZE handling
24498
24499 2004-11-11  Jackson Harper  <jackson@ximian.com>
24500
24501         * OwnerDrawPropertyBag.cs:
24502         * TreeViewImageIndexConverter.cs: Initial implementation
24503
24504 2004-11-10  Jackson Harper  <jackson@ximian.com>
24505
24506         * ThemeWin32Classic.cs:
24507         * TabControl.cs: instead of moving tabs by the slider pos just
24508         start drawing at the tab that is offset by the slider. This way
24509         scrolling always moves by exactly one tab.
24510
24511 2004-11-10  Jackson Harper  <jackson@ximian.com>
24512
24513         * TabControl.cs: You can only scroll left when the slider has
24514         already ben moved right.
24515         
24516 2004-11-10  Jackson Harper  <jackson@ximian.com>
24517
24518         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
24519         the clip area.
24520         
24521 2004-11-10  Jackson Harper  <jackson@ximian.com>
24522
24523         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
24524         clip area.
24525         
24526 2004-11-09  Jackson Harper  <jackson@ximian.com>
24527
24528         * TabControl.cs (CalcXPos): New helper method so we can determine
24529         the proper place to start drawing vertical tabs.
24530         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
24531         
24532 2004-11-09  Jackson Harper  <jackson@ximian.com>
24533
24534         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
24535         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
24536         and Bottom, left and right are illegal values for this and
24537         multiline is enabled when the alignment is set to left or right.
24538         (DrawTab): Each alignment block should draw the text itself now
24539         because Left requires special love. Also add rendering for Left
24540         aligned tabs.
24541         
24542 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
24543
24544         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
24545         does not destroy the windows, removes debugging messages
24546
24547 2004-11-09  jba  <jba-mono@optusnet.com.au>
24548
24549         * ThemeWin32Classic.cs
24550         (DrawButtonBase): Fix verticle text rect clipping in windows
24551         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24552         rendering and incorrect text rect clipping
24553         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
24554         rendering and incorrect text rect clipping
24555         
24556 2004-11-08  Jackson Harper  <jackson@ximian.com>
24557
24558         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
24559         bottom when they are bottom aligned so the bottoms of the tabs get
24560         displayed.
24561         * TabControl.cs (DropRow): Move rows up instead of down when the
24562         tab control is bottom aligned.
24563
24564 2004-11-08 13:59  pbartok
24565
24566         * XplatUIX11.cs:
24567           - Added handling for various window styles
24568           - Added handling for popup windows
24569           - Added SetTopmost handling
24570
24571 2004-11-08 13:55  pbartok
24572
24573         * XplatUIWin32.cs:
24574           - Added argument to SetTopmost method
24575           - Fixed broken ClientToScreen function
24576
24577 2004-11-08 13:53  pbartok
24578
24579         * XplatUIStructs.cs:
24580           - Added missing WS_EX styles
24581
24582 2004-11-08 13:53  pbartok
24583
24584         * XplatUI.cs, XplatUIDriver.cs:
24585           - Added argument to SetTopmost
24586
24587 2004-11-08 13:52  pbartok
24588
24589         * X11Structs.cs:
24590           - Added XSetWindowAttributes structure
24591           - Improved XWindowAttributes structure
24592           - Added SetWindowValuemask enum
24593           - Added window creation arguments enum
24594           - Added gravity enum
24595           - Added Motif hints structure
24596           - Added various Motif flags and enums
24597           - Added PropertyMode enum for property functions
24598
24599 2004-11-08 13:50  pbartok
24600
24601         * Form.cs:
24602           - Fixed arguments for updated SetTopmost method
24603
24604 2004-11-08 13:49  pbartok
24605
24606         * ToolTip.cs:
24607           - Fixed arguments for updated SetTopmost function
24608           - Fixed usage of PointToClient
24609
24610 2004-11-08 13:44  pbartok
24611
24612         * MenuAPI.cs:
24613           - Added Clipping of children and siblings
24614
24615 2004-11-08 13:41  pbartok
24616
24617         * MainMenu.cs:
24618           - Removed SetMenuBarWindow call. We do this in Form.cs
24619
24620 2004-11-08 13:40  jackson
24621
24622         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
24623           scrolling jimmi in the correct location with bottom aligned tabs
24624
24625 2004-11-08 13:36  pbartok
24626
24627         * ContainerControl.cs:
24628           - Implemented BindingContext
24629           - Implemented ParentForm
24630
24631 2004-11-08 12:46  jackson
24632
24633         * TabControl.cs: Put bottom rendered tabs in the right location
24634
24635 2004-11-08 07:15  jordi
24636
24637         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
24638           removes dead code
24639
24640 2004-11-05 17:30  jackson
24641
24642         * TabControl.cs: When selected tabs are expanded make sure they
24643           don't go beyond the edges of the tab control
24644
24645 2004-11-05 14:57  jackson
24646
24647         * TabControl.cs: Reset show_slider so if the control is resized to
24648           a size where it is no longer needed it's not displayed anymore
24649
24650 2004-11-05 13:16  jackson
24651
24652         * TabControl.cs: Make tab pages non visible when added to the
24653           control
24654
24655 2004-11-05 12:42  jackson
24656
24657         * TabControl.cs: Implement SizeMode.FillToRight
24658
24659 2004-11-05 12:16  jackson
24660
24661         * Control.cs: Do not call CreateHandle if the handle is already
24662           created
24663
24664 2004-11-05 11:46  jackson
24665
24666         * TabControl.cs: Remove superflous call to CalcTabRows
24667
24668 2004-11-05 09:07  jackson
24669
24670         * XplatUIX11.cs: Update for Mono.Posix changes
24671
24672 2004-11-05 07:00  ravindra
24673
24674         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
24675           scrolling.
24676
24677 2004-11-04 22:47  jba
24678
24679         * ThemeWin32Classic.cs:
24680           - Fix Button rendering for FlatStyle = Flat or Popup
24681           - Fix RadioButton and CheckBox rendering when Appearance = Button
24682             (normal and flatstyle).
24683           - Correct outer rectangle color when drawing focus rectangle
24684           - Adjust button bounds to be 1 px smaller when focused
24685           - Make button not draw sunken 3d border when pushed (windows compat)
24686           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
24687           - Offset the text in RadioButton and Checkbox when being rendered as
24688           a button.
24689           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
24690           radiobuttons
24691           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
24692           - Fixed disabled text rendering for normally rendered radiobuttons
24693
24694 2004-11-04 10:26  jackson
24695
24696         * TabControl.cs: Recalculate tab rows when resizing
24697
24698 2004-11-04 07:47  jordi
24699
24700         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
24701           collection completion, drawing issues, missing features
24702
24703 2004-11-04 05:03  ravindra
24704
24705         * ScrollBar.cs:
24706                 - We need to recalculate the Thumb area when
24707                 LargeChange/maximum/minimum values are changed.
24708           - We set the 'pos' in UpdatePos() method to minimum, if it's less
24709                 than minimum. This is required to handle the case if large_change is
24710                 more than max, and use LargeChange property instead of large_change
24711                 variable.
24712           - We return max+1 when large_change is more than max, like MS does.
24713
24714 2004-11-04 04:29  ravindra
24715
24716         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
24717                 - Changed default value signatures (prefixed all with ListView).
24718                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
24719                 ListView.
24720           - Fixed calculations for ListViewItem and implemented Clone()
24721           method.
24722
24723 2004-11-04 04:26  ravindra
24724
24725         * Theme.cs, ThemeWin32Classic.cs:
24726                 - Changed default ListView values signatures (prefixed all with
24727                 ListView).
24728           - Fixed default size values for VScrollBar and HScrollBar.
24729                 - Fixed DrawListViewItem method.
24730
24731 2004-11-04 04:05  ravindra
24732
24733         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
24734
24735 2004-11-04 04:04  ravindra
24736
24737         * ImageList.cs: Implemented the missing overload for Draw method.
24738
24739 2004-11-03 19:29  jackson
24740
24741         * TabControl.cs: Handle dropping rows on selection properly
24742
24743 2004-11-03 11:59  jackson
24744
24745         * TabControl.cs: remove debug code
24746
24747 2004-11-03 11:52  jackson
24748
24749         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
24750           the scrolly widgerywoo
24751
24752 2004-11-02 13:52  jackson
24753
24754         * TabControl.cs: Resize the tab pages and tabs when the tab control
24755           is resized
24756
24757 2004-11-02 13:40  jackson
24758
24759         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
24760           selected tab to the bottom
24761
24762 2004-11-02 13:39  jackson
24763
24764         * TabPage.cs: Store the tab pages row
24765
24766 2004-11-02 12:33  jordi
24767
24768         * MenuItem.cs: fixes handle creation
24769
24770 2004-11-02 11:42  jackson
24771
24772         * TabControl.cs: signature fix
24773
24774 2004-11-02 08:56  jackson
24775
24776         * TabControl.cs: Calculate whether the tab is on an edge properly.
24777           Remove top secret debugging code
24778
24779 2004-11-01 19:57  jackson
24780
24781         * TabControl.cs: Add click handling, and proper sizing
24782
24783 2004-11-01 19:47  jackson
24784
24785         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
24786           tab controls
24787
24788 2004-11-01 19:39  jackson
24789
24790         * TabPage.cs: add internal property to store the bounds of a tab
24791           page
24792
24793 2004-10-30 04:23  ravindra
24794
24795         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
24796           values.
24797
24798 2004-10-30 04:21  ravindra
24799
24800         * ListView.cs, ListViewItem.cs: Added support for scrolling and
24801           fixed calculations.
24802
24803 2004-10-30 03:06  pbartok
24804
24805         * XplatUIX11.cs:
24806           - Removed extension of DllImported libs
24807
24808 2004-10-29 09:55  jordi
24809
24810         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
24811           navigation, itemcollection completion, menu fixes
24812
24813 2004-10-27 22:58  pbartok
24814
24815         * XplatUIX11.cs:
24816           - Now throws a nice error message when no X display could be opened
24817
24818 2004-10-26 13:51  jordi
24819
24820         * ListView.cs: removes warning
24821
24822 2004-10-26 03:55  ravindra
24823
24824         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
24825           ThemeWin32Classic.cs: Some formatting for my last checkins.
24826
24827 2004-10-26 03:36  ravindra
24828
24829         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
24830           control and default values.
24831
24832 2004-10-26 03:35  ravindra
24833
24834         * Theme.cs: Added some default values for ListView control.
24835
24836 2004-10-26 03:33  ravindra
24837
24838         * ToolBar.cs: ToolBar should use the user specified button size, if
24839           there is any. Added a size_specified flag for the same.
24840
24841 2004-10-26 03:33  ravindra
24842
24843         * ColumnHeader.cs: Added some internal members and calculations for
24844           ColumnHeader.
24845
24846 2004-10-26 03:32  ravindra
24847
24848         * ListViewItem.cs: Calculations for ListViewItem.
24849
24850 2004-10-26 03:31  ravindra
24851
24852         * ListView.cs: Added some internal members and calculations for
24853           ListView.
24854
24855 2004-10-22 13:31  jordi
24856
24857         * MenuAPI.cs: speedup menus drawing
24858
24859 2004-10-22 13:16  jackson
24860
24861         * XplatUIX11.cs: Make sure to update exposed regions when adding an
24862           expose event
24863
24864 2004-10-22 11:49  jackson
24865
24866         * Control.cs: oops
24867
24868 2004-10-22 11:41  jackson
24869
24870         * Control.cs: Check to see if the window should have its background
24871           repainted by X when drawing.
24872
24873 2004-10-22 11:31  jackson
24874
24875         * XplatUIX11.cs: When invalidating areas only use XClearArea if
24876           clear is true, this way we do not get flicker from X repainting the
24877           background
24878
24879 2004-10-22 11:28  jackson
24880
24881         * XEventQueue.cs: Queue properly
24882
24883 2004-10-21 09:38  jackson
24884
24885         * XEventQueue.cs: Fix access modifier
24886
24887 2004-10-21 09:36  jackson
24888
24889         * XEventQueue.cs: Don't loose messages
24890
24891 2004-10-21 09:22  jackson
24892
24893         * XEventQueue.cs: Don't loose messages
24894
24895 2004-10-20 04:15  jordi
24896
24897         * BootMode.cs: enum need it by SystemInfo
24898
24899 2004-10-19 21:58  pbartok
24900
24901         * XplatUIWin32.cs:
24902           - Small sanity check
24903
24904 2004-10-19 21:56  pbartok
24905
24906         * Form.cs:
24907           - Added private FormParentWindow class which acts as the container
24908             for our form and as the non-client area where menus are drawn
24909           - Added/Moved required tie-ins to Jordi's menus
24910           - Fixed/Implemented the FormStartPosition functionality
24911
24912 2004-10-19 21:52  pbartok
24913
24914         * Control.cs:
24915           - Removed unneeded locals
24916           - Added code to all size and location properties to understand and
24917             deal with the parent container of Form
24918
24919 2004-10-19 21:33  pbartok
24920
24921         * Application.cs:
24922           - Fixed to deal with new Form subclasses for menus
24923
24924 2004-10-19 17:48  jackson
24925
24926         * XEventQueue.cs: commit correct version of file
24927
24928 2004-10-19 16:50  jackson
24929
24930         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
24931
24932 2004-10-19 16:15  jordi
24933
24934         * MenuAPI.cs: MenuBarCalcSize returns the height
24935
24936 2004-10-19 08:31  pbartok
24937
24938         * Control.cs:
24939           - Added missing call to PreProcessMessage before calling OnXXXKey
24940           methods
24941
24942 2004-10-19 00:04  ravindra
24943
24944         * ToolTip.cs: Fixed constructor.
24945
24946 2004-10-18 09:31  jordi
24947
24948         * MenuAPI.cs: menuitems in menubars do not have shortcuts
24949
24950 2004-10-18 09:26  jordi
24951
24952         * MenuItem.cs: fixes MenuItem class signature
24953
24954 2004-10-18 08:56  jordi
24955
24956         * MenuAPI.cs: prevents windows from showing in the taskbar
24957
24958 2004-10-18 00:28  ravindra
24959
24960         * ToolTip.cs: Suppressed a warning message.
24961
24962 2004-10-18 00:27  ravindra
24963
24964         * Control.cs: Default value of visible property must be true.
24965
24966 2004-10-17 23:19  pbartok
24967
24968         * ToolTip.cs:
24969           - Complete implementation
24970
24971 2004-10-17 23:19  pbartok
24972
24973         * XplatUIX11.cs:
24974           - Added EnableWindow method
24975           - Added SetModal stub
24976           - Added generation of WM_ACTIVATE message (still needs testing)
24977           - Added SetTopMost stub
24978           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
24979
24980 2004-10-17 23:17  pbartok
24981
24982         * XplatUIWin32.cs:
24983           - Removed VirtualKeys to XplatUIStructs
24984           - Implemented SetTopMost method
24985           - Implemented EnableWindow method
24986           - Bugfix in ScreenToClient()
24987           - Bugfixes in ClientToScreen()
24988
24989 2004-10-17 22:51  pbartok
24990
24991         * XplatUIStructs.cs:
24992           - Added WS_EX styles to WindowStyles enumeration
24993
24994 2004-10-17 22:50  pbartok
24995
24996         * XplatUI.cs, XplatUIDriver.cs:
24997           - Added method for enabling/disabling windows
24998           - Added method for setting window modality
24999           - Added method for setting topmost window
25000
25001 2004-10-17 22:49  pbartok
25002
25003         * ThemeWin32Classic.cs:
25004           - Added ToolTip drawing code
25005
25006 2004-10-17 22:49  pbartok
25007
25008         * Theme.cs:
25009           - Added ToolTip abstracts
25010
25011 2004-10-17 22:47  pbartok
25012
25013         * Form.cs:
25014           - Fixed Form.ControlCollection to handle owner relations
25015           - Added Owner/OwnedForms handling
25016           - Implemented Z-Ordering for owned forms
25017           - Removed unneeded private overload of ShowDialog
25018           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
25019             so I hope)
25020           - Fixed Close(), had wrong default
25021           - Added firing of OnLoad event
25022           - Added some commented out debug code for Ownership handling
25023
25024 2004-10-17 22:16  pbartok
25025
25026         * Control.cs:
25027           - Fixed/implemented flat list of controls
25028
25029 2004-10-17 22:14  pbartok
25030
25031         * Application.cs:
25032           - Added code to simulate modal dialogs on Win32
25033
25034 2004-10-17 16:11  jordi
25035
25036         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
25037           mouse event
25038
25039 2004-10-17 13:39  jordi
25040
25041         * MenuAPI.cs: menu drawing fixes
25042
25043 2004-10-15 09:10  ravindra
25044
25045         * StructFormat.cs: General Enum.
25046
25047 2004-10-15 09:09  ravindra
25048
25049         * SizeGripStyle.cs: Enum for Form.
25050
25051 2004-10-15 09:08  ravindra
25052
25053         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
25054           in Theme for ListView.
25055
25056 2004-10-15 09:06  ravindra
25057
25058         * ColumnHeader.cs: Flushing some formatting changes.
25059
25060 2004-10-15 09:05  ravindra
25061
25062         * ListViewItem.cs: Implemented GetBounds method and fixed coding
25063           style.
25064
25065 2004-10-15 09:03  ravindra
25066
25067         * ListView.cs: Implemented Paint method and fixed coding style.
25068
25069 2004-10-15 07:34  jordi
25070
25071         * MenuAPI.cs: fix for X11
25072
25073 2004-10-15 07:32  ravindra
25074
25075         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
25076                 - Renamed Paint() method to Draw() for clarity. Also, moved
25077                 DrawImage() to OnPaint().
25078
25079 2004-10-15 07:25  ravindra
25080
25081         * CheckBox.cs, RadioButton.cs:
25082                 - Removed Redraw (), we get it from ButtonBase.
25083                 - Implemented Paint (), to do class specific painting.
25084
25085 2004-10-15 07:16  ravindra
25086
25087         * ButtonBase.cs:
25088                 - Redraw () is not virtual now.
25089                 - Added an internal virtual method Paint (), so that
25090                 derived classes can do their painting on their own.
25091                 - Modified OnPaint () to call Paint ().
25092
25093 2004-10-15 06:43  jordi
25094
25095         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
25096           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
25097
25098 2004-10-15 00:30  ravindra
25099
25100         * MessageBox.cs:
25101                 - MessageBox on windows does not have min/max buttons.
25102                 This change in CreateParams fixes this on Windows. We
25103                 still need to implement this windowstyle behavior in
25104                 our X11 driver.
25105
25106 2004-10-14 05:14  ravindra
25107
25108         * ToolBar.cs:
25109                 - Changed Redraw () to do a Refresh () always.
25110                 - Fixed the MouseMove event handling when mouse is pressed,
25111                 ie drag event handling.
25112                 - Replaced the usage of ToolBarButton.Pressed property to
25113                 ToolBarButton.pressed internal variable.
25114
25115 2004-10-14 05:10  ravindra
25116
25117         * ToolBarButton.cs:
25118                 - Added an internal member 'inside' to handle mouse move
25119                 with mouse pressed ie mouse drag event.
25120                 - Changed 'Pressed' property to return true only when
25121                 'inside' and 'pressed' are both true.
25122                 - Some coding style love.
25123
25124 2004-10-14 00:17  ravindra
25125
25126         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
25127           public method.
25128
25129 2004-10-14 00:15  ravindra
25130
25131         * ButtonBase.cs: Redraw () related improvements.
25132
25133 2004-10-14 00:14  ravindra
25134
25135         * MessageBox.cs: Moved InitFormSize () out of Paint method and
25136           removed unnecessary calls to Button.Show () method.
25137
25138 2004-10-13 17:50  pbartok
25139
25140         * XplatUIX11.cs:
25141           - Formatting fix
25142           - Removed destroying of window until we solve the problem of X
25143             destroying the window before us on shutdown
25144
25145 2004-10-13 16:32  pbartok
25146
25147         * ButtonBase.cs:
25148           - Now Redraws on MouseUp for FlatStyle Flat and Popup
25149
25150 2004-10-13 14:18  pbartok
25151
25152         * XplatUIX11.cs:
25153           - Added code to destroy the X window
25154
25155 2004-10-13 14:18  pbartok
25156
25157         * XplatUIWin32.cs:
25158           - Added code to destroy a window
25159
25160 2004-10-13 14:12  pbartok
25161
25162         * ButtonBase.cs:
25163           - Added the Redraw on Resize that got dropped in the last rev
25164
25165 2004-10-13 09:06  pbartok
25166
25167         * ThemeWin32Classic.cs:
25168           - Path from John BouAntoun:
25169             * Fix check rendering (centre correctly for normal style, offset
25170               correctly for FlatStyle).
25171             * Fix border color usage (use backcolor) for FlatStyle.Popup
25172             * Use checkbox.Capture instead of checkbox.is_pressed when
25173               rendering flatstyle states.
25174
25175 2004-10-12 21:48  pbartok
25176
25177         * ThemeWin32Classic.cs:
25178           - Removed all occurences of SystemColors and replaced them with the
25179             matching theme color
25180
25181 2004-10-12 21:41  pbartok
25182
25183         * ThemeWin32Classic.cs:
25184           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
25185             him using the function for flatstyle drawing
25186           - Changed functions to use the new version of CPDrawBorder3D
25187
25188 2004-10-12 21:15  pbartok
25189
25190         * ControlPaint.cs:
25191           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
25192             match MS documentation. They need to return defined colors if the
25193             passed color matches the configured control color. Thanks to John
25194             BouAntoun for pointing this out.
25195
25196 2004-10-12 20:57  pbartok
25197
25198         * Control.cs:
25199           - Fix from John BouAntoun: Raise ForeColorChanged event when text
25200             color is changed
25201
25202 2004-10-12 20:46  pbartok
25203
25204         * CheckBox.cs:
25205           - Fix from John BouAntoun: Now properly sets the Appearance property
25206
25207 2004-10-12 20:45  pbartok
25208
25209         * ThemeWin32Classic.cs:
25210           - Fixes from John BouAntoun: now handles forecolors and backcolors
25211             for flatstyle rendered controls much better; It also fixes normal
25212             checkbox rendering when pushed or disabled.
25213
25214 2004-10-08 02:50  jordi
25215
25216         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
25217           work
25218
25219 2004-10-07 08:56  jordi
25220
25221         * ThemeWin32Classic.cs: Removes deletion of cached brushes
25222
25223 2004-10-06 03:59  jordi
25224
25225         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
25226           XplatUIWin32.cs: removes warnings from compilation
25227
25228 2004-10-05 12:23  jackson
25229
25230         * RadioButton.cs: Fix ctor
25231
25232 2004-10-05 11:10  pbartok
25233
25234         * MessageBox.cs:
25235           - Partial implementation by Benjamin Dasnois
25236
25237 2004-10-05 10:15  jackson
25238
25239         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
25240           by John BouAntoun
25241
25242 2004-10-05 03:07  ravindra
25243
25244         * ToolBar.cs:
25245                 - Removed a private method, Draw ().
25246                 - Fixed the ButtonDropDown event handling.
25247                 - Fixed MouseMove event handling.
25248
25249 2004-10-05 03:04  ravindra
25250
25251         * ThemeWin32Classic.cs:
25252                 - Added DrawListView method and ListViewDefaultSize property.
25253                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
25254                 - Changed DOS style CRLF to Unix format (dos2unix).
25255
25256 2004-10-05 03:03  ravindra
25257
25258         * Theme.cs:
25259                 - Added DrawListView method and ListViewDefaultSize property.
25260
25261 2004-10-05 02:42  ravindra
25262
25263         * ToolBarButton.cs: Added an internal member dd_pressed to handle
25264           clicks on DropDown arrow.
25265
25266 2004-10-04 22:56  jackson
25267
25268         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
25269           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
25270           Control handle the buffers, derived classes should not have to
25271           CreateBuffers themselves.
25272
25273 2004-10-04 21:20  jackson
25274
25275         * StatusBar.cs: The control handles resizing the buffers now.
25276
25277 2004-10-04 21:18  jackson
25278
25279         * Control.cs: When resizing the buffers should be invalidated. This
25280           should be handled in Control not in derived classes.
25281
25282 2004-10-04 14:45  jackson
25283
25284         * TabPage.cs: oops
25285
25286 2004-10-04 02:14  pbartok
25287
25288         * LeftRightAlignment.cs:
25289           - Initial check-in
25290
25291 2004-10-04 01:09  jordi
25292
25293         * ThemeWin32Classic.cs: fixes right button position causing right
25294           button not showing on horizontal scrollbars
25295
25296 2004-10-02 13:12  pbartok
25297
25298         * XplatUIX11.cs:
25299           - Simplified the Invalidate method by using an X call instead of
25300             generating the expose ourselves
25301           - Added an expose when the window background is changed
25302           - Implemented ClientToScreen method
25303
25304 2004-10-02 13:08  pbartok
25305
25306         * XplatUIWin32.cs:
25307           - Added Win32EnableWindow method (test for implementing modal
25308           dialogs)
25309           - Added ClientToScreen method and imports
25310
25311 2004-10-02 13:07  pbartok
25312
25313         * XplatUI.cs, XplatUIDriver.cs:
25314           - Added ClientToScreen coordinate translation method
25315
25316 2004-10-02 13:06  pbartok
25317
25318         * KeyPressEventArgs.cs:
25319           - Fixed access level for constructor
25320
25321 2004-10-02 13:06  pbartok
25322
25323         * NativeWindow.cs:
25324           - Changed access level for the window_collection hash table
25325
25326 2004-10-02 13:05  pbartok
25327
25328         * Form.cs:
25329           - Added KeyPreview property
25330           - Added Menu property (still incomplete, pending Jordi's menu work)
25331           - Implemented ProcessCmdKey
25332           - Implemented ProcessDialogKey
25333           - Implemented ProcessKeyPreview
25334
25335 2004-10-02 13:02  pbartok
25336
25337         * Control.cs:
25338           - Added private method to get the Control object from the window
25339           handle
25340           - Implemented ContextMenu property
25341           - Implemented PointToScreen
25342           - Implemented PreProcessMessage
25343           - Implemented IsInputChar
25344           - Implemented IsInputKey
25345           - Implemented ProcessCmdKey
25346           - Completed ProcessKeyEventArgs
25347           - Fixed message loop to call the proper chain of functions on key
25348           events
25349           - Implemented ProcessDialogChar
25350           - Implemented ProcessDialogKey
25351           - Implemented ProcessKeyMessage
25352           - Implemented ProcessKeyPreview
25353           - Added RaiseDragEvent stub (MS internal method)
25354           - Added RaiseKeyEvent stub (MS internal method)
25355           - Added RaiseMouseEvent stub (MS Internal method)
25356           - Added RaisePaintEvent stub (MS Internal method)
25357           - Added ResetMouseEventArgs stub (MS Internal method)
25358           - Implemented RtlTranslateAlignment
25359           - Implemented RtlTranslateContent
25360           - Implemented RtlTranslateHorizontal
25361           - Implemented RtlTranslateLeftRight
25362           - Added generation of KeyPress event
25363
25364 2004-10-02 05:57  ravindra
25365
25366         * ListViewItem.cs: Added attributes.
25367
25368 2004-10-02 05:32  ravindra
25369
25370         * ListView.cs: Added attributes.
25371
25372 2004-10-01 11:53  jackson
25373
25374         * Form.cs: Implement the Close method so work on MessageBox can
25375           continue.
25376
25377 2004-09-30 14:06  pbartok
25378
25379         * XplatUIX11.cs:
25380           - Bug fixes
25381
25382 2004-09-30 11:34  jackson
25383
25384         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
25385
25386 2004-09-30 07:26  ravindra
25387
25388         * ListViewItemConverter.cs: Converter for ListViewItem.
25389
25390 2004-09-30 07:26  ravindra
25391
25392         * SortOrder.cs: Enum for ListView control.
25393
25394 2004-09-30 07:25  ravindra
25395
25396         * ColumnHeader.cs: Supporting class for ListView control.
25397
25398 2004-09-30 07:24  ravindra
25399
25400         * ListView.cs, ListViewItem.cs: Initial implementation.
25401
25402 2004-09-30 07:20  ravindra
25403
25404         * ItemActivation.cs: Enum for ListView Control.
25405
25406 2004-09-29 20:29  pbartok
25407
25408         * XplatUIX11.cs:
25409           - Added lookup of pixel value for background color; tries to get a
25410             color 'close' to the requested color, it avoids having to create a
25411             colormap.  Depending on the display this could mean the used color
25412             is slightly off the desired color. Might have to change it to a more
25413             resource intensive colormap approach, but it will work as a
25414           workaround to avoid red screens.
25415
25416 2004-09-29 14:27  jackson
25417
25418         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
25419
25420 2004-09-28 12:44  pbartok
25421
25422         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
25423           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
25424           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
25425           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
25426           TrackBar.cs, VScrollBar.cs:
25427           - Streamlined Theme interfaces:
25428             * Each DrawXXX method for a control now is passed the object for
25429               the control to be drawn in order to allow accessing any state the
25430               theme might require
25431
25432             * ControlPaint methods for the theme now have a CP prefix to avoid
25433               name clashes with the Draw methods for controls
25434
25435             * Every control now retrieves it's DefaultSize from the current
25436             theme
25437
25438 2004-09-28 12:17  jackson
25439
25440         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
25441           drawing
25442
25443 2004-09-24 14:57  jackson
25444
25445         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
25446           Gives us a nice little performance boost.
25447
25448 2004-09-24 12:02  jackson
25449
25450         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
25451           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
25452           Control and supporting classes. Initial checkin
25453
25454 2004-09-23 13:08  jackson
25455
25456         * Form.cs: Temp build fixage
25457
25458 2004-09-23 01:39  ravindra
25459
25460         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
25461           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
25462           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
25463           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
25464           EventHandlers needed by ListView Control.
25465
25466 2004-09-22 14:12  pbartok
25467
25468         * ScrollableControl.cs:
25469           - Implemented DockPadding property
25470           - Implemented AutoScroll property
25471           - Implemented AutoScrollMargin property
25472           - Implemented AutoScrollMinSize property
25473           - Implemented AutoScrollPosition property
25474           - Implemented DisplayRectangle property (still incomplete)
25475           - Implemented CreateParams property
25476           - Implemented HScroll property
25477           - Implemented VScroll property
25478           - Implemented OnVisibleChanged property
25479
25480 2004-09-22 14:09  pbartok
25481
25482         * Form.cs:
25483           - Added Form.ControllCollection class
25484           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
25485             RemoveOwnedForm (still incomplete, missing on-top and common
25486             minimize/maximize behaviour)
25487           - Added StartPosition property (still incomplete, does not use when
25488             creating the form)
25489           - Added ShowDialog() methods (still incomplete, missing forcing the
25490             dialog modal)
25491
25492 2004-09-22 14:05  pbartok
25493
25494         * Application.cs:
25495           - Added message loop for modal dialogs
25496
25497 2004-09-22 14:02  pbartok
25498
25499         * GroupBox.cs:
25500           - Fixed wrong types for events
25501
25502 2004-09-22 14:00  pbartok
25503
25504         * Shortcut.cs, FormWindowState.cs:
25505           - Fixed wrong values
25506
25507 2004-09-22 12:01  jackson
25508
25509         * Control.cs: Text is never null
25510
25511 2004-09-20 22:14  pbartok
25512
25513         * XplatUIWin32.cs:
25514           - Fixed accessibility level for Idle handler
25515
25516 2004-09-20 18:54  jackson
25517
25518         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25519           XplatUIX11.cs: New message loop that uses poll so we don't get a
25520           busy loop
25521
25522 2004-09-17 10:43  pbartok
25523
25524         * ScrollBar.cs:
25525           - Fixed behaviour of arrow buttons. Now properly behaves like
25526             Buttons (and like Microsoft's scrollbar arrow buttons)
25527
25528 2004-09-17 10:14  pbartok
25529
25530         * ScrollBar.cs:
25531           - Added missing release of keyboard/mouse capture
25532
25533 2004-09-17 06:18  jordi
25534
25535         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
25536           Theme.cs: Very early menu support
25537
25538 2004-09-16 17:45  pbartok
25539
25540         * XplatUIWin32.cs:
25541           - Fixed sending a window to the front
25542           - Added overload for SetWindowPos to avoid casting
25543
25544 2004-09-16 17:44  pbartok
25545
25546         * Control.cs:
25547           - Added SendToBack and BringToFront methods
25548
25549 2004-09-16 07:00  ravindra
25550
25551         * Copyright: Added Novell URL.
25552
25553 2004-09-16 07:00  ravindra
25554
25555         * ToolBar.cs: Invalidate should be done before redrawing.
25556
25557 2004-09-15 21:19  ravindra
25558
25559         * ColumnHeaderStyle.cs: Enum for ListView Control.
25560
25561 2004-09-15 21:18  ravindra
25562
25563         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
25564           ListView Control.
25565
25566 2004-09-13 18:26  jackson
25567
25568         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
25569           properly
25570
25571 2004-09-13 18:13  jackson
25572
25573         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
25574           a second thread and post messages into the main threads message
25575           queue. This makes timing much more consistent. Both win2K and XP
25576           have a minimum timer value of 15 milliseconds, so we now do this
25577           too.
25578
25579 2004-09-13 15:18  pbartok
25580
25581         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
25582           XplatUIX11.cs:
25583           - Added Z-Ordering methods
25584
25585 2004-09-13 10:56  pbartok
25586
25587         * Form.cs:
25588           - Fixed #region names
25589           - Moved properties and methods into their proper #regions
25590
25591 2004-09-13 10:51  pbartok
25592
25593         * Form.cs:
25594           - Added Accept and CancelButton properties
25595           - Added ProcessDialogKey() method
25596
25597 2004-09-13 08:18  pbartok
25598
25599         * IWindowTarget.cs:
25600           - Initial check-in
25601
25602 2004-09-10 21:50  pbartok
25603
25604         * Control.cs:
25605           - Added DoDragDrop() [incomplete]
25606           - Properly implemented 'Visible' handling
25607           - Added SetVisibleCore()
25608           - Implemented FindChildAtPoint()
25609           - Implemented GetContainerControl()
25610           - Implemented Hide()
25611
25612 2004-09-10 19:28  pbartok
25613
25614         * Control.cs:
25615           - Moved methods into their appropriate #regions
25616           - Reordered methods within regions alphabetically
25617
25618 2004-09-10 18:57  pbartok
25619
25620         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
25621           - Added method to retrieve text from window
25622
25623 2004-09-10 18:56  pbartok
25624
25625         * Control.cs:
25626           - Moved some internal functions into the internal region
25627           - Implemented FontHeight
25628           - Implemented RenderRightToLeft
25629           - Implemented ResizeRedraw
25630           - Implemented ShowFocusCues
25631           - Implemented ShowKeyboardCues
25632           - Implemented FromChildHandle
25633           - Implemented FromHandle
25634           - Implemented IsMnemonic
25635           - Implemented ReflectMessage
25636           - All public and protected Static Methods are now complete
25637
25638 2004-09-10 16:54  pbartok
25639
25640         * Control.cs:
25641           - Implemented remaining missing public instance properties
25642           - Alphabetized some out of order properties
25643
25644 2004-09-10 05:51  ravindra
25645
25646         * PictureBox.cs: Added a check for null image.
25647
25648 2004-09-10 00:59  jordi
25649
25650         * GroupBox.cs: remove cvs tag
25651
25652 2004-09-09 05:25  ravindra
25653
25654         * ToolBar.cs: Make redraw accessible from ToolBarButton.
25655
25656 2004-09-09 05:23  ravindra
25657
25658         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
25659           parent redraw.
25660
25661 2004-09-09 02:28  pbartok
25662
25663         * ThemeWin32Classic.cs:
25664           - Improve disabled string look
25665
25666 2004-09-09 01:15  jordi
25667
25668         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
25669           args and handler
25670
25671 2004-09-08 23:56  ravindra
25672
25673         * ItemBoundsPortion.cs: It's enum, not a class!
25674
25675 2004-09-08 23:47  ravindra
25676
25677         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
25678           Enums for Form.
25679
25680 2004-09-08 21:13  ravindra
25681
25682         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
25683           ListView control.
25684
25685 2004-09-08 21:03  ravindra
25686
25687         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
25688           avoid crash.
25689
25690 2004-09-08 21:01  ravindra
25691
25692         * ScrollableControl.cs: Removed unreachable code.
25693
25694 2004-09-08 06:45  jordi
25695
25696         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
25697
25698 2004-09-08 01:00  jackson
25699
25700         * XplatUIX11.cs: Only run the timers when updating the message
25701           queue. This effectively gives X messages a higher priority then
25702           timer messages. Timers still need love though
25703
25704 2004-09-07 14:01  jackson
25705
25706         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
25707           this for us and the handle is no longer valid.
25708
25709 2004-09-07 13:59  jackson
25710
25711         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
25712           loop that manages to not crash. TODO: Add poll and cleanup timers
25713
25714 2004-09-07 11:12  jordi
25715
25716         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
25717
25718 2004-09-07 03:40  jordi
25719
25720         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
25721           fixes, methods, multiple links
25722
25723 2004-09-06 06:55  jordi
25724
25725         * Control.cs: Caches ClientRectangle rectangle value
25726
25727 2004-09-05 02:03  jordi
25728
25729         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
25730           certain situations
25731
25732 2004-09-04 11:10  jordi
25733
25734         * Label.cs: Refresh when font changed
25735
25736 2004-09-02 16:24  pbartok
25737
25738         * Control.cs:
25739           - Added sanity check to creation of double buffer bitmap
25740
25741 2004-09-02 16:24  pbartok
25742
25743         * ButtonBase.cs:
25744           - Fixed selection of text color
25745           - Fixed handling of resize event; now properly recreates double
25746             buffering bitmap
25747           - Added missing assignment of TextAlignment
25748           - Added proper default for TextAlignment
25749
25750 2004-09-02 14:26  pbartok
25751
25752         * RadioButton.cs:
25753           - Added missing RadioButton.RadioButtonAccessibleObject class
25754
25755 2004-09-02 14:26  pbartok
25756
25757         * Control.cs:
25758           - Added missing Control.ControlAccessibleObject class
25759           - Started to implement Select()ion mechanisms, still very incomplete
25760
25761 2004-09-02 14:25  pbartok
25762
25763         * AccessibleObject.cs:
25764           - Added missing methods
25765
25766 2004-09-02 14:23  pbartok
25767
25768         * AccessibleNavigation.cs, AccessibleSelection.cs:
25769           - Initial check-in
25770
25771 2004-09-02 10:32  jordi
25772
25773         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
25774           pool for pens, brushes, and hatchbruses
25775
25776 2004-09-01 15:30  jackson
25777
25778         * StatusBar.cs: Fix typo
25779
25780 2004-09-01 14:44  pbartok
25781
25782         * RadioButton.cs:
25783           - Fixed state
25784
25785 2004-09-01 14:39  pbartok
25786
25787         * Button.cs, RadioButton.cs:
25788           - Functional initial check-in
25789
25790 2004-09-01 14:01  pbartok
25791
25792         * CheckBox.cs:
25793           - Added missing default
25794           - Added missing region mark
25795
25796 2004-09-01 09:10  jordi
25797
25798         * Label.cs: fixes method signatures, new methods, events, fixes
25799           autosize
25800
25801 2004-09-01 07:19  jordi
25802
25803         * Control.cs: Init string variables with an empty object
25804
25805 2004-09-01 04:20  jordi
25806
25807         * Control.cs: fires OnFontChanged event
25808
25809 2004-08-31 20:07  pbartok
25810
25811         * ButtonBase.cs:
25812           - Enabled display of strings
25813
25814 2004-08-31 20:05  pbartok
25815
25816         * Form.cs:
25817           - Added (partial) implementation of DialogResult; rest needs to be
25818             implemented when the modal loop code is done
25819
25820 2004-08-31 19:55  pbartok
25821
25822         * CheckBox.cs:
25823           - Fixed to match the removal of the needs_redraw concept
25824
25825 2004-08-31 19:55  pbartok
25826
25827         * ButtonBase.cs:
25828           - Removed the rather odd split between 'needs redraw' and redrawing
25829           - Now handles the events that require regeneration (ambient
25830             properties and size)
25831
25832 2004-08-31 19:41  pbartok
25833
25834         * Control.cs:
25835           - Added firing of BackColorChanged event
25836           - Added TopLevelControl property
25837           - Fixed handling of WM_ERASEBKGRND message
25838
25839 2004-08-31 12:49  pbartok
25840
25841         * ButtonBase.cs:
25842           - Removed debug
25843           - Minor fixes
25844
25845 2004-08-31 12:48  pbartok
25846
25847         * CheckBox.cs:
25848           - Finished (famous last words)
25849
25850 2004-08-31 04:35  jordi
25851
25852         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
25853           scrolling bugs, adds new methods
25854
25855 2004-08-30 14:42  pbartok
25856
25857         * CheckBox.cs:
25858           - Implemented CheckBox drawing code
25859
25860 2004-08-30 14:42  pbartok
25861
25862         * ButtonBase.cs:
25863           - Made Redraw() and CheckRedraw() virtual
25864           - Improved mouse up/down/move logic to properly track buttons
25865
25866 2004-08-30 09:44  pbartok
25867
25868         * CheckBox.cs:
25869           - Updated to fix broken build. Not complete yet.
25870
25871 2004-08-30 09:28  pbartok
25872
25873         * CheckState.cs:
25874           - Initial checkin
25875
25876 2004-08-30 09:17  pbartok
25877
25878         * Appearance.cs:
25879           - Initial check-in
25880
25881 2004-08-27 16:12  ravindra
25882
25883         * ToolBarButton.cs: Added TypeConverter attribute.
25884
25885 2004-08-27 16:07  ravindra
25886
25887         * ImageIndexConverter.cs: Implemented.
25888
25889 2004-08-27 14:17  pbartok
25890
25891         * Control.cs:
25892           - Removed unneeded stack vars
25893           - First attempt to fix sizing issues when layout is suspended
25894
25895 2004-08-25 15:35  jordi
25896
25897         * ScrollBar.cs: more fixes to scrollbar
25898
25899 2004-08-25 14:04  ravindra
25900
25901         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
25902           Added the missing divider code and grip for ToolBar Control.
25903
25904 2004-08-25 13:20  pbartok
25905
25906         * Control.cs:
25907           - Control now properly passes the ambient background color to child
25908             controls
25909
25910 2004-08-25 13:20  jordi
25911
25912         * ScrollBar.cs: small bug fix regarding bar position
25913
25914 2004-08-25 12:33  pbartok
25915
25916         * Timer.cs:
25917           - Now only calls SetTimer or KillTimer if the enabled state has
25918           changed
25919
25920 2004-08-25 12:33  pbartok
25921
25922         * XplatUIWin32.cs:
25923           - Fixed timer handling, now seems to work
25924           - Improved error message for window creation
25925
25926 2004-08-25 12:32  pbartok
25927
25928         * Control.cs:
25929           - Fixed generation of MouseUp message
25930
25931 2004-08-25 12:29  jordi
25932
25933         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
25934           and fixes for progressbar
25935
25936 2004-08-24 18:43  ravindra
25937
25938         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
25939           in ToolBar control.
25940
25941 2004-08-24 17:15  pbartok
25942
25943         * Panel.cs:
25944           - Added #region
25945           - Added missing events
25946           - Alphabetized
25947
25948 2004-08-24 17:14  pbartok
25949
25950         * StatusBar.cs, PictureBox.cs:
25951           - Now uses Control's CreateParams
25952
25953 2004-08-24 16:36  pbartok
25954
25955         * XplatUIX11.cs:
25956           - Fixed background color handling
25957           - Fixed sending of enter/leave events on a grab
25958
25959 2004-08-24 16:35  pbartok
25960
25961         * X11Structs.cs:
25962           - Refined definitions for CrossingEvent
25963
25964 2004-08-24 12:37  jordi
25965
25966         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
25967           formmating, methods signature, and adds missing events
25968
25969 2004-08-24 12:24  jordi
25970
25971         * Control.cs: fire OnEnabledChanged event
25972
25973 2004-08-24 11:17  pbartok
25974
25975         * XplatUIWin32.cs:
25976           - Implemented SetTimer() and KillTimer()
25977
25978 2004-08-24 11:16  pbartok
25979
25980         * XplatUIX11.cs:
25981           - Now uses Remove instead of Add to kill the timer
25982
25983 2004-08-24 10:16  jackson
25984
25985         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
25986           picture boxes in the theme now. Draw picture box borders and obey
25987           sizing modes
25988
25989 2004-08-24 05:49  jackson
25990
25991         * Timer.cs: Remove top secret debugging code
25992
25993 2004-08-24 05:34  jackson
25994
25995         * PictureBox.cs: Temp hack to make picture boxes draw their full
25996           image
25997
25998 2004-08-24 05:29  jackson
25999
26000         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26001           XplatUIX11.cs: Move timers to the driver level. On X they are
26002           queued by the driver and checked on idle.
26003
26004 2004-08-24 01:07  jackson
26005
26006         * XplatUIX11.cs: Use a queue for async messages instead of passing
26007           them as ClientMessages since that was totally broken. Also simply
26008           check for events and return an idle message if none are found. This
26009           gives us an idle handler, and prevents deadlocking when no messages
26010           are in the queue.
26011
26012 2004-08-23 18:19  ravindra
26013
26014         * XplatUIWin32.cs: Removed the unwanted destructor.
26015
26016 2004-08-23 17:27  pbartok
26017
26018         * ButtonBase.cs:
26019           - Finishing touches. Works now, just needs some optimizations.
26020
26021 2004-08-23 16:53  jordi
26022
26023         * ScrollBar.cs: small fix
26024
26025 2004-08-23 16:45  pbartok
26026
26027         * Application.cs:
26028           - Removed debug output
26029           - Simplifications
26030
26031 2004-08-23 16:43  jordi
26032
26033         * ScrollBar.cs: [no log message]
26034
26035 2004-08-23 16:10  pbartok
26036
26037         * Form.cs:
26038           - Fixed handling of WM_CLOSE message
26039           - Removed debug output
26040
26041 2004-08-23 16:09  pbartok
26042
26043         * Application.cs:
26044           - Added handling of Idle event
26045           - Added handling of form closing
26046           - Fixed reporting of MessageLoop property
26047           - Removed some unneeded code, should provide a bit of a speedup
26048
26049 2004-08-23 15:22  pbartok
26050
26051         * Control.cs:
26052           - Added InitLayout() method
26053           - Added code to properly perform layout when Anchor or Dock property
26054             is changed
26055           - Changed 'interpretation' of ResumeLayout. MS seems to have a
26056             LAMESPEC, tried to do it in a way that makes sense
26057
26058 2004-08-23 14:10  jordi
26059
26060         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
26061           properties and methods
26062
26063 2004-08-23 13:55  pbartok
26064
26065         * Control.cs:
26066           - Properly fixed Jordi's last fix
26067           - Now uses Cursor's Position property instead of calling XplatUI
26068           directly
26069
26070 2004-08-23 13:44  jordi
26071
26072         * PaintEventHandler.cs: Adding missing attribute
26073
26074 2004-08-23 13:39  pbartok
26075
26076         * Cursor.cs:
26077           - Implemented Position property
26078
26079 2004-08-23 13:39  pbartok
26080
26081         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26082           - Added method to move mouse cursor
26083
26084 2004-08-23 13:39  pbartok
26085
26086         * XplatUIX11.cs:
26087           - Fixed setting of background color
26088           - Added method to move mouse cursor
26089
26090 2004-08-23 13:16  jordi
26091
26092         * Control.cs: avoids null exception
26093
26094 2004-08-22 17:46  jackson
26095
26096         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
26097           PictureBox
26098
26099 2004-08-22 17:40  jackson
26100
26101         * XplatUIX11.cs: Add some missing locks
26102
26103 2004-08-22 15:10  pbartok
26104
26105         * Control.cs, Form.cs:
26106           - Removed OverlappedWindow style from Control, instead it's default
26107             now is child
26108           - Made form windows OverlappedWindow by default
26109
26110 2004-08-22 13:34  jackson
26111
26112         * ScrollBar.cs: Update the position through the Value property so
26113           the OnValueChanged event is raised.
26114
26115 2004-08-22 12:04  pbartok
26116
26117         * SWF.csproj:
26118           - Added Cursor.cs and UserControl.cs
26119
26120 2004-08-22 12:03  pbartok
26121
26122         * Cursor.cs:
26123           - Started implementation, not usable yet
26124
26125 2004-08-22 12:00  pbartok
26126
26127         * UserControl.cs:
26128           - Implemented UserControl (complete)
26129
26130 2004-08-21 19:20  ravindra
26131
26132         * ToolBar.cs: Correcting the formatting mess of VS.NET.
26133
26134 2004-08-21 18:49  ravindra
26135
26136         * ToolBar.cs: Probably this completes the missing attributes in
26137           toolbar control.
26138
26139 2004-08-21 18:03  ravindra
26140
26141         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
26142           Fixed toolbar control signatures.
26143
26144 2004-08-21 16:32  pbartok
26145
26146         * LinkLabel.cs:
26147           - Signature Fixes
26148
26149 2004-08-21 16:30  pbartok
26150
26151         * Label.cs:
26152           - Signature fixes
26153
26154 2004-08-21 16:19  pbartok
26155
26156         * Control.cs, Label.cs:
26157           - Signature fixes
26158
26159 2004-08-21 15:57  pbartok
26160
26161         * ButtonBase.cs:
26162           - Added loads of debug output for development
26163           - Fixed typo in method name
26164
26165 2004-08-21 15:52  pbartok
26166
26167         * ToolBarButtonClickEventArgs.cs:
26168           - Added missing base class
26169
26170 2004-08-21 14:53  pbartok
26171
26172         * Control.cs:
26173           - Updated to match new GrabWindow signature
26174
26175 2004-08-21 14:51  pbartok
26176
26177         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26178           - Added method to get default display size
26179
26180 2004-08-21 14:23  pbartok
26181
26182         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26183           - Added method to query current grab state
26184           - Added argument to allow confining a grab to a window
26185
26186 2004-08-21 14:22  pbartok
26187
26188         * Keys.cs:
26189           - Added [Flags] attribute so that modifiers can be used in bitwise
26190           ops
26191
26192 2004-08-21 14:21  pbartok
26193
26194         * TrackBar.cs, ScrollBar.cs:
26195           - Replaced direct XplatUI calls with their Control counterpart
26196
26197 2004-08-21 13:32  pbartok
26198
26199         * Control.cs:
26200           - Implemented Created property
26201
26202 2004-08-21 13:28  pbartok
26203
26204         * Control.cs:
26205           - Implemented ContainsFocus
26206
26207 2004-08-21 13:26  pbartok
26208
26209         * Control.cs:
26210           - Implemented CausesValidation
26211
26212 2004-08-21 13:21  pbartok
26213
26214         * Control.cs:
26215           - Implemented CanFocus
26216           - Implemented CanSelect
26217           - Implemented Capture
26218
26219 2004-08-21 12:35  pbartok
26220
26221         * XplatUIWin32.cs:
26222           - Fixed bug with Async message handling
26223           - Implemented getting the ModifierKeys
26224
26225 2004-08-21 12:32  jackson
26226
26227         * AsyncMethodResult.cs: Make sure we have the mutex before we
26228           release it. Fixes BeginInvoke on windows
26229
26230 2004-08-21 11:31  pbartok
26231
26232         * XplatUIWin32.cs, XplatUIX11.cs:
26233           - Drivers now return proper mouse state
26234
26235 2004-08-21 10:54  jackson
26236
26237         * Control.cs: Implement EndInvoke
26238
26239 2004-08-21 10:48  jackson
26240
26241         * Timer.cs: Remove unneeded finalizer
26242
26243 2004-08-20 19:52  ravindra
26244
26245         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
26246           in mouse event handling in the ToolBar control.
26247
26248 2004-08-20 19:50  ravindra
26249
26250         * ImageList.cs: Changed draw method to use the arguments passed in
26251           to draw the image.
26252
26253 2004-08-20 18:58  pbartok
26254
26255         * XplatUIStructs.cs:
26256           - Added private message for async communication
26257
26258 2004-08-20 17:38  ravindra
26259
26260         * Control.cs: Made RightToLeft property virtual and removed a
26261           Console.WriteLine.
26262
26263 2004-08-20 14:39  jordi
26264
26265         * ThemeGtk.cs: use style_attach
26266
26267 2004-08-20 14:39  pbartok
26268
26269         * XplatUIWin32.cs:
26270           - Added jackson's Async code from X11 to Win32
26271
26272 2004-08-20 14:09  pbartok
26273
26274         * SWF.csproj:
26275           - Added all new files
26276
26277 2004-08-20 14:09  pbartok
26278
26279         * Control.cs:
26280           - Added call to set window background color
26281
26282 2004-08-20 14:03  pbartok
26283
26284         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26285           - Added method for setting the window background
26286
26287 2004-08-20 14:02  pbartok
26288
26289         * XplatUIWin32.cs:
26290           - Added method for setting the background color
26291           - Added handling for erasing the window background
26292
26293 2004-08-20 13:45  jordi
26294
26295         * TrackBar.cs: fixes timer, new properties and methods
26296
26297 2004-08-20 13:34  jackson
26298
26299         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
26300           correct thread
26301
26302 2004-08-20 13:22  jackson
26303
26304         * Timer.cs: Timer Tick events are now handed through Controls Async
26305           mechanism so the callbacks are executed in the same thread as X
26306
26307 2004-08-20 13:19  jackson
26308
26309         * XplatUIDriver.cs: Expose functionality to send async messages
26310           through the driver
26311
26312 2004-08-20 13:18  jackson
26313
26314         * Control.cs: Implement Begininvoke
26315
26316 2004-08-20 13:14  jackson
26317
26318         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
26319           messages through the driver
26320
26321 2004-08-20 13:12  jackson
26322
26323         * XplatUIX11.cs: Lock before all X operations. Also added Async
26324           method functionality through XSendEvent
26325
26326 2004-08-20 13:11  jackson
26327
26328         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
26329           This will screw up on 64 bit systems)
26330
26331 2004-08-20 13:10  jackson
26332
26333         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
26334           Async messages through X/Win32
26335
26336 2004-08-19 19:39  pbartok
26337
26338         * XplatUIX11.cs:
26339           - Updated code to match new HandleData.DeviceContext type
26340
26341 2004-08-19 19:38  pbartok
26342
26343         * HandleData.cs:
26344           - Made DeviceContext a generic object to allow usage from various
26345           drivers
26346           - Added support for queueing Windows messages
26347
26348 2004-08-19 19:37  pbartok
26349
26350         * XplatUIWin32.cs:
26351           - Added generation of MouseEnter, MouseLeave and MouseHover events
26352           - Added cleanup on EndPaint
26353
26354 2004-08-19 19:17  pbartok
26355
26356         * Control.cs:
26357           - Added handling of WM_MOUSEHOVER
26358           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
26359           code
26360
26361 2004-08-19 18:55  jordi
26362
26363         * ThemeGtk.cs: fixes button order
26364
26365 2004-08-19 18:12  jordi
26366
26367         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
26368
26369 2004-08-19 17:09  pbartok
26370
26371         * Control.cs:
26372           - Added Right property
26373           - Added RightToLeft property
26374
26375 2004-08-19 16:27  jordi
26376
26377         * ThemeGtk.cs: experimental GTK theme support
26378
26379 2004-08-19 16:26  jordi
26380
26381         * ITheme.cs, Theme.cs: move themes from an interface to a class
26382
26383 2004-08-19 16:25  jordi
26384
26385         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
26386           theme enhancaments
26387
26388 2004-08-19 16:04  pbartok
26389
26390         * XplatUIX11.cs:
26391           - Added colormap basics
26392           - Added a way to re-initialize with a different display handle
26393           - Fixed setting of the window background color
26394           - Added various X11 imports related to colors and colormaps
26395
26396 2004-08-19 15:51  pbartok
26397
26398         * X11Structs.cs:
26399           - Removed packing hints (Paolo suggested this a while back)
26400           - fixed colormap type
26401           - Added default Atom types
26402           - Added Screen and color structs and enums
26403
26404 2004-08-19 15:39  pbartok
26405
26406         * ImageList.cs:
26407           - Added missing Draw() method
26408           - Added missing RecreateHandle event
26409
26410 2004-08-19 15:30  pbartok
26411
26412         * Form.cs:
26413           - Added handling of WM_CLOSE
26414
26415 2004-08-18 13:16  jordi
26416
26417         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
26418           a table
26419
26420 2004-08-18 09:56  jordi
26421
26422         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
26423
26424 2004-08-17 15:31  ravindra
26425
26426         * SWF.csproj: Updated project.
26427
26428 2004-08-17 15:25  pbartok
26429
26430         * Control.cs:
26431           - Drawing improvement; don't call UpdateBounds if we are not visible
26432             (or have been minimized)
26433
26434 2004-08-17 15:24  pbartok
26435
26436         * XplatUIWin32.cs:
26437           - Finished IsVisible
26438           - Added Win32GetWindowPlacement
26439
26440 2004-08-17 15:08  jackson
26441
26442         * Panel.cs: Initial checkin of the Panel
26443
26444 2004-08-17 14:25  pbartok
26445
26446         * Control.cs:
26447           - Fixed broken handling of default window sizes
26448
26449 2004-08-17 13:29  jackson
26450
26451         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
26452           has a large startup time.
26453
26454 2004-08-17 10:25  jackson
26455
26456         * HandleData.cs: union areas properly
26457
26458 2004-08-17 10:12  jackson
26459
26460         * HandleData.cs: union areas properly
26461
26462 2004-08-16 20:00  ravindra
26463
26464         * ToolBar.cs, ToolBarButton.cs: Added attributes.
26465
26466 2004-08-16 18:48  ravindra
26467
26468         * ToolBar.cs: Added attributes.
26469
26470 2004-08-16 17:17  ravindra
26471
26472         * SWF.csproj: Updated project.
26473
26474 2004-08-16 17:16  jackson
26475
26476         * XplatUIX11.cs: Check for more expose events before sending a
26477           WM_PAINT so they can all be grouped together. This makes dragging a
26478           window across another window redraw in a sane way.
26479
26480 2004-08-16 15:47  pbartok
26481
26482         * Control.cs:
26483           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
26484             support OnMouseEnter/Leave()
26485           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
26486             exposure handling
26487
26488 2004-08-16 15:46  pbartok
26489
26490         * XplatUIStructs.cs, XplatUIX11.cs:
26491           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
26492           OnMouseEnter/Leave()
26493
26494 2004-08-16 15:34  jackson
26495
26496         * XplatUIX11.cs: Group multiple expose events in HandleData, make
26497           sure messages get the message field set to WM_NULL if they are not
26498           handled.
26499
26500 2004-08-16 15:24  jackson
26501
26502         * HandleData.cs: HandleData is used for storing message information
26503           for window handles
26504
26505 2004-08-15 17:23  ravindra
26506
26507         * ColorDepth.cs: Added attribute.
26508
26509 2004-08-15 17:23  ravindra
26510
26511         * SWF.csproj: Updated project for ToolBar Control.
26512
26513 2004-08-15 17:20  ravindra
26514
26515         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
26516           control and also dos2unix format.
26517
26518 2004-08-15 17:13  ravindra
26519
26520         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
26521           ToolBarButtonClickEventArgs.cs,
26522           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
26523           ToolBarTextAlign.cs: First Implementation of ToolBar control.
26524
26525 2004-08-15 15:31  pbartok
26526
26527         * ButtonBase.cs:
26528           - First (mostly) working version
26529
26530 2004-08-13 16:15  pbartok
26531
26532         * Control.cs:
26533           - Fixed Anchor default
26534
26535 2004-08-13 15:43  pbartok
26536
26537         * Control.cs:
26538           - Changed GetCursorPos signature
26539
26540 2004-08-13 15:42  pbartok
26541
26542         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
26543           - Changed signature for GetCursorPos
26544
26545 2004-08-13 15:25  pbartok
26546
26547         * XplatUIX11.cs:
26548           - Cleanup
26549           - Fixed resizing/exposure handling
26550
26551 2004-08-13 15:22  jordi
26552
26553         * ThemeWin32Classic.cs: removes redundant code and fixes issues
26554           with tickposition
26555
26556 2004-08-13 14:55  jordi
26557
26558         * TrackBar.cs: change from wndproc to events
26559
26560 2004-08-13 13:00  jordi
26561
26562         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26563           XplatUIX11.cs: implements PointToClient (ScreenToClient)
26564
26565 2004-08-13 12:53  pbartok
26566
26567         * XplatUIWin32.cs:
26568           - Changed GetWindowPos to also provide client area size
26569           - Fixed broken prototypes for several win32 functions
26570
26571 2004-08-13 12:53  pbartok
26572
26573         * XplatUI.cs, XplatUIDriver.cs:
26574           - Changed GetWindowPos to also provide client area size
26575
26576 2004-08-13 12:52  pbartok
26577
26578         * XplatUIX11.cs:
26579           - Added generation of WM_POSCHANGED
26580           - Changed GetWindowPos to also provide client area size
26581
26582 2004-08-13 12:52  pbartok
26583
26584         * Control.cs:
26585           - Added Dispose() and destructor
26586           - Fixed resizing and bounds calculation
26587           - Fixed Layout
26588           - Added memory savings for invisible windows
26589
26590 2004-08-13 12:46  jordi
26591
26592         * TrackBar.cs: adds timer and grap window
26593
26594 2004-08-13 10:25  jackson
26595
26596         * Timer.cs: SWF Timer
26597
26598 2004-08-12 16:59  pbartok
26599
26600         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26601           - Implemented method to get current mouse position
26602
26603 2004-08-12 14:29  jordi
26604
26605         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
26606           enhancement, fix mouse problems, highli thumb, etc
26607
26608 2004-08-12 13:31  pbartok
26609
26610         * Control.cs:
26611           - Fixed Anchoring bugs
26612
26613 2004-08-12 13:01  jackson
26614
26615         * StatusBar.cs: Don't forget things
26616
26617 2004-08-12 12:54  jackson
26618
26619         * ThemeWin32Classic.cs: Handle owner draw status bars
26620
26621 2004-08-12 12:54  jackson
26622
26623         * StatusBar.cs: Implement missing properties, events, and methods.
26624           Handle mouse clicking
26625
26626 2004-08-12 10:19  jackson
26627
26628         * StatusBarPanelClickEventArgs.cs,
26629           StatusBarPanelClickEventHandler.cs: Classes for handling status
26630           bar panel click events
26631
26632 2004-08-12 10:10  jackson
26633
26634         * Control.cs: Add missing properties
26635
26636 2004-08-12 09:46  pbartok
26637
26638         * BindingsManagerBase.cs:
26639           - Name changed to BindingManagerBase.cs
26640
26641 2004-08-12 09:25  jordi
26642
26643         * ScrollableControl.cs: calls ctrlbase instead of exeception
26644
26645 2004-08-11 16:28  pbartok
26646
26647         * InputLanguageChangingEventArgs.cs:
26648           - Never check in before compiling. Fixes the last check-in
26649
26650 2004-08-11 16:26  pbartok
26651
26652         * InputLanguageChangingEventArgs.cs:
26653           - More signature fixes
26654
26655 2004-08-11 16:20  pbartok
26656
26657         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
26658           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
26659           ImageListStreamer.cs, InputLanguage.cs,
26660           InputLanguageChangedEventArgs.cs,
26661           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
26662           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
26663           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
26664           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26665           - Signature fixes
26666
26667 2004-08-11 16:16  pbartok
26668
26669         * Application.cs:
26670           - Fixed Signature
26671           - Added .Net 1.1 method
26672
26673 2004-08-11 15:25  pbartok
26674
26675         * SWF.csproj:
26676           - Fixed BindingManagerBase.cs filename
26677
26678 2004-08-11 15:22  pbartok
26679
26680         * BindingManagerBase.cs:
26681           - Was checked in with wrong filename
26682
26683 2004-08-11 14:50  pbartok
26684
26685         * SWF.csproj:
26686           - Updated
26687
26688 2004-08-11 13:41  jordi
26689
26690         * XplatUIWin32.cs: Fixes ClientRect
26691
26692 2004-08-11 13:19  pbartok
26693
26694         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
26695           XplatUIX11.cs:
26696           - We had SetWindowPos and MoveWindow to set window positions and
26697             size, removed MoveWindow. We have GetWindowPos, so it made sense to
26698             keep SetWindowPos as matching counterpart
26699           - Added some X11 sanity checking
26700
26701 2004-08-11 12:59  pbartok
26702
26703         * Control.cs:
26704           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
26705             (It seems that SetBounds is just a front for SetBoundsCore and
26706              SetBoundsCore updates the underlying window system and
26707              UpdateBounds is responsible for updating the variables associated
26708              with the Control and sending the events)
26709           - Major cleanup of Size handling; we now have two sizes, client_size
26710             and bounds. Bounds defines the window with decorations, client_size
26711             without them.
26712
26713 2004-08-11 12:55  pbartok
26714
26715         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26716           - Added method to calculate difference between decorated window and
26717             raw client area
26718
26719 2004-08-11 12:54  pbartok
26720
26721         * Label.cs:
26722           - Forcing redraw on resize
26723
26724 2004-08-11 11:43  pbartok
26725
26726         * ImageList.cs:
26727           - Removed disposing of the actual images when the list is disposed
26728
26729 2004-08-11 09:13  pbartok
26730
26731         * Control.cs:
26732           - Now properly reparents windows
26733
26734 2004-08-11 08:37  pbartok
26735
26736         * Control.cs:
26737           - Duh!
26738
26739 2004-08-11 07:47  pbartok
26740
26741         * Control.cs:
26742           - Rewrote the collection stuff. Might not be as fast now, not
26743             keeping the number of children around and accessible directly, but
26744             it's more straightforward
26745
26746 2004-08-11 07:44  pbartok
26747
26748         * AccessibleObject.cs:
26749           - Fixed to match ControlCollection rewrite
26750
26751 2004-08-11 07:43  pbartok
26752
26753         * ImageList.cs:
26754           - Added missing creation of the collection list
26755
26756 2004-08-10 20:08  jackson
26757
26758         * StatusBar.cs: Get the paint message from WndProc
26759
26760 2004-08-10 19:31  jackson
26761
26762         * ThemeWin32Classic.cs: Create Brushes as little as possible
26763
26764 2004-08-10 19:20  jackson
26765
26766         * UICues.cs: Add Flags attribute
26767
26768 2004-08-10 19:19  jackson
26769
26770         * StatusBarPanel.cs: Signature cleanup
26771
26772 2004-08-10 19:10  jackson
26773
26774         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
26775           Initial implementation of status bar item drawing
26776
26777 2004-08-10 17:27  jordi
26778
26779         * TrackBar.cs: add missing methods, properties, and restructure to
26780           hide extra ones
26781
26782 2004-08-10 16:24  jackson
26783
26784         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
26785           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
26786           attribute
26787
26788 2004-08-10 13:21  jordi
26789
26790         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
26791           enhancements and standarize on win colors defaults
26792
26793 2004-08-10 12:52  jackson
26794
26795         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
26796           ThemeWin32Classic.cs: Implement DrawItem functionality
26797
26798 2004-08-10 12:47  jordi
26799
26800         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
26801
26802 2004-08-10 12:32  jordi
26803
26804         * Control.cs: throw ontextchange event
26805
26806 2004-08-10 11:43  pbartok
26807
26808         * Control.cs:
26809           - Added more to the still unfinished Dock/Anchor layout code
26810
26811 2004-08-10 11:39  pbartok
26812
26813         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
26814           - Added GetWindowPos method
26815
26816 2004-08-10 11:36  pbartok
26817
26818         * XplatUIWin32.cs:
26819           - Implemented several methods
26820
26821 2004-08-10 09:47  jackson
26822
26823         * TrackBar.cs: Allow control to handle buffering
26824
26825 2004-08-10 09:41  jackson
26826
26827         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
26828
26829 2004-08-10 09:24  jackson
26830
26831         * Label.cs, LinkLabel.cs: Let Control handle buffering.
26832
26833 2004-08-10 09:09  jackson
26834
26835         * StatusBar.cs: Let Control handle all the buffering.
26836
26837 2004-08-10 09:08  jackson
26838
26839         * Control.cs: Control will now handle the buffering code, so each
26840           control does not have to implement this.
26841
26842 2004-08-10 08:34  jackson
26843
26844         * XplatUIDriver.cs: Use default colors from the theme
26845
26846 2004-08-09 17:12  pbartok
26847
26848         * ImageList.cs:
26849           - Fixed several bugs Ravindra pointed out
26850
26851 2004-08-09 16:11  pbartok
26852
26853         * Control.cs:
26854           - Added incomplete dock layout code
26855           - Added support for mouse wheel
26856
26857 2004-08-09 16:09  pbartok
26858
26859         * XplatUIX11.cs:
26860           - Added handling for middle and right mousebutton
26861           - Added handling for mouse wheel
26862           - Added handling for key state and mouse state and position
26863           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
26864           messages
26865
26866 2004-08-09 15:40  jackson
26867
26868         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
26869           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
26870           checkin
26871
26872 2004-08-09 15:37  jackson
26873
26874         * StatusBar.cs: Initial implementation of StatusBar
26875
26876 2004-08-09 15:36  jackson
26877
26878         * ITheme.cs: Add support for drawing status bar and getting status
26879           bar item sizes
26880
26881 2004-08-09 15:35  pbartok
26882
26883         * MouseButtons.cs:
26884           - Fixed values
26885
26886 2004-08-09 15:34  jackson
26887
26888         * ThemeWin32Classic.cs: Add support for drawing status bar and get
26889           status bar item sizes
26890
26891 2004-08-09 15:21  jackson
26892
26893         * ThemeWin32Classic.cs: Use known colors for default control
26894           colours
26895
26896 2004-08-09 15:12  jackson
26897
26898         * ThemeWin32Classic.cs: Make the default font static, it is static
26899           in control so this doesn't change functionality and creating fonts
26900           is sloooooow.
26901
26902 2004-08-09 14:56  pbartok
26903
26904         * X11Structs.cs:
26905           - Added GrabMode enum
26906
26907 2004-08-09 14:55  pbartok
26908
26909         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26910           - Removed Run method, was only required for initial development
26911
26912 2004-08-09 14:51  pbartok
26913
26914         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
26915           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
26916           capture
26917
26918 2004-08-09 13:48  pbartok
26919
26920         * XplatUIX11.cs:
26921           - Fixed default sizing for child windows
26922
26923 2004-08-09 12:56  pbartok
26924
26925         * XplatUIX11.cs:
26926           - Added generation of WM_DESTROY message
26927           - Added handling of window manager induced shutdown
26928
26929 2004-08-09 11:31  jackson
26930
26931         * ThemeWin32Classic.cs: New names for control properties
26932
26933 2004-08-09 11:25  jackson
26934
26935         * Control.cs: Use new color names
26936
26937 2004-08-09 11:02  jackson
26938
26939         * XplatUI.cs: Get default window properties from the theme
26940
26941 2004-08-09 11:01  jackson
26942
26943         * ITheme.cs: The theme engine now controls default window
26944           properties
26945
26946 2004-08-09 11:00  jackson
26947
26948         * ThemeWin32Classic.cs: Add default window color properties
26949
26950 2004-08-09 10:17  jackson
26951
26952         * ThemeWin32Classic.cs: Use correct default back color
26953
26954 2004-08-09 10:05  jackson
26955
26956         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
26957           the theme now.
26958
26959 2004-08-09 09:56  jackson
26960
26961         * XplatUI.cs: Remove defaults, these are handled by the theme now.
26962
26963 2004-08-09 09:54  jackson
26964
26965         * Control.cs: Get default properties from the theme.
26966
26967 2004-08-09 09:53  jackson
26968
26969         * ITheme.cs: Themes now handle default control properties
26970
26971 2004-08-09 09:53  jackson
26972
26973         * ThemeWin32Classic.cs: Themes now handle default control
26974           properties so coloring will be consistent
26975
26976 2004-08-08 16:54  jordi
26977
26978         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
26979
26980 2004-08-08 15:08  jordi
26981
26982         * XplatUIX11.cs: fixes keyboard crash
26983
26984 2004-08-08 13:47  jordi
26985
26986         * Label.cs: add cvs header info
26987
26988 2004-08-08 12:09  jackson
26989
26990         * ThemeWin32Classic.cs: Add pen_buttonface
26991
26992 2004-08-08 11:52  jordi
26993
26994         * Label.cs, LinkLabel.cs: [no log message]
26995
26996 2004-08-08 11:34  jordi
26997
26998         * ThemeWin32Classic.cs: Use Windows Standard Colours
26999
27000 2004-08-07 17:32  jordi
27001
27002         * TrackBar.cs: throw exceptions of invalid enums values
27003
27004 2004-08-07 17:31  jordi
27005
27006         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
27007           draw method name
27008
27009 2004-08-07 16:56  jackson
27010
27011         * HorizontalAlignment.cs: Initial checkin
27012
27013 2004-08-07 13:16  jordi
27014
27015         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
27016           methods
27017
27018 2004-08-07 13:05  jordi
27019
27020         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
27021           GetSysColor defines
27022
27023 2004-08-06 18:01  pbartok
27024
27025         * ThemeWin32Classic.cs:
27026           - Fixed some rounding issues with float/int
27027
27028 2004-08-06 18:00  jackson
27029
27030         * DockStyle.cs, AnchorStyles.cs:
27031
27032                   Add flags and serializable attributes.
27033
27034 2004-08-06 17:46  pbartok
27035
27036         * XplatUIX11.cs:
27037           - Implemented GetParent
27038
27039 2004-08-06 17:18  pbartok
27040
27041         * TrackBar.cs:
27042           - Fixed some rounding issues with float/int
27043
27044 2004-08-06 17:17  pbartok
27045
27046         * X11Structs.cs, XplatUIX11.cs:
27047           - Fixed Refresh and Invalidate
27048
27049 2004-08-06 15:30  pbartok
27050
27051         * Control.cs, X11Structs.cs, XplatUIX11.cs:
27052           - Fixed recursive loop when resizing
27053           - Improved/fixed redrawing on expose messages
27054
27055 2004-08-06 09:53  jordi
27056
27057         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
27058           keyboard navigation
27059
27060 2004-08-06 08:02  pbartok
27061
27062         * X11Structs.cs, XplatUIX11.cs:
27063           - Fixed reparenting
27064           - Fixed window border creation
27065
27066 2004-08-05 15:38  pbartok
27067
27068         * XplatUIX11.cs:
27069           - Attempted fix for reparenting problems
27070
27071 2004-08-04 15:14  pbartok
27072
27073         * Control.cs:
27074           - Fixed Invalidation bug (calculated wrong client area)
27075           - Added ClientSize setter
27076
27077 2004-08-04 15:13  pbartok
27078
27079         * Form.cs:
27080           - Added AutoScale properties
27081
27082 2004-08-04 15:13  pbartok
27083
27084         * SWF.csproj:
27085           - Added latest files
27086
27087 2004-08-04 14:11  pbartok
27088
27089         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
27090           XplatUIX11.cs:
27091           - Added Invalidate handling
27092
27093 2004-08-03 17:09  jordi
27094
27095         * XplatUIDriver.cs: fixes spelling mistake
27096
27097 2004-07-27 09:53  jordi
27098
27099         * TrackBar.cs: fixes trackbar events, def classname, methods
27100           signature
27101
27102 2004-07-27 09:29  jordi
27103
27104         * ScrollBar.cs: fixes scrollbar events
27105
27106 2004-07-27 04:38  jordi
27107
27108         * Control.cs: changes to be able to run winforms samples
27109
27110 2004-07-26 11:42  jordi
27111
27112         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
27113           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
27114
27115 2004-07-26 05:41  jordi
27116
27117         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
27118           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
27119           implementation
27120
27121 2004-07-22 09:22  jordi
27122
27123         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
27124           check link overlapping, implement events, and fixes
27125
27126 2004-07-21 10:28  jordi
27127
27128         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
27129
27130 2004-07-21 10:19  jordi
27131
27132         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
27133           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
27134           LinkLabelLinkClickedEventArgs.cs,
27135           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
27136           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
27137           implementation
27138
27139 2004-07-19 13:09  jordi
27140
27141         * Control.cs, Label.cs: label control re-written: added missing
27142           functionlity, events, and properties
27143
27144 2004-07-19 10:49  jordi
27145
27146         * Control.cs: fixes SetBounds logic
27147
27148 2004-07-19 01:29  jordi
27149
27150         * Control.cs: Call RefreshWindow only if the window has created
27151
27152 2004-07-15 14:05  pbartok
27153
27154         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
27155           - Implemented ImageList and ImageList.ImageCollection classes
27156           - Added ColorDepth enumeration
27157           - Updated SWF VS.Net project
27158
27159 2004-07-15 11:06  jordi
27160
27161         * XplatUIStructs.cs: added MsgButons enum
27162
27163 2004-07-15 11:03  jordi
27164
27165         * Control.cs: added basic mouse handeling events
27166
27167 2004-07-15 03:38  jordi
27168
27169         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
27170           Vertical TrackBar control implementation
27171
27172 2004-07-13 09:33  jordi
27173
27174         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
27175
27176 2004-07-13 09:31  jordi
27177
27178         * Control.cs, Form.cs: commit: new properties and fixes form size
27179           problems
27180
27181 2004-07-09 14:13  miguel
27182
27183         * ProgressBar.cs: Spelling
27184
27185 2004-07-09 11:25  pbartok
27186
27187         * ProgressBar.cs:
27188           - Removed usage of Rectangle for drawing. Miguel pointed out it's
27189           faster
27190
27191 2004-07-09 11:17  miguel
27192
27193         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
27194
27195                 * ProgressBar.cs: Fixed spelling for `block'
27196
27197                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
27198                 style guidelines.
27199
27200                 Avoid using the += on rect.X, that exposed a bug in the compiler.
27201
27202 2004-07-08 23:21  pbartok
27203
27204         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
27205           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
27206           BaseCollection.cs, Binding.cs, BindingContext.cs,
27207           BindingMemberInfo.cs, BindingsCollection.cs,
27208           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
27209           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
27210           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
27211           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
27212           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
27213           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
27214           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
27215           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
27216           FrameStyle.cs, GiveFeedbackEventArgs.cs,
27217           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
27218           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
27219           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
27220           InputLanguageChangedEventArgs.cs,
27221           InputLanguageChangedEventHandler.cs,
27222           InputLanguageChangingEventArgs.cs,
27223           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
27224           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
27225           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
27226           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
27227           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
27228           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
27229           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
27230           QueryAccessibilityHelpEventArgs.cs,
27231           QueryAccessibilityHelpEventHandler.cs,
27232           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
27233           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
27234           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
27235           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
27236           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
27237           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
27238           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
27239           XplatUIX11.cs, lang.cs:
27240           - Initial check-in
27241
27242