2007-03-01 Jonathan Pobst <monkey@jpobst.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
2
3         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code.  :/
4
5 2007-03-01  Jonathan Pobst  <monkey@jpobst.com>
6
7         * XplatUIWin32.cs: Register a new class with Windows each time we get
8         a new ClassStyle.  [Fixes bugs #79432, #80817]
9         * Controls.cs: Set the correct ClassStyle in CreateParams.
10         * ToolStripDropDown.cs: Don't request an invalid ClassStyle.
11
12 2007-03-01  Gert Driesen  <drieseng@users.sourceforge.net>
13
14         * ListView.cs: Add fireEvent argument to ReorderColumn since the
15         ColumnReordered event must not be signaled when modifying DisplayIndex
16         of a ColumnHeader. Added internal ReorderColumns method which takes
17         care of drawing, and updating the internal DisplayIndex of the
18         ColumnHeader. Added AddColumn method which is invoked from
19         ColumnHeaderCollection when adding or inserting columns, and which
20         ensures that reorder_columns_indices is kept in sync. Avoid redrawing
21         after adding each ColumnHeader in ColumnHeaderCollection.AddRange.
22         Recalculated dispay indices after removing a ColumnHeader.
23         * ColumnHeader.cs: Save DisplayIndex separately from ListView to
24         match MS. Allows last display index to be returned after ListView
25         is disposed. Update actual location of ColumnHeader when DisplayIndex
26         is modified.
27
28 2007-03-01  Everaldo Canuto  <everaldo@simios.org>
29
30         * LinkLabel.cs: Improve CalcTrimRectangle.
31         
32         * ThemeWin32Classic.cs: Fix some compilation problem under VS 2003.
33
34 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
35
36         * LinkLabel.cs: Rename CalcMeasurementFactor as CalcTrimRectangle and
37         get rectangle as a result value.
38
39 2007-02-28  Everaldo Canuto  <everaldo@simios.org>
40
41         * LinkLabel.cs: Theres some diferences between rectangle return from 
42         MeasureCharacterRanges and the area used for DrawString to fix this 
43         CalcMeasurementFactor method was created, it calcules the diferences
44         to be use later to adjust rectangle in draw operations. Fixes #80473.
45         
46         * ThemeWin32Classic.cs: Use factor calculated by CalcMeasurementFactor
47         to adjust draw rectangle.
48
49 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
50
51         * ThemeWin32Classic.cs: In DrawLinkLabel draw focus rectangle before draw
52         text and some other changes to reduce and optimize source code.
53
54 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
55
56         * RadioButton.cs: Implement 2.0 event.
57         * RelatedImageListAttribute.cs: Implement new class.
58
59 2007-02-27  Everaldo Canuto  <everaldo@simios.org>
60
61         * MenuAPI.cs: Change keynav_state before call SelectItem. Fixes #80901.
62
63 2007-02-27  Jonathan Pobst  <monkey@jpobst.com>
64
65         * CheckBox.cs: Implement 2.0 functionality.
66
67 2007-02-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
68
69         * ListView.cs: Refactor Add and AddRange methods of
70         ListViewItemCollection, to not update the ListView
71         everytime an item is added in AddRange. Also move the update
72         code to a new CollectionChanged method, and call it
73         from other methods that need it as well (this should also fix some
74         bugs when Sorting is used).
75
76 2007-02-27  Jackson Harper  <jackson@ximian.com>
77
78         * TextControl.cs: Try to never let the caret stay in a non-text
79         tag.
80         * TextBoxBase.cs: Update the caret.
81
82 2007-02-26  Jonathan Pobst  <monkey@jpobst.com>
83
84         * XplatUIStructs.cs: Add some convenience methods for POINT structure.
85         * XplatUIWin32.cs: Add some convenience methods for RECT structure,
86         delete POINT structure, duplicate of one in XplatUIStructs.
87         * TextRenderer.cs: Use XplatUIWin32.RECT instead of UXTheme.RECT.
88
89 2007-02-26  Gert Driesen  <drieseng@users.sourceforge.net>
90
91         * ListView.cs: Initialize LabelEditEventArgs after setting Text of
92         edit box since otherwise the Label would immediately be set (even if
93         the user did not modify the label). In OnKeyDown set Handled to true
94         if Return or Escape was pressed. In ColumnHeaderCollection unlink
95         columns that are to be removed. In ListViewItemCollection unlink items
96         that are to be removed.
97
98 2007-02-24  Jonathan Pobst  <monkey@jpobst.com>
99
100         * TextRenderer.cs: If we set a GDI clip region, we need to clear
101         it when we are done.  [Fixes bug #80949]
102
103 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
104
105         * Form.cs: Wrap checking ShowWithoutActivation in a NET_2_0 block.
106
107 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
108
109         * ListView.cs: I forgot to commit the changes for ListView 
110         in my previous patch.
111
112 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
113
114         * Clipboard.cs: Partially implement an overload of SetDataObject.
115         * Form.cs: Implement ShowWithoutActivation.
116         * XPlatUIWin32.cs: Fix for WM_SHOWNOACTIVATE for forms.
117
118 2007-02-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
119
120         This is a first set of changes to make the Virtual mode works,
121         by avoiding the retrieval of ListViewItem instances until
122         draw time.
123
124         * ListView.cs: Store item position in the ListView instead of the
125         ListViewItem, this way we don't request the Bounds property of
126         ListViewItem inside the ListView calculations, as well as cache the item
127         size in item_size field. Store indexes instead of ListViewItem
128         instances in the matrix used by icon view. Add a ItemMatrixLocation
129         struct to hold the row and col info of the matrix info.
130
131         * ListViewItem.cs: Don't store the location anymore, and only cache
132         the rectangles for GetBounds. Use the ListView.GetItemLocation
133         method to retrieve the actual location.
134
135 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
136
137         * TextRenderer.cs: Add clipping support, thanks to George.
138         [Fixes bug #80949]
139
140 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
141
142         * ListViewItem.cs: Cancel label edit when item is removed from 
143         ListView.
144         * ListView.cs: Move setting of focus to EndEdit. Fire BeforeLabelEdit
145         event before the edit textbox is displayed.  Added CancelEdit method
146         which is used end to editing while ignoring the value set by the
147         user. In EndEdit, set focus to ListView to avoid losing focus to
148         other controls. In ListViewItemCollection.Clear, cancel editing of
149         any of the items.  In Remove, cancel editing of item being removed.
150         Avoid udplicate code by modifing RemoveAt to invoke Remove.
151
152 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
153
154         * FileDialog.cs: Update FSEntry when move is successful. Fixes
155         bug #80948.  
156
157 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
158
159         * MainMenu.cs: Change Draw method to take care about MenuOrigin to be 
160         compatible with non X11 systems. Fixes #80901.
161
162 2007-02-23  Gert Driesen  <drieseng@users.sourceforge.net>
163
164         * ListView.cs: Added bool argument to UpdateMultiSelection to specify
165         whether the item should be unselected and reselect. We do no want this
166         when we're starting to edit the label. Do not fire the 
167         SelectedIndexChanged event from ListView when its already been fired
168         by modifying ListViewItem.Selected. Fixes bug #80943.
169
170 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
171
172         * TextRenderer.cs: Previos commit logic was backwards.
173
174 2007-02-23  Jonathan Pobst  <monkey@jpobst.com>
175
176         * TextRenderer.cs: Don't add padding on MeasureText if we were
177         sent the NoPadding flag.
178
179 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
180
181         * ThemeWin32Classic.cs: Invert order of drawing operation with DrawImage
182         after DrawButton. To prevent image overlaps button borders SetClip and 
183         ResetClip added before and after draw image. Fixes #79129.
184
185 2007-02-23  Everaldo Canuto  <everaldo@simios.org>
186
187         * FolderBrowserDialog.cs: Use ClientSize instead of Size to specify 
188         window size, it fix problem when you run under win32 that theres
189         Size diferent than ClientSize. Also fix controls size and positions
190         to mimic Win32. Fixes #80837.
191
192 2007-02-22  Everaldo Canuto  <everaldo@simios.org>
193
194         * Form.cs: Handle WM_NCHITTEST and return HTMENU when point is on 
195         menu area to fix some problems for non X11 systems. Fixes #80613.
196
197 2007-02-22  Jackson Harper  <jackson@ximian.com>
198
199         * TreeNode.cs: When a node is expanded, set its is_expanded flag
200         even if it doesn't have any children.
201
202 2007-02-22  Jackson Harper  <jackson@ximian.com>
203
204         * TreeView.cs: Calculate the top node 'on the fly', this
205         eliminates issues where you need to click on the tree before
206         scrolling it to get the top node computed correctly.
207         * TreeNodeCollection.cs: We don't need to mess with the top node
208         anymore.
209
210 2007-02-22  Jackson Harper  <jackson@ximian.com>
211
212         * DataGridViewRow.cs: Fix typo so height can actually be set.
213         Patch by Peter Grimm.
214
215 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
216
217         * FileDialog.cs: Fixed support for renaming files and directories.
218         * ListView.cs: Do not lose focus when edit is canceled. Process
219         Escape as regular key (to prevent closing of dialogs).
220
221 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
222
223         * ListView.cs: Removed TODO for LabelEdit. Removed extra tabs and
224         spaces. Changed spaces to tabs. Removed unnecessary init of bools.
225
226 2007-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
227
228         * FileDialog.cs: LabelEditEventArgs.Label now returns null when user
229         did not modify label.
230         * ListView.cs: Only set LabelEditEventArgs.Label if user actually
231         modified the text. Reset Label when user presses Escape in edit mode.
232         Move focus to ListView after having cancelled or finished editing the
233         label.
234
235 2007-02-21  Gert Driesen  <drieseng@users.sourceforge.net>
236
237         * ComboBox.cs: Removed unnecessary initializations. Marked items field
238         private. Clear textbox when Text is set to null and SelectedIndex is
239         already -1.
240         * FileDialog.cs: Removed unnecessary initializations. Removed 
241         workarounds for ComboBox bugs that are now fixed. Modified
242         DefaultExt, InitialDirectory and Title property to change null to
243         zero-length string in getters. Avoid directly accessing fields.
244
245 2007-02-20  Jackson Harper  <jackson@ximian.com>
246
247         * TextControl.cs: Remove RecalAlignments call, that was some
248         debugging leftovers.
249         - Don't use the line indent when we shouldn't.
250         * RichTextBox.cs: Add support for paragraph left indents.
251
252 2007-02-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
253
254         * Control.cs: Fix BeginInvoke signature for 2.0 profile.
255         Seems like the class status pages doesn't catch params differences.
256
257 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
258
259         * ComboBox.cs: Removed extra tabs. Changes spaces to tabs.
260
261 2007-02-19  Gert Driesen  <drieseng@users.sourceforge.net>
262
263         * ComboBox.cs: Setting Text should have no effect if item text of
264         selected item exactly matches value. First lookup text using
265         case-sensitive comparison, and fallback to case-insensitive comparison.
266         FindString(Exact) returns -1 if search string is null. On 2.0 profile, 
267         allow startIndex to be last index. Changed ArgumentOutOfRangeException
268         paramname to match MS. Restart from first item if string is not found
269         after startIndex. Fixed paramname of ArgumentNullException that is
270         thrown for null value in ObjectCollection.Contains.
271
272 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
273
274         * XplatUIStructs.cs: WM_XXX UISTATE elements uncommented.
275
276 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
277
278         * ListControl.cs: In SelectedValue use value.Equals to compare for
279         equality instead of ==, otherwise it will fail for strings.
280         Fixes #80794.
281
282 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
283         
284         * ComboBox.cs: Switch the order to ShowSelection and ActivateCaret,
285         since the caret won't show up unless ShowSelection is true. 
286         Fixes #80795.
287
288 2007-02-19  Rolf Bjarne Kvinge <RKvinge@novell.com> 
289
290         * Application.cs: When disabling all forms but the main form, do not
291           disable any descendants of the main form (such as mdi children or
292           other parented forms). Fixes #80822 on Windows.
293         * Form.cs: If we have a parent, set the WS_CHILD style.
294         * Control.cs: Update the window styles if the control whose parent has
295           changed is a form (the WS_CHILD style has to be switched).
296
297 2007-02-19  Everaldo Canuto  <everaldo@simios.org>
298
299         * XplatUIStructs.cs: MsgUIState structure added.
300
301 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
302
303         * FileDialog.cs: Removed need for separate fileName field. On 2.0
304         profile, do not check filename(s) for illegal character if filename(s)
305         were set non-interactively but always check on 1.0 profile. Fixed NRE
306          in DefaultExt and only strip off first leading dot. Improve exception
307         message when invalid Filter is set. Do not ignore InitialDirectory if
308         it does no exist. Store specified Title, and if empty use default
309         title (depending on type of dialog). Added an internal DialogTitle 
310         property for retrieving dialog title. Fixed logic of displayed dir to
311         more closely match MS. Avoid setting ComboBox.Text to a zero-length 
312         string as its buggy.
313         * OpenFileDialog.cs: In OpenFile, throw ArgumentNullException if
314         FileName is a zero-length string (it can never be null). Override 
315         DialogTitle property to set default title of dialog box.
316         * SaveFileDialog.cs: Override DialogTitle property to set default
317         title of dialog box.
318
319 2007-02-18  Gert Driesen  <drieseng@users.sourceforge.net>
320
321         * FileDialog.cs: Modify default text of filename and filetype labels
322         to match that of MS. Reset do_not_call_OnSelectedIndexChanged...
323         after we've updated the SelectedIndex. Fixes part of bug #80887.
324         * SaveFileDialog.cs: Set text of filetype label.
325
326 2007-02-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
327
328         * LabelEditEventArgs.cs: New internal SetLabel method, to set the
329         label field. Needed by latest Jackson's fixes for ListView.
330
331 2007-02-16  Andreia Gaita  <avidigal@novell.com>
332
333         * PrintPreviewControl/PrintPreviewDialog: Properly dispose of 
334         print preview images.
335
336 2007-02-16  Jackson Harper  <jackson@ximian.com>
337
338         * ListView.cs: Make AfterLabelEdit work correctly.
339         * FileDialog.cs: After changing the name of the folder, we have to
340         make sure that it is created, or that we pop up an error because
341         it already exists.
342
343 2007-02-16  Jackson Harper  <jackson@ximian.com>
344
345         * X11Dnd.cs: Implement aliases on mime handlers, so things like
346         System.String are mapped to text.
347         - Handle dataobjects, getting all the possible formats out of them
348         - We dont need the drag event args before we give feedback. This
349         allows feedback cursors to be immediate before selections have
350         been converted.
351
352 2007-02-16  Jackson Harper  <jackson@ximian.com>
353
354         * TextBoxBase.cs: Modified the method for inserting images to
355         taking a line and position instead of tag and position.
356         * RichTextBox.cs: Handle PngBlip data by inserting the png image
357         into the RTF file.
358         * TextControl.cs: Allow images to be inserted as the first tag of
359         a line.
360         - Fix some off by one issues when we assume the first tag is a
361         text tag, not an image tag.
362
363 2007-02-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
364
365         * ListView.cs: Set focus to ListView when ItemControl gets a
366         WM_RBUTTONDOWN message, to mimic .Net behaviour. 
367         Fixes part of #80467.
368
369 2007-02-15  Rolf Bjarne Kvinge <RKvinge@novell.com> 
370
371         * DateTimePicker.cs: Call RecreateHandle if the Format changes and
372           validate Text input (if null or empty string reset Value to default
373           value). Fixes #80830.
374
375 2007-02-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
376
377         * ListView.cs: Set owner as null for columns and items when
378         Dispose is invoked. Fixes #80607.
379
380 2007-02-14  Jonathan Pobst  <monkey@jpobst.com>
381
382         * ToolStrip.cs: Allow LayoutStyle.Flow, make sure to call OnOpening when
383         showing DropDowns, don't show a Grip when doing Flow layout.
384         [This fixes the toolbox in PDN 2.72.]
385         * ToolStripItem.cs: Add Anchor property and some internal properties to
386         reduces needed changes to FlowLayout.
387         * ToolStripOverflow.cs: Remove unused variable.
388         * ToolStripSplitStackLayout.cs: If a ToolStripItem isn't visible, don't
389         use it in the layout calculations.
390
391 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
392
393         * ToolTip.cs: Add HotkeyPrefix.Hide to MeasureString format, it fix an issue
394         reported in #79640.
395         
396         * ThemeWin32Classic.cs: Uses format for MeasureString in ToolTipSize to fiz
397         size calculation.
398
399 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
400
401         * ToolBar.cs, ToolBarButton.cs: Revert and remove HotkeyPrefix from 
402         MeasureString format, it can make button very large in some cases, it is
403         strange but is what win32 do.
404
405 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
406
407         * ToolBar.cs, ToolBarButton.cs: Uses format in MeasureString to fix string 
408         size calculation.
409
410         * ThemeWin32Classic.cs: Set HotkeyPrefix in toolbar text format to fix text
411         rendering, the value is based on MenuAccessKeysUnderlined.
412
413 2007-02-13  Everaldo Canuto  <everaldo@simios.org>
414
415         * Theme.cs: Change MenuAccessKeysUnderlined to "true" that is value used
416         for most themes.
417         
418         * ThemeWin32Classic.cs: Override MenuAccessKeysUnderlined as false.
419         
420         * ThemeNice.cs, ThemeGtk.cs, ThemeClearlooks.cs: Remove always_draw_hotkeys
421         and use MenuAccessKeysUnderlined instead.
422
423 2007-02-13  Andreia Gaita  <avidigal@novell.com>
424
425         * ContainerControl.cs: Focus fix for nunit treeview selection bug.
426         A selected control would not get a Focus call if:
427                 - the default active control of the container is the same as
428                   the one that was selected
429                 - we are switching from one container to another
430         Under these conditions, the container being selected already has
431         an active_control, which is the same as the one being activated, 
432         so set_ActiveControl would always return and not send the Focus
433         call. Fix to check if the currently active control of the container
434         is actually focused.
435
436 2007-02-13  Jonathan Pobst  <monkey@jpobst.com>
437
438         * StatusStrip.cs: Implement the spring layout.
439         * ToolStripControlHost.cs: Make sure the hosted control's visibility
440         always matches the host.
441         * ToolStripItem.cs: Write a more accurate layout for TextBeforeImage
442         and TextAfterImage.
443
444 2007-02-13  Andreia Gaita  <avidigal@novell.com>
445
446         * Control.cs: Code reorganization only.
447           - Reorganize the WndProc cases so that each case has it's own handling method, 
448           to help with the no-line-numbering stack traces.
449           - Formatting changes (it's vstudio's fault, really :p)
450
451 2007-02-13  Rolf Bjarne Kvinge <RKvinge@novell.com> 
452
453         * MonthCalendar.cs: Switch to using Thread.CurrentCulture instead of
454           Thread.CurrentUICulture to match DateTimePicker's (and MS)
455           behaviour.
456
457 2007-02-12  Jackson Harper  <jackson@ximian.com>
458
459         * RichTextBox.cs:
460         * TextBox.cs: By default we have a non multiline document
461         - use the multiline property instead of the internal variable
462         * TextBoxBase.cs: Treat multiline and non multiline the same in
463         most places.
464         - Use the documents multiline flag instead of tracking it ourself
465         * TextControl.cs: Attempt at getting multiline to match MS
466         behavior.  Lines now track an offset, which is either their X or Y
467         offset depending on whether or not we are in multiline mode.
468         - Update all the methods to understand that lines have an X value.
469         - Fix crash in Undo::Duplicate when empty lines are deleted.
470
471 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
472
473         * Label.cs: CalcPreferredHeight and CalcPreferredWidth methods removed and 
474         code moved to properties PreferredHeight and PreferredWidth. It solve the
475         all problems when preferred sizes must be recalculated. Fixes #80801.
476
477 2007-02-12  Everaldo Canuto  <everaldo@simios.org>
478
479         * Label.cs: Fix CalcPreferredHeight for 2.0 that must return only
480         font height when compatible_text_rendering is false. Partially fix #80801.
481
482 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
483
484         * Form.cs: Fixed typo in exception message. Fixes bug #80779.
485
486 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
487
488         * Form.cs: Improved exception messages in ShowDialog.
489
490 2007-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
491
492         * PrintDialog.cs: On 1.0 profile, throw ArgumentException in RunDialog if
493         PrinterSettins has not been set. On 2.0 profile, initialize PrinterSettings
494         if not set. Fixes bug #80764. Avoid accessing current_settings field
495         directly.
496
497 2007-02-08  Everaldo Canuto  <everaldo@simios.org>
498
499         * Theme.cs: An new property MenuAccessKeysUnderlined added with default value
500         false.
501
502         * SystemInformation.cs: An new property MenuAccessKeysUnderlined added, it is
503         public in 2.0 and for easy maintenance and dont break compatibility it is 
504         internal in 1.1.
505         
506 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
507
508         * ToolStripItem.cs: Implement using images from ImageList.
509
510 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
511
512         * DateTimePicker.cs: Change default date-formatting culture from
513           CurrentThread.CurrentUICulture to CurrentThread.CurrentCulture,
514           seems to be the way MS does it.
515
516 2007-02-08  Andreia Gaita  <avidigal@novell.com>
517
518         * PrintPreviewControl.cs: rewrite toolbar code to fix #80725. Correct 6-up image 
519         (the 6 was cut off on the right side)
520
521 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
522
523         * Form.cs: Tell MenuStrips to close when the form is clicked.
524         * MenuStrip.cs, ToolStrip.cs, ToolStripControlHost.cs, 
525         ToolStripDropDown.cs, ToolStripDropDownItem.cs, ToolStripItem.cs,
526         ToolStripItemCollection.cs, ToolStripMenuItem.cs, ToolStripProfessionalRenderer.cs,
527         ToolStripSplitButton.cs, ToolStripSplitStackLayout.cs: Add 
528         support for Overflow, where items that do not fit are automatically
529         reparented to a drop down menu.
530         * ToolStripOverflow.cs, ToolStripOverflowButton.cs: Added.
531         Also: fixes bug #80747.
532
533 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
534
535         * ComboBox.cs: Remove warning (unused code).
536         * ScrollableControl.cs: Remove warning for 1.1 profile.
537
538 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
539
540         * Form.cs: Remove a warning.
541
542 2007-02-08  Rolf Bjarne Kvinge <RKvinge@novell.com> 
543
544         * DateTimePicker.cs: Fixed a NRE if CustomFormat was null. Handles the
545           'g' specifier, not documented anywhere, but seems to always show up
546           as a single space (might have something to do with the DateTime 'g'
547           specifier, which is the era format, but since DateTimePicker can't
548           go earlier than 1753 it wouldn't matter) . Fixed quote handling,
549           won't crash if the format has an unmatched quote. Now shows
550           single-character formats correctly. Fixes #80744.
551
552 2007-02-08  Jonathan Pobst  <monkey@jpobst.com>
553
554         * StatusStrip.cs: Stretch property needs to call base.Stretch,
555         not this.Stretch to fix stack overflow. [Fixes bug #80760]
556
557 2007-02-07  Chris Toshok  <toshok@ximian.com>
558
559         * ThemeWin32Classic.cs (DrawButtonBase): don't clear to the
560         background color.  it overwrites the background image we've
561         already painted.  Fixes #80599.
562
563 2007-02-07  Chris Toshok  <toshok@ximian.com>
564
565         * DataGrid.cs: return immediately from Edit() when there are no
566         columns.  Fixes #80662.
567
568 2007-02-07  Chris Toshok  <toshok@ximian.com>
569
570         * MessageBox.cs: fix #80625.  don't always show the Help button in
571         2.0.  use the displayHelpButton parameter to determine if we
572         should show it. Also, make the internal show_help field private.
573
574 2007-02-07  Chris Toshok  <toshok@ximian.com>
575
576         * Control.cs (SetVisibleCore): check in the proposed patch for
577         80604, and set is_visible before calling CreateControl.
578
579 2007-02-07  Jonathan Pobst  <monkey@jpobst.com>
580
581         * ListView.cs: UseCompatibleStateImageBehavior setter changed from NIEX to 
582         MonoInternalNote.  This is added automagically by VS2005, so let's not crash
583         on it.
584
585 2007-02-06  Everaldo Canuto  <everaldo@simios.org>
586
587         * MenuAPI.cs: hotkey_active internal field added, it is required because
588         we need to know when hotkeys must be draw, before this change a keystate
589         Navigating was used but we can have menu in navigating state without
590         hotkeys. Fixes #80694.
591         
592         * ThemeWin32Classic.cs: Only draw hot keys when hotkey_active is true.
593
594 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
595
596         * Control.cs: Handle WM_CAPTURECHANGED in 1.1 code as well, and change
597           corresponding events and methods to be internal for 1.1 profile and
598           public for 2.0 profile (required by SizeGrip).
599         * Form.cs: Use SizeGrip as a virtual SizeGrip (and don't add it to the
600           implicit control list). Don't set the size nor the location of the
601           SizeGrip anymore as it's not needed.
602         * SizeGrip.cs: Rewrote large parts, it now supports a virtual mode to
603           draw directly on the captured control (fixes #80656). Removed
604           ShowGrip (it wasn't used anywhere), redraw (always true), added
605           GetDefaultSize and GetDefaultRectangle to calculate defaults.
606         * ScrollableControl.cs: Make UpdateSIzeGripVisible internal so it can
607           be called from SizeGrip.
608
609 2007-02-06  Rolf Bjarne Kvinge <RKvinge@novell.com> 
610
611         * Timer.cs: Throw ArgumentException if Interval <= 0.
612
613 2007-02-05  Jackson Harper  <jackson@ximian.com>
614
615         * TreeView.cs: We need to check scrollbar visibility when window
616         visibility is updated, because non visible trees don't ever add
617         scrollbars.
618         * Cursor.cs: We want the override cursor to be reset to NULL when
619         we set current cursor to the default cursor.
620
621 2007-02-05  Jackson Harper  <jackson@ximian.com>
622
623         * TextControl.cs: Don't have crlfs when we are non multiline.
624         - Consolidate the line position.
625
626 2007-02-05  Jackson Harper  <jackson@ximian.com>
627
628         * X11Keyboard.cs: BACK+CTRL gets a special char code.
629
630 2007-02-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
631
632         * XplatUIX11.cs: Implemented WM_CAPTURECHANGED support, we're now
633           handling LeaveNotify->NotifyUngrab in order to send
634           WM_CAPTURECHANGED. However sometimes the NotifyUngrab arrives late
635           after calling XUngrabPointer, so we call WindowUngrabbed directly
636           from UngrabWindow in order to send WM_CAPTURECHANGED immediately.
637         * Control.cs: Handle WM_CAPTURECHANGED in order to raise
638           MouseCaptureChanged correctly. Also create handles if changing
639           Capture (matches MS behaviour).
640
641 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
642
643         * SizeGrip.cs: Make the last change 2.0 only.
644
645 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
646
647         * SizeGrip.cs: If resizing and the capture is lost, revert any size
648           changes to initial size (fixes #80597).
649
650 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
651
652         * SizeGrip.cs: Use the normal icon for SizeGrip if it is disabled.
653
654 2007-02-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
655
656         * SizeGrip.cs: Only draw sizegrip if enabled (but always draw
657           background) and only allow dragging if enabled. This way the
658           sizegrip can be used to fill the open square that otherwise would
659           have been shown in the bottom right corner of ScrollableControl
660           when ScrollableControl is not suppose to support sizing.
661         * ScrollableControl.cs: Create UpdateSizeGripVisible to decide when the
662           sizegrip is shown and enabled, and hook up with necessary events.
663
664 2007-02-01  Chris Toshok  <toshok@ximian.com>
665
666         * DataGridTextBoxColumn.cs: clean up the
667         GetFormattedString/GetColumnValueAtRow combination of functions.
668         Also fix UpdateUI, and the initial state of
669         IsInEditOrNavigateMode.
670
671         * DataGridTextBox.cs: don't chain up to base.OnMouseWheel - we
672         aren't supposed to scroll the textbox here, we're supposed to
673         scroll the datagrid.
674
675 2007-02-01  Chris Toshok  <toshok@ximian.com>
676
677         * ComboBox.cs: use vscrollbar_ctrl.Dock instead of explicitly
678         setting the position.
679
680 2007-02-01  Chris Toshok  <toshok@ximian.com>
681
682         * DataGrid.cs (OnLeave): we can now do the CancelCurrentEdit thing
683         here, since the most recent focus fixes keep us from generating
684         the Leave event when our textbox gets focus.
685         (Edit): we should be passing null for the column style's
686         instantText parameter.
687         
688 2007-02-01  Jonathan Pobst  <monkey@jpobst.com>
689
690         * ToolStripDropDownItem.cs: Make sure DropDownOpening event is 
691         raised.  Fixes menu text/icons not showing up in PDN.
692
693 2007-02-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
694
695         * Control.cs: Remove code in constructor that makes every
696         control with WS_CHILD set have initial location -1, -1.
697
698 2007-01-31  Jackson Harper  <jackson@ximian.com>
699
700         * X11Dnd.cs: Take the keyboard on init to reduce coupling with
701         XplatUIX11.
702         * XplatUIX11.cs: Give teh keyboard to teh dnd.
703
704 2007-01-31  Jackson Harper  <jackson@ximian.com>
705
706         * X11Dnd.cs: Use IDataObject instead of the DataObject class.
707         - Remove some debug code.
708
709 2007-01-31  Jackson Harper  <jackson@ximian.com>
710
711         * XplatUIX11.cs: If you set the override cursor during a grab, it
712         should actually override the grab cursor.  This comes into play
713         when you are setting custom cursors in a DND feedback method.
714
715 2007-01-31  Jackson Harper  <jackson@ximian.com>
716
717         * X11Dnd.cs: Add support for handling the QueryContinue and
718         GiveFeedback events.
719         - Cancel drag and drop actions when the escape key is clicked.
720         * XplatUIX11.cs: Let the dnd subsystem get key events, so that it
721         can handle the ESCAPE key.
722         - Allow dnd to swallow BUTTONUP messages if it needs to.  This is
723         done when dnd events are continued after the button is released.
724         - Add a new helper method so that dnd can translate key events.
725
726 2007-01-31  Alexander Olk  <alex.olk@googlemail.com>
727
728         * FileDialog.cs: Rewrite of Jacksons OnClickCancelButton patch to
729         make it more obvious what is happening.
730
731 2007-01-30  Jackson Harper  <jackson@ximian.com>
732
733         * XplatUIX11.cs: Don't break when handling button release in drag
734         and drop operations. We need that BUTTONUP message to get through
735         so capture is released.
736         * X11Dnd.cs: We don't need to manually grab the pointer anymore,
737         this is handled automatically when the mouse is down.
738
739 2007-01-30  Jackson Harper  <jackson@ximian.com>
740
741         * FileDialog.cs: OnClickCancelButton gets called whenever the dialog
742         is closed, so we need to make sure that we aren't changing the
743         dialog result when the OK (Open or Save) button has been clicked
744         and we are closing the window ourselves.  Note we don't need to
745         worry about the cache being written in this case, because it was
746         already done in the previous FilOk call.
747
748 2007-01-30  Rolf Bjarne Kvinge  <RKvinge@novell.com>
749         
750         * DateTimePicker.cs: Remove a warning.
751         * ComboBox.cs: Remove a couple of warnings.
752
753 2007-01-29  Chris Toshok  <toshok@ximian.com>
754
755         * XplatUIX11.cs: don't crash, and remove the icon if the user has
756         set one, if SetIcon is passed a null icon.
757
758 2007-01-29  Andreia Gaita  <avidigal@novell.com>
759
760         * TextBox.cs: Redraw when the password characters changes
761         * TextControl.cs: Check if textbox has a password char and draw 
762         a line of password chars instead of the text in the line. LineTag gets 
763         an extra Draw() method which allows document.Draw to override the text 
764         that will be drawn. Removes 1024 char limitation on length of passworded 
765         lines.
766
767 2007-01-29  Jackson Harper  <jackson@ximian.com>
768
769         * TextBoxBase.cs: Deleting sections of text is undoable.  Deleting
770         single chars is not.
771
772 2007-01-28  Jonathan Pobst  <monkey@jpobst.com>
773
774         * TextRenderer.cs: Fix cutting off the bottom of letters like "j" by
775         one pixel.  Fix a StackOverflowException caused by an overload wrongly
776         calling itself.
777
778 2007-01-26  Everaldo Canuto  <everaldo@simios.org>
779
780         * MenuAPI.cs: Fixed kerboard grab problem when "enter"key is pressed,
781         also remove ProcessArrowKey and put the code inside ProcessKeys.
782
783 2007-01-26  Jonathan Pobst  <monkey@jpobst.com>
784
785         * PaddingConverter.cs: Added.
786
787 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
788         
789         * ThemeWin32Classic.cs: Only draw the text of a StatusBar if
790         ShowPanels is false (fixes #80600). Only draw up to 127 characters
791         of text (fixes #80601). For panels clip the text to draw to the
792         panel (fixes #80603).
793
794 2007-01-26  Rolf Bjarne Kvinge  <RKvinge@novell.com>
795
796         * ComboBox.cs: Fixed implementation of ResetText.
797
798 2007-01-25  Jackson Harper  <jackson@ximian.com>
799
800         * TextControl.cs: For the last char of a line we need to use the
801         line size, not that chars width, since it won't actually be
802         computed since the right side of a char is based on the start of
803         the left side of the next char, and the next char does not exist.
804
805 2007-01-25  Chris Toshok  <toshok@ximian.com>
806
807         * Splitter.cs: fix the new unit tests, and reindent some switch
808         statements.
809
810 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
811
812         * ComboBox.cs: Implemented 2.0 methods and events.
813         * TextBoxBase.cs: Added OnTextUpdate, so that
814         ComboBox.ComboTextBox can inform ComboBox of it.
815
816 2007-01-25  Jackson Harper  <jackson@ximian.com>
817
818         * TextControl.cs: Respect ShowSelection when deciding whether or
819         not to display the caret, this allows comboboxes to have carets
820         when the combotextbox does not have focus.
821
822 2007-01-25  Jackson Harper  <jackson@ximian.com>
823
824         * TextControl.cs: Add a Suspend/Resume for updating, basically the
825         same as the Suspend/Resume for recalc, except this will do actual
826         Invalidates.
827         - New Undo manager, works much like the MS version.
828         - Implemented Redo
829         * TextBoxBase.cs: The Cut operation is undoable.
830
831 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
832         
833         * TextBoxBase.cs: Don't antialias text. Makes it look way better
834         on Windows (no difference on Linux).    
835
836 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
837
838         * XplatUIWin32.cs: Set SWP_NOACTIVATE in RequestNCRecalc as well,
839         we don't want to activate any windows. Fixes #79433.
840
841 2007-01-25  Jonathan Pobst  <monkey@jpobst.com>
842
843         - ButtonBase.cs: Fix capitalization of parameter: disposing.
844         [Fixes bug #80609]
845
846 2007-01-25  Alexander Olk  <alex.olk@googlemail.com>
847
848         * FileDialog.cs:
849         - Move to using System.ComponentModel.EventHandlerList
850         - Replace Refresh with Invalidate
851         - Clear the mime filecache on closing
852         - Some other memory reducing work. After beeing closed FD now uses
853           only about 300 KB for the fdo mime stuff plus the memory of the
854           cached icons.
855         * Mime.cs: Changed coding style and removed unnecessary commented
856         code. Some more memory memory reducing work.
857
858 2007-01-25  Rolf Bjarne Kvinge  <RKvinge@novell.com>
859
860         * ComboBox.cs: Implemented FlatStyle and DropDownHeight, and added
861         a few other missing 2.0 properties.
862         * Theme.cs: Added DrawFlatStyleComboBox.
863         * ThemeWin32Classic.cs: Implemented DrawFlatStyleComboBox.
864
865 2007-01-24  Chris Toshok  <toshok@ximian.com>
866
867         * XplatUIX11.cs: fix the wake_waiting logic - we always clear the
868         wake_waiting flag, not just when there's data to be read.  if we
869         don't, then future wakeup's won't reach us and we'll be doomed to
870         wait for the entire 1 second timeout forever (unless there are X
871         events to be had).
872
873 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
874
875         * ComboBox.cs: FindStringExactMaxException doesn't throw AOORE on 2.0
876         until you pass Items.Count, not Items.Count - 1 like 1.1.
877
878 2007-01-24  Gert Driesen  <drieseng@users.sourceforge.net>
879
880         * ColumnHeader.cs: Fixed ParamName in ArgumentOutOfRangeException.
881
882 2007-01-24  Jonathan Pobst  <monkey@jpobst.com>
883
884         * ToolStripContainer.cs: The recent Dock fix exposed that I was
885         adding the panels in the wrong order.
886
887 2007-01-24  Jackson Harper  <jackson@ximian.com>
888
889         * TextBoxBase.cs: When we move the caret we also need to move the
890         selection, this fixes some random crashing after doing select
891         text, unselect, delete a char, paste.
892
893 2007-01-24  Rolf Bjarne Kvinge  <RKvinge@novell.com>
894
895         * Form.cs: Update SizeGrip's location even if it's not visible (fixes #80592).
896
897 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
898
899         * Control.cs: In OnParentBackgroundImageChanged remove conditions to call
900         OnBackgroundImageChanged, it mimics win32 behavior. Fixes #80553. 
901         * ToolBar.cs: Force redraw in BackgroundImageChanged.
902
903 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
904
905         * ToolBar.cs:
906         - Implement support for vertical toolbars. Fixes #80539;
907         - Call LayoutToolBar when resize, it fix some other problems in layout.
908         - Rename requested_height to requested_size, as we can have width on it
909         when toolbar is vertical.
910         - Create a private property "Vertical" that uses Dock to verify when 
911         toolbar is vertical or not.
912         - Set ControlStyles when change Dock property.
913         - Refactory in LayoutToolBar to have better variables names and to support
914         vertical toolbars.
915         - Fixes default value for ButtonSize when button count is equal zero, size
916         must be (39, 36) test case writed.
917
918 2007-01-23  Chris Toshok  <toshok@ximian.com>
919
920         * Control.cs: fix the checks so that they work correctly for mdi
921         parents/children.
922
923 2007-01-23  Chris Toshok  <toshok@ximian.com>
924
925         * Control.cs: ControlCollection seems to have super-secret
926         abstraction breaking knowledge of Mdi containers.  allow MdiClient
927         to add toplevel controls.
928
929 2007-01-23  Chris Toshok  <toshok@ximian.com>
930
931         * Control.cs: throw an ArgumentException if a toplevel control is
932         added to our control collection from ControlCollection.Add, as
933         well as from ControlCollection.IList.Add.  This fixes the
934         ControlSetTopLevelTest.TestTopLevelAdd unit test.
935
936         Also, in ControlCollection.IList.Add, don't through an
937         ArgumentNullException, throw an ArgumentException, when value ==
938         null.  This matches MS.
939
940 2007-01-23  Chris Toshok  <toshok@ximian.com>
941
942         * BindingSource.cs: initial, incomplete, implementation of
943         BindingSource.
944
945 2007-01-23  Jackson Harper  <jackson@ximian.com>
946
947         * TextControl.cs:
948         * TextBoxBase.cs: Checking in some pieces of the undo stuff so
949         that I can fix a broken unit test (TextBoxTest::ClearUndo)
950         
951 2007-01-23  Everaldo Canuto  <everaldo@simios.org>
952
953         * ToolBar.cs: Add status fields to ToolBarButtonInfo.
954
955 2007-01-23  Andreia Gaita  <avidigal@novell.com>
956
957         * TreeNode.cs: Add new 2.0 ImageKey and SelectedImageKey properties.
958         * TreeNodeCollection.cs: New Add() methods, ContainsKey and
959         IndexOfKey() for 2.0
960
961 2007-01-23  Rolf Bjarne Kvinge  <RKvinge@novell.com>
962
963         * XplatWin32.cs: In RequestNCRecalc call SetWindowPos with SWP_NOZORDER
964         to prevent it from changing z-order.
965         * MdiWindowManager.cs: Refactor part of SetWindowState to MdiClient, only
966         leave UI updates in MdiWindowManager.
967         * InternalWindowManager.cs: Check for 0 sized nc areas and make them
968         1 sized (NC handling goes weird on Linux otherwise).
969         * MdiClient.cs: Add missing ExStyle (WS_EX_CLIENTEDGE), so it's no longer
970         necessary to handle WM_NCCALCSIZE anymore. This also made it possible to
971         remove a few NCRequestRecalcs. Changed calculations in IconicBounds
972         to use ClientSize of MdiClient instead of entire size. Refactored ActivateChild
973         and SetWindowState(s) to allow for changing the size of an activated child
974         before activating it (reduces a lot of flicker).
975
976 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
977
978         * Form.cs: Changing FormBorderStyle has different semantics based
979         on whether the Form is visible or not.  If not visible, don't change
980         the Size.  But InvalidateNC needs to be called to force the window
981         to pick up the changes and redraw itself.  [Fixes bug #80574]
982
983 2007-01-22  Jonathan Pobst  <monkey@jpobst.com>
984
985         [Moma work]
986         * ContainerControl.cs: ProcessCmdKey.
987         * ErrorProvider.cs: new constructor.
988         * Form.cs: fix AutoValidateEvent compiler warning.
989         * Label.cs: fix OnAutoSizeChanged compiler warning.
990         * MenuStrip.cs: fix CanOverflow compiler warning.
991         * TabControl.cs: SelectTab, OnSelected methods, Selected event.
992         * TextBox.cs: Dispose.
993         * ToolStrip.cs: CanOverflow, re-enable double buffering.
994         * ToolStripControlHost.cs: fix CausesValidation compiler warning.
995         * ToolStripDropDown.cs: fix ContextStripMenu compiler warning.
996         * ToolStripItem.cs: Overflow, RightToLeft properties.
997
998 2007-01-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
999
1000         * Form.cs: Move the layout of the main form to MdiWindowManager.
1001         * MdiWindowManager.cs: If WindowState changes from or to Maximized,
1002         do a layout of the main window to update MdiClient's client area to
1003         the right area. Fixes #80533. Remove the calculation of nc size, 
1004         it was just wrong and the correct one is the same as for 
1005         InternalWindowManager. 
1006
1007 2007-01-20  Jonathan Pobst  <monkey@jpobst.com>
1008
1009         * Control.cs: Setting Anchor or Dock needs to reset the other
1010         to its default.  [Fixes bug #80556]
1011
1012 2007-01-20  Chris Toshok  <toshok@ximian.com>
1013
1014         * CheckedListBox.cs: class status changes.
1015
1016         * ScrollableControl.cs: same.
1017
1018         * RichTextBox.cs: same.
1019
1020         * ContainerControl.cs: same.
1021
1022         * ListView.cs: same.
1023
1024         * NotifyIcon.cs: same.
1025
1026         * MenuStrip.cs: same.
1027
1028         * RadioButton.cs: same.
1029
1030         * CheckBox.cs: same.
1031
1032         * PrintPreviewDialog.cs: same.
1033
1034         * Form.cs: same.
1035
1036 2007-01-19  Jonathan Pobst  <monkey@jpobst.com>
1037
1038         * TreeNode.cs: Apply Alan's patch for Name property.
1039
1040 2007-01-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1041         
1042         * Form.cs: Implemented SizeGripStyle.
1043         * SizeGrip.cs: Check for minimum and maximum size for the
1044         control being resized and only resize if size has actually
1045         changed.
1046
1047 2007-01-19  Chris Toshok  <toshok@ximian.com>
1048
1049         * DataGridColumnStyle.cs: stop setting _readonly in the
1050         PropertyDescriptor setter.  fixes a unit test failure.
1051
1052         also, rename ParentReadOnly to TableStyleReadOnly, and have it
1053         just consult our table style (if we have one).  We don't need to
1054         consult the datagrid readonly attribute because that's passed in
1055         as the _ro arg to Edit.  this simplifies things a little.
1056         
1057         * DataGrid.cs: use CurrentColumn instead of
1058         current_cell.ColumnNumber just to simplify some of the code.
1059
1060         switch the order of some things in the CurrentCell setter to keep
1061         the previous cell from getting a textbox again -
1062         EnsureCellVisibility causes scrolling to happen, which calls Edit.
1063         So we need to set the new cell before calling it.
1064         
1065         call Edit in OnEnter, as does Microsoft.
1066         
1067         also, make sure the current table style isn't the one we create
1068         initially when checking to see if it's different than the one
1069         we're setting it to in BindColumns (this fixes #80421).
1070
1071         * GridTableStylesCollection.cs: table styles can have "" for a
1072         mapping name.  part of the fix for #80421.
1073
1074         * DataGridTextBoxColumn.cs: simplify the readonly calculation in
1075         Edit significantly.
1076
1077 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1078
1079         * TextRenderer.cs: Rewrote to be complete-er, more MS-matching-er,
1080         and less GDI object leaky-er.
1081
1082 2007-01-18  Andreia Gaita  <avidigal@novell.com>
1083
1084         * LinkLabel.cs: Add opaque control style
1085
1086 2007-01-18  Jackson Harper  <jackson@ximian.com>
1087
1088         * TextControl.cs: Calculate width properly.
1089         - Don't store the tag's X offset, this can be figured out very
1090         easily.
1091         - When getting the caret tag make sure to get the last empty tag.
1092
1093 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1094
1095         * Form.cs: Recalculate our size after setting a new FormBorderStyle.
1096         [Fixes bug #79959]
1097
1098         * Control.cs: Color.Empty shouldn't count for previous transparent
1099         redraw changes.
1100
1101 2007-01-18  Jackson Harper  <jackson@ximian.com>
1102
1103         * TextBox.cs:
1104         * RichTextBox.cs:
1105         * TextControl.cs: Starting to merge in some pieces of my older
1106         undo work.  Basically just some slight cleanup of the undo API.
1107
1108 2007-01-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1109
1110         * TrackBar.cs: Fix signature of RightToLeftLayout.
1111         * StatusBar.cs: Implemented missing 2.0 methods and attributes.
1112         * StatusBarPanel.cs: Implemented missing 2.0 methods and attributes.
1113         * Application.cs: Implemented UseWaitCursor.
1114
1115 2007-01-18  Jackson Harper  <jackson@ximian.com>
1116
1117         * TextControl.cs: We can't skip tags if any part of the tag is
1118         visible.
1119
1120 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1121
1122         * ContainerControl.cs: Override OnLayout.
1123
1124 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1125
1126         * NotifyIcon.cs: Add ContextMenuStrip and Tag properties.
1127
1128         * ContextMenuStrip.cs: Make sure context menu is shown on top of 
1129         everything else.
1130
1131 2007-01-18  Chris Toshok  <toshok@ximian.com>
1132
1133         * ContainerControl.cs: remove the partial handling of LBUTTONDOWN
1134         (leftover from the container_selected days, I'd wager).  fixes bug
1135         #80546.
1136
1137 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1138
1139         * Control.cs: Apply patch from George to fix the new testcase on
1140         bug #80451.  We can't just check for Color.Transparent, we need 
1141         to check if the back color's alpha channel is < 255.
1142
1143 2007-01-18  Jonathan Pobst  <monkey@jpobst.com>
1144
1145         * Form.cs: Move setting show_icon = true to before the constructor
1146         so that the base constructor has that information when it calculates
1147         the form's size.  Was causing forms to be (6, 6) bigger than they
1148         were supposed to be.  Thanks for catching this Rolf!
1149
1150 2007-01-18  Jackson Harper  <jackson@ximian.com>
1151
1152         * TextControl.cs: When replacing a selection we need to invalidate
1153         from the initial selection start, because selection start is moved
1154         to the end of the replacement.
1155
1156 2007-01-18  Andreia Gaita  <avidigal@novell.com>
1157
1158         * LinkLabel.cs: Missing ControlStyles. Fixes #80482
1159
1160 2007-01-18  Chris Toshok  <toshok@ximian.com>
1161
1162         * DataGridTextBoxColumn.cs: fix most of the NotWorking unit tests
1163         I just added.
1164
1165 2007-01-17  Everaldo Canuto  <everaldo@simios.org>
1166
1167         * ToolBar.cs: Add layout methods to ToolBarButtonInfo class, every 
1168         layout methods and properties from ToolBarButton must be available
1169         into ToolBarButtonInfo.
1170
1171 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1172
1173         * Control.cs: If the control has a transparent background, we
1174         need to refresh it when it moves and when it's parent's background
1175         image changes.  [Fixes bug #80451]
1176
1177 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1178
1179         * XplatUIWin32.cs: Don't use 2.0 methods in 1.1 code!  Doh!
1180
1181 2007-01-17  Jonathan Pobst  <monkey@jpobst.com>
1182
1183         * XplatUIWin32.cs: Implement proper double buffering for Windows.
1184         [Fixes bug #80447, and probably speeds up things as well]
1185
1186 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1187
1188         * XplatUIX11.cs: Caption height for MDI children is 19, not 26.
1189         * XplatUIWin32.cs: We need to recalculate NC size after changing 
1190         window style to toolwindow (otherwise the client rectangle will be
1191         3 pixels to small for some reason).
1192         * MdiWindowManager.cs: Revert NC size calculations to match how
1193         they are calculated only based on window styles (to match
1194         Win32AdjustWindowRectEx, since otherwise when setting size or 
1195         location, Control will call Win32AdjustWindowRectEx to update client 
1196         size, which would provoke a paint, then we'd get a NCCALCSIZE and 
1197         calculate a different value of client size causing another paint 
1198         (and flickering))
1199         * InternalWindowManager.cs: When moving or resizing a window only
1200         update size or location if they actually changed.
1201         * ThemeWin32Classic.cs: ManagedWindowsBorderWidth is now 4 instead of 3
1202         (seems to match Windows behaviour better). Cleaned up 
1203         ManagedWindowDecorations to draw what's needed and nothing else
1204         (was drawing borders and lines where they shouldn't be)
1205         * Hwnd.cs: GetWindowRectangle now knows about MDI border sizes
1206         (style = 0xFFFF) and takes into account caption height when 
1207         calculating window rectangle.   
1208
1209 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
1210
1211         * ToolBar.cs: Internal ToolBarButtonInfo class added, Because same button 
1212         can be added to toolbar multiple times, we need to maintain a list of 
1213         button information for each positions.
1214
1215 2007-01-16  Everaldo Canuto  <everaldo@simios.org>
1216
1217         * ToolBar.cs: Some small stetic changes.
1218
1219 2007-01-16  Jackson Harper  <jackson@ximian.com>
1220
1221         * TextBoxBase.cs: Use the new SuspendRecalc/ResumeRecalc methods
1222         that allow us to have nested recalc = false blocks.
1223         - Add paste support for images in the RichTextBox
1224         * RichTextBox.cs: flush the text after the color is changed, so
1225         the change takes effect.
1226         - Use SuspendRecalc
1227         - Some extra debugging info
1228         * TextControl.cs: Tags no longer track their length, it is just
1229         computed from the next tags length, this makes things a little
1230         simpler and reduces places that we have to track length changes.
1231         - Refactored the linetag class a little so we could make it
1232         a base class for different kinds of tags
1233         - Created a image tag, a tag that can have a single image inserted
1234         into it
1235         - Replace the norecalc flag with a Suspend/Resume Recalc pair, so
1236         that we can call suspend multiple times.
1237         - Add some debugging methods
1238
1239 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1240
1241         * MdiClient.cs: Add ActivatePreviousChild for 
1242         mdi child window navigation.
1243         * Form.cs: Use MdiClient.ActivateNextChild/
1244         ActivatePreviousChild instead of Form.SelectNextControl
1245         to select the next/previous child since 
1246         SelectNextControl doesn't do it in the same order
1247         as mdi children should do it.
1248
1249 2007-01-16  Chris Toshok  <toshok@ximian.com>
1250
1251         * Control.cs: remove container_selected field.
1252
1253 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1254
1255         * MdiClient.cs: Update main form's ActiveChild when
1256         updating keyboard focus for the mdi child.
1257
1258 2007-01-16  Jonathan Pobst  <jpobst@novell.com>
1259
1260         * Control.cs: PreferredSize fix.
1261
1262         * Form.cs: Add several 2.0 events, properties, and methods.
1263
1264 2007-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
1265
1266         * Form.cs: Provide meaningful message when MdiParent is assigned a
1267         Form that is not an MdiContainer.
1268
1269 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1270
1271         * MdiClient.cs: Update main form's ActiveChild when
1272         activating a mdi child.
1273
1274 2007-01-16  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1275
1276         * MdiWindowManager.cs: Fix NRE when merging menus and main form
1277         doesn't have a menu.
1278
1279         * Form.cs: Request NCRecalc after creating a mdi child window.
1280         Implement mdi key handling (Ctrl+F4, Ctrl+Shift+F4, Ctrl+Tab, 
1281         Ctrl+Shift+Tab, Ctrl+F6 and Ctrl+Shift+F6).
1282         
1283         * MdiClient.cs: Add new method SendFocusToActiveChild that either
1284         sends keyboard focus to the active child, or to the MdiClient
1285         if there are no child forms.
1286         
1287 2007-01-15  Chris Toshok  <toshok@ximian.com>
1288
1289         * ListView.cs: drop the *Internal overrides, just do our work in
1290         ItemControl's WndProc instead.
1291
1292         * UpDownBase.cs: a few large changes.  Fix up the Selectable state
1293         of the various controls, and forward the events properly (in the
1294         same manner as MS) from the textbox to the UpDown.  Also the
1295         ActiveControl of the UpDownBase gets set properly now.  Finally,
1296         we don't call UpdateEditText from the ctor.  Fixes bug #79957.
1297
1298         * NumericUpDown.cs: set Text in the ctor.
1299
1300         * DomainUpDown.cs: call UpdateEditText in the ctor.
1301         
1302         * TextBox.cs: on ms.net, WM_LBUTTONDOWN sets focus on the textbox,
1303         so even a Selectable = false textbox can be focused if you click
1304         in it.  Go figure.
1305
1306         * Control.cs: remove On{Got,Lost}FocusInternal.  Subclasses can
1307         just add their handling in their respective WndProc's.  Also add
1308         an explicit FocusInternal method that doesn't consult CanFocus
1309         before calling Select(this).
1310
1311         * TextBoxBase.cs: deal with removal of the FocusInternal calls -
1312         do our work in WndProc instead.
1313
1314         * TabControl.cs: same.
1315
1316         * ComboBox.cs: same.
1317
1318 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1319
1320         * Menu.cs: implement MergeItems and Replace for MenuMerge method.
1321         Fixes #80006.
1322
1323 2007-01-15 Carlos Alberto Cortez <calberto.cortez@gmail.com>
1324
1325         * ListViewItem.cs:
1326         * ThemeWin32Classic.cs: Don't draw the item text outside
1327         item bounds in Details view, as well as use trimming.
1328         Fixes bug #80376.
1329
1330 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1331
1332         * Form.cs: Implement Form.ShowIcon.
1333         
1334         * XplatUIWin32.cs: Allow the SetIcon win32 call to set the icon to
1335         null, which when combined with the DlgModalFrame window style removes
1336         the icon from the title bar.
1337
1338 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1339
1340         * Control.cs: Call OnMouseClick after OnClick. (2.0)
1341
1342 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1343
1344         * MdiWindowManager.cs: In CreateMaximizedMenu fix a position of icon
1345         menu when mdi child windows theres a menu, uses insert to get icon
1346         at first position. Partially fix #80006.
1347
1348 2007-01-15  Jonathan Pobst  <jpobst@novell.com>
1349
1350         * Clipboard.cs: Implement 2.0 methods.
1351
1352 2007-01-15  Everaldo Canuto  <everaldo@simios.org>
1353
1354         * Menu.cs: Implement Insert method of MenuItemCollection class
1355         to fix MenuMerge.
1356
1357 2007-01-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1358
1359         * ListView.cs: Implement 2.0 FindItemWithText method.
1360
1361 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1362
1363         * Form.cs: When process WM_NCCALCSIZE message use ClienSize.Width
1364         to calculate menu bar size. Fixes #80290.
1365
1366 2007-01-11  Everaldo Canuto  <everaldo@simios.org>
1367
1368         * ThemeWin32Classic.cs: Fix position of menuitem check mark.
1369
1370 2007-01-11  Chris Toshok  <toshok@ximian.com>
1371
1372         * XplatUIX11.cs: don't send duplicate WM_ACTIVATE messages to the
1373         initial form.
1374
1375 2007-01-11  Chris Toshok  <toshok@ximian.com>
1376
1377         * LinkLabel.cs: make sure to call base.Select in our Select method
1378         if it turns out we're going to be selected (i.e. if we have a link
1379         that is going to receive focus).  That way our container's
1380         ActiveControl is updated properly.
1381
1382 2007-01-11  Chris Toshok  <toshok@ximian.com>
1383
1384         * LinkLabel.cs: turns out that LinkLabels are only Selectable if
1385         they have 1 or more links.  this fixes the crash gert reported.
1386
1387 2007-01-11  Andreia Gaita  <avidigal@novell.com>
1388
1389         * ContainerControl.cs: Remove ContainerSelected flag, not needed
1390         anymore.
1391
1392         * Control.cs (Controls.Add): Check if control to be added to the collection
1393         is a top level control, and throw an ArgumentException if it is.
1394         Remove ContainerSelectedFlag, not needed anymore.
1395
1396         * XplaUIWin32.cs (SetTopMost): Add flag SWP_NOACTIVATE so that setting the
1397         top most control doesn't activate the form. This fixes a problem in the
1398         MessageBox, where the default button wouldn't get focus because the form
1399         was activated before being Loaded - when the Owner is set, SetTopMost is
1400         called, and it would activate it.
1401
1402 2007-01-11  Jonathan Pobst  <jpobst@novell.com>
1403
1404         * Button.cs: When clicked and setting the parent form's DialogResult,
1405         use FindForm instead of Parent, since parent could be a container
1406         control and not the Form.  Fixes bug #80495.
1407
1408 2007-01-10  Chris Toshok  <toshok@ximian.com>
1409
1410         * Form.cs: move the call to SendControlFocus into the same
1411         is_loaded check.
1412
1413 2007-01-10  Chris Toshok  <toshok@ximian.com>
1414
1415         * UpDownBase.cs (.ctor): remove the ActiveControl assignment here.
1416         It breaks in the face of the new ActiveControl stuff, and should
1417         be unnecessary.
1418
1419         * Form.cs (WndProc): in the WM_ACTIVATE case, we need to set the
1420         activecontrol's focus if it's not already set, after we set
1421         ActiveControl, but before we call OnActivated.  Re-fixes #79667
1422         after the previous focus/active control fixes regressed it.
1423
1424         * Control.cs: reindent some code.
1425         
1426 2007-01-10  Chris Toshok  <toshok@ximian.com>
1427
1428         * Splitter.cs: clearing some outstanding changes from my tree.
1429         Replace all accesses (not writes) to the internal dock_style field
1430         with the Dock property.
1431
1432 2007-01-10  Chris Toshok  <toshok@ximian.com>
1433
1434         * Control.cs: make FireEnter, FireLeave, FireValidating, and
1435         FireValidated virtual.
1436
1437         * Form.cs: override and don't chain up calls to FireEnter and
1438         FireLeave.
1439
1440 2007-01-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1441
1442         * ListView.cs: Add more text padding space when using
1443         auto resize for columns (the previous value didn't work fine).
1444
1445         * ThemeWin32Classic.cs: Update text position inside columns,
1446         to match the appeareance of .Net.
1447
1448         * ColumnHeader.cs: When using auto resize, only the Width should
1449         depend on the sub items, not the Height. Also, set width after
1450         auto resizing (the value of Width should never remain as -1 or -2).
1451
1452 2007-01-10  Chris Toshok  <toshok@ximian.com>
1453
1454         * Application.cs: fix compilation errors when debug is enabled.
1455
1456 2007-01-10  Chris Toshok  <toshok@ximian.com>
1457
1458         * ContainerControl.cs (set_ActiveControl): rework this a bit (and
1459         add some nice ascii art pictures and explanation of the process).
1460         (GetMostDeeplyNestedActiveControl): new utility function we need
1461         because our ActiveControl can refer to a child container with its
1462         own ActiveControl.
1463
1464         * Form.cs (OnActivated): remove the call to SelectActiveControl
1465         from here, since you can override this method and not chain up,
1466         and winforms still sets the active control.
1467         (OnCreateControl): also remove the unnecessary SelectActiveControl
1468         call from here.
1469         (WndProc): it's actually called from the WM_ACTIVATE block, just
1470         before calling OnActivated.
1471
1472         * Control.cs (Select (Control)): move the call to XplatUI.SetFocus
1473         inside the else.  the ActiveControl setter will end up setting
1474         focus on @control.  This keeps us from setting it again (and
1475         generating an extra LostFocus/GotFocus pair).
1476         (Select (bool, bool)): reindent.
1477
1478 2007-01-10  Jonathan Pobst  <jpobst@novell.com>
1479
1480         * FlowLayoutPanel.cs, MenuStrip.cs, SplitContainer.cs, SplitterPanel.cs,
1481         StatusStrip.cs, TableLayoutPanel.cs, TableLayoutStyleCollection.cs,
1482         ToolStrip.cs, ToolStripComboBox.cs, ToolStripContainer.cs,
1483         ToolStripContentPanel.cs, ToolStripControlHost.cs, ToolStripDropDown.cs,
1484         ToolStripDropDownButton.cs, ToolStripDropDownItem.cs, ToolStripDropDownMenu.cs,
1485         ToolStripItem.cs, ToolStripMenuItem.cs, ToolStripPanel.cs, ToolStripPanelRow.cs,
1486         ToolStripSeparator.cs, ToolStripSplitButton.cs, ToolStripStatusLabel.cs
1487         ToolStripTextBox.cs: Another wave of corcompare work.
1488
1489 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1490
1491         * ColumnHeader.cs: Implement 2.0 AutoResize method using
1492         the Width property.
1493
1494         * ListView.cs: Implement 2.0 AutoResizeColumn and AutoResizeColumns
1495         methods by callling Column.AutoResize method on columns.
1496
1497 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1498
1499         * Control.cs: Provide proper implementations of PreferredSize
1500         and GetPreferredSize (2.0).
1501
1502 2007-01-09  Jonathan Pobst  <monkey@jpobst.com>
1503
1504         * Form.cs: Remove one character (!) to make my previous OnClosing
1505         stuff work for modal windows like MessageBox.
1506
1507 2007-01-09  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1508
1509         * ListView.cs:
1510         * ThemeWin32Classic.cs: Use ListView.GetReorderedColumn instead of
1511         ListView.Columns to get the last displayed column. Fixes #80452.
1512
1513 2007-01-09  Everaldo Canuto  <everaldo@simios.org>
1514
1515         * Label.cs, LinkLabel.cs: Source code identation fixes.
1516
1517 2007-01-08  Everaldo Canuto  <everaldo@simios.org>
1518
1519         * ToolBarButton.cs: Remove InvalidateBorder and use Invalidate instead,
1520         we dont need to invalidate only borders because when we invalidate four
1521         border lines the invalidate's generates a complete redraw of button, 
1522         because it now invalidate a complete rect some other redraws operations
1523         are fixed. Fixes #80196.
1524         
1525         * Theme.cs, ThemeNice.cs, ThemeClearLooks.cs, ThemeWin32Classic.cs:
1526         Remove ToolBarInvalidateEntireButton as it is not used.
1527
1528 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1529         
1530         * Form.cs: Make sure that both OnClosing and OnFormClosing are
1531         called for 2.0 profile.
1532         * CloseReason.cs: Make class internal for 1.1.
1533
1534 2007-01-08  Jonathan Pobst  <monkey@jpobst.com>
1535
1536         * ToolStripManager.cs: Implement FindToolStrip functionality.
1537         * ToolStrip.cs: Register and unregister with ToolStripManager.
1538
1539 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1540
1541         * Control.cs: This was messy.  2.0 moves much of ControlCollection
1542         to ArrangedElementCollection.  Implemented this with as few #if's as 
1543         possible (which is still too many).
1544
1545 2007-01-07  Jonathan Pobst  <monkey@jpobst.com>
1546
1547         * Control.cs: Implement SizeFromClientSize() [2.0].
1548
1549 2007-01-07  Everaldo Canuto  <everaldo@simios.org>
1550
1551         * Hwnd.cs: On GetClientRectangle add a new parameter border_static,
1552         use Theme.BorderSize to calculate area instead of static value 1, 
1553         by the way use new BorderStaticSize instead     Border3DSize when 
1554         border_static is true. Fixes #79537.
1555         
1556         * XplatUIOSX.cs: Fix call to GetClientRectangle. 
1557         
1558         * ThemeWin32Classic.cs: On CPDrawBorder3D dont draw inner border when
1559         it is not needed.
1560
1561 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1562
1563         * Hwnd.cs: Gives more code legibility to GetWindowRectangle.
1564
1565 2007-01-06  Everaldo Canuto  <everaldo@simios.org>
1566
1567         * Label.cs: Override CreateParams to use WS_EX_STATICEDGE instead of
1568         WS_EX_CLIENTEDGE in ExStyles when BorderStyle is Fixed3D, it is
1569         
1570         * Hwnd.cs: 
1571         - border_static field added, it will used to define when a control 
1572         theres 3D border but it must be static (thin).
1573         - In GetWindowRectangle use Theme.BorderSize to calculate area 
1574         instead of static value 1, by the way use new BorderStaticSize instead
1575         Border3DSize when border_static is true.
1576
1577         * XplatUIX11.cs, XplatUIOSX.cs: 
1578         - When WS_EX_STATICEDGE ExStyle is set define border_static as true.
1579         
1580         * Theme.cs: BorderStaticSize field added.
1581
1582 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1583
1584         * XplatUIX11.cs: Removed unused hwnd var in SetBorderStyle.
1585
1586 2007-01-05  Everaldo Canuto  <everaldo@simios.org>
1587
1588         * Control.cs: Under InternalBorderStyle call RecreateHangle to 
1589         mimic same behavior than win32 that set border only in CreateParams,
1590         it fix problems under CreateParams overrides. Fix #79442 and partial
1591         fix #79537.
1592         
1593         * XplatUIX11.cs: Dont set hwnd.border_style in SetBorderStyle instead
1594         of thi control you must call recreate handle. 
1595         
1596         * XplatUIWin32.cs: Remove all SetBorderStyle code, for win32 we dont
1597         need to do anything as RecreateHangle will take care about borders.
1598
1599 2007-01-05  Mike Kestner  <mkestner@novell.com>
1600
1601         * ListView.cs: hack to eliminate Lost/Got focus notifications on
1602         cycles between the ItemControl and parent.  Fixes #80388.
1603
1604 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
1605
1606         * Control.cs: Lazy init layout engine. Do not directly use 
1607         layout_engine since LayoutEngine may be overridden (on 2.0 profile).
1608
1609 2007-01-05  Chris Toshok  <toshok@ximian.com>
1610
1611         * DataGrid.cs: don't forceably rebind columns in SetDataSource
1612         unless our list manager has changed (i.e. unless we have reason to
1613         believe our columns have changed).  Fixes #80422.
1614         
1615         also, disable the call do BindColumns in
1616         OnListManagerMetaDataChanged.  this breaks this test in 2.0 (in
1617         1.1 the event isn't raised in response to a column addition on a
1618         table.)
1619
1620 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1621
1622         * Control.cs: Move LayoutEngine.Layout to the OnLayout method, so
1623         that inheritors can not call it if they choose.  Fixes bug #80456.
1624
1625 2007-01-05  Andreia Gaita  <avidigal@novell.com>
1626
1627         * XplatUIWin32.cs: Initialize MSG.refobject at 0 so it 
1628         doesn't blow up with a null exception on marshalling.
1629         
1630 2007-01-05  Jonathan Pobst  <monkey@jpobst.com>
1631
1632         * Control.cs: Implement several 2.0 protected properties and methods.
1633         Ensure that all necessary events are being called when properties
1634         are set.
1635
1636 2007-01-05  Mike Kestner  <mkestner@novell.com>
1637
1638         * ListView.cs: implement PgUp/PgDn for Details view.  Also
1639         fixes First/LastVisibleIndex to use the item_control.ClientRect 
1640         instead of the parent control.  Fixes #80378.
1641
1642 2006-01-05  Atsushi Enomoto  <atsushi@ximian.com>
1643
1644         * PageSetupDialog.cs : cosmetic refactoring; use RegionInfo to
1645           determine whether to use yard-pound or not (bug #78399).
1646
1647 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
1648
1649         * FileDialog.cs: Sebastien fixed the libgdiplus png alpha
1650         problems. So it is time to bring back the old popupbutton colors.
1651
1652 2006-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1653
1654         * ColumnHeader.cs:
1655         * ListView.cs: Implement 2.0 ColumnHeader.DisplayIndex
1656         property by using the internal information of the
1657         columns order in ListView.
1658
1659 2007-01-04  Jonathan Pobst  <monkey@jpobst.com>
1660
1661         * CommonDialog.cs, Cursor.cs, ErrorProvider.cs, HelpProvider.cs:
1662         Add 2.0 Tag properties.
1663
1664         * LinkArea.cs: Add 2.0 ToString method.
1665
1666 2007-01-03  Chris Toshok  <toshok@ximian.com>
1667
1668         * DataGrid.cs: the Alt+0 handling was wrong, it should have been
1669         Ctrl+0.  Fixes bug #80367.  Also, don't eat the Delete keypress
1670         when we're editing, which fixes #80047.
1671
1672 2007-01-03  Chris Toshok  <toshok@ximian.com>
1673
1674         * Form.cs: apply patch contributed by Dominik Seichter.  fixes
1675         #80404.
1676
1677 2007-01-03  Jonathan Pobst  <monkey@jpobst.com>
1678
1679         * MenuStrip.cs, ToolStripMenuItem.cs: Add MdiWindowListItem
1680         property and implementation.
1681
1682         * Form.cs, MdiClient.cs, MdiWindowManager.cs: Add needed hooks
1683         for MdiWindowListItem property.
1684
1685         * ToolStripDropDown.cs: Don't consider hidden menu items while
1686         laying out the menu.
1687
1688 2007-01-03  Andreia Gaita  <avidigal@novell.com>
1689
1690         * SendKeys.cs: window handle is not needed in win32, so just
1691         get the active window for X after parsing keys and don't use
1692         it when building the message; it is passed by parameter to the 
1693         Xplat method and used there to build the message instead. Also,
1694         wait for events to be processed on SendWait, as opposed to Send,
1695         which doesn't wait :) Playing with threads and Send() completely 
1696         hangs on ms.net, only SendWait() works.
1697         
1698         XplatUIX11.cs
1699         X11Display.cs: Check for valid window handle.
1700
1701 2007-01-03  Jackson Harper  <jackson@ximian.com>
1702
1703         * TextControl.cs: Need to prevent wrap calculations when replacing
1704         text (this was there before i removed it accidently).
1705         - Don't update the cursor during the positioning, just set it to
1706         selection_start at the end of the operaion.
1707
1708 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1709
1710         * Control.cs:
1711         * NotifyIcon.cs: corcompare work, no more X's in 1.1 class status.
1712         
1713 2007-01-03  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1714
1715         * MonthCalendar.cs: Added Click and DoubleClick events again,
1716         but this time they only hide Control's Click and DoubleClick.
1717         
1718 2007-01-03  Gert Driesen  <drieseng@users.sourceforge.net>
1719
1720         * Theme.cs: Re-enabled DefaultFont change. Use const to refer to
1721         System.Drawing assembly. Spaces to tabs. Removed extra tabs.
1722
1723 2007-01-02  Jackson Harper  <jackson@ximian.com>
1724
1725         * TextBoxBase.cs: We move the caret with the split now, so we
1726         don't need to explicitly move the caret after splitting.  This
1727         fixes the caret bumping down an extra line on Enter.
1728
1729 2007-01-02  Miguel de Icaza  <miguel@novell.com>
1730
1731         * ContainerControl.cs: Add AutoValidateChanged event (for PDN
1732         2.72). 
1733
1734         * ScrollableControl.cs: Add Scroll event.
1735
1736 2007-01-02  Mike Kestner  <mkestner@novell.com>
1737
1738         * ListView.cs: one more try with help from georgegiolfan@yahoo.com 
1739         to fix all hdr height padding codepaths.  Fixes #80207.
1740
1741 2007-01-02  Chris Toshok  <toshok@ximian.com>
1742
1743         * StatusBar.cs (.ctor): remove the Anchor setting, as it's just
1744         setting it to the Control defaults anyway, and it being after the
1745         Dock set was screwing up layout.
1746         (set_Dock): don't short circuit out of setting base.Dock.  Also,
1747         no need to call UpdateStatusBar here, as it'll be re-layed out if
1748         it needs to be.
1749
1750 2007-01-02  Mike Kestner  <mkestner@novell.com>
1751
1752         * ListView.cs: patch from georgegiolfan@yahoo.com to add padding
1753         to header height for width == -1. Fixes the rest of #80207.
1754
1755 2007-01-02  Mike Kestner  <mkestner@novell.com>
1756
1757         * ListView.cs: rework the mouse event forwarding everaldo added
1758         to translate the coordinates to the parent control not
1759         raise the parent events until after we've done our work. Hover
1760         needs more work, in the case where HoverSelection is on, because
1761         the item control receives more than one MouseHover per Enter
1762         event, so we need to ensure only the "first" hover gets forwarded.
1763         Opening a minor bug for that.
1764
1765 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
1766
1767         * CheckedListBox.cs: Fixed SelectionMode to match MS.
1768         * ListControl.cs: Implemented AllowSelection property. Removed extra
1769         tabs.
1770         * ListBox.cs: Implemented AllowSelection property.
1771
1772 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1773
1774         * MenuItem.cs: In MdiWindowClickHandler uses sender instead of
1775         SelectedItem, it prevent for errors when you must disable item
1776         before perform click. Fixes #80409.
1777
1778 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1779
1780         * MenuAPI.cs: Prevent second level and beyond submenus to close
1781         until first level when move out side of popup.
1782         
1783 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1784
1785         * MenuAPI.cs:
1786         - Down submenu positin in three pixels.
1787         - Closes sub menu when mouse leaves from menu. Fixes #80402.
1788
1789 2007-01-02  Everaldo Canuto  <everaldo@simios.org>
1790
1791         * ThemeWin32Classic.cs:
1792         - Fix popup menu size adding one pixel on the top.
1793         - Down menu item border from two to one to mimic Win32.
1794         - Some source identation fixes. 
1795
1796 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1797
1798         * ThemeWin32Classic.cs: Use float numbers to calculate size and
1799         position of menu arrows, it fix wrong arrow size.
1800
1801 2007-01-01  Everaldo Canuto  <everaldo@simios.org>
1802
1803         * ThemeWin32Classic.cs: Uses CPDrawBorder3D to draw menu borders
1804         instead of line, it simplify draw operation and fix it using 3D
1805         borders to mimic Win32.
1806
1807 2007-01-01  Jonathan Pobst  <monkey@jpobst.com>
1808
1809         * StatusStrip.cs: Add implementation of the sizing grip.
1810
1811         * ToolStripRenderer.cs, ToolStripProfessionalRenderer.cs: Add
1812         StatusStrip rendering.
1813
1814 2006-12-31  Chris Toshok  <toshok@ximian.com>
1815
1816         * ToolBar.cs: don't assign to dock_style in the .ctor.  it doesn't
1817         override the layout style (anchor/dock) of the control.  assign to
1818         Dock instead.  Fixes bug #80416.
1819
1820         * ToolStrip.cs: same.
1821
1822 2006-12-31  Andreia Gaita  <avidigal@novell.com>
1823
1824         * ContainerControl.cs: Use ContainerSelected flag to check if 
1825         a Container is directly selected, or if Select is called on a 
1826         non-container. If a container is directly selected, focus events 
1827         should not be raised.
1828         Apply #80411 patch to throw exception on set_ActiveControl if 
1829         control is the same as the current one.
1830         
1831         * Control.cs: Use ContainerSelected flag (see above).
1832         Add invalidation check to raise event but not invalidate if 
1833         dimensions are 0.       
1834         Apply #80411 patch.
1835         
1836
1837 2006-12-31  Everaldo Canuto  <everaldo@simios.org>
1838
1839         * MenuAPI.cs: After click, dont close popup menu when menu is
1840         ContextMenu. Fixes #80399.
1841
1842 2006-12-30  Chris Toshok  <toshok@ximian.com>
1843
1844         * ContainerControl.cs: make sure we throw the exception if the
1845         container control doesn't contain the control we're setting
1846         ActiveControl to.
1847
1848 2006-12-30  Chris Toshok  <toshok@ximian.com>
1849
1850         * Control.cs (SetTopLevel): fix the exception raised by
1851         SetTopLevel for child controls.
1852         (set_Anchor): call UpdateDistances when setting the anchor type.
1853         This fixes bug #80336.
1854
1855 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1856
1857         * Theme.cs: For now, revert back to 8pt font.
1858
1859 2006-12-29  Everaldo Canuto  <everaldo@simios.org>
1860
1861         * MenuAPI.cs: Set popup as active when open a ContextMenu. 
1862         Fixes #80395.
1863
1864 2006-12-29  Chris Toshok  <toshok@ximian.com>
1865
1866         * Control.cs: reorder the code in OnResize to give the same event
1867         ordering as MS.
1868
1869 2006-12-29  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1870
1871         * MdiClient.cs: Implemented MdiLayout for ArrangeIcons,
1872         TileHorizontally and TileVertically.
1873         
1874 2006-12-29  Alexander Olk  <alex.olk@googlemail.com>
1875
1876         * ColorDialog.cs, FileDialog.cs, FolderBrowserDialog.cs,
1877         FontDialog.cs, Mime.cs, MimeIcon.cs, OpenFileDialog.cs,
1878         SaveFileDialog.cs, ThemeClearlooks.cs, ThemeNics.cs:
1879         Corrected copyright and email adress.
1880
1881 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1882
1883         * TreeNode.cs: On 2.0 profile, throw InvalidOperationException instead
1884         of Exception in FullPath property if no TreeView is associated with
1885         the TreeNode.
1886
1887 2006-12-29  Gert Driesen  <drieseng@users.sourceforge.net>
1888
1889         * Theme.cs: Marked default_font as private, and initialize it in ctor
1890         with MS Sans Sarif 8.25 on 1.0 profile, and SystemFonts.DefaultFont
1891         on 2.0 profile.
1892         * ThemeGtk.cs: Removed default_font intialization.
1893         * ThemeWin32Classic.cs: Removed default_font initialization.
1894
1895 2006-12-28  Chris Toshok  <toshok@ximian.com>
1896
1897         * Control.cs: fix a couple of place where we were creating handles
1898         more aggressively than we should be.  Fixes ControlRefresh unit
1899         tests.
1900
1901 2006-12-28  Chris Toshok  <toshok@ximian.com>
1902
1903         * Control.cs: contrary to what the comment said, Control.Dock does
1904         not supercede Control.Anchor - the last one you assign to decides
1905         the layout behavior.  so we need to keep track of which was the
1906         last set.  Also, fix some of the affected property arguments in
1907         PerformLayout calls, and remove an redundant parent.PerformLayout
1908         call in OnResized.
1909
1910         Add a VisibleInternal property, which returns is_visible.  We
1911         can/should get rid of all the usage of this field elsewhere.
1912
1913 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1914         
1915         * Control.cs: DoubleBuffered property reflects the OptimizedDoubleBuffer
1916         control style, not DoubleBuffer. Added UseDoubleBuffering property
1917         that indicates whether doublebuffering is enabled and supported.
1918         (comment from and code based on Gert Driesen's patch in #80324).
1919         Fixes #80324.
1920
1921 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1922         
1923         * Control.cs: Fixed a NRE.
1924
1925 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1926
1927         * TrackBar.cs: Fix SmallChange and LargeChange exceptions
1928         for 2.0.
1929
1930 2006-12-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1931
1932         * Control.cs: Rewrote double buffering, now a seperate
1933         class handles all the buffering, no Graphics is disposed of
1934         until the painting is finished (earlier implementation 
1935         would crash if the control was resized in the OnPaint, 
1936         since it would cause the double buffer to be recreated
1937         and the old one disposed), a separate Graphics is 
1938         created for every paint (MS behaviour and anyways the state
1939         of the Graphics would have to be saved and restored otherwise)
1940         
1941         * XplatUIDriver.cs: 
1942         * XplatUIX11.cs:
1943         * XplatUI.cs: Added and implemented GetOffscreenGraphics 
1944         so that we can get the graphics for the back buffer without
1945         having to create a new one and remove the offscreen_dc parameter
1946         from CreateOffscreenDrawable and DestroyOffscreenDrawable.
1947         
1948 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1949
1950         * ListView.cs: Add key-related 2.0 methods for CheckedItemCollection.
1951         Also make virtual all the key-related methods.
1952
1953         * ListViewItem.cs: Make virtual the key related methods for
1954         ListViewSubItemCollection.
1955
1956 2006-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1957
1958         * ListView.cs:
1959         * ListViewItem.cs:
1960         * ThemeWin32Classic.cs:
1961         * Theme.cs: Initial support for Tile view in ListView,
1962         as well as the implementation of the required bits for it (Item
1963         and Subitem).
1964
1965 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1966
1967         * MonthCalendar.cs: On 2.0, throw ArgumentOutOfRangeException instead
1968         of ArgumentException in MaxSelectionCount, MaxDate and MinDate.
1969         Provide useful exception messages.
1970
1971 2006-12-27  Rolf Bjarne Kvinge  <RKvinge@novell.com>
1972
1973         * TrackBar.cs: Remove a warning.
1974         * MonthCalendar.cs: Moved back to using Capture to hide the calendar
1975         when used by DateTimePicker, fixes #80287. This also requires that 
1976         MonthCalendar implements it's own drawing for the yearly updown control,
1977         otherwise the Capture tracking would be too complicated. Removed the Click 
1978         and DoubleClick events (according to comments they were hiding the base class
1979         event to prevent them from beeing fired - MSDN only says MonthCalendar doesn't
1980         raise these events, not that they cannot be raised. It is possible to raise 
1981         them by calling OnClick and OnDoubleClick). Added two internal fields in 
1982         HitTestInfo in order to track give more tracking info needed by MonthCalendar.
1983         * ThemeWin32Classic.cs: Implement drawing of MonthCalendar's updown part.
1984         * DateTimePicker.cs: Removed handling of MonthCalendar's LostFocus
1985         event, no longer needed.
1986         
1987 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1988
1989         * ScrollableControl.cs: In AutoScrollMinSize, only set AutoScroll to
1990         true if new value differs from current value.
1991
1992 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1993
1994         * Control.cs: ControlCollection.Count must be public. Fixed build of
1995         unit tests.
1996
1997 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
1998
1999         * ListView.cs: Redraw when FullRowSelect is changed. Fixes bug #80379.
2000
2001 2006-12-27  Gert Driesen  <drieseng@users.sourceforge.net>
2002
2003         * ComboBox.cs: Mergable=>MergableProperty. Fixes build.
2004
2005 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
2006
2007         * Control.cs: Invalidates control including when Width and Height is 
2008         equal zero or is not visible, only Paint event must be care about 
2009         this. Fixes #79913.
2010
2011 2006-12-26  Chris Toshok  <toshok@ximian.com>
2012
2013         * CurrencyManager.cs, PropertyManager.cs, BindingManagerBase.cs:
2014         more corcompare work.
2015
2016         * DataGridView.cs: fix compiler warning.
2017
2018         * ColumnHeader.cs: some corcompare work, and also take the
2019         opportunity to make the internal fields private.
2020
2021         * ListView.cs: fix the fallout from the above field change.
2022
2023 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
2024
2025         * ToolStripButton.cs, ToolStripComboBox.cs, ToolStripControlHost.cs,
2026         ToolStripItem.cs, ToolStripProgressBar.cs, ToolStripSplitButton.cs,
2027         ToolStripTextBox.cs: Fixes to events and corcompare.
2028
2029 2006-12-26  Everaldo Canuto  <everaldo@simios.org>
2030
2031         * ListView.cs: Call owner.OnMousexx event to propagate events from
2032         item to ListView. Fixes #80367.
2033
2034 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2035
2036         * ComboBox.cs: On 2.0, DropDownWidth throws ArgumentOutOfRangeException
2037         if value is less than one. ItemHeight should not be set to a value
2038         less than 1, and throw ArgumentOutOfRangeException on 2.0 profile. 
2039         Removed extra tabs.
2040
2041 2006-12-26  Jonathan Pobst  <monkey@jpobst.com>
2042
2043         * ToolStripMenuItem.cs: Add ShortcutDisplayString for Moma.
2044         * ToolStripStatusLabel.cs: Add Spring for Moma.
2045
2046 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2047
2048         * DataGridView.cs: Fixed several NullReferenceException in On* methods.
2049         Fixed code formatting. Removed debug code.
2050         * DataGridViewTextBoxEditingControl.cs: Removed debug code.
2051
2052 2006-12-26  Gert Driesen  <drieseng@users.sourceforge.net>
2053
2054         * DataGridView.cs: Fixed GridColor, DefaultSize, DefaultCellStyle,
2055         RowHeadersDefaultStyle, RowHeadersWidth to match MS. Throw
2056         ArgumentOutOfRangeException if ColumnCount is negative. In 
2057         ColumnHeadersHeight, throw ArgumentOutOfRangeException if height is
2058         less than 4 or higher than 32768.
2059         * DataGridViewCellStyle.cs: Fixed default value for NullValue.
2060         Fixed FormatProvider to return CurrentCulture unless explicitly set.
2061         Fixed IsFormatProviderDefault to return true if FormatProvider has
2062         not been explicitly set.
2063
2064 2006-12-25  Chris Toshok  <toshok@ximian.com>
2065
2066         * Application.cs: add a couple of 2.0 events.
2067
2068 2006-12-25  Chris Toshok  <toshok@ximian.com>
2069
2070         * Control.cs: fix compiler warning.
2071
2072         * AxHost.cs: corcompare fixes.
2073
2074         * ApplicationContext.cs: corcompare fixes.
2075
2076 2006-12-25  Chris Toshok  <toshok@ximian.com>
2077
2078         * Control.cs: only update dist_right/dist_bottom if the
2079         width/height is > 0.  this fixes anchored controls being resized
2080         smaller until they disappear and then resized larger again.
2081
2082 2006-12-25  Chris Toshok  <toshok@ximian.com>
2083
2084         * Control.cs: a couple of changes.  Remove dist_left and dist_top,
2085         since they're nothing more than X/Left and Y/Top, respectively.
2086
2087         Also, move back to a per-control Bitmap/Graphics for
2088         DeviceContext, since using the static Hwnd.bmp/bmp_g is bad in the
2089         MT case.  Go with a tiny bitmap though, 1x1, instead of Width x
2090         Height.
2091
2092 2006-12-25  Miguel de Icaza  <miguel@novell.com>
2093
2094         * MessageBox.cs: Implemented overload that takes a new "bool
2095         displayHelpButton" by adding a new internal field "show_help".
2096         When clicked this will raise the HelpRequested on the owner or the
2097         main form. 
2098
2099         From: 007dbe3ff0ca4729a4f5fcd1d8ab2a2e.txt
2100         From: c935e12b95fe4dc1ae670e7f4dc5fd68.txt
2101
2102         * ListView.cs: Add support ColumnWidthChanged and
2103         ColumnWidthChanging. 
2104
2105         Add support for ColumnReordered event.
2106         (ReorderColumn): Add NET_2_0 specific support for cancelling the
2107         reorder.
2108
2109         Very nice codebase!
2110
2111         * TextBoxBase.cs (GetLineFromCharIndex): Implement this method.
2112
2113         This is used by report f4ae0a88a0a244558aaadf017c9b9efe.
2114
2115 2006-12-24  Chris Toshok  <toshok@ximian.com>
2116
2117         * GridTablesFactory.cs: 2.0 corcompare work.
2118
2119         * ToolStripContainer.cs: add "override" to
2120         ContextMenuStripChanged, and remove the local event object.
2121
2122         * ToolStripDropDown.cs: same with a couple properties.
2123
2124         * ToolStripPanel.cs: same with AutoSizeChanged event.
2125
2126         * TextBoxBase.cs: add "override" to AutoSizeChanged.
2127
2128         * Form.cs: add the remaining 2.0 events, and do some corcompare
2129         attribute work.
2130
2131         * DateTimePicker.cs: add "new" to padding.
2132
2133         * ButtonBase.cs: use Control's use_compatible_text_rendering.
2134
2135         * ToolStripContentPanel.cs: use base.AutoSizeChanged.
2136
2137         * DataGridView.cs: PaddingChanged is overridden.
2138
2139 2006-12-24  Chris Toshok  <toshok@ximian.com>
2140
2141         * Control.cs: corecompare work here too.
2142
2143         * DataGridViewElement.cs, DataGridView.cs,
2144         DataGridViewButtonCell.cs, DataGridViewRowCollection.cs,
2145         DataGridViewImageColumn.cs, DataGridViewComboBoxColumn.cs,
2146         DataGridViewImageCell.cs, DataGridViewCheckBoxCell.cs,
2147         DataGridViewHeaderCell.cs, DataGridViewCell.cs: more corcompare
2148         work.
2149
2150 2006-12-24  Miguel de Icaza  <miguel@novell.com>
2151
2152         * Control.cs: Switched the error message on the console for a
2153         todo.  A review of the code will have to cope with this anyways
2154         (since its a large feature, it is in our radar) and it was
2155         producing too much output when running PDN.
2156
2157         * ToolStripComboBox.cs: Set the text when the SelectedIndex
2158         changes.  Applications depend on this (PDN 2.72)
2159
2160 2006-12-23  Chris Toshok  <toshok@ximian.com>
2161
2162         * TableLayoutSettings.cs: finish up the corcompare work for this
2163         class.
2164
2165 2006-12-23  Chris Toshok  <toshok@ximian.com>
2166
2167         * Control.cs: make SetImplicitBounds internal, do some futzing
2168         with LayoutEngine so that it's available in 1.1, and remove the
2169         entire duplicated code mess from PerformLayout.  Use
2170         System.Windows.Forms.Layout.DefaultLayout instead.
2171
2172         * LayoutEngine.cs: make this class internal in 1.1, public in 2.0.
2173
2174 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
2175
2176         * Form.cs: Add MainMenuStrip property.
2177
2178 2006-12-23  Jonathan Pobst  <monkey@jpobst.com>
2179
2180         * Control.cs: Add ContextMenuStrip property and implementation.
2181         Fix ContextMenu implementation to show menu centered on control when
2182         activated using the keyboard instead of showing at screen (0,0).
2183
2184         * ToolStripDropDown.cs: Fix needed overload of Show ().
2185
2186 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2187
2188         * Menu.cs: Name property added for 2.0 profile.
2189         
2190 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2191
2192         * Menu.cs: Update information about FindMenuItem, method to be
2193         implemented soon.
2194
2195 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2196
2197         * MenuAPI.cs: When deselect items deselect also selected subitems.
2198         
2199 2006-12-23  Everaldo Canuto  <everaldo@simios.org>
2200
2201         * MenuAPI.cs: When hides menu set Wnd to null, it prevents
2202         FindSubItemByCoord to found itens that is not active, also an
2203         cheking added to FindSubItemByCoord to search for items only 
2204         in visible popup windows. Fixes #80274.
2205
2206 2006-12-22  Everaldo Canuto  <everaldo@simios.org>
2207
2208         * UserControl.cs: Remove MonoTodo and use InternalBorderStyle,
2209         internal property, it be care about change ExStyle. 
2210
2211 2006-12-22  Andreia Gaita  <avidigal@novell.com>
2212
2213         * ContainerControl.cs: set activeControl for parent forms up the 
2214         tree when the new activecontrol is a container.
2215         When validating the active control, if it is a container, also
2216         raise up the validation for it's active control. Fixes #80280
2217         
2218         * Control.cs: Add internal property flag and check to prevent
2219         Focus events from getting raised when Select() is called for
2220         a ContainerControl. There are still too many focus events being
2221         raised at the moment though.
2222         Cleaned up the code a bit.
2223
2224 2006-12-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2225
2226         * Control.cs: Added all missing 2.0 events.and
2227         fixed a couple of corcompare issues.
2228         * TrackBar.cs: Implemented missing 2.0 bits.
2229         * MonthCalendar.cs, 
2230         * DateTimePicker.cs, 
2231         * MdiClient.cs: Fixed some corcompare issues.
2232
2233 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2234
2235         * ContextMenuStrip.cs, FlowLayoutPanel.cs, SplitContainer.cs,
2236         SplitterPanel.cs: corecompare work.
2237
2238 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2239
2240         * ToolStripContainer.cs, ToolStripDropDown.cs, StatusStrip.cs:
2241         Clean up warnings for BackgroundImageChanged and PaddingChanged
2242         events now that they are implemented in Control.cs.
2243
2244 2006-12-21  Jonathan Pobst  <monkey@jpobst.com>
2245
2246         * Control.cs: Make sure layout_engine isn't null before using it (2.0).
2247         
2248         * TableLayoutControlCollection.cs, TableLayoutPanel.cs, TableLayoutCellPosition.cs,
2249         TableLayoutSettings.cs, TableLayoutStyleCollection.cs: Initial implementation
2250         of TableLayoutPanel and supporting cast.
2251
2252 2006-12-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2253
2254         * XplatUIWin32.cs: 
2255         - GrabWindow now confines the mouse pointer to the confine window.
2256         - Added Win32ClipCursor and Win32GetClipCursor.
2257
2258         * Control.cs: 
2259         - Added CaptureWithConfine to be able to capture and confine 
2260         mouse pointer.
2261         
2262         * InternalWindowManager.cs: 
2263         - Call CaptureWithConfine instead of Capture if we're an
2264         MdiChild (fixes #79982).
2265
2266 2006-12-21  Chris Toshok  <toshok@ximian.com>
2267
2268         * DataGrid.cs: guard against the initial state of selection, where
2269         selection_start == -1.  make sure we only select from index >= 0.
2270         Fixes bug #80291.
2271
2272 2006-12-21  Chris Toshok  <toshok@ximian.com>
2273
2274         * Control.cs: we don't need to be so draconian with
2275         UpdateDistances, and we thusly don't need to call it before
2276         calling PerformLayout in ResumeLayout.  Fixes bug #80289.
2277
2278 2006-12-21  Daniel Nauck  <dna@mono-project.de>
2279
2280         * ComboBox.cs,
2281         TextBox.cs: Implemented AutoComplete properties.
2282
2283 2006-12-20  Chris Toshok  <toshok@ximian.com>
2284
2285         * DataGridView*.cs: some corecompare work.
2286
2287 2006-12-20  Jackson Harper  <jackson@ximian.com>
2288
2289         * XplatUIX11.cs: We need to hide the caret when deleting it,
2290         otherwise you get carets left lying around everywhere.
2291         * TextBoxBase.cs: Kill then redraw the caret when scrolling.  This
2292         prevents getting some weird half drawn caret tracers when
2293         scrolling.
2294         * TextControl.cs: Attempt to reduce the number of times we need to
2295         recreate the caret.
2296
2297 2006-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
2298
2299         * MonthCalendar.cs: Fixed previous month button. Removed extra tabs.
2300
2301 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2302
2303         * DateTimePicker.cs:
2304         - Implemented missing 2.0 bits.
2305         - Changed some default values to match MS.
2306         
2307 2006-12-20  Jackson Harper  <jackson@ximian.com>
2308
2309         * TextBoxBase.cs: When changing the font across the document we
2310         can't recalculate after changing each line, since that will cahnge
2311         the line count.
2312         - PreferredHeight is a little different than i thought.
2313         - When backspacing, move the caret before we do the actual char
2314         delete, because when that delete crosses a wrap boundary the
2315         positional information will change.
2316
2317 2006-12-19  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2318
2319         * Control.cs: Added some missing 2.0 bits: 
2320         BackgroundImageLayout, BackgroundImageLayoutChanged, 
2321         OnPaddingChanged, MouseClick, MouseDoubleClick, PaddingChanged and 
2322         add IBindableComponent and IDropTarget implementation.
2323         
2324         * MonthCalendar.cs: 
2325         - Added all missing 2.0 features:
2326         BackgroundImageLayout, RightToLeftLayout, 
2327         OnHandleDestroyed, RightToLeftLayoutChanged, 
2328         BackgroundImageLayoutChanged, MouseClick, MouseDoubleClick,
2329         PaddingChanged.
2330         - Rewrote all the BoldDate code, it was completely broken.
2331         - Fixed all the tests (the tests can now be re-enabled, the
2332         problems were not with the tests, but with the control, it was
2333         mostly broken).
2334         
2335         * DateTimePicker.cs: Changed the location where the 
2336         MonthCalendar is shown.
2337         
2338 2006-12-19  Chris Toshok  <toshok@ximian.com>
2339
2340         * DataGridView.cs: add IDropTarget implementation.
2341
2342         * ToolStripPanel.cs: add IDropTarget implementation.
2343
2344 2006-12-19  Jackson Harper  <jackson@ximian.com>
2345
2346         * TextControl.cs: soft now means something different than what it
2347         used to mean, we want to move the caret regardless of whether or
2348         not this break was soft (would we really have wanted the caret
2349         to not move with the break in the old context?)
2350         * TreeView.cs: Make sure we factor in the vert scrollbar when
2351         calculating the horizontal scrollbar's maximum.
2352
2353 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2354
2355         * SendKeys.cs: Fix Send() behaviour, clear keys after sending,
2356         check for keywords in alternate casing, close bug #80049.
2357
2358 2006-12-19  Chris Toshok  <toshok@ximian.com>
2359
2360         * ToolStripItem.cs: add the implementation of the 4 IDropTarget
2361         methods (which all do nothing).
2362
2363         * IDropTarget.cs: add the 4 missing methods.
2364
2365 2006-12-19  Chris Toshok  <toshok@ximian.com>
2366
2367         * TableLayoutRowStyleCollection.cs: corcompare work.
2368         
2369         * TableLayoutSettings.cs: same.
2370
2371         * TableLayoutStyle.cs: same.
2372
2373         * TableLayoutColumnStyleCollection.cs: same.
2374
2375 2006-12-19  Jonathan Pobst  <monkey@jpobst.com>
2376
2377         * ColumnStyle.cs, RowStyle.cs, TableLayoutStyle.cs: Plumbing for
2378         TableLayoutPanel I've had in my local tree for way too long.
2379
2380 2006-12-19  Miguel de Icaza  <miguel@novell.com>
2381
2382         * TableLayoutSettings.cs: Finish the public API (still needs all
2383         the logic to update on changes). 
2384
2385         * TableLayoutPanelCellPosition.cs: new file.
2386         
2387         * TableLayoutRowStyleCollection.cs,
2388         TableLayoutColumnStyleCollection, TableLayoutStyle.cs,
2389         TableLayoutSettings.cs: Track the final 2.0 table api.
2390
2391 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2392
2393         * ColumnHeader.cs: Add Tag, Name, ImageKey, ImageIndex,
2394         and Image List 2.0 members for ColummnHeader.
2395         * ListView.cs: Add key-related 2.0 methods for
2396         ColumnHeaderCollection.
2397
2398 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2399
2400         * ListViewItem.cs: Changed AddRange overloads to match MS: throw
2401         ArgumentNullException if items argument is null. Ignore null item in
2402         arrays. Removed extra tabs.
2403
2404 2006-12-19  Gert Driesen  <drieseng@users.sourceforge.net>
2405
2406         * MonthCalendar.cs: Fixed InvalidCastException.
2407
2408 2006-12-19  Jackson Harper  <jackson@ximian.com>
2409
2410         * TextControl.cs: Don't increment the position here.
2411         - When calculating char positions only add in the line break size
2412         for hard line breaks.
2413
2414 2006-12-19  Andreia Gaita  <avidigal@novell.org>
2415
2416         * SendKeys.cs: Changed some things to match ms.net behaviour
2417         when parsing shifted capital letters.
2418         
2419         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32, XplatUIOSX: 
2420         Add window handle as parameter to SendInput. X11 needs the 
2421         window handle, and the handle being passed      to it in the keys 
2422         queue is the active control handle (which windows needs), not 
2423         the window handle.
2424         
2425         XplatUIX11.cs, XplaUIX11-new.cs, X11Display: Implement SendInput 
2426         to support SendKeys on X.       
2427         
2428         * X11Keyboard: Implement helper method to lookup a linux keycode
2429         given the virtual keycode. Added table of keycode-2-virtualkey
2430         values to support this.
2431
2432 2006-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2433
2434         * ListView.cs: Add support for SelectedIndexCollection
2435         and SelectedItemCollection 2.0 methods. Implement support
2436         for ImageKey too.
2437         * ListViewItem.cs: Add support for ListViewSubItemCollection
2438         2.0 methods. Also, fix an incorrect behavior of AddRange method
2439         (it shouldn't call Clear).
2440         * ThemeWin32Classic.cs: Support for ListView.ImageKey 2.0 property.
2441
2442 2006-12-19  Jackson Harper  <jackson@ximian.com>
2443
2444         * RichTextBox.cs: 
2445         * TextBoxBase.cs: New args for FormatText
2446         * TextControl.cs: Rewrote the main drawing method, this version
2447         feels a little easier to understand and debug to me.  Hopefully it
2448         does to others also
2449         - Fix FormatText to OR in the new formating values.  Added
2450         FormatSpecified param, basically this works in the same way as
2451         BoundsSpecified in Control.
2452         - Set the caret properties when the caret is positioned.
2453         - When wrapping text make sure that we calculate the width of the
2454         last character
2455         - when calculating alignments we might have wrapped down to the
2456         next line, so don't search for an individual tag, search for the
2457         end of the line
2458         - We need to invalidate the selection area when we replace the
2459         selection.
2460         
2461 2006-12-19  Daniel Nauck  <dna@mono-project.de>
2462
2463         * Application.cs: add Restart () 2.0 support
2464
2465 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2466
2467         * MenuItem.cs: Invalidate menu item rectangle after change Enable
2468         property. Fixes #80268.
2469         
2470 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2471
2472         * MenuAPI.cs: Dont trigger select event when closes top menu
2473         item. Fixes #80270.
2474
2475 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2476
2477         * MenuAPI.cs: When you click on menuitem only trigger onselect
2478         event for top menu itens. Fixes #80271.
2479         
2480 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2481
2482         * MdiWindowManager.cs: Make IconicBounds depend on
2483         the bottom of MdiClient, not the top (fixes #80267)
2484         
2485 2006-12-18  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2486
2487         * MdiClient.cs: Added missing 2.0 attribute
2488
2489 2006-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2490
2491         * ListViewItem.cs: Add Name and Tag 2.0 properties, as well
2492         as IndexOfKey, ContainsKey, RemoveByKey and indexer 2.0.
2493
2494 2006-12-18  Everaldo Canuto  <everaldo@simios.org>
2495
2496         * MenuAPI.cs: Fix click when menuitem is not popup,
2497         this regression was caused by last commit (#80272).
2498
2499 2006-12-17  Everaldo Canuto  <everaldo@simios.org>
2500
2501         * MenuAPI.cs: When a non-toplevel menuitem is clicked dont
2502         fire click event or close menu. Fixes #80272.
2503
2504 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2505
2506         * ListViewHitTestInfo.cs: add
2507
2508 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2509
2510         * ButtonBase.cs: Added FlatButtonAppearance 2.0 support.
2511         * FlatButtonAppearance.cs: add
2512         * DockingAttribute.cs: add
2513
2514 2006-12-17  Chris Toshok  <toshok@ximian.com>
2515
2516         * DataGrid.cs: hook up MetaDataChanged event on the list manager,
2517         and rebind our columns when it does - this way, if you make
2518         changes to the DataTable (or set the Table attribute on a DataView
2519         after setting it as the DataGrid's DataSource, the changes are
2520         made visible.)  Fixes bug #80107.
2521
2522 2006-12-17  Daniel Nauck  <dna@mono-project.de>
2523
2524         * ListViewGroup.cs: add internal Location property for layouting.
2525         * Theme.cs: add abstract ListViewGroupHeight function.
2526         * ThemeWin32Classic.cs: implement ListViewGroupHeight function.
2527
2528 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2529
2530         * TabControl.cs: Fixed checks for NET_2_0-specific exceptions.
2531         Added reset of selected index to 0 when adding first tab page.
2532         Fixes #80264
2533         
2534         * NumericUpDown.cs: Fix NET_2_0 check
2535
2536 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2537
2538         * ListViewGroup.cs: fixed DefaultValueAttribute value
2539
2540 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2541
2542         * AutoCompleteStringCollection.cs: add new AutoCompleteStringCollection 2.0 class
2543
2544 2006-12-15  Miguel de Icaza  <miguel@novell.com>
2545
2546         * Button.cs, ComboBox.cs, ScrollBar.cs, UserControl.cs,
2547         TextBoxBase.cs, ListView.cs, ContainerControl.cs,
2548         ScrollableControl.cs: Add a handful of methods that are
2549         overwritten in 2.0 
2550
2551 2006-12-15  Chris Toshok  <toshok@ximian.com>
2552
2553         * XplatUIWin32.cs: initial implementation of the Reversible
2554         drawing functions.  there are some problems.  DrawReversibleFrame
2555         doesn't seem to work at all for Dashed FrameStyle, and in the
2556         Thick case there are drawing errors at the corners (we probably
2557         need to bind Rectangle instead of doing moveto/lineto's.)
2558
2559 2006-12-16  Andreia Gaita  <avidigal@novell.com>
2560         
2561         * SendKeys.cs: Implemented. SendKeys uses a new method in XPlatUI, SendInput, 
2562         to send blocks of key messages. Send accumulates keys to send with Flush, 
2563         while SendWait sends all keys immediately.
2564                 
2565         * XplaUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs, 
2566         XplatUIX11.cs,  XplatUIX11-new.cs:
2567         - Define SendInput and stubs for OSX and X11, implements Win32 with a call
2568         to Win32 SendInput.
2569         - Added INPUT support structures to XplatUIWin32 for Win32SendInput
2570         
2571         Tests:  It seems ms.net is hooking the keyboard to implement this, so doing unit
2572         testing for ms.net on this class is very tricky, as the tests run too fast 
2573         to allow the hook to release, essentially freezing the keyboard and the 
2574         test. So, barring a win32 miracle, they'll be commited in the ms-notworking     
2575         category :p
2576
2577 2006-12-16  Daniel Nauck  <dna@mono-project.de>
2578
2579         * Padding.cs: fixed serialization compability to MS ("_var" field names),
2580                         added missing attributes.
2581  
2582 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2583
2584         * ListViewGroup.cs: Added missing attributes.
2585         * ListViewGroupCollection.cs: Added missing attributes.
2586
2587 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2588
2589         * ListViewItem.cs: fixed ListViewSubItem text property.
2590
2591 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2592         
2593         * Control.cs: Added missing 2.0 attributes
2594         
2595 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2596         
2597         * MdiClient.cs: Added missing 2.0 attribute.
2598         * MonthCalendar.cs: Added some missing 2.0 attributes 
2599         and properties.
2600         
2601 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2602
2603         * ListView.cs: implemented ListViewItemCollection Add 2.0 support.
2604
2605 2006-12-15  Jonathan Pobst  <monkey@jpobst.com>
2606
2607         * MainMenu.cs: Add the new 2.0 constructor to help out people
2608         using the MainMenu in VS2005.
2609
2610 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2611         
2612         * MdiChildContext.cs: Removed it, no longer used.
2613         * MdiClient.cs: Added missing 2.0 attributes.
2614         
2615 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2616         
2617         * InternalWindowManager.cs: Fix a NullRef with previous 
2618         changes for toolwindows.
2619         
2620 2006-12-15  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2621
2622         * Control.cs: 
2623         - Added AfterTopMostControl to allow for certain controls 
2624         to always stay on top when normal controls are brought to 
2625         front.
2626         
2627         * XplatUIWin32.cs: 
2628         - (DrawInversibleRectangle): Get window rectangle from Win32 
2629         in stead of from control, since Win32 doesn't calculate
2630         screen coords correctly from control's Location if it 
2631         have docked siblings.
2632         
2633         * MdiWindowManager.cs:
2634         - Correct the control menu popup location when clicked on
2635         the maximized form icon. (fixes #80223.1)
2636         - Don't show moving rectangle if mouse hasn't moved from
2637         the original clicked point.
2638         - Removed FormGotFocus handler (not used).
2639         - Calculate the control buttons location from the main
2640         window's size and not client size (fixes #79770).
2641         - Form is now closed when the form icon is double-clicked
2642         (fixes #79775). 
2643         - Correct NCCalcSize numbers a little bit (fixes #80223.2)
2644         
2645         * InternalWindowManager.cs:
2646         - Moved some MDI-only methods to MdiWindowManager.
2647         - Removed unused properties and methods.
2648         - Unified method naming for methods handling wm messages.
2649         - Moved all message handling to seperate methods for
2650         each message.
2651         
2652         * ThemeWin32Classic.cs:
2653         - DrawManagedWindowDecorations now draws the title bar 
2654         with a gradient brush.
2655         - Add a CPDrawButtonInternal that allows us to specify
2656         light, normal and dark colors for the buttons (control 
2657         buttons for MDI children were drawn with the same light
2658         color as the background, therefore loosing the 3D effect).
2659         
2660         * SizeGrip.cs:
2661         - Add a CapturedControl property that is used to 
2662         determine the control to resize (defaults to parent). 
2663         Needed for MdiClient, since its SizeGrip's parent is
2664         MdiClient, but the control to resize is the main form.
2665         
2666         * MdiClient.cs:
2667         - Set SizeGrip's CapturedControl to the main form in order
2668         to resize the main form and not the MdiClient.
2669         - Override AfterTopMostControl to leave the scrollbars 
2670         always on top.
2671
2672 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2673
2674         * ListView.cs: fixed ListViewItemCollection AddRange and
2675                         implemented ListViewItemCollection AddRange 2.0 support.
2676
2677 2006-12-15  Daniel Nauck  <dna@mono-project.de>
2678
2679         * ListViewGroup.cs: Add.
2680         * ListViewGroupCollection.cs: Add
2681         * ListView.cs: Add ListViewGroup (Group) and ShowGroups 2.0 support.
2682         * ListViewItem.cs: Add ListViewgroup (Group), ListViewGroups constructors and
2683                                 stub for ImageKey 2.0 support.
2684
2685 2006-12-14  Mike Kestner  <mkestner@novell.com>
2686
2687         * ListView.cs: add text padding to the autocalculation for columns
2688         of width -2.  Fixes #80207.
2689  
2690 2006-12-14  Mike Kestner  <mkestner@novell.com>
2691
2692         * ListView.cs: add some index guarding for partial row navigation 
2693         logic.  Fixes #80250.
2694
2695 2006-12-14  Mike Kestner  <mkestner@novell.com>
2696
2697         * ListView.cs: throw ArgumentExceptions when parented ListViewItems
2698         are added or inserted to the collection.  Fixes #81099.
2699
2700 2006-12-13  Everaldo Canuto  <everaldo@simios.org>
2701
2702         * MenuAPI.cs: Closes menu when right click out side of popup
2703         it fix problem in ContextMenu and MainMenu. Fixes #80252.
2704
2705 2006-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2706
2707         * ListViewItem.cs: Fix dumb error.
2708
2709         * ListView.cs: Add Find and ContainsKey methods in 
2710         ListViewItemCollection, and also return true for IsReadOnly
2711         and IsFixedSize (changes for 2.0). 
2712
2713 2006-12-13  Gert Driesen  <drieseng@users.sourceforge.net>
2714
2715         * Control.cs: Allow Region to be set to null.
2716
2717 2006-12-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2718
2719         * MdiWindowManager.cs: Remove unused (commented out) code.
2720         * Form.cs: When the MdiChild is maximized, the form needs 
2721         WM_NCMOUSELEAVE, so request it.
2722         * InternalWindowManager.cs: 
2723         - Added tooltips to control buttons.
2724         - Removed duplicated control button handling code.
2725         - Removed unused (commented out) code.
2726         
2727 2006-12-12  Everaldo Canuto  <everaldo@simios.org>
2728
2729         * MenuAPI.cs: Set cursor to default in popup menus, a XplatUI.SetCursor 
2730         was used because we must set cursor without trigger ChangeCursor event
2731         and without change Cursor control property. Fixes #79963.
2732
2733 2006-12-12  Andreia Gaita  <avidigal@novell.com>
2734         
2735         * Control.cs: Check if Region setter value is null, and ignore
2736
2737 2006-12-12  Jackson Harper  <jackson@ximian.com>
2738
2739         * TextControl.cs: We were almost always drawing one more line then
2740         needed, since the GetLineByPixel will return the last line found
2741         at that pixel. In most cases though, we were invalidating up to
2742         the junction between two lines.
2743         - Improve debug code.
2744
2745 2006-12-12  Chris Toshok  <toshok@ximian.com>
2746
2747         * XplatUI.cs: add static DrawReversibleFrame, DrawReversibleLine,
2748         and FillReversibleRectangle.
2749
2750         * XplatUIDriver.cs: add abstract DrawReversibleFrame, DrawReversibleLine,
2751         and FillReversibleRectangle.
2752
2753         * XplatUIWin32.cs: add stubs which do nothing for
2754         DrawReversibleFrame, DrawReversibleLine, and
2755         FillReversibleRectangle.
2756
2757         * XplatUIOSX.cs: add stubs which raise NIE for
2758         DrawReversibleFrame, DrawReversibleLine, and
2759         FillReversibleRectangle.
2760
2761         * XplatUIX11.cs: add working implementation for
2762         DrawReversibleFrame, DrawReversibleLine, and
2763         FillReversibleRectangle.
2764         
2765         * ControlPaint.cs: implement DrawReversibleFrame,
2766         DrawReversibleLine, and FillReversibleRectangle, by calling into
2767         the appropriate XplatUI method.
2768
2769 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2770
2771         * Form.cs: Make MdiClient have the focus even if it's
2772         not selectable, since it should receive WM_KEY* and WM_MOUSE 
2773         messages. Fixes #79907.
2774         
2775 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2776
2777         * Hwnd.cs: Save the CreateParams.ExStyle so that it can be
2778         queried after the window is created.
2779         
2780         * XplatUIX11.cs: Added SendParentNotify to implement 
2781         WM_PARENTNOTIFY logic. Fixes #79965.
2782         
2783         * Control.cs: Added MakeParam.
2784         
2785 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2786
2787         * MdiClient.cs: Resume Layout before setting window
2788         states (fixes #80201).
2789
2790 2006-12-11  Rolf Bjarne Kvinge  <RKvinge@novell.com>
2791
2792         * MenuAPI.cs: Deselect a menu item after performing
2793         the click (fixes #80197).
2794
2795 2006-12-11  Jackson Harper  <jackson@ximian.com>
2796
2797         * TextBoxBase.cs: We need to cap this value, since Maximum -
2798         ViewPortHeight can be less than zero.
2799         - Only do selection with the left mouse button.
2800         * TextBox.cs: Don't tell the world that we have a context menu.
2801         * Control.cs: New method so that we can control whether or not the
2802         context menu is visible outside MWF.
2803
2804 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2805
2806         * ToolBarButton.cs: Fix text positon. 
2807
2808 2006-12-11  Miguel de Icaza  <miguel@novell.com>
2809
2810         * ProgressBar.cs (MarqueeAnimationSpeed): Add stub.
2811
2812         * Control.cs (DoubleBuffered): Add implementation.
2813
2814         * Application.cs (OpenForms): Add.
2815
2816 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2817
2818         * Form.cs: Use opacity instead of Opactiy to determine if we need
2819         to set the WS_EX_LAYERED bit.  [Fixes bug #80185]
2820
2821 2006-12-11  Jonathan Pobst  <monkey@jpobst.com>
2822
2823         * Control.cs: Fix NRE if Control.Site was set to null.
2824
2825 2006-12-11  Chris Toshok  <toshok@ximian.com>
2826
2827         * Control.cs: ControlCollection.Remove should return if the arg is
2828         null, and ControlCollection.SetChildIndex should raise a ANE.
2829
2830 2006-12-11  Gert Driesen  <drieseng@users.sourceforge.net>
2831
2832         * Control.cs: Verify value set for Dock property. Code formatting
2833         updates.
2834
2835 2006-12-11  Jackson Harper  <jackson@ximian.com>
2836
2837         * TextControl.cs: Draw the caret and the selection when a flag is
2838         set on the owner.
2839         * TextBoxBase.cs: We want to draw the caret and the selection for
2840         TextBox but not for TextBoxBase.
2841         - If the window is resized and scrolling is no longer needed (the
2842         whole doc is visible) set the scroll position to zero.
2843         - The default SelectWord (the one TextBox uses) should move the
2844         caret to the end of the word.
2845         - SelectAll moves the caret to the end of the selection.
2846         * TextBox.cs: We don't selectall on focus, we just do it when the
2847         control is created.
2848         
2849 2006-12-11  Mike Kestner  <mkestner@novell.com>
2850
2851         * ComboBox.cs: stub in a 2.0 override for ProcessKeyEventArgs.
2852
2853 2006-12-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2854
2855         * ListView.cs: Add Insert, IndexOfKey, RemoveByKey and indexer 
2856         2.0 support.
2857         * ListViewItem.cs: Add Name 2.0 property.
2858
2859 2006-12-11  Andreia Gaita  <avidigal@novell.com>
2860
2861         * TabControl.cs: Set visibility on selected or default tab 
2862         when tabcontrol handle is created, so that it's contents
2863         actually show up (duh). Fixes #80193
2864         Don't redraw the control if there is no handle created, as
2865         the selected index might be completely invalid. Added some tests
2866         to check for this.
2867
2868 2006-12-11  Everaldo Canuto  <everaldo@simios.org>
2869
2870         * ToolBar.cs: Uses maximun width and height of all buttons as 
2871         button rectangle when ButtonSize specified, it looks strange but
2872         is what happens in Win32. Fixes #80189.
2873
2874 2006-12-11  Jackson Harper  <jackson@ximian.com>
2875
2876         * TextControl.cs: Need to track undo levels ourself, since
2877         compound actions will mess them up.
2878
2879 2006-12-10  Andreia Gaita  <avidigal@novell.com>
2880
2881         * TabControl.cs: Raise SelectedIndexChanged for 1.1 if the
2882         SelectedIndex value is changed (even if it's not valid).
2883         Reset SelectedIndex to 0 when the handle is created and if
2884         the current index is invalid.
2885         Fixes SelectdeIndex unit tests and #80128
2886
2887 2006-12-08  Chris Toshok  <toshok@ximian.com>
2888
2889         * DataGrid.cs (set_CurrentCell): because EnsureCellVisibility
2890         calls EndEdit, it needs to be called before we set current_cell to
2891         its new value.  Otherwise, we end up committing the value in the
2892         textbox to the new cell as well.  Fixes bug #80160.
2893
2894 2006-12-08  Chris Toshok  <toshok@ximian.com>
2895
2896         * Form.cs (set_CancelButton): if the button's DialogResult is
2897         None, set it to Cancel.  Fixes bug 80180.
2898
2899 2006-12-08  Jackson Harper  <jackson@ximian.com>
2900
2901         * TextBoxBase.cs: Ugh, ClientSize can be 0,0 sometimes, so we need
2902         to watch ourselves when setting the canvas size and setting the
2903         scrollbar values.
2904
2905 2006-12-08  Chris Toshok  <toshok@ximian.com>
2906
2907         * DataGrid.cs: comment out the two MakeTransparent calls for the
2908         time being so people using trunk (and not 1.2.2) on windows can
2909         actually use the datagrid.  This deals with bug #80151.
2910
2911 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2912
2913         * ThemeWin32Classic.cs: Change ButtonBase_DrawImage to use the
2914         Graphics.DrawImage (image, int, int, int, int) overload instead
2915         of Graphics.DrawImage (image, int, int).  GDI+ can't figure out
2916         the dpi difference and was blurring images it drew.
2917         [Fixes bug #79960]
2918
2919 2006-12-08  Chris Toshok  <toshok@ximian.com>
2920
2921         * ThemeWin32Classic.cs (DataGridPaintRows): handle case where
2922         rowcnt is 0 (such as with an empty datasource), and make sure we
2923         initialize not_usedarea.Y to cells.Y, so we don't draw over the
2924         other areas (caption, parent row, etc, etc).  Fixes bug #80095.
2925
2926 2006-12-08  Chris Toshok  <toshok@ximian.com>
2927
2928         * DataGridColumnStyle.cs (SetDataGrid): don't try to access a null
2929         grid.
2930
2931 2006-12-08  Chris Toshok  <toshok@ximian.com>
2932
2933         [ Fixes bug #80167 ]
2934         
2935         * ThemeWin32Classic.cs: don't draw the image if the button's flat
2936         style is FlatStyle.System.
2937
2938         * ButtonBase, ThemeClearlooks.cs, ThemeGtk.cs, ThemeNice.cs: make
2939         ButtonBase.flat_style private, and switch uses of it to the public
2940         property.
2941         
2942 2006-12-08  Chris Toshok  <toshok@ximian.com>
2943
2944         [ Fixes bug #80121 ]
2945         
2946         * ThemeWin32Classic.cs: center the caption text in the datagrid
2947         when we draw it.
2948
2949         * DataGrid.cs: lessen the amount we add to the caption height from
2950         6 to 2.  6 was making it huge.
2951
2952 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2953
2954         * UpDownBase: Handle MouseWheel call directly instead of capturing
2955         the inner textbox's OnMouseWheel. Fixes #80166
2956
2957 2006-12-08  Jackson Harper  <jackson@ximian.com>
2958
2959         * TextControl.cs: We need to invalidate the textbox when we empty
2960         it (how had this not been discovered before?)
2961
2962 2006-12-08  Jackson Harper  <jackson@ximian.com>
2963
2964         * TextBoxBase.cs: Reworked the mouse down code so I could get it
2965         to behave like MS, we now ignore the eventargs.Click and just
2966         track state ourself, which we were already doing anyways.
2967         - Constrain the double click handler to the double click size.
2968         
2969 2006-12-08  Chris Toshok  <toshok@ximian.com>
2970
2971         * DataGrid.cs: the mousewheel code shouldn't try to scroll in a
2972         direction if that scrollbar isn't shown.  fixes bug #80158.
2973
2974 2006-12-08  Andreia Gaita  <avidigal@novell.com>
2975
2976         * NumericUpDown.cs: Update value on getter. Fixes #79950
2977
2978 2006-12-08  Chris Toshok  <toshok@ximian.com>
2979
2980         * MenuItem.cs: add back in the event cloning code.  I didn't know
2981         how to do it in the face of the EventHandlerList work i'd done
2982         last week.  Fixes bug #80183.
2983
2984 2006-12-08  Jonathan Pobst  <monkey@jpobst.com>
2985
2986         * Control.cs: Add an invalidate to the BackgroundImage setter.
2987         [Fixes 80184]
2988
2989 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
2990
2991         * ToolStrip*: Add some small properties reported by MoMA, fix event
2992         firing and default properties based off of unit tests, and add some
2993         attributes based off of the class status page.
2994
2995 2006-12-07  Jackson Harper  <jackson@ximian.com>
2996
2997         * TextBoxBase.cs: Take HideSelection into account when determining
2998         whether or not to show the selection.
2999         * RichTextBox.cs: After inserting the RTF into the document move
3000         the cursor to the beginning of the document.
3001
3002 2006-12-07  Jonathan Pobst  <monkey@jpobst.com>
3003
3004         * Control.cs: Remove static ArrayList "controls" which maintained
3005         a reference to every control created.
3006         * Application.cs: Create a static FormCollection to maintain a reference
3007         to every form created.  Use it in places that formerly enumerated through
3008         the controls one looking for forms.
3009         * Form.cs: Add and remove self from above FormCollection.
3010
3011 2006-12-07  Alexander Olk  <alex.olk@googlemail.com>
3012
3013         * MimeIcon.cs: gdk_pixbuf_save_to_buffer is part of libgdk-pixbuf,
3014           not libgdk (though it makes me wonder why I didn't have any
3015           problems)
3016
3017 2006-12-07  Chris Toshok  <toshok@ximian.com>
3018
3019         [ you had to know this was coming after that last commit...]
3020         
3021         * XplatUIX11.cs: implement the 3 Offscreen functions in terms of
3022         XPixmaps (CreateOffscreenDrawable maps to XCreatePixmap,
3023         DestroyOffscreenDrawable to FreePixmap, and BlitFromOffscreen to
3024         XCopyArea).
3025
3026 2006-12-07  Chris Toshok  <toshok@ximian.com>
3027
3028         * XplatUI.cs: add 3 calls (CreateOffscreenDrawable,
3029         DestroyOffscreenDrawable, and BlitFromOffscreen) that encompass
3030         all the behavior we need for double buffering.
3031
3032         * XplatUIDriver.cs: implement the 3 double buffer methods using a
3033         client side Bitmap, just like the old Control-based double buffer
3034         code did.  The methods are virtual, so each XplatUI driver
3035         subclass can replace the implementation to use a faster, platform
3036         specific approach.
3037
3038         * Control.cs: make use of the 3 Offscreen XplatUI calls in the
3039         double buffer code, and clean things up a bit in the process.
3040
3041 2006-12-06  Chris Toshok  <toshok@ximian.com>
3042
3043         * Control.cs: reindent WndProc.
3044
3045 2006-12-06  Chris Toshok  <toshok@ximian.com>
3046
3047         [ I wanna be like BenM when I grow up ]
3048         
3049         * Hwnd.cs: create a single static Graphics object on the static
3050         Bitmap we create.  use this for our text measurements.
3051
3052         * Control.cs (DeviceContext): stop using the backbuffer's dc_mem.
3053         This was causing us to allocate a backbuffer for every control,
3054         even when it wasn't flagged as double buffered.  Instead use the
3055         single graphics instance.  This might have implications for
3056         multithreaded applications.  If we run into problems we can switch
3057         to creating 1 Graphics per control, on the static Hwnd bitmap.
3058
3059         this change nets us a 7M savings in private dirty mappings when
3060         running FormsTest.exe.
3061
3062 2006-12-06  Chris Toshok  <toshok@ximian.com>
3063
3064         * ListView.cs: the BackgroundImage override is just to set
3065         attributes.  chain up to base.BackgroundImage.
3066
3067         * RichTextBox.cs: same.
3068
3069         * ToolBar.cs: same, but we need to also redraw the toolbar when it
3070         changes, so instead a handler for BackgroundImageChanged.
3071         
3072         * Control.cs: make background_image private.
3073
3074 2006-12-06  Chris Toshok  <toshok@ximian.com>
3075
3076         * ScrollBar.cs: change the assignment of cursor to Cursor.  not
3077         sure we even need this assignment, but roll with it for now.
3078
3079         * Control.cs: make the cursor field private.
3080
3081 2006-12-06  Chris Toshok  <toshok@ximian.com>
3082
3083         * Form.cs: we don't need to explicitly set ImeMode to
3084         ImeMode.NoControl - that's a natural fallout of Control.ImeMode's
3085         behavior in the face of ImeMode.Inherit.
3086
3087         * ButtonBase.cs: change DefaultImeMode to ImeMode.Disable, and
3088         change the ctor's assignment to use ImeMode instead of ime_mode.
3089
3090         * Control.cs (get_ImeMode): don't assume DefaultImeMode ==
3091         ImeModeInherit.  Only check for the parent's imemode (and return
3092         NoControl if there is no parent) if ime_Mode == ImeMode.Inherit.
3093         This fixes the button unit test, which sets both ImeMode and
3094         DefaultImeMode to ImeMode.Disable.
3095
3096         also make the ime_mode field private.
3097
3098 2006-12-06  Chris Toshok  <toshok@ximian.com>
3099
3100         * Control.cs: make control_style private.
3101
3102         * TextBoxBase.cs: fix the HandleClick override.  it was explicitly
3103         setting the styles to true, then setting them to false instead of
3104         reverting to their previous values.
3105
3106         also, call SetStyle on the scrollbars instead of using
3107         control_style directly.
3108
3109 2006-12-06  Jonathan Pobst  <monkey@jpobst.com>
3110
3111         * FormCollection.cs: Implement. [2.0]
3112
3113 2006-12-06  Chris Toshok  <toshok@ximian.com>
3114
3115         * Control.cs: make tab_stop private.
3116
3117         * Label.cs: set TabStop, not tab_stop.  reformat some event
3118         add/remove methods to make them more compact.
3119
3120 2006-12-06  Chris Toshok  <toshok@ximian.com>
3121
3122         * RadioButton.cs: fix TabStop handling.
3123
3124 2006-12-06  Chris Toshok  <toshok@ximian.com>
3125
3126         * TextBox.cs: remove the explicit assignments to has_focus.
3127         Control does that.
3128
3129         * ButtonBase.cs: remove the assignment to has_focus.  Control will
3130         manage that.
3131         
3132 2006-12-06  Chris Toshok  <toshok@ximian.com>
3133
3134         * ButtonBase.cs: remove all uses of is_enabled from this code.
3135         it's always true when any of the code containing the checks is
3136         executed.
3137
3138 2006-12-06  Chris Toshok  <toshok@ximian.com>
3139
3140         * ImageList.cs: reinstate the ShouldSerialize*/Reset* methods,
3141         with different semantics (some are present in both 1.1 and 2.0
3142         profiles) so that we match MS's behavior in our unit tests.
3143
3144 2006-12-06  Jackson Harper  <jackson@ximian.com>
3145
3146         * TextControl.cs: Make this operation undoable.
3147         * TextBoxBase.cs: Factor the border width into the preferred
3148         height.
3149         - implement Modified as per the spec.
3150
3151 2006-12-06  Chris Toshok  <toshok@ximian.com>
3152
3153         * Timer.cs, Control.cs, Menu.cs: make control_tag private.
3154
3155 2006-12-06  Chris Toshok  <toshok@ximian.com>
3156
3157         * Control.cs: make right_to_left and context_menu fields private.
3158
3159 2006-12-06  Chris Toshok  <toshok@ximian.com>
3160
3161         * AccessibleObject.cs, Control.cs, XplatUIX11GTK.cs,
3162         XplatUIX11.cs, Form.cs, RadioButton.cs, ScrollableControl.cs: make
3163         Control.child_controls private.  switch all uses over to
3164         Control.Controls.
3165
3166 2006-12-06  Chris Toshok  <toshok@ximian.com>
3167
3168         * System.Windows.Forms/GroupBox.cs,
3169         System.Windows.Forms/AccessibleObject.cs,
3170         System.Windows.Forms/ErrorProvider.cs,
3171         System.Windows.Forms/Control.cs,
3172         System.Windows.Forms/UpDownBase.cs,
3173         System.Windows.Forms/ScrollBar.cs,
3174         System.Windows.Forms/DateTimePicker.cs,
3175         System.Windows.Forms/Form.cs, System.Windows.Forms/Label.cs,
3176         System.Windows.Forms/ToolTip.cs,
3177         System.Windows.Forms/RadioButton.cs,
3178         System.Windows.Forms/LinkLabel.cs,
3179         System.Windows.Forms/Splitter.cs,
3180         System.Windows.Forms/TextBoxBase.cs,
3181         System.Windows.Forms/ToolStripTextBox.cs,
3182         System.Windows.Forms/ContainerControl.cs,
3183         System.Windows.Forms/ThemeWin32Classic.cs,
3184         System.Windows.Forms/SizeGrip.cs,
3185         System.Windows.Forms/ToolStripDropDown.cs,
3186         System.Windows.Forms/ScrollableControl.cs: Make Control.parent
3187         private.  switch all uses over to Control.Parent.
3188
3189 2006-12-06  Chris Toshok  <toshok@ximian.com>
3190
3191         * RichTextBox.cs: don't assign to has_focus in GotFocus/LostFocus.
3192         Control does this before calling emitting these events.
3193
3194         * TabControl.cs: same.
3195
3196         * ThemeWin32Classic.cs: use Control.ClientRectangle instead of
3197         Control.client_rect.
3198
3199         * ButtonBase.cs: use the ClientSize property instead of the
3200         client_size field.
3201
3202         * ScrollableControl.cs: same.
3203
3204         * Control.cs: another pass at making properties private.  also,
3205         move the initialization of tab_stop to the ctor.
3206
3207 2006-12-05  Andreia Gaita <avidigal@novell.com>
3208
3209         * TabControl.cs: Let the selected index be set freely if the 
3210         control handle is not yet created.
3211
3212 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
3213
3214         * Control.cs: Revert dist_top, dist_right, and dist_bottom to 
3215         internal until I can rewrite DefaultLayout.
3216         * ToolStrip.cs: Fix build error and some general cleaning.
3217         * ToolStripControlHost.cs, SplitterPanel.cs, DataGridView.cs:
3218         Fix build errors caused by making some of Control's fields private.
3219
3220 2006-12-05  Jackson Harper  <jackson@ximian.com>
3221
3222         * TextControl.cs: Redo Insert a little so that it use IndexOf
3223         instead of Split, this prevents it from messing up on things like
3224         \n\n\n. Also more effecient since the split array doesn't need to
3225         be created.
3226         * TextBoxBase.cs: AppendText doesnt handle multiline and non
3227         multiline text differently, this is the first of many fixes that
3228         will make multiline/non-multiline the same thing as far as the
3229         TextBoxBase is concerned.
3230         - Don't split the text and insert lines, this can lose some line
3231         endings (like is the last line a soft or hard break). Instead use
3232         the new Insert.
3233         - Fix an off by one when combining all the lines in the Text
3234         getter.
3235         - Remove separate multiline handling from the Text getter/setter.
3236
3237 2006-12-05  Chris Toshok  <toshok@ximian.com>
3238
3239         * ButtonBase.cs: a few changes:
3240
3241         - don't reinitialize internal Control fields in the ctor when they
3242         have the same values as Control sets them.
3243
3244         - don't set has_focus in OnGotFocus/OnLostFocus.  Control does
3245         this before calling those methods.
3246
3247         - we don't need to call Refresh for anything.  use Invalidate
3248         instead.
3249
3250         - OnEnabledChanged doesn't need to redraw at all - Control.cs
3251         calls Refresh in its OnEnabledChanged.
3252         
3253         - several of the events we were registered for in the ctor to
3254         redraw ourselves already include calls to Invalidate in the
3255         property setters that raise the events.  remove the extra
3256         invalidation.
3257
3258         - reformat a switch statement that was 83274658 columns wide.
3259         
3260 2006-12-05  Mike Kestner  <mkestner@novell.com>
3261
3262         * ComboBox.cs: fix a unit test regression from a TextBox
3263         SelectionLength return of -1 when there's no selection.  
3264
3265 2006-12-05  Chris Toshok  <toshok@ximian.com>
3266
3267         * Control.cs, Button.cs, ThemeGtk.cs, Form.cs, ListView.cs,
3268         ThemeWin32Classic.cs, SizeGrip.cs, ToolBar.cs: first pass at
3269         cleaning up some of the internal Control fields being used by
3270         subclasses.
3271
3272 2006-12-05  Mike Kestner  <mkestner@novell.com>
3273
3274         * ComboBox.cs: fix some Simple mode regressions.  Set Visible on the
3275         listbox after AddImplicit calls since it defaults to hidden. Add a 
3276         hack to preserve requested heights across DropDownStyle changes.
3277
3278 2006-12-05  Jonathan Pobst  <monkey@jpobst.com>
3279
3280         * PropertyGrid.cs: Hide FindFirstItem method from public API.
3281
3282 2006-12-05  Chris Toshok  <toshok@ximian.com>
3283
3284         * DataGridView.cs: fix compiler warnings.
3285
3286         * PrintControllerWithStatusDialog.cs: same.
3287
3288         * ToolBar.cs: same.
3289
3290         * FolderBrowserDialog.cs: same.
3291
3292         * Splitter.cs: same.
3293
3294         * DataGridViewComboBoxCell.cs: same.
3295
3296         * XplatUIWin32.cs: same.
3297
3298         * PictureBox.cs: same.
3299
3300         * Win32DnD.cs: same.
3301
3302         * PageSetupDialog.cs: same.
3303
3304         * FileDialog.cs: same.
3305
3306         * PrintDialog.cs: same.
3307
3308         * DataGridTextBoxColumn.cs: same.
3309
3310         * DrawTreeNodeEventArgs.cs: same (and fix corcompare)
3311
3312 2006-12-05  Chris Toshok  <toshok@ximian.com>
3313
3314         * TextBox.cs, CheckedListBox.cs, MonthCalendar.cs, Menu.cs,
3315         MainMenu.cs, ListView.cs, LabelEditTextBox.cs, ToolBar.cs: more
3316         System.ComponentModel.EventHandlerList work.
3317
3318 2006-12-05  Jonathan Chambers  <joncham@gmail.com>
3319
3320         * DrawTreeNodeEventArgs.cs: Added.
3321
3322 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3323         
3324         * InternalWindowManager.cs: Remove an unused field.
3325         
3326 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3327
3328         * InternalWindowManager.cs:
3329         - Save the point where the title bar is clicked.
3330         
3331         * MdiWindowManager.cs:
3332         - Only allow moving of the window as long as the 
3333         clicked point on the title bar does not get out of
3334         MdiClient's rectangle. Fixes #79982.
3335         
3336         * MdiClient.cs:
3337         - Added Horizontal/VerticalScrollbarVisible.
3338         - Simplified the scrollbar sizing algorithm.
3339         - Cache the difference in scrolled value in
3340         H/VBarValueChanged and move the calculation out
3341         of the for loop.
3342
3343 2006-12-05  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3344
3345         * Control.cs: Make the Console.WriteLine in WndProc 
3346         write more info.
3347
3348 2006-12-05  Chris Toshok  <toshok@ximian.com>
3349
3350         * ToolStripManager.cs, ToolStripButton.cs,
3351         ToolStripContentPanel.cs, ToolStripComboBox.cs, ToolStrip.cs,
3352         ToolStripMenuItem.cs, ToolStripItem.cs, ToolStripControlHost.cs,
3353         ToolStripSplitButton.cs, ToolStripSeparator.cs,
3354         ToolStripRenderer.cs, ToolStripDropDownItem.cs,
3355         ToolStripProgressBar.cs, ToolStripContainer.cs,
3356         ToolStripTextBox.cs, ToolStripPanel.cs, ToolStripDropDown.cs: move
3357         to using System.ComponentModel.EventHandlerList.
3358
3359 2006-12-04  Chris Toshok  <toshok@ximian.com>
3360
3361         * LinkLabel.cs: fix up compiler warnings.
3362
3363         * TableLayoutSettings.cs: same.
3364
3365         * TreeView.cs: same.
3366
3367         * ToolBar.cs: same.
3368
3369         * TabControl.cs: same.
3370
3371         * RichTextBox.cs: same.
3372
3373         * ListViewItem.cs: same.
3374
3375         * PropertyGrid.cs: same.
3376
3377         * DataGridViewRowPostPaintEventArgs.cs: corcompare fix.
3378
3379         * ToolTip.cs same.
3380
3381         * TextRenderer.cs: fix up compiler warnings.
3382
3383         * Label.cs: same.
3384
3385         * Form.cs: corcompare fixes.
3386
3387         * PictureBox.cs: fix up compiler warnings.
3388
3389         * ImageListStreamer.cs: same.
3390
3391         * TrackBar.cs: corcompare fix.
3392
3393         * Control.cs: fix up compiler warnings.
3394
3395         * SplitterPanel.cs: same.
3396
3397         * NumericTextBox.cs: same.
3398
3399         * ImageList.cs: same.
3400
3401         * StatusStrip.cs: same.
3402
3403         * ProgressBar.cs: corcompare fix.
3404
3405         * ToolStripButton.cs: fix up compiler warnings.
3406
3407         * ToolStripStatusLabel.cs: same.
3408
3409         * ToolStripSplitButton.cs: same.
3410
3411         * ToolStripSeparator.cs: same.
3412
3413         * ToolStripProgressBar.cs: same.
3414
3415         * ToolStripDropDownMenu.cs: same
3416
3417         * ToolStripDropDown.cs: same.
3418
3419         * ToolStripDropDownButton.cs: same.
3420
3421         * ToolStrip.cs: same.
3422
3423         * ToolStripControlHost.cs: same.
3424
3425         * ToolStripContentPanel.cs: same.
3426
3427         * ToolStripDropDown.cs: same.
3428
3429         * ToolStripContainer.cs: same.
3430
3431         * ToolStripPanel.cs: same, and add "new" where we need it to work
3432         with the new ArrangedElementCollection.
3433
3434         * ToolStripItemCollection.cs: add "new" where we need it to work
3435         with the new ArrangedElementCollection.
3436
3437 2006-12-04  Andreia Gaita <avidigal@novell.com>
3438
3439         * TabControl.cs: Fix default tab selection to after TabControl
3440         gets focus and not before. Fixes #80128
3441
3442 2006-12-04  Chris Toshok  <toshok@ximian.com>
3443
3444         * DataGridTableStyle.cs: remove the gross calling of
3445         datagrid.Refresh from here.  It's a broken idea and it doesn't
3446         work anyway.
3447
3448         * DataGrid.cs: instead, just register/unregister from the
3449         DataGridTableStyle events in CurrentTableStyle.  we play it
3450         conservatively and EndEdit + CalcAreasAndInvalidate on any event,
3451         even though some would most likely not require it.  Fixes bug
3452         #80115 (and one portion of #80117 as a side effect).
3453
3454 2006-12-04  Chris Toshok  <toshok@ximian.com>
3455
3456         * DataGrid.cs (set_CaptionVisible): EndEdit before doing the work
3457         so the textbox (if any) goes away.  Fixes bug #80117.
3458
3459 2006-12-04  Chris Toshok  <toshok@ximian.com>
3460
3461         * DataGridColumnStyle.cs: set the column's readonly property
3462         initially based on the property descriptor's IsReadOnly.  Fixes
3463         bug #80044.
3464
3465 2006-12-04  Chris Toshok  <toshok@ximian.com>
3466
3467         * ComboBox.cs: wrap the dropdown style changing work in
3468         SuspendLayout/ResumeLayout.  Fixes bug #79968.
3469
3470 2006-12-04  Jackson Harper  <jackson@ximian.com>
3471
3472         * TextBoxBase.cs: Fix off by one, since these are one-based.
3473         * TextBox.cs: Select all the text when we get focus.  The TextBox
3474         does this but the RTB does not.
3475
3476 2006-12-04  Chris Toshok  <toshok@ximian.com>
3477
3478         * DataGridTextBoxColumn.cs: remove some spew.
3479
3480         * DataGridColumnStyle.cs (SetColumnValueAtRow): this seems right
3481         but some part of me is saying "it shouldn't be here.."  At any
3482         rate, it fixes bug #80046.  Call IEditableObject.EndEdit after
3483         setting the value.
3484
3485 2006-12-04  Chris Toshok  <toshok@ximian.com>
3486
3487         * DataGridColumnStyle.cs (SetDataGrid): call CheckValidDataSource
3488         to reassign the propertydescriptor.
3489
3490 2006-12-04  Jackson Harper  <jackson@ximian.com>
3491
3492         * TextBoxBase.cs:
3493         * TextControl.cs: Remove some unused variables.  Maybe this will
3494         patch things up between mike and I.
3495         - don't split lines less then one char wide, if the viewport is
3496         that small text won't be visible anyways.
3497         
3498 2006-12-04  Jackson Harper  <jackson@ximian.com>
3499
3500         * TextBoxBase.cs: Default selection length is -1, need to do some
3501         more testing on windows to see when this is used for the property.
3502         - Redid the Lines [] property to that we properly remove soft line
3503         breaks
3504         - added support for preserving carriage returns
3505         -  CanUndo is not a variable like 'is undo enabled' it just returns
3506         true if there is undo operations available.
3507         - AppendText doesn't need to grab the last tag itself anymore,
3508         this happens automatically when we move the cursor.
3509         * TextControl.cs: Add CompoundActions to the undo class. This
3510         allows combining the other operations into one big option.  ie a
3511         paste will combine { delete old, insert new, move cursor }
3512         - Add InsertString undo operation
3513         - New method for deleting multiline text
3514         - Add carriage returns to lines. So we can preserve carriage
3515         returns when text is 'roundtripped'
3516
3517 2006-12-04  Chris Toshok  <toshok@ximian.com>
3518
3519         * DataGrid.cs (CalcCellsArea): cells_area.Width/Height are at a
3520         minimum 0.  Fixes the scrollbar exception in bug #80136.
3521
3522 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3523
3524         * MdiClient.cs: 
3525         * MdiWindowManager: Removed unused fields and methods.
3526         
3527 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3528         
3529         * StatusBar.cs: Update all panels when a AutoSize=Contents
3530         panel needs updating.
3531         
3532         * StatusBarPanel.cs: Remove twidth and only use initialize.
3533         Fixes #80031.
3534                 
3535 2006-12-04  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3536
3537         * Form.cs: When a form's MdiParent is set add it directly
3538         on top of the z-order in stead of relying on MdiClient's
3539         ActivateChild to do it. Fixes #80135.
3540         
3541         * MdiClient.cs: 
3542         - Remove original_order, mdi_child_list is already doing
3543         the same thing.
3544         - Create mdi_child_list on construction in
3545         stead of first use (avoids a few null checks).
3546
3547         * MenuItem.cs: Use an already existing list of mdi children
3548         to get the correct order of children and remove the other
3549         redundant list.
3550
3551 2006-12-04  Chris Toshok  <toshok@ximian.com>
3552
3553         * PropertyGridView.cs: cached_splitter_location is only used in
3554         !DOUBLEBUFFER code.
3555
3556         * PropertyGrid.cs: implement the ComComponentNameChanged event
3557         using Events, hoping that would fix the warning.  Looks like a
3558         compiler bug instead (#80144).
3559
3560         * PropertyManager.cs: remove unused method.
3561
3562 2006-11-04  Everaldo Canuto  <everaldo@simios.org>
3563
3564         * ThemeWin32Classic.cs: Dont draw arrow when menuitem on menubar, 
3565         include parentesis to fix expression evaluation. Fixes #79634.
3566
3567 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
3568         
3569         * MenuAPI.cs:
3570         - Changes to fix behavior in Menu control, some reported in #80097
3571         and other detected during behavior refactory like a select event
3572         problems.
3573         - Remove unneded "if's" conditions.
3574         - Created an internal to flag when popup is active in control, we need 
3575         it because in .NET you can have menu active but without popup active
3576         when you active menu using popup without visible items.
3577         - Mimic win32 behavior for Select and Popup events.  
3578         - Dont open popup menu when you dont have visible subitems.
3579         - Do nothing when click on disabled menu item.
3580         - Some small changes to follow the coding style guidelines.
3581         - Unselect menu only when another control gives focus. Fixes #80097.
3582         - Remove unused code.
3583         
3584         * MenuItem.cs: internal VisibleItems method to check if menu
3585         theres visible subitems, it will be usefull to fix some 
3586         behavior in Menu control.
3587         
3588 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3589         
3590         * Timer.cs: Tag property for 2.0 profile.
3591         
3592 2006-12-01  Chris Toshok  <toshok@ximian.com>
3593
3594         [ after removing all warning suppressions, this cleans up over 100 warnings. ]
3595         
3596         * Win32DnD.cs: comment out some unused fields.
3597
3598         * XplatUIWin32.cs: comment out some unused pinvokes, and remove
3599         some unused properties/methods.
3600
3601         * XplatUIX11.cs: fix MousePosition so we override the base class's
3602         property instead of conflicting with it.
3603
3604         * PictureBox.cs: comment out some unused fields
3605
3606         * OSXStructs.cs: make some struct fields public.
3607
3608         * XplatUIOSX.cs: comment out some unused pinvokes, and fix
3609         MousePosition so we override the base class's property instead of
3610         conflicting with it.
3611
3612         * X11Dnd.cs: comment out some unused fields
3613
3614         * X11DesktopColors.cs: fix some struct field visibility to quiet
3615         the compiler.
3616
3617         * X11Dnd.cs: remove some debug code.
3618
3619         * ThemeClearlooks.cs: comment out unused field.
3620
3621         * ThemeNice.cs: mark some methods as overriding ThemeWin32Classic as needed.
3622
3623         * ThemeGtk.cs: comment out some unused pinvokes.
3624
3625         * Timer.cs: remove some unused fields.
3626
3627         * ThemeClearlooks.cs: comment out unused field.
3628
3629         * UpDownBase.cs: comment out unused field.
3630
3631         * DataObject.cs: comment out unused field.
3632
3633         * DataGridBoolColumn.cs: reomve unused field.
3634
3635         * DataGrid.cs: remove unused field.
3636
3637         * Cursor.cs: remove old ToBitmap code.
3638
3639         * ControlPaint.cs: remove unused method.
3640
3641         * ScrollBar.cs: remove unused fields.
3642
3643         * ComboBox.cs: remove unused field, and chain up to
3644         AccessibleObject ctor.
3645
3646         * ListBox.cs: remove unused field.
3647
3648         * ButtonBase.cs: wrap a couple fields in NET_2_0.
3649
3650         * GridEntry.cs: remove unused fields.
3651
3652         * Binding.cs: remove unused fields.
3653
3654         * AxHost.cs: remove unused method.
3655
3656         * ContainerControl.cs: remove unused field.
3657
3658         * ScrollableControl.cs: remove unused fields.
3659
3660 2006-12-01  Chris Toshok  <toshok@ximian.com>
3661
3662         * XplatUI.cs, XplatUIWin32.cs, XplatUIGTK.cs: nuke
3663         the Where/WhereString stuff.  it's easy enough to CWL
3664         Environment.StackTrace.
3665
3666         * XplatUIX11.cs: same, but also fix up a lot of mcs warnings about
3667         unused private fields.
3668
3669 2006-12-01  Jackson Harper  <jackson@ximian.com>
3670
3671         * TextControl.cs: Do not update the view while inserting multiline
3672         text. If we update the view we might wrap lines, before entering
3673         the new lines, which causes the new line insertion calculations to
3674         be totally fubared.
3675         - Remove an old TODO
3676         - Make debug output a little nicer
3677         
3678 2006-12-01  Chris Toshok  <toshok@ximian.com>
3679
3680         * ToolBar.cs: revert the ImeMode fix here and add an XXX comment.
3681
3682 2006-12-01  Chris Toshok  <toshok@ximian.com>
3683
3684         [ fix the majority of the CS0108 warnings we've been suppressing ]
3685         
3686         * TreeView.cs: mark BackgroundImageChanged as 'new'.
3687
3688         * ToolBar.cs: ImeMode just passes stuff to Control.  Rename Layout
3689         to "LayoutToolBar" to quiet mcs.
3690         
3691         * TabControl.cs: mark our ControlCollection class as 'new'.
3692
3693         * TextBoxBase.cs: mark some events as 'new'.
3694
3695         * Splitter.cs: TabStop is 'new'.
3696
3697         * ControlBindingsCollection.cs: mark a few methods as new since
3698         they change the visibility from protected to public.
3699
3700         * RadioButton.cs: DoubleClick -> base class, and remove unused
3701         HaveDoubleClick.
3702
3703         * MonthCalendar.cs: ImeMode property -> base class, and mark many
3704         events as new.
3705
3706         * NumericUpDown.cs: TextChanged -> base class.
3707
3708         * CheckedListBox.cs: mark our ObjectCollection class as new to
3709         quiet mcs.
3710
3711         * FolderBrowserDialog.cs: make HelpRequest event new and have it
3712         muck with the base class.
3713
3714         * StatusBar.cs: fix some mcs warnings about Update being the same
3715         name as a base class method.
3716
3717         * RichTextBox.cs: mark some events as new, and make them do things
3718         to the base class impl.
3719
3720         * UserControl.cs: mark TextChanged as new, and have it manipulate
3721         base.TextChanged.
3722
3723         * UpDownBase.cs: mark some things new.
3724
3725         * CheckBox.cs: mark DoubleClick "new", and add some text about
3726         what we need to look at.
3727
3728         * Panel.cs: make the events "new", and manipulate the base
3729         version.  these are just here for attributes.
3730
3731         * AccessibleObject.cs: make owner private.
3732
3733         * Control.cs: deal with AccessibleObject.owner being private.
3734         cache our own copy if we need it.
3735
3736         * Button.cs: add "new" to the DoubleClickEvent.
3737
3738         * ListBox.cs: no need to track our own has_focus here.  let
3739         Control.has_focus do it for us.  Also some other work to clear up
3740         warnings about not overriding base class methods of the same name.
3741         
3742         * ComboBox.cs: clear up some warnings about not override base
3743         class methods of the same name.
3744
3745 2006-12-01  Chris Toshok  <toshok@ximian.com>
3746
3747         * Form.cs: flag a few things as "new" to quiet some of the mcs
3748         warnings.
3749
3750         * AxHost.cs: same.
3751
3752         * PrintPreviewDialog.cs: same.
3753
3754         * DataGridView.cs: fix a ton of corcompare warnings.  not all, but
3755         now DGV isn't so horrible on the class status page.  also, move
3756         all events to using System.ComponentModel.EventHandlerList.  my
3757         wrists hurt.
3758
3759 2006-12-01  Rolf Bjarne Kvinge  <RKvinge@novell.com>
3760
3761         * MdiWindowManager.cs:
3762         - Set form to active mdi child if shown,
3763         and update the active mdi child to the next 
3764         remaining child in the z-order if the form is hidden.
3765
3766         * Form.cs: 
3767         - Track if the form has been visible and if its 
3768         visibility is beeing changed, so that the MdiClient
3769         can properly decide the ActiveMdiChild. The MdiClient 
3770         cannot track this since the form can change visibility 
3771         before MdiClient is created.
3772
3773         * MdiClient.cs:
3774         - Don't activate anything of the parent form is changing
3775         its visibility.
3776         - Rework ActiveMdiChild to only return visible mdi 
3777         children and take into account several other corner 
3778         cases.
3779
3780 2006-12-01  Chris Toshok  <toshok@ximian.com>
3781
3782         * IBindableComponent.cs: new 2.0 interface.
3783
3784 2006-12-01  Gert Driesen  <drieseng@users.sourceforge.net>
3785
3786         * DataGrid.cs: Font for caption area is bold by default.
3787
3788 2006-12-01  Everaldo Canuto  <everaldo@simios.org>
3789
3790         * Menu.cs: Tag property for 2.0.
3791         
3792 2006-11-01  Everaldo Canuto  <everaldo@simios.org>
3793
3794         * ThemeWin32Classic.cs: Adjust menu separator drawing. 
3795         
3796 2006-12-01  Chris Toshok  <toshok@ximian.com>
3797
3798         * TreeView.cs: doh, the Begin* events should be
3799         TreeViewCancelEventHandler.
3800
3801 2006-12-01  Chris Toshok  <toshok@ximian.com>
3802
3803         * Form.cs: Form.ControlCollection already stores off the
3804         form_owner field.  don't access the base class's internal "owner"
3805         field.
3806
3807         * Control.cs: make all the fields in Control.ControlCollection
3808         private.  there's no need for any internal fields here.
3809
3810 2006-12-01  Chris Toshok  <toshok@ximian.com>
3811
3812         * DataGrid.cs: call SetDataSource instead of CalcGridAreas in
3813         OnHandleCreated.  Fixes bug #80109.
3814
3815 2006-12-01  Chris Toshok  <toshok@ximian.com>
3816
3817         * Button.cs, PropertyGridTextBox.cs, ComboBox.cs,
3818         SplitContainer.cs, Control.cs, StatusStrip.cs,
3819         DataGridTableStyle.cs, MenuItem.cs, DomainUpDown.cs, ImageList.cs,
3820         NumericTextBox.cs, NumericUpDown.cs, Panel.cs, CommonDialog.cs,
3821         DataGrid.cs, ScrollBar.cs, TrackBar.cs, PictureBox.cs,
3822         DateTimePicker.cs, StatusBar.cs, Form.cs, PrintPreviewDialog.cs,
3823         Label.cs, UserControl.cs, CheckBox.cs, RadioButton.cs,
3824         LinkLabel.cs, ListControl.cs, PropertyGrid.cs, Splitter.cs,
3825         MenuStrip.cs, FolderBrowserDialog.cs, NotifyIcon.cs,
3826         TextBoxBase.cs, ListView.cs, DataGridBoolColumn.cs,
3827         PrintPreviewControl.cs, RichTextBox.cs, ListBox.cs, TabControl.cs,
3828         DataGridColumnStyle.cs, ContextMenu.cs, TreeView.cs:
3829
3830         do most of the work to convert our code over to use
3831         System.ComponentModel.Component.Events for
3832         adding/removing/dispatching events.
3833
3834
3835 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3836
3837         * DataGridView.cs: Fix an ArgumentNullException reported 
3838         twice today in IRC.
3839
3840 2006-11-30  Mike Kestner  <mkestner@novell.com>
3841
3842         * ComboBox.cs: fix the scrollbar mouse event forwarding in the 
3843         grabbed listbox.  Fixes #80036 and #80101.
3844
3845 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3846
3847         * Message.cs: Changed ToString() to match MS.
3848         
3849 2006-11-30  Jackson Harper  <jackson@ximian.com>
3850
3851         * TextBoxBase.cs: You can still change the selected text on a read
3852         only textbox.
3853         * TextControl.cs: Lower magic number for wrap calculations. This
3854         lets text get closer to the right (far) edge.
3855
3856 2006-11-30  Jonathan Pobst  <monkey@jpobst.com>
3857
3858         * Control.cs: Tweak 2.0 layout properties.
3859         * Form.cs: Switch ToolStripMenuTracker hooks to ToolStripManager.
3860         * TextRenderer.cs: Add a new overload.
3861         * ToolStrip*: Huge amount of changes and new features.
3862
3863 2006-11-30  Mike Kestner  <mkestner@novell.com>
3864
3865         * ComboBox.cs: fixes for LargeChange and Maximum to get the 
3866         scroll range correct.  Fixes #79994.
3867
3868 2006-11-30  Rolf Bjarne Kvinge <RKvinge@novell.com>
3869
3870         * MdiWindowManager.cs: Update main form's text when
3871         a form is closed. (fixes #80038)
3872         
3873 2006-11-30  Everaldo Canuto  <everaldo@simios.org>
3874
3875         * ToolBar.cs:
3876         - Fix an regression in ButtonSize.
3877         - Get ImeMode default value change to "Disable".
3878         - Get ShowTooltips default value change to true, default value is 
3879         "false" but after make a test in .NET we get "true" result as default.
3880         
3881 2006-11-29  Jonathan Pobst  <monkey@jpobst.com>
3882
3883         * ToolStripDropDown.cs: Fix for SupportsTransparency change.
3884
3885 2006-11-29  Chris Toshok  <toshok@ximian.com>
3886
3887         * XplatUIWin32.cs (GetWindowTransparency): check return value of
3888         GetLayeredWindowAttributes.  if it's 0, return 1.0, as
3889         SetWindowTransparency hasn't been called.
3890
3891 2006-11-29  Chris Toshok  <toshok@ximian.com>
3892
3893         * Form.cs (set_TransparencyKey): only call SetWindowTransparency
3894         if it's supported.
3895         (set_AllowTransparency): reorder things a little so that the
3896         WS_EX_LAYERED style is removed properly.
3897
3898 2006-11-29  Chris Toshok  <toshok@ximian.com>
3899
3900         [ totally cosmetic eye-candy feature, fixes bug #80089 ]
3901         
3902         * Form.cs: only call the XplatUI transparency method (get/set) if
3903         SupportsTransparency says it's supported. Otherwise fallback to
3904         doing nothing (in the set case) or returning the instance field we
3905         cache (in the get case).
3906
3907         * XplatUIStructs.cs: add TransparencySupport flag enum.
3908         
3909         * XplatUIDriver.cs: add abstract GetWindowTransparency, and track
3910         change to SupportsTransparency.
3911
3912         * XplatUIOSX.cs: stub out GetWindowTransparency, and return
3913         TransparencySupport.None from SupportsTransparency.
3914
3915         * XplatUIX11.cs: Stub out GetWindowTransparency, and return
3916         TransparencySupport.Set from SupportsTransparency.
3917
3918         * XplatUIWin32.cs: implement GetWindowTransparency calling
3919         GetLayeredWindowAttributes, and implement SupportsTransparency by
3920         checking whether or not both
3921         GetWindowTransparency/SetWindowTransparency are available
3922         entrypoints.  We need to do this since SetWindowTransparency is
3923         available as of win2k, but GetWindowTransparency requires winxp.
3924         yay win32 api.
3925
3926         * XplatUI.cs: Add GetWindowTransparency, and change
3927         SupportsTransparency to allow for either/both Get/Set.
3928
3929 2006-11-29  Chris Toshok  <toshok@ximian.com>
3930
3931         * DataGrid.cs: keep from going into an infinite loop redrawing a
3932         datagrid that has no datasource.  Fixes bug #80033.
3933
3934 2006-11-29  Chris Toshok  <toshok@ximian.com>
3935
3936         * MenuItem.cs: fix the NRE when we assign text (and therefore call
3937         Invalidate) before the mainmenu has been assigned to a control.
3938
3939 2006-11-29  Chris Toshok  <toshok@ximian.com>
3940
3941         * DataGrid.cs: detect when we should be double the double click
3942         row/column autosize stuff, although that codepath has yet to be
3943         written.  part of the work for bug #79891.
3944
3945 2006-11-29  Chris Toshok  <toshok@ximian.com>
3946
3947         * Binding.cs (SetControl): fix unit test.
3948
3949 2006-11-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3950
3951         * PageSetupDialog.cs: Validate the margins and set them in
3952         PageSettings. 
3953         * NumericTextBox.cs: New class to mimic the behavior of the
3954         textboxes used in the printing dialogs.
3955
3956 2006-11-29  Andreia Gaita  <avidigal@novell.com>
3957         
3958         * Form.cs: Revert previous change (remove call UpdateBounds
3959         from form constructor), because it messes with the handle creation
3960         order, and that one needs lots and lots of love.
3961         * PrintPreviewDialog.cs: Revert change to CreateHandle (add check
3962         for valid printer and throw InvalidPrinterException if document
3963         is set but printer not valid), adding a MonoTODO. Once 
3964         handle creation is done properly, we can put this back in.
3965
3966 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3967
3968         * MenuItem.cs: Create a invalidate method for menu item, to be
3969         calling from set text, it make text changes to imadiate update
3970         on screen. Fixes #80013. 
3971         
3972 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3973
3974         * ToolBar.cs: Fixes and simplify toolbar button layout, it 
3975         fixes bug #80070 and some other problem on toolbar buttons
3976         layout.
3977
3978 2006-11-28  Everaldo Canuto  <everaldo@simios.org>
3979
3980         * ThemeWin32Classic.cs: Paint toolbar toggle button background 
3981         with dotted brush.      Fixes #79564
3982         
3983 2006-11-28  Andreia Gaita  <avidigal@novell.com>
3984
3985         * Form.cs: Removed call to UpdateBounds on Form
3986         constructor, it was causing a call to CreateHandle
3987         before it was supposed to.
3988         * PrintControllerWithStatusDialog: Applied patch
3989         by Chris Toshok to hide controller when there are
3990         no printers available.
3991         PrintDialog.cs: initialize printer settings to 
3992         null - correct DefaultValues test #5
3993         * PrintPreviewControl.cs: Move PrintController
3994         initialization to GeneratePreview
3995         * PrintPreviewDialog.cs: 
3996         - Remove Preview generation     from Document_set(). It is 
3997         called on OnPaint
3998         - Throw InvalidPrinterException on CreateHandle if
3999         a Document is set but there are no printers or 
4000         printer is not valid.
4001         * ThemeWin32Classic: don't paint PrintPreviewControl
4002         if there is nothing to paint    
4003
4004 2006-11-28  Miguel de Icaza  <miguel@novell.com>
4005
4006         * Form.cs: Add another popular method.
4007
4008         * TabPage.cs: ditto.
4009
4010 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4011
4012         * MenuItem.cs: Fixed a warning.
4013         * InternalWindowManager: Fixed a warning.
4014
4015 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4016
4017         * MenuItem.cs:
4018         - When cloning a menu also clone MdiList and clone the 
4019           window menu items properly (as the forms and menuitems
4020           are kept in an internal hashtable, these need updating 
4021           as well)
4022         - Rewrote the window menu code, menu items are added in the
4023           order the forms were added to their parent, and they are
4024           updated every time the window menu is shown (before the
4025           list was only generated once, in the current order of the
4026           forms, and would never be updated). A checkmark is shown
4027           next to the item corresponding to the active mdi child.
4028
4029 2006-11-28  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4030
4031         * XplatUIStructs.cs: 
4032         - Added WM_NCMOUSEHOVER and WM_NCMOUSELEAVE.
4033         
4034         * XplatUIWin32.cs: 
4035         - Added TME_NONCLIENT to TMEFlags.
4036         - Handles WM_NCMOUSEMOVE in GetMessage to 
4037           generate WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.
4038
4039         * MdiWindowManager:
4040         - Now merges mdi child menu to parent menu when maximized.
4041         - Recalculate NC areas of both mdi child and mdi parent. 
4042           Fixes #79757 (4).
4043           on window state and size changes.Fixes #79844 (3).
4044         - Handle WM_NCCALCSIZE to properly calculate borders.
4045
4046         * Form.cs:
4047         - Add/remove to the mdi containers list of mdi children 
4048           in the order they are added.
4049         - Pass on WM_NCLBUTTONUP, WM_NCMOUSEMOVE and WM_NCMOUSELEAVE 
4050           to the maximized mdi child.
4051         
4052         * InternalWindowManager.cs:
4053         - Only execute a click on the control buttons on the mouse up,
4054           not on the mouse down. Show the state of the button 
4055           (was only showing Normal state, never Pressed state). The
4056           pressed button now follows the mouse (if you click the Close 
4057           button and move the mouse over the Maximize button, the 
4058           Maximize button will be shown as pressed). Since Win32 does
4059           not generate WM_NCLBUTTONUP if you release the button outside
4060           of the nc area, we need to handle WM_NCMOUSELEAVE and treat
4061           it as a mouse up.
4062         
4063         * ThemeWin32Classic.cs:
4064         - Draw a missing border around mdi child forms. Fixes #79844 (2).
4065
4066         * MdiClient.cs:
4067         - Added a list of forms which contains the order the forms are
4068           added to the mdi parent.
4069         - Handle WM_NCPAINT to properly draw a 3D border. Fixes #79844 (2).
4070         - Handle WM_NCCALCSIZE to properly calculate the 3D border.
4071         - If the active form changes set the scrollbars to the top
4072           of the Z order, otherwise the form could hide them.
4073         - Scrollbars are now sized according to ClientSize, not 
4074           to Size, and they take into account the other scrollbar
4075           to determine maximum.
4076         
4077 2006-11-28  Rolf Bjarne Kvinge <RKvinge@novell.com>
4078         
4079         * XplatUI.cs:
4080         * XplatUIDriver.cs:
4081         * XplatUIX11.cs:
4082         * XplatUIWin32.cs:
4083         * XplatUIOSX.cs:
4084         - Added RequestAdditionalWM_NCMessages for windows to 
4085           opt in for WM_NCMOUSELEAVE and WM_NCMOUSEHOVER.
4086           Currently only implemented in XplatUIWin32.
4087
4088 2006-11-27  Chris Toshok  <toshok@ximian.com>
4089
4090         * Hwnd.cs: only add the hwnd to the windows hash in
4091         set_WholeWindow and set_ClientWindow if whole_window/client_window
4092         are not IntPtr.Zero.  also, remove the unused SetObjectWindow.
4093
4094 2006-11-27  Mike Kestner  <mkestner@novell.com>
4095
4096         * ComboBox.cs: remove redundant OnDropDown call.  It is called
4097         from the ComboListBox.ShowWindow code. Fixes #79969.
4098
4099 2006-11-27  Chris Toshok  <toshok@ximian.com>
4100
4101         * Hwnd.cs: remove the setters for ExposePending and
4102         NCExposePending - noone uses them.
4103
4104 2006-11-27  Jackson Harper  <jackson@ximian.com>
4105
4106         * TextControl.cs: new param for ReplaceSelection which determines
4107         whether we select the new selection, or set the cursor to the end
4108         of the new selection.
4109         * TextBoxBase.cs: Use new param for ReplaceSelection.  When
4110         pasting, select the new text.
4111         * RichTextBox.cs: Use new param for ReplaceSelection.
4112
4113 2006-11-27  Jackson Harper  <jackson@ximian.com>
4114
4115         * TextBoxBase.cs: Set the selection to the caret after the caret
4116         is moved, otherwise they get out of sync.
4117
4118 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
4119
4120         * ToolBar.cs: Fixe size of ToolBar when AutoSize is false,
4121         it fixes #80015
4122
4123 2006-11-26  Everaldo Canuto  <everaldo@simios.org>
4124
4125         * ThemeWin32Classic.cs: 
4126         - Fix toolbar drop down arrow position.
4127         - Fix drop down appearance when ToolBar.Appearance is normal,
4128         it fixes #80018.
4129         
4130 2006-11-26  Gert Driesen  <drieseng@users.sourceforge.net>
4131
4132         * ProgressBar.cs: GetStyle fixes for 2.0 profile.
4133         * Control.cs: Same.
4134         * UpDownBase.cs: Same.
4135         * ButtonBase.cs: Same.
4136         * ScrollBar.cs: Same.
4137         * TrackBar.cs: Same.
4138         * PictureBox.cs: Same.
4139         * UserControl.cs: Same.
4140         * Label.cs: Same.
4141         * ListControl.cs: Same.
4142         * TextBoxBase.cs: Same.
4143         * ListView.cs: Same.
4144         * RichTextBox.cs: Same.
4145         * TreeView.cs: Same.
4146
4147 2006-11-25  Jordi Mas i Hernandez <jordimash@gmail.com>
4148
4149         * PrintDialog.cs:
4150         - Text label for where 
4151         - Text label comment was not shown
4152
4153 2006-11-23  Everaldo Canuto  <everaldo@simios.org>
4154
4155         * ThemeWin32Classic.cs: Fix toolbar drop down arrow size.
4156
4157 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4158
4159         * InternalWindowManager.cs: 
4160         - Handle WM_PARENTNOTIFY to activate the form
4161         if any child control is clicked.
4162         - The form is only sizable if not minimized.
4163
4164         * MdiWindowManager.cs:
4165         - Save the IconicBounds if the form is moved.
4166         - Rework SetWindowState, now the window bounds 
4167         are stored only if the old window state is Normal.
4168         
4169         * MdiClient.cs:
4170         - In SetWindowStates store the old window state if 
4171         the window is maximized and restore window state if
4172         the window looses focus.
4173         - Don't handle any scrollbar value changes if 
4174         initializing the scroll bars. Fixes #79771.
4175         - Reworked ArrangeIconicWindows. Current algorithm
4176         tests bounds agains all other minimized windows, if
4177         any intersections create new bounds (going left to 
4178         right, bottom to top) and then test again. When 
4179         successful the bounds are saved and never computed
4180         again. Fixes #79774.
4181
4182 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4183
4184         * InternalWindowManager.cs: Added HandleTitleBarUp.
4185
4186 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4187
4188         * NumericUpDown.cs: In .NET 1.1, user entered text is still
4189         hexadecimal in ParseUserEdit.
4190
4191         
4192 2006-11-23  Rolf Bjarne Kvinge  <RKvinge@novell.com> 
4193
4194         * MdiWindowManager.cs: 
4195         - Handle a click on the form's icon to show the 
4196         system menu (when maximized). Fixes #79775.
4197         - Change the existing click handler for the form's
4198         icon when not maximized to show on MouseUp.
4199         Fixes #79776.
4200
4201         * Form.cs: In OnResize only layout the mdi child's
4202         parent if it actually has a parent. Might not if
4203         the window is closing.
4204
4205
4206 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4207
4208         * MdiClient.cs: Ignore active MDI client for text of parent, if
4209         child has no text set.
4210
4211 2006-11-23  Gert Driesen  <drieseng@users.sourceforge.net>
4212
4213         * ToolBar.cs: Fixed ToString to match MS.
4214
4215 2006-11-22  Andreia Gaita  <avidigal@novell.com>
4216
4217         * NumericUpDown: 
4218         - Fix DecimalPlaces, Hexadecimal and ThousandsSeparator to 
4219         update inner values on set. Fixes #79966.
4220         - Override OnLostFocus to update value on NET 2. Fixes #79950.
4221         - Fix hexadecimal parsing.
4222         
4223         * UpDownBase: Override OnGotFocus and OnLostFocus to notify 
4224         parent. Fixes #79957
4225
4226 2006-11-22  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4227
4228         * Control.cs: After calling SetWindowsPos in SetBoundsCore 
4229         the actual size has to be queried, since if height /
4230         width is negative Win32 changes it to 0. 
4231         Fixes #79999 on Windows.
4232         
4233         * XplatUIX11.cs: Set height / width to 0 if negative
4234         in SetWindowPos. Fixes #79999 on Linux.
4235         
4236 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
4237
4238         * ThemeWin32Classic.cs: Fix text redenring when button is
4239         pressed.
4240
4241 2006-11-22  Everaldo Canuto  <everaldo@simios.org>
4242
4243         * MenuAPI.cs: Fixes behavior when menu is opened by kerboard
4244         and later navigate by mouse. Fixes #79528.
4245
4246 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
4247
4248         * ToolBar.cs: Set default value for TabStop to false in
4249         constructor, it fixes remaining behavior of bug #79863.
4250
4251 2006-11-21  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4252
4253         * MdiWindowManager.cs:
4254         * InternalWindowManager.cs:
4255         - Moved a few methods specific to Mdi from 
4256         InternalWindowManager to MdiWindowManager.
4257         Fixes #79996.
4258         
4259 2006-11-21  Chris Toshok  <toshok@ximian.com>
4260
4261         * XplatUIOSX.cs: stub out InvalidateNC.
4262
4263         * XplatUIWin32.cs: implement InvalidateNC using the call I found
4264         at http://www.dotnet247.com/247reference/msgs/58/292037.aspx.
4265
4266         * XplatUIX11.cs: rename InvalidateWholeWindow to InvalidateNC.
4267
4268         * XplatUIDriver.cs: add InvalidateNC abstract method.
4269
4270         * XplatUI.cs: add InvalidateNC.
4271
4272 2006-11-21  Everaldo Canuto  <everaldo@simios.org>
4273
4274         * ToolBar.cs: Invalidate complete button area when pressed status 
4275         was changed.
4276         * ToolButton.cs: Fix InvalidateBorder for DropDown buttons.
4277         * ThemeWin32Classic.cs: Increase vertical and horizontal position 
4278         by 1 when button is pressed.
4279
4280 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4281
4282         * ToolButton.cs: Invalidate middle of DropDown button when
4283         ToolBar theres DropDownArrows.
4284         * ThemeWin32Classic.cs: Change position of DropDown arrow and
4285         fix DropDown drawing operations.
4286
4287 2006-11-20  Chris Toshok  <toshok@ximian.com>
4288
4289         * NativeWindow.cs: fix the formatting of functions ('{' on the
4290         following line), and enable the thread exception dialog.
4291
4292         * Application.cs: remove the duplicate exception catching from
4293         here.
4294
4295 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4296
4297         * Toolbar.cs: Triggers button click event when click on icon
4298         of dropdown ToolBarButton. Fixes #79912.
4299         
4300 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4301
4302         * Theme.cs:
4303         * ThemeWin32Classic.cs:
4304         - Added a property WindowBorderFont to enable themeing
4305           of mdi child windows' Text.
4306           
4307 2006-11-20  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4308
4309         * InternalWindowManager.cs:
4310         * Form.cs:
4311         * MdiClient.cs:
4312         * MdiWindowManager.cs: 
4313         - If mdi child is maximized, set mdi parent's
4314           text to "Parent - [Child]". Fixes #79770.
4315         - If there is any maximized mdi child windows, only the active 
4316           window (and any new windows) is maximized, the rest are normal.
4317         - On a WindowState change only save mdi child's window bounds 
4318           if the old window state was normal. Fixes #79774.
4319         - The scroll bars are now calculated on hopefully all
4320           necessary events. Fixed #79771 / #79844->6 / #79906.
4321         - MdiClient.SizeScrollBars() now takes into account docked 
4322           controls in the parent when calculating available space.
4323         - InternalWindowManager now always repaints the entire title
4324           area. Fixes #79844->1/4/5.
4325         - Added RequestNCRecalc on mdi child windowstate changes.
4326           Fixes #79772.
4327
4328 2006-11-20  Mike Kestner  <mkestner@novell.com>
4329
4330         * ComboBox.cs: setup LargeChange on the scrollbar. Invoke FireMouseUp
4331         in the MouseUp handler of the listbox and move the return handling
4332         code to FireMouseUp to avoid scrolling on ups.  Fixes #79952.
4333
4334 2006-11-20  Everaldo Canuto  <everaldo@simios.org>
4335
4336         * Toolbar.cs: Ignore right mouse clicks in toolbar. Fixes #79855. 
4337
4338 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4339
4340         * MimeIcon.cs: Seems that DllImports that were fine in 1.2 are not
4341           working in 1.2.x anymore. So, updated.
4342
4343 2006-11-19  Gert Driesen  <drieseng@users.sourceforge.net>
4344
4345         * NumericUpDown.cs: Use NegativeSign, NumberDecimalSeparator and
4346         NumberGroupSeparator of current culture instead of assuming en-US.
4347         Fixed bug #79967.
4348
4349 2006-11-17  Mike Kestner  <mkestner@novell.com>
4350
4351         * Control.cs: Add the concept of implicit bounds setting so that
4352         dock/undock round trips preserve explicitly set size/locations.
4353         Fixes #79313.
4354
4355 2006-11-17  Alexander Olk  <alex.olk@googlemail.com>
4356
4357         * FileDialog.cs: Trim all filters, otherwise DirInfo.GetFiles
4358           can't handle those filters. (Fixes bug #79961)
4359
4360 2006-11-17  Chris Toshok  <toshok@ximian.com>
4361
4362         [ fixes the exit/crashes associated with #79835.  it's clearly
4363         suboptimal though, we need to figure out a better way to solve
4364         this. ]
4365         
4366         * PrintPreviewControl.cs: deal with the new invalid printer
4367         exceptions.
4368
4369         * PageSetupDialog.cs: if the printer is invalid, pop up a dialog
4370         and return false (so CommonDialog.ShowDialog doesn't actually show
4371         the form.)
4372
4373         * PrintDialog.cs: enable/disable the Ok button depending on
4374         whether or not the printer is valid.
4375
4376         * CommonDialog.cs (ShowDialog): only actually show the form if
4377         RunDialog returns true.
4378
4379 2006-11-17  Jackson Harper  <jackson@ximian.com>
4380
4381         * TextControl.cs: When soft splitting a line, mark it as a soft
4382         split line. Also carry over the current line break to the next
4383         line.
4384
4385 2006-11-17  Chris Toshok  <toshok@ximian.com>
4386
4387         * XplatUIX11.cs: when scrolling a window with an invalid area, we
4388         only want to shift the part of the invalid area that overlaps the
4389         area we're scrolling.  we also don't want to clear the invalid
4390         area unless the invalid area was entirely contained within the
4391         scrolling area.
4392
4393 2006-11-16  Chris Toshok  <toshok@ximian.com>
4394
4395         * XplatUIX11.cs: remove the handling of the TimerEvent stuff, and
4396         also make sure to free the memory returned by XGetWindowProperty
4397         in GetText().
4398
4399         * X11Structs.cs: remove the TimerEvent stuff, it's unused.
4400
4401 2006-11-16  Chris Toshok  <toshok@ximian.com>
4402
4403         * XplatUI.cs: add a new super secret way to get at the totally
4404         unsupported X11 backend.
4405
4406 2006-11-16  Gert Driesen  <drieseng@users.sourceforge.net>
4407
4408         * NumericUpDown.cs: Allow lowercase letters when in hex-mode.
4409
4410 2006-11-16  Jackson Harper  <jackson@ximian.com>
4411
4412         * TreeView.cs: Allow more explicit setting of top node position
4413         for scrollbars. Slower algo, but more accurate.
4414         - CollapseAll should maintain the current top node.
4415         * TextBoxBase.cs: When positioning the caret, use the line, pos
4416         method, since the x, y method does not grab the correct tag, and
4417         the caret height never gets set correctly. (Maybe I should just do
4418         away with the caret having its own height, and always use the
4419         carets current tag for height).
4420
4421 2006-11-16  Jonathan Pobst  <monkey@jpobst.com
4422
4423         [Fixes 79778, 79923]
4424
4425         * XplatUIWin32.cs: Don't allow a parent to be set to IntPtr.Zero.
4426         Parent to the FosterParent instead.
4427
4428 2006-11-16  Jackson Harper  <jackson@ximian.com>
4429
4430         * TreeView.cs: Need to recalc the topnode when we expand or
4431         collapse. The scrolling methods can't handle this on their own,
4432         since they use differences between the last scroll position, and
4433         those difference get completely messed up since we are expanding
4434         nodes.  This problem should probably be fixed in the scrolling
4435         methods, so they can figure out exactly where they are, but this
4436         will slow things down a little.
4437         * ThemeWin32Classic.cs: Special case for groupboxes with empty
4438         strings, makes nunit-gui look a lot nicer.
4439
4440 2006-11-16  Chris Toshok  <toshok@ximian.com>
4441
4442         * XplatUIX11.cs: nasty, nasty, nasty changes required because of
4443         the broken multithreaded event handling we have in here.  File
4444         this entry under "Why we should move to the new X11 backend".
4445
4446         Any thread can make it into UpdateMessageQueue, which gets events
4447         from the X socket - some of which could belong to hwnds being
4448         managed by a different thread.  We can also have multiple threads
4449         in UpdateMessageQueue at the same time, with each one reading from
4450         the X socket.  This leads to many problems, with the following
4451         solutions:
4452
4453         We can't use hwnd.Queue.Enqueue anywhere in here and must use
4454         EnqueueLocked.
4455
4456         The MotionNotify compression we do can't work across threads
4457         (without locking the entire queue, perhaps) since we call
4458         hwnd.Queue.Peek, so we just punt and don't compress motion events
4459         unless the owning thread is the one which got the X event.
4460
4461         ConfigureNotify is another fun one, since it modifies the hwnd's
4462         bounds and then enqueues the event.  We add a lock to Hwnd which
4463         is held when setting configure_pending to true (and enqueuing the
4464         event).
4465
4466         There is a race wrt the wake socket.  we need to make sure that
4467         only 1 thread is waiting on that socket, or else a thread could
4468         sleep waiting for data that never comes.  It's difficult (but not
4469         impossible) to make happen, because it seems to require something
4470         like the following:
4471
4472             1. Thread 1 polls on wake_receive
4473         
4474             2. poll returns saying there's data to be read on
4475                wake_receive.
4476         
4477             3. Thread 2 polls on wake_receive and immediately returns
4478                saying there's data to be read.
4479
4480             4. Thread 2 reads the wakeup byte from wake_receive
4481
4482             5. Thread 1 attempts to read the wakeup byte from
4483                wake_receive.
4484
4485             6. Thread 2 exits (due to a form closing, perhaps).
4486
4487             7. Thread 1 blocks forever.
4488         
4489         Fun, eh?
4490
4491         Fixing the Expose handling isn't done yet, and the races inherent
4492         in that piece of code are responsible for the drawing mistakes you
4493         see when generating expose events in a MT app (like NPlot).  This
4494         one is the likely to be the hardest to bandaid, and it doesn't
4495         appear to cause anything but drawing problems.  The other issues
4496         caused apps to exit or hang.
4497
4498         * XEventQueue.cs: output some spew when Dequeue/Enqueue/Peek are
4499         called from a different thread than the one that should be calling
4500         these functions.
4501
4502         * Hwnd.cs: add some locks to be used by the XplatUIX11 code.
4503
4504 2006-11-15  Chris Toshok  <toshok@ximian.com>
4505
4506         * Application.cs: null out the context's MainForm when we exit
4507         RunLoop.  Fixes a newly checked in unit test as well as the last
4508         ODE from bug #79933.
4509
4510 2006-11-15  Chris Toshok  <toshok@ximian.com>
4511
4512         * Form.cs (set_Owner): allow a null value so we can clear the
4513         form's owner.
4514         (Dispose): set all our owned_form's Owner properties to null, and
4515         clear the owned_forms collection.
4516         (WM_CLOSE): clean up this a little bit.. still not right though.
4517
4518         * ApplicationContext.cs: OnMainFormClosed should only call
4519         ExitThreadCore if the main form isn't recreating.  Fixes unit
4520         test.
4521
4522 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4523
4524         [Fixes 78346]
4525
4526         * ComboBox.cs: Set the Hwnd.no_activate flag for the ComboListBox.
4527
4528 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4529
4530         [Fixes 79433]
4531
4532         * Hwnd.cs: Add a flag to show a window, but not activate it, to 
4533         keep popup window types from stealing focus from the main form
4534         on Windows.
4535
4536         * XPlatUIWin32.cs: Use SW_SHOWNOACTIVATE if above field is true.
4537
4538         * MenuAPI.cs: Set above flag to true.
4539
4540 2006-11-15  Chris Toshok  <toshok@ximian.com>
4541
4542         * XplatUIX11.cs: mimic win32 behavior on BUTTONUP events, where
4543         the button being released is not in wParam.
4544
4545 2006-11-15  Jonathan Pobst  <monkey@jpobst.com>
4546
4547         * Form.cs: Add the released button to MouseEventArgs.Button
4548         for the OnMouseUp call to the MenuTracker.  Fixes menu clicking
4549         on Win32.
4550
4551 2006-11-15  Chris Toshok  <toshok@ximian.com>
4552
4553         * XplatUIX11.cs: add (untested) a _NET_WM_NAME implementation of
4554         GetText().  untested because it's unused in our implementation.
4555         Control.Text always caches the text, even if
4556         ControlStyles.CacheText is not set.
4557
4558         fixes bug #79939.
4559
4560 2006-11-15  Chris Toshok  <toshok@ximian.com>
4561
4562         [ fixes #79933 ]
4563         
4564         * Form.cs: in Close() don't do anything after we send the WM_CLOSE
4565         message.  no hiding, no disposing.
4566
4567         in the WM_CLOSE handler, hide the form if it's modal.
4568
4569 2006-11-15  Chris Toshok  <toshok@ximian.com>
4570
4571         * XplatUIX11.cs: use AddExpose instead of sending a message.
4572         fixes textbox border drawing.
4573
4574 2006-11-15  Chris Toshok  <toshok@ximian.com>
4575
4576         * PropertyGridView.cs: keep from crashing on mouse move/down when
4577         the property grid is empty.
4578
4579 2006-11-14  Jackson Harper  <jackson@ximian.com>
4580
4581         * TextControl.cs: Make PageUp and PageDown more like the MS
4582         versions.
4583         * TextBoxBase.cs: When we set the text property position the
4584         cursor at the beginning of the document.
4585
4586 2006-11-14  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4587
4588         * Form.cs: if a mdi child's WindowState has changed
4589         before it's creation, it would display wrong control
4590         buttons.
4591         
4592 2006-11-14  Alexander Olk  <alex.olk@googlemail.com>
4593
4594         * TreeView.cs: De-uglify TreeView checkbox checkmarks.
4595           (Fixes bug #79927)
4596
4597 2006-11-14  Rolf Bjarne Kvinge <RKvinge@novell.com> 
4598
4599         * XplatUIX11.cs: send a WM_NCPAINT on WM_NCCALCSIZE so that 
4600         the window gets to paint its borders even if the window is
4601         getting smaller.
4602         
4603         * Form.cs: on a WM_NCPAINT invalidate the entire menu, 
4604         otherwise the old control buttons would still be painted 
4605         if the window gets bigger.
4606         
4607         * PaintEventArgs.cs: add an internal method so that the clip 
4608         rectangle can be changed.
4609         
4610 2006-11-13  Chris Toshok  <toshok@ximian.com>
4611
4612         [ fixes bug #79745 ]
4613         
4614         * NotifyIcon.cs: lots of cleanup.
4615
4616         * X11Structs.cs: add an enum for XEMBED messages.
4617
4618         * XplatUIX11.cs: reindent one of the giant switch statements, it
4619         was taking up an additional tab stop, and this file is already way
4620         too wide for my laptop's screen.
4621
4622         Also, add handling for the XEmbed EMBEDDED_NOTIFY message.  When
4623         we get it, resize the hwnd to the WMNormalHints max_width/height.
4624
4625 2006-11-13  Jackson Harper  <jackson@ximian.com>
4626
4627         * TextBoxBase.cs: Compute the value changes for the mouse wheel
4628         teh simple way.
4629
4630 2006-11-13  Chris Toshok  <toshok@ximian.com>
4631
4632         * XplatUIX11.cs, XplatUIStructs.cs: kind of a gross fix for
4633         #79898.  force a reference to the Region to stick around so the
4634         unmanaged object isn't collected (rendering our handle in the MSG
4635         stale).
4636
4637 2006-11-13  Chris Toshok  <toshok@ximian.com>
4638
4639         * XplatUIX11.cs: fix #79917 for window managers which support
4640
4641         using XStoreName on the raw utf8, and we need to convert to
4642         COMPOUND_TEXT if it's non-latin1.
4643
4644 2006-11-13  Chris Toshok  <toshok@ximian.com>
4645
4646         * Form.cs (set_DialogResult): we need to set closing to false if
4647         we're setting our result to None.  fixes bug #79908.
4648
4649 2006-11-13  Jackson Harper  <jackson@ximian.com>
4650
4651         * TextControl.cs: When formatting text, compute the adjusted tag
4652         lengths correctly, using FindTag for the end tag instead of trying
4653         to figure it out outselves.
4654         * TreeNode.cs: Use ActualItemHeight, which is the actual height of
4655         the item, ItemHeight doesn't work, because trees with large
4656         imagelists use those for their height
4657         * TreeView.cs: ActualItemHeight factors in the image height
4658         - compute left edge of checkboxes correctly
4659         - when expanding/collapsing move the bottom down one pixel, so we
4660         aren't moving part of the node
4661
4662 2006-11-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4663
4664         * XplatUIX11.cs: The PaintEventArgs is also added to the drawing
4665         stack in PaintEventStart so that it won't get disposed by the gc
4666         before reaching PaintEventEnd.
4667
4668 2006-11-13  Jackson Harper  <jackson@ximian.com>
4669
4670         * TextBoxBase.cs: Don't select the word if we are on a line with
4671         no text.
4672         - We don't need to position the caret on mouse up, since the mouse
4673         move handler should be doing this
4674         - When double clicking a blank line, the caret is advanced to the
4675         next line.
4676
4677 2006-11-13  Gert Driesen  <drieseng@users.sourceforge.net>
4678
4679         * TreeNodeCollection.cs: Avoid duplicating indexer code.
4680
4681 2006-11-12  Gert Driesen  <drieseng@users.sourceforge.net>
4682
4683         * ColorDialog.cs: Reset size of dialog between calls to ShowDialog.
4684         Fixes part of bug #79910.
4685
4686 2006-11-11  Alexander Olk  <alex.olk@googlemail.com>
4687
4688         * ColorDialog.cs: Fix a NRE when adding a color to custom colors
4689           (bug #79903). Some minor string updates to match ms.
4690
4691 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4692
4693         * FileDialog.cs: Don't add an extension if the filename
4694           already ends with that extension.
4695
4696 2006-11-10  Jackson Harper  <jackson@ximian.com>
4697
4698         * TreeView.cs: Use the currently highlighted node for the
4699         BeforeSelect event.
4700         * TextBoxBase.cs: There is no need to expand selection on
4701         MouseMove.
4702         - CanUndo means 'is there any undo operations', not 'is undo
4703         allowed on this textcontrol. Fixed ClearUndo unit test.
4704
4705 2006-11-10  Andreia Gaita  <shana.ufie@gmail.com>
4706
4707         * Button.cs: only perform click when button is Selectable (so as 
4708         not to activate default buttons when they're disabled)
4709         
4710         * Control.cs: Rewrite of the SelectNextControl and related 
4711         methods. HandleClick now selects next control if the current one
4712         is being disabled.
4713         
4714         * Form.cs: OnActivated selects next active control only if Load 
4715         has already occurred. If Load hasn't run, there's no point in 
4716         selecting here, Load might change the state of controls.
4717         
4718         * FocusTest.cs: Tests marked as working again for these fixes
4719
4720 2006-11-10  Chris Toshok  <toshok@ximian.com>
4721
4722         * XplatUIX11.cs: a couple of fixes.
4723
4724         - use XInternAtoms with almost all the atoms we need to register,
4725         instead of many, many calls to XInternAtom.  should help a bit on
4726         startup time, at the expense of making the code look a little
4727         worse.
4728
4729         - fall back to setting TransientFor on TOOLWINDOW's if their hwnd
4730         isn't reparented (which seems to be a clue that we're running fon
4731         compiz) and they have an Owner form.  This fixes the tool windows
4732         in paint.net when running under compiz.
4733
4734         - when setting the opacity of a window, support both the case
4735         where the window has been reparented and also when it hasn't been.
4736         Since compiz/beryl doesn't seem to reparent windows, and these are
4737         the only window managers which support translucency, I'm not sure
4738         why we need the hwnd.reparented case at all.. but leave it in.
4739         now we get translucent windows in paint.net under compiz/beryl.
4740
4741 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4742
4743         * FileDialog.cs: Always return the value for FilterIndex that
4744           was set. Internally convert it to values that make sense.
4745
4746 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4747         
4748         * ThemeWin32Classic.cs: Fix drowp down arrow borders.
4749
4750 2006-11-10  Everaldo Canuto  <everaldo@simios.org>
4751
4752         * Toolbar.cs: Change default value of DropDownArrows to true, the 
4753         signature still using false to make it compatible with MS but the 
4754         initial value is true. Fixes #79855.
4755
4756 2006-11-10  Alexander Olk  <alex.olk@googlemail.com>
4757
4758         * MimeIcon.cs: Don't throw an exception on windows. Mime stuff is
4759           only available on Linux.
4760
4761 2006-11-09  Everaldo Canuto  <everaldo@simios.org>
4762
4763         * Toolbar.cs, ToolBarButton.cs: Fix wrong separator size and
4764         reduce number of calls to redraw method during toolbar creation.
4765
4766 2006-11-09  Mike Kestner  <mkestner@novell.com>
4767
4768         * ListView.cs : raise SelectedIndexChanged when an item is selected
4769         programmatically via the Item.Selected property.  Gert's nice 
4770         ListViewSelectedIndexChanged test fixture now runs clean.
4771
4772 2006-11-09  Mike Kestner  <mkestner@novell.com>
4773
4774         * ListView.cs : raise SelectedIndexChanged when a selected item is
4775         removed from the item collection using Remove or RemoveAt.
4776
4777 2006-11-09  Mike Kestner  <mkestner@novell.com>
4778
4779         * ListView.cs : raise SelectedIndexChanged once per selected item
4780         for compat with MS.  Fixes #79849+.
4781
4782 2006-11-09  Chris Toshok  <toshok@ximian.com>
4783
4784         * TabControl.cs: initialize row_count to 0, and set it to 1 when
4785         we need to (if we have any tab pages).  Fixes unit test.
4786
4787 2006-11-09  Chris Toshok  <toshok@ximian.com>
4788
4789         * Label.cs (CalcPreferredWidth): if Text == "", our preferred
4790         width is 0, not 3.  Fixes a unit test.
4791
4792 2006-11-09  Mike Kestner  <mkestner@novell.com>
4793
4794         * ListView.cs : use Implicit scrollbars so that focus isn't 
4795         stolen from the listview when they are clicked. Fixes #79850.
4796
4797 2006-11-09  Chris Toshok  <toshok@ximian.com>
4798
4799         * PropertyGridView.cs (OnPaint): only call DrawGridItems if we
4800         have a root item.  Fixes #79879.
4801
4802 2006-11-09  Alexander Olk  <alex.olk@googlemail.com>
4803
4804         * FileDialog.cs:
4805           - Fix ToString ()
4806           - An ArgumentException is now thrown if a wrong filter
4807             is applied (matches ms). The previous filter doesn't change
4808             anymore if an exception is thrown.
4809           - Changing the FileName property also affects FileNames
4810         * ColorDialog.cs: The length of the CustomColors array is always
4811           16. It doesn't matter if we use a smaller array or null to update
4812           or change the custom colors property.
4813         * FolderBrowserDialog.cs: Throw an InvalidEnumArgumentException if
4814           for RootFolder if we get a undefined value.
4815
4816 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4817
4818         * StatusBarPanel.cs: 
4819         - Width is set to MinWidth if Width is smaller than
4820         MinWidth. Fixes #79842.
4821         - MinWidth now always overrides Width (MSDN says MinWidth
4822         is set to Width when AutoSize = None, but they do not 
4823         behave like that).
4824         - Style has now the the correct default value.
4825         
4826 2006-11-09  Rolf Bjarne Kvinge  <RKvinge@novell.com>
4827  
4828         * TrackBar.cs: 
4829         - The control is completely invalidated on 
4830         Got/LostFocus to draw the focus rectangle correctly.
4831         - When AutoSize then height is always 45 (width for 
4832         vertical controls).
4833         
4834         * ThemeWin32Classic.cs: The TrackBar thumb is now centered
4835         on the mouse when moved and it doesn't move when grabbed
4836         until the mouse moves as well. Also fixed some wrong 
4837         calculations when clicking on the thumb (control thought
4838         click was outside of thumb and didn't grab it).
4839         Fixes some of the issues in #79718.
4840
4841 2006-11-08  Everaldo Canuto  <everaldo@simios.org>
4842
4843         * Toolbar.cs: Prevent disabled button to highlight. Fixes #79868.
4844
4845 2006-11-08  Chris Toshok  <toshok@ximian.com>
4846
4847         * PropertyGridView.cs: only call ToggleValue if the item is not
4848         readonly.
4849
4850 2006-11-08  Jackson Harper  <jackson@ximian.com>
4851
4852         * TextBoxBase.cs: The RichTextBox and textbox have very different
4853         word selection methods.  Implement the textbox's simple word
4854         selection here, and let the RichTextBox override and provide it's
4855         own.
4856         - Don't do extra selection on mouseup
4857         * RichTextBox.cs: Use the documents word selection algorithm, I
4858         think ideally, this function will be pulled into the
4859         RichTextBox.cs code someday.
4860
4861 2006-11-08  Chris Toshok  <toshok@ximian.com>
4862
4863         * RootGridEntry.cs: new class to represent GridItemType.Root.
4864
4865         * CategoryGridEntry.cs: reformat, and add boilerplate.
4866         
4867         * GridEntry.cs: remove the UIParent stuff - turns out .Parent
4868         returns the UI parent anyway, and we need special handling to
4869         implement the GetTarget method in the face of it.  Also, implement
4870         Select().
4871
4872         * PropertyGrid.cs, PropertyGridView.cs: a number of fixes.  create
4873         a root grid item, and use that instead of PropertyGrid.grid_items.
4874         Also, make use of TypeConverters (and add limitted support for
4875         ICustomTypeDescriptors) when initially populating the grid.
4876         Arrays now show up more or less properly.
4877
4878 2006-11-08  Chris Toshok  <toshok@ximian.com>
4879
4880         * Application.cs: set the modal dialog to non modal after we close
4881         it.  Fixes bug #79866.
4882
4883 2006-11-08  Jackson Harper  <jackson@ximian.com>
4884
4885         * TextControl.cs: When combining lines carry over the line end
4886         style from the end line.
4887         - Invalidate the selected area when setting it, if it is visible.
4888         * TextBoxBase.cs: Only rich text box can do full line selects.
4889         - Make sure to set the cursor position when there is a click,
4890         otherwise two clicks in separate areas could cause a large chunk
4891         to be selected.
4892
4893 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4894
4895         * Toolbar.cs: Release flat button borders when Toolbar lost focus. 
4896         Fixes #79863.
4897
4898 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4899
4900         * Toolbar.cs: Prevent toolbar to open more than one tooltip at same
4901         time. Remove tooltips when ToolButton click events.  Fixes #79856.
4902
4903 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4904
4905         * MenuAPI.cs: Ignore right click for menu actions and fixes
4906         menu border when clicked.  Fixes #79846.
4907
4908 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4909
4910         * XplatUIX11.cs, XplatUIX11.cs: Fix MouseRelease to only release
4911         MouseState after create wParam for message, this fixes mouse button 
4912         equal none in mouse up events.
4913         
4914 2006-11-07  Andreia Gaita  <shana.ufie@gmail.com>
4915
4916         * Control.cs : Focus() now calls Select to set the Container's
4917         Active Control and to give it focus. To avoid infinite recursion
4918         (because ActiveControl also calls Focus at one point), a check 
4919         is made in Focus with the help of a new internal variable
4920         is_focusing.
4921
4922 2006-11-07  Mike Kestner  <mkestner@novell.com>
4923
4924         * ListView.cs : raise OnSelectedIndexChanged in CreateHandle
4925         if there's a selection.  Fixes #79849.
4926
4927 2006-11-07  Gert Driesen  <drieseng@users.sourceforge.net>
4928
4929         * PropertyGrid.cs: Avoid fixed height of help description label.
4930         Fixes part of bug #79829.
4931
4932 2006-11-07  Chris Toshok  <toshok@ximian.com>
4933
4934         * XplatUIX11.cs: fix #79790 again, by using the
4935         _NET_WM_STATE_SKIP_TASKBAR atom to implement Form.ShowInTaskbar.
4936
4937 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4938
4939         * ToolBar.cs: Fix left click checking.
4940
4941 2006-11-07  Chris Toshok  <toshok@ximian.com>
4942
4943         * ProgressBar.cs: fix a typo in ToString().  fixes a unit test.
4944
4945 2006-11-07  Chris Toshok  <toshok@ximian.com>
4946
4947         * RelatedPropertyManager.cs: set property_name in our ctor.  fixes
4948         PropertyManager unit tests.
4949
4950         * PropertyManager.cs: make property_name internal.
4951
4952 2006-11-07  Chris Toshok  <toshok@ximian.com>
4953
4954         * ButtonBase.cs: initialize base.ime_mode to ImeMode.Disable to
4955         pass a unit test.  Also, don't set image_index to anything in
4956         response to setting the ImageList property.
4957
4958 2006-11-07  Everaldo Canuto  <everaldo@simios.org>
4959
4960         * ToolBar.cs: Ignore click events when mouse button is not a
4961         left button, only accepts other button for dropdown menus.  
4962         Fixes #79854.
4963
4964 2006-11-07  Chris Toshok  <toshok@ximian.com>
4965
4966         * DataGrid.cs: make the back and parent row buttons a little less
4967         ugly.
4968
4969 2006-11-07  Jackson Harper  <jackson@ximian.com>
4970
4971         * TextBoxBase.cs: When converting to Text don't put line breaks in
4972         for soft line breaks.
4973         * TextControl.cs: There is an initial "fake" line in the document,
4974         this is now a soft break line, so that an extra line feed doesn't
4975         get added to the end of documents.
4976
4977 2006-11-07  Chris Toshok  <toshok@ximian.com>
4978
4979         [ fix bug #79778 ]
4980         
4981         * CurrencyManager.cs: if the list is readonly, don't bother
4982         checking if IBindingList.AllowNew is true.
4983
4984         * ThemeWin32Classic.cs (DataGridPaintParentRow): make this work
4985         for non-DataRowView datasources..  or rather, make it not crash.
4986         (DataGridPaintRelationRow): make sure we limit the row painting to
4987         the area not covered by the row header, and make our cell width at
4988         least large enough to cover the relation area.  This allows grids
4989         that have relations but no rows to render correctly.
4990         (DataGridPaintRowContents): same type of changes here.
4991         (SetDataSource): move back to always calling
4992         CalcAreasAndInvalidate.  this fixes a crash/drawing problem when
4993         navigating back through relations.
4994         (HitTest): handle the case where we have no cells but have
4995         relations.  Right now we generate a hit in cell 0 of whatever the
4996         row is, not sure if this is strictly correct, but it works for our
4997         purposes.
4998         
4999         * DataGrid.cs (EndEdit, CancelEdit): if we have no columns, don't
5000         bother doing anything.
5001
5002 2006-11-07  Jonathan Pobst  <monkey@jpobst.com>
5003
5004         * StatusStrip.cs, ToolStripStatusLabel.cs: By request, an
5005         early version of StatusStrip.  Not responsible for eaten
5006         application or firstborn children.
5007
5008 2006-11-06  Chris Toshok  <toshok@ximian.com>
5009
5010         * TabControl.cs: in OnGotFocusInternal/OnLostFocusInternal don't
5011         call GetTabRect with a -1 index.  Fixes #79847.
5012
5013 2006-11-06  Jackson Harper  <jackson@ximian.com>
5014
5015         * TreeNodeCollection.cs: Update scrollbars after clearing.
5016
5017 2006-11-06  Chris Toshok  <toshok@ximian.com>
5018
5019         * NumericUpDown.cs: fix the ToString method for some unit test
5020         love.
5021
5022 2006-11-06  Chris Toshok  <toshok@ximian.com>
5023
5024         * PropertyGrid.cs:
5025         - set the initial SelectedGridItem if we can.
5026
5027         - Exclude non-mergable properties only if we're merging > 1
5028         object.  Merging 1 object isn't really merging, obviously.
5029
5030         - Handle PropertySort.NoSort just like Alphabetical, which is
5031         wrong of course, but at least gets things on the screen.
5032         
5033         * PropertyGridView.cs:
5034         - Add method "FindFirstItem" which finds the first property grid
5035         item, so we can select it by default.
5036
5037         - make use of GridEntry.CanResetValue.
5038
5039         - Don't call RedrawBelowItemOnExpansion here anymore, the
5040         individual GridEntry's will do that.
5041
5042         - Remove the ITypeDescriptorContextImpl internal class.
5043         
5044         * GridEntry.cs:
5045         - this class needs to implement ITypeDescriptorContext, as it's
5046         what MS's PropertyDescriptorGridEntry does, which means we can
5047         remove the ITypeDescriptorContextImpl internal class from
5048         PropertyGrid.cs.  This fixes the crashing portion of bug #79829.
5049
5050         - keep a reference to our PropertyGridView, and move the call to
5051         RedrawBelowItemOnExpansion here from PGV.  This means
5052         programmaticly setting Expanded actually does something visible.
5053
5054         - add a CanResetValue() function which takes into account our
5055         possibly multiple "selected_objects" in the merged case.  Shifting
5056         PropertyGridView to use this method fixes another unreported
5057         crasher found running the test for #79829.
5058
5059         - when Top or Bounds is updated, make sure the PropertyGridTextBox
5060         is updated to reflect this.
5061
5062         * CategoryGridEntry.cs: the ctor takes the PGV now.
5063         
5064 2006-11-06  Jackson Harper  <jackson@ximian.com>
5065
5066         * TextControl.cs: These are 1 based.
5067         * TextBoxBase.cs: When setting the selected text, don't change the
5068         selected text tags, this is done by ReplaceText, just position the
5069         cursor at the end of the new text.
5070
5071 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
5072
5073         * ListView.cs: Allow label edit only when, when LabelEdit is
5074           set to true.
5075
5076 2006-11-06  Jackson Harper  <jackson@ximian.com>
5077
5078         * TextControl.cs: If a suitable wrapping position isn't found,
5079         just wrap right in the middle of a word.
5080
5081 2006-11-06  Alexander Olk  <alex.olk@googlemail.com>
5082
5083         * ListView.cs, ListViewItem.cs: Implement LabelEdit. Fixes
5084           bug #79820.
5085
5086 2006-11-06  Jackson Harper  <jackson@ximian.com>
5087
5088         * TreeView.cs: Can't use the VisibleCount property when setting
5089         scrollbar heights, because this doesn't take into account whether
5090         or not the horz scrollbar just came visible.
5091
5092 2006-11-05  Everaldo Canuto  <everaldo@simios.org>
5093
5094         * MenuAPI.cs: Deactivate menu on mouse up when menus it is already
5095         activated.  Fixes #79369, #79832.
5096
5097 2006-11-05  Alexander Olk  <alex.olk@googlemail.com>
5098
5099         * FileDialog.cs: *sigh* Because of recent runtime changes (r67043) I
5100           had to remove support for links that point to a directory. FileInfo
5101           returns no usefull information (means, the directory they point to)
5102           for such links. Replaced some empty string ("") with String.Empty.
5103
5104 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5105
5106         * TreeNodeCollection.cs: To match MS, in 1.0 profile throw 
5107         NullReferenceException when attempting to remove node that is not in
5108         collection. Throw NullReferenceException when null is passed to 
5109         Remove. Allow first element of the collection to be removed. Fixes
5110         bug #79831.  In GetEnumerator ().Current return null if positioned 
5111         before the first element of the collection. In GetEnumerator ().Reset,
5112         position before first element of the collection.
5113
5114 2006-11-04  Gert Driesen  <drieseng@users.sourceforge.net>
5115
5116         * PropertyGrid.cs: To match MS, remove default title and description
5117         for panel. Fixed tooltips for Categorized and Alphabetic toolbar
5118         buttons.
5119
5120 2006-11-04  Chris Toshok  <toshok@ximian.com>
5121
5122         * Theme.cs: add a Clamp method, just for kicks.
5123
5124         * ThemeWin32Classic.cs: clamp all color components to [0..255].
5125
5126 2006-11-04  Chris Toshok  <toshok@ximian.com>
5127
5128         * Form.cs: if the form isn't visible, Close() does nothing.
5129
5130 2006-11-03  Chris Toshok  <toshok@ximian.com>
5131
5132         * Form.cs (Close): if the form is modal, don't Dispose of it, only
5133         Hide it.
5134         (WndProc): don't Dispose after handling the WM_CLOSE message.
5135
5136         * Application.cs (RunLoop): toplevels is a list of Forms, so treat
5137         them as such, instead of using casts from Control to Form.  Also,
5138         don't Dispose of the modal dialog when we fall out of the loop -
5139         Close() it instead.
5140
5141         fixes bug #79813.
5142
5143 2006-11-03  Chris Toshok  <toshok@ximian.com>
5144
5145         * Control.cs (Dispose): only go through the dispose thing if we're
5146         @disposing, and we haven't already been disposed.  Fixes bug
5147         #79814.
5148
5149         * Form.cs: no reason to call "base.Dispose()" here instead of
5150         "Dispose()".
5151
5152 2006-11-03  Mike Kestner  <mkestner@novell.com>
5153
5154         * ComboBox.cs : use ToString instead of casts in AddItem for
5155         sorting functionality.  Fixes #79812.
5156
5157 2006-11-03  Chris Toshok  <toshok@ximian.com>
5158
5159         * Application.cs: pave the way for actually using the thread
5160         exception dialog.  it's ifdefed out at the moment.
5161
5162 2006-11-03  Chris Toshok  <toshok@ximian.com>
5163
5164         * ThreadExceptionDialog.cs: until we get a better layout, actually
5165         hide the details textbox and label when we shouldn't see them.
5166
5167 2006-11-03  Jackson Harper  <jackson@ximian.com>
5168
5169         * TextBoxBase.cs: Don't bail from the scrollbar calcs for non
5170         multiline textboxes anymore.  This method also determines the
5171         width/height of a textboxes canvas area.
5172         - Sorta a revert of the last patch.  For multiline just position
5173         the controls, then bail.  This way the scrollbar width won't be
5174         altered.
5175
5176 2006-11-03  Everaldo Canuto  <everaldo@simios.org>
5177
5178         * ThemeWin32Classic.cs: Dont paint inner lines of 3D border when
5179         it dont need.  Fixes #79537.
5180
5181 2006-11-02  Jackson Harper  <jackson@ximian.com>
5182
5183         * X11Dnd.cs: We always allow copy, since XDND implies Copy.  Also
5184         send the status after firing the DndOver event.
5185
5186 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5187
5188         * TrackBar.cs: Now orientation only switches height / width if
5189         the control's handle is created (Win32 does it like this). Also 
5190         fixed a typo in ToString() for a test to pass, changed the 
5191         exception thrown in set_LargeChange and set_SmallChange to 
5192         match Win32 behaviour, and added TrackBar tests to the unit 
5193         tests.
5194
5195 2006-11-02  Chris Toshok  <toshok@ximian.com>
5196
5197         * XplatUIX11.cs: the atom we want is _NET_WM_STATE_SKIP_TASKBAR,
5198         not _NET_WM_STATE_NO_TASKBAR.
5199
5200 2006-11-02  Jackson Harper  <jackson@ximian.com>
5201
5202         * TextControl.cs: Increment count by one, since in the update view
5203         count - 1 is used.
5204
5205 2006-11-02  Jackson Harper  <jackson@ximian.com>
5206
5207         * TextBoxBase.cs: Use client rectangle not bounds for checking if
5208         the mouse is in the client rectangle (duh).
5209
5210 2006-11-02  Rolf Bjarne Kvinge  <RKvinge@novell.com>
5211         
5212         * TrackBar.cs: Fixed trackbar jumping around when clicking
5213         on it - the trackbar was not detecting correctly at which
5214         side of the thumb the click was done. (fixes #79718)
5215
5216 2006-11-02  Everaldo Canuto  <everaldo@simios.org>
5217
5218         * ListBox.cs: scroll visible area when change SelectedIndex to
5219         a non visible area.  Fixes #79481.
5220
5221 2006-11-01  Jackson Harper  <jackson@ximian.com>
5222
5223         * TextControl.cs: When replacing the selection move the selection
5224         start/end/anchor to the end of the new text.
5225
5226 2006-11-01  Jackson Harper  <jackson@ximian.com>
5227
5228         * XplatUIWin32.cs: When setting the parent change the controls
5229         visibility to it's visibility flag, not to it's old parents
5230         visibility (.Visible walks the parent chain).
5231
5232 2006-11-01  Chris Toshok  <toshok@ximian.com>
5233
5234         * XplatUIX11.cs: revert the #79790 fix, as the simple.
5235         XSetTransientForHint fix breaks paint .net's tool windows.  more
5236         work needed for that one.
5237
5238 2006-11-01  Chris Toshok  <toshok@ximian.com>
5239
5240         * ScrollBar.cs: throw ArgumentException instead of Exception in
5241         LargeChange/SmallChange setters.  fixes unit tests.
5242
5243 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
5244
5245         * ContainerControl.cs: reverted rev.67183 (which was itself
5246         a reversion of rev.66853... eh).
5247         
5248         * Control.cs: Fixes Reflector hang by changing Focus() call
5249         to what it was before rev.66643 (calling Select() here sets 
5250         ActiveControl, which in some situations calls back Focus and 
5251         eventually does a stack overflow). Temp fix.    
5252         Changes to GetNextControl() to not look for children to select when
5253         parent cannot be selectable (so it looks for siblings instead)  
5254         
5255 2006-10-31  Mike Kestner  <mkestner@novell.com>
5256
5257         * CheckedListBox.cs : off by one error in returned index from
5258         ObjectCollection.Add.  Fixes #79758.
5259
5260 2006-10-31  Chris Toshok  <toshok@ximian.com>
5261
5262         * UpDownBase.cs: remove the OnGotFocusInternal/OnLostFocusInternal
5263         calls for the textbox/spinner, to keep from recursing to the point
5264         where we crash.  Fixes #79760.
5265
5266 2006-10-31  Chris Toshok  <toshok@ximian.com>
5267
5268         * ListControl.cs (set_SelectedValue): don't throw exceptions on
5269         null/"" value, just return.  matches ms's behavior and fixes some
5270         failing tests.
5271
5272 2006-10-31  Chris Toshok  <toshok@ximian.com>
5273
5274         * Control.cs (set_Capture): make a logic a little easier to
5275         follow.
5276
5277         * XplatUIX11.cs (CleanupCachedWindows): zero out the Grab window
5278         if it's being destroyed.  A necessary fix surely, but a bandaid
5279         also, to fix the stuck capture problem in bug #78413.
5280
5281 2006-10-31  Chris Toshok  <toshok@ximian.com>
5282
5283         * XplatUIX11.cs: fix a couple of compiler warnings, and follow the
5284         convention of clearing hwnd.ClientRect when we set the
5285         width/height (so it'll be recalculated by Hwnd).
5286
5287 2006-10-31      Andreia Gaita <shana.ufie@gmail.com>
5288
5289         * ContainerControl.cs: reversed Contains check from
5290         ActiveControl due to hanging problems. This fix
5291         partly regresses #79667 (button does not have
5292         initial focus), so this might be a symptom for 
5293         a larger parenting problem (set_ActiveControl
5294         is being called but the child control does
5295         not have the parent set yet?)   
5296         
5297 2006-10-31  Mike Kestner  <mkestner@novell.com>
5298
5299         * MenuAPI.cs : fix keynav when menu is click activated.
5300
5301 2006-10-31  Jonathan Pobst  <monkey@jpobst.com>
5302
5303         * ToolStrip*: Version 0.2.
5304
5305         * MenuStrip.cs: Version 0.1.
5306
5307         * Form.cs: Add a 2.0 MenuStrip tracker like the 1.1 Menu one.
5308
5309 2006-10-30  Chris Toshok  <toshok@ximian.com>
5310
5311         [ fixes the oversized notify icon issue in bug #79745 ]
5312         
5313         * NotifyIcon.cs: scale the icon down to the size we're given by
5314         the XplatUI layer (this would be faster if we did it once instead
5315         of whenever we paint..)  Also, remove the WM_NCPAINT handling,
5316         since it's never invoked.
5317
5318         * XplatUIX11.cs: the gnome and kde systrays use icons that are 24
5319         pixels high by default, so let's hardcode our systray icon to that
5320         size.  The SYSTEM_TRAY protocol should really have a way for
5321         client apps to query for the correct icon size.. but oh well.  A
5322         couple of patches to deal with the screwy client_window ==
5323         whole_window notifyicon stuff (we don't want to PerformNCCalc, for
5324         instance, and also make sure we don't XSelectInput twice).
5325
5326 2006-10-30  Chris Toshok  <toshok@ximian.com>
5327
5328         * Control.cs: ugh, the unit test fix (CH11, yesterday) breaks when
5329         recreating forms.  Control recreation is the bane of my existence.
5330         Fix it in a way that keeps everyone happy.
5331
5332 2006-10-30  Chris Toshok  <toshok@ximian.com>
5333
5334         * XplatUIX11.cs: use StructureNotifyMask on all whole_windows, not
5335         just non-CHILD ones.  otherwise sometimes scrollbars end up with
5336         client_windows not being resized to the proper size (ReportBuilder
5337         shows this extremely well).
5338
5339 2006-10-30  Chris Toshok  <toshok@ximian.com>
5340
5341         * XplatUIX11.cs (SetWMStyles): reinstate the XSetTransientForHint
5342         for non-WS_EX_APPWINDOW windows.  This is what keeps them from
5343         showing up in the gnome taskbar.  Fixes bug #79790.
5344
5345 2006-10-30  Chris Toshok  <toshok@ximian.com>
5346
5347         * ApplicationContext.cs: guard against a NRE.
5348
5349         * Application.cs: null out the old MainForm for the context, so we
5350         don't try to use it again once it's disposed.  Fixes bug #79783.
5351
5352 2006-10-30  Chris Toshok  <toshok@ximian.com>
5353
5354         * DataGrid.cs (set_DataSource, set_DataMember): if we have a
5355         BindingContext, set the data source directly, otherwise do the
5356         lazy approach - the actual ListManager will be created when we get
5357         a BindingContext. Fixes bug #79700.
5358
5359 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5360
5361         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
5362           XplatUIX11.cs: Remove old 2 parameter SetVisible.
5363
5364         * Control.cs: Use the new 3 parameter SetVisible with activate = true.
5365
5366 2006-10-30  Jonathan Pobst  <monkey@jpobst.com>
5367
5368         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Add an overload
5369         of SetVisible that allows a window to be shown, but not activated.
5370         This is needed on Windows for MenuStrip, and can probably be used
5371         with MainMenu and ComboBox to fix the focus stealing issues on
5372         Windows.
5373
5374         * XplatUIOSX.cs, XplatUIX11.cs: Not needed, call existing SetVisible.
5375
5376 2006-10-30  Alexander Olk  <alex.olk@googlemail.com>
5377
5378         * PictureBox.cs: Fix the output of the ToString method.
5379
5380 2006-10-29  Chris Toshok  <toshok@ximian.com>
5381
5382         * Control.cs (get_TopLevelControl): fix bug #79781.
5383
5384 2006-10-29  Chris Toshok  <toshok@ximian.com>
5385
5386         * ListControl.cs (set_DataSource): throw Exception here, not
5387         ArgumentException, to match MS behavior.
5388
5389 2006-10-29  Chris Toshok  <toshok@ximian.com>
5390
5391         * Form.cs: remove the try-catch's around calls to GetWindowState.
5392         We can just check the return value.
5393
5394         * XplatUIX11.cs: don't throw exceptions from GetWindowState.
5395         Instead return -1.
5396
5397         * XplatUI.cs: Add note about additional return value for
5398         GetWindowState.
5399
5400 2006-10-29  Chris Toshok  <toshok@ximian.com>
5401
5402         * Control.cs (CreateHandle): when we create our handle, we also
5403         create the handles of our child controls.  Fixes one of the
5404         Control unit tests (CH11).
5405
5406 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5407
5408         * MimeIcon.cs: If a gnome icon doesn't exist add a default icon.
5409
5410 2006-10-28  Alexander Olk  <alex.olk@googlemail.com>
5411
5412         * ThemeClearlooks.cs: A little speedup.
5413
5414 2006-10-27  Chris Toshok  <toshok@ximian.com>
5415
5416         * Control.cs: implement Control.FromChildHandle in a way that
5417         matches the docs (and fixes the failed test.)
5418
5419 2006-10-27  Chris Toshok  <toshok@ximian.com>
5420
5421         * DataGridTableStyle.cs: reproduce buggy MS behavior (with
5422         comments).
5423
5424         * DataGrid.cs: implement ResetForeColor such that the tests
5425         succeed.
5426         
5427 2006-10-27  Chris Toshok  <toshok@ximian.com>
5428
5429         * ToolBarButton.cs: setting text/tooltiptext to null results in it
5430         being set to "".  Fixes bug #79759.
5431
5432 2006-10-27  Jackson Harper  <jackson@ximian.com>
5433
5434         * TextControl.cs: We need to clear the entire selection area when
5435         setting the start, otherwise multiline selections are still
5436         visible.
5437
5438 2006-10-26  Chris Toshok  <toshok@ximian.com>
5439
5440         * PropertyGridView.cs: 
5441
5442         - ifdef all the code specific to the double
5443         buffer case, and provide some alternatives in the non-doublebuffer
5444         code, which makes heavy use of XplatUI.ScrollWindow to move things
5445         around without having to invalidate (and cause flicker).  There
5446         are still some drawing problems in the non-doublebuffered case, so
5447         DOUBLEBUFFER is defined by default.
5448
5449         - Fix the way dropdowns are handled.  now we explicitly watch for
5450         the events which might cause the dropdown to close, and break out
5451         of the nested event loop there.  This gets rid of all Capture
5452         code, at the expense of the Msg special casing.  Seems to work,
5453         though, and fixes bug #79743.
5454
5455 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
5456         * Control.cs: SetIsRecreating now recreates implicitly added
5457         child controls as well. Finally fixes #79629. The flag passed to 
5458         SetIsRecreating has also been removed since it wasn't used.
5459         
5460 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
5461
5462         * PageSetupDialog.cs: Clean some code, fix some bits, 
5463         add some checks, and add a printer sub-dialog.
5464
5465 2006-10-26  Chris Toshok  <toshok@ximian.com>
5466
5467         * PropertyGrid.cs: make set_SelectedObject call
5468         set_SelectedObjects, and move the duplicate logic to the
5469         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
5470
5471         * PropertyGridView.cs: hide the textbox when we get a
5472         SelectedObjectsChanged event.
5473
5474         Fixes bug #79748.
5475
5476 2006-10-26  Chris Toshok  <toshok@ximian.com>
5477
5478         * PropertyGridView.cs: deal with the type converter not supporting
5479         GetStandardValues() or GetStandardValues() returning null, which
5480         is does in the default case.  Fixes #79742.
5481
5482 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5483
5484         * CheckedListBox.cs: nunit no longer crashes when selecting 
5485         Project/Edit menu option
5486         
5487 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
5488
5489         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
5490         is no menu selected. fixes #79739
5491
5492 2006-10-25  Chris Toshok  <toshok@ximian.com>
5493
5494         * PropertyGridView.cs: factor out the splitter invalidation code
5495         into the SplitterPercent setter, and for kicks implement the
5496         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
5497         amount in either direction.
5498
5499 2006-10-25  Chris Toshok  <toshok@ximian.com>
5500
5501         * PropertyGridView.cs: do some cleanup of the brush used to draw
5502         text - read only fields should be grayed out.  not sure how to do
5503         this with the textbox, though.  but the textbox's should also be
5504         readonly now at least.  Also, hide/show the textbox when resizing
5505         the control.
5506         
5507         * CursorConverter.cs: use System.Reflection when getting the
5508         properties of Cursors, as TypeDescriptor.GetProperties isn't
5509         returning static properties.
5510
5511 2006-10-25  Chris Toshok  <toshok@ximian.com>
5512
5513         * PropertyGridView.cs: factor out the up/down handling, and reuse
5514         it for page up/down.  also add End/Home support.
5515
5516 2006-10-25  Chris Toshok  <toshok@ximian.com>
5517
5518         * PropertyGridView.cs:
5519
5520         - ensure the selected grid item is visible in the scrolled area,
5521         fixes bug #79572.
5522
5523         - fix Keys.Down handling when you're on the last item in the
5524         propertygrid.
5525
5526 2006-10-25  Mike Kestner  <mkestner@novell.com>
5527
5528         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
5529         clicks too.  Fixes #79725.
5530
5531 2006-10-24  Chris Toshok  <toshok@ximian.com>
5532
5533         * PropertyGrid.cs: use property.Converter instead of
5534         TypeDescriptor.GetConverter(property.PropertyType), so we catch
5535         TypeConverters declared on the property as well as on the
5536         PropertyType.  Fixes bug #79678.
5537
5538 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
5539
5540         * MimeIcon.cs, Mime.cs:
5541           Fallback to the default platform handler if no shared mime info
5542           stuff exists (fixes #79693).
5543
5544 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5545         * ContainerControl.cs: Incorrect contains check in ActiveControl 
5546         from previous fix (duh).
5547
5548 2006-10-20  Chris Toshok  <toshok@ximian.com>
5549
5550         * PropertyGridView.cs: the dropdown should be MIN(number of items
5551         in list, 15).  Fixes #79551.
5552
5553 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
5554         Fixes #79384, #79394, #79652, #79667
5555         * Application.cs: 
5556         
5557         - Modal windows are now destroyed in the proper order for windows
5558         
5559         * ContainerControl.cs:
5560         
5561         - ActiveControl setter has more conditions on when to return:
5562                 - if we're reselecting the active control, but it actually
5563                 didn't have focus (window hidden or some such), it runs
5564                 - if the active control being selected doesn't actually 
5565                 exist in the container, it returns
5566         
5567         * Form.cs
5568         
5569         - The ShowDialog now gets the current form as the owner when
5570         invoking without parameters, and correctly activates the owner 
5571         when returning
5572         
5573         * MessageBox.cs
5574         
5575         - MessageBox now catches the Escape key to exit
5576
5577 2006-10-20  Chris Toshok  <toshok@ximian.com>
5578
5579         * PropertyGridView.cs: fix a number of issues (bug #78565, and
5580         most of bug #79676):
5581
5582         - you can navigate around the property grid with the arrow keys.
5583
5584         - the dropdown is sized properly when the pg has a vertical
5585         scrollbar.
5586
5587         - fix the indentation for subentries, and properly select the
5588         entire label rect.
5589
5590         - fix the gray bar's drawing (only draw it to the last element,
5591         not for the height of the control.  Also make sure we draw that
5592         last horizontal grid line.
5593
5594         - use the same mechanism the datagrid uses wrt the editing textbox
5595         when scrolling/resizing/etc.  Namely, we hide it first, do the
5596         operation, then show it again (if it's still visible).
5597         
5598         - aggressively remove a lot of unnecessary refreshes (and also
5599         calls to Invalidate(). call more limited variants, and only redraw
5600         what we need.)
5601         
5602         * PropertyGrid.cs:
5603
5604         - when we're populating the merged collection, fill in the UI
5605         parent with either the passed in item, or the category item we
5606         create.
5607
5608         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
5609
5610         * GridItem.cs: drop some fully qualified names.
5611         
5612         * GridEntry.cs: add a "UIParent", which is basically the parent
5613         treenode.
5614
5615         * GridItemCollection.cs: add an IndexOf method.
5616
5617 2006-10-20  Mike Kestner  <mkestner@novell.com>
5618
5619         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
5620         a working win32 NC invalidation mechanism, we can't invalidate
5621         menus.  [Fixes #79705]
5622
5623 2006-10-20  Mike Kestner  <mkestner@novell.com>
5624
5625         * ListBox.cs : don't update the VScrollbar if the list is empty,
5626         just hide it.  [Fixes #79692]
5627
5628 2006-10-20  Jackson Harper  <jackson@ximian.com>
5629
5630         * RichTextBox.cs: Handle some special chars better, and don't skip
5631         the entire group when we encounter a special char that we don't
5632         handle correctly.
5633
5634 2006-10-18  Chris Toshok  <toshok@ximian.com>
5635
5636         * PropertyGridView.cs: address a number of issues from bug #79676,
5637         mostly of the cosmetic variety.
5638
5639         - The highlight rectangle for indented items not extends all the
5640         way to the left.
5641
5642         - Indented items aren't indented so much.
5643
5644         - the dropdown is properly sized width-wise if the pg has a
5645         vertical scrollbar.
5646
5647 2006-10-18  Chris Toshok  <toshok@ximian.com>
5648
5649         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
5650         systray stuff is rather convoluted to begin with.
5651
5652         systray icons are a single window for some reason (that I haven't
5653         figured out yet), and for them, client_window == whole_window.
5654         Given the way the tests are structured elsewhere to determine
5655         which paints are pending (client vs. nc), that situation will
5656         always yield PAINT, not NCPAINT.  So, if we have a pending
5657         nc_expose and no pending expose, remove the hwnd from the paint
5658         queue, and also set nc_expose_pending to false, to keep us from
5659         blocking further expose's adding the hwnd to the paint queue.
5660
5661         phew.  like i said, a rather convoluted change.  Fixes the
5662         notifyicon repaint issues in bug #79645.
5663
5664 2006-10-18  Chris Toshok  <toshok@ximian.com>
5665
5666         * Form.cs: when getting the backcolor of the form, don't get
5667         base.BackColor, as this allows parents to influence the background
5668         color.  This breaks mdi forms.  Instead, if the background_color
5669         is empty, return the default.
5670
5671 2006-10-18  Chris Toshok  <toshok@ximian.com>
5672
5673         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
5674         to being private instead of internal static.
5675
5676         * Control.cs: remove all the stupid ParentWaitingOnRecreation
5677         crap, it wasn't working for more deeply nested controls anyway,
5678         and we already have the is_recreating flag - use that instead.
5679         Before calling DestroyHandle in RecreateHandle, recurse through
5680         the control tree setting it to true.  this returns the recreate
5681         code to much of its original simplicity, while now guaranteeing we
5682         actually recreate everything we're supposed to.  This change gets
5683         fyireporting actually showing mdi children.
5684
5685 2006-10-17  Chris Toshok  <toshok@ximian.com>
5686
5687         * Form.cs: remove some debug spew, and collapse some duplicate
5688         code at the end of SetClientSizeCore.
5689
5690         * XplatUIX11.cs: 
5691         - add some more debug spew here too wrt Destroy handling.
5692         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
5693         in Control's handling of WM_DESTROY.
5694         - Remove the handling of zombie window DestroyNotifies from the
5695         event loop - we don't need it.  Now the only DestroyNotifies we
5696         actually handle are ones generated by X.
5697         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
5698         match gtk's (functioning) handling of this. This keep metacity
5699         from leaving droppings in the form of wm borders with no window
5700         contents all over the place.
5701
5702         * Control.cs:
5703         - add a bunch of debug spew wrt control recreation.
5704         - fix a bug where we weren't tracking Visible properly on
5705         recreated hwnds.
5706         - fixed the WM_PAINT double buffer handling to support re-entrant
5707         calls (yes, i know it's gross, but it's happening to us).
5708
5709 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5710         * ThemeWin32Classic.cs: changed drawing of selected days
5711         to make them look better.
5712
5713 2006-10-16  Chris Toshok  <toshok@ximian.com>
5714
5715         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
5716         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
5717
5718         * XplatUIX11.cs: move away from using hwnd.client_dc and
5719         hwnd.non_client_dc and on to a stack of dc's (and in window's
5720         case, PAINTSTRUCT's), so we can deal with nested Paint calls
5721         without puking or not disposing of Graphics objects.
5722
5723         * XplatUIOSX.cs: same.
5724
5725         * XplatUIWin32.cs: same.
5726
5727 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
5728
5729         * FileDialog.cs: Don't call on_directory_changed inside
5730           OnSelectedIndexChanged (it changes the SelectedIndex too).
5731           Instead move it to OnSelectionChangeCommitted.
5732
5733 2006-10-13  Chris Toshok  <toshok@ximian.com>
5734
5735         * XplatUIX11.cs: more Destroy work.  the current code does the
5736         following things, in order:
5737
5738         1. Enumerates all handles of all controls at or below the one
5739         being destroyed, in pre-order.  As it is doing this, it marks the
5740         handles as zombie and clears all references to them.
5741         
5742         2. calls XDestroyWindow on the window passed in.
5743
5744         3. SendMessage's WM_DESTROY to all he handles in the accumulated
5745         list.
5746
5747 2006-10-13  Chris Toshok  <toshok@ximian.com>
5748
5749         * XplatUIX11.cs: set hwnd.zombie to true before calling
5750         SendMessage (WM_DESTROY).  this keeps us from marking the new
5751         window a zombie, and also keeps us from calling sendmessage at
5752         all.
5753
5754 2006-10-13  Jackson Harper  <jackson@ximian.com>
5755
5756         * TextControl.cs: Do not show the caret and selection at the same
5757         time.  Reduces ugliness by 35%.
5758
5759 2006-10-13  Chris Toshok  <toshok@ximian.com>
5760
5761         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
5762         zombie after we do the recursive call, so we actually do call
5763         SendMessage on the children controls.
5764         (GetMessage): if we find a pending paint event for a zombie hwnd,
5765         remove the hwnd from the paint queue, or else it will always be
5766         there (and we'll effectively loop infinitely)
5767
5768 2006-10-13  Mike Kestner  <mkestner@novell.com>
5769
5770         * MenuItem.cs : add Selected format under keynav too.
5771         Fixes #79528.
5772
5773 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
5774
5775         * PropertyGrid.cs: Fixed some NRE's and small difference between our
5776         implementation and that of MS.
5777
5778 2006-10-13  Chris Toshok  <toshok@ximian.com>
5779
5780         * Control.cs (OnInvalidated) only futz with the invalid_region if
5781         the control is double buffered.  this fixes the apparent hang in
5782         the ListView unit tests.  Someone needs to make the
5783         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
5784
5785 2006-10-13  Chris Toshok  <toshok@ximian.com>
5786
5787         * PropertyGridView.cs:
5788
5789         - do a little refactoring so that only one place calls
5790         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
5791         else call that.  Also make it Refresh, since there are redraw bugs
5792         otherwise (we should take a look at that...)
5793
5794         - do a little more refactoring work to share the body of code
5795         involved with the drop down.  it was duplicated in the code
5796         dealing with the listbox handling and in the code dealing with the
5797         UITypeEditors.
5798
5799         - add a Capture to the dropdown form's control once it's
5800         displayed, and add a MouseDown handler that checks to make sure
5801         the position is inside the control.  If it's not, close the
5802         dropdown.  This fixes #78190.
5803
5804         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
5805         if the value is different than the initial value.
5806         
5807 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
5808
5809         * Control.cs: see #78650
5810         - Fixed GetNextControl for several cases:
5811                 - Changed FindFlatForward to return 
5812                 correct sibling control when more than one
5813                 control has same TabIndex as the currently 
5814                 focused one.
5815                 - Changed FindFlatBackward to loop children
5816                 from last to first and apply same logic as in
5817                 FindFlatForward
5818                 - Changed FindControlForward to search for
5819                 children when control is not a container
5820                 but has children, or search for siblings if
5821                 control is a container...
5822                 - Changed FindControlBackward   to continue
5823                 searching for child controls when hitting 
5824                 Panel-like parents
5825                 
5826         - Fixed Focus method to update ActiveControl
5827         (FocusTest.FocusSetsActive failure)
5828         
5829         * TabControl.cs:
5830         - Focus rectangle now refreshes when gaining
5831         or losing focus
5832         - Removed grab for Tab key on IsInputKey that 
5833         was keeping tab navigation from working (#78650)
5834
5835 2006-10-13  Chris Toshok  <toshok@ximian.com>
5836
5837         * PropertyGridView.cs:
5838         - Rewrite SetPropertyValue to loop over SelectedGridItem's
5839         SelectedObjects.
5840
5841         - Deal with GridItem.Value == null a few places.
5842
5843         * PropertyGrid.cs: 
5844         - replace the PopulateGridItemCollection with a pair of methods
5845         which compute the intersection of all the properties in the
5846         SelectedObjects array.  Fixes #79615.
5847
5848         - Throw ArgumentException from set_SelectedObjects if there's a
5849         null in the array.
5850
5851         - Add GetTarget method which can be used to traverse up the
5852         GridItem.Parent chain.  It depends on the assumption that
5853         selected_objects for different GridEntries are always in the same
5854         order (a safe assumption).  Use this method and loop over all the
5855         selected objects in the entry when calling RemoveValueChanged and
5856         AddValueChanged.
5857         
5858         * GridEntry.cs: Make this handle multiple selected objects.
5859         .Value returns null if not all the selected objects share the same
5860         value.
5861
5862 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
5863         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
5864           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
5865           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
5866           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
5867           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
5868         add additional functionality.
5869
5870 2006-10-12  Mike Kestner  <mkestner@novell.com>
5871
5872         * ErrorProvider.cs : new ToolTipWindow ctor sig.
5873         * HelpProvider.cs : new ToolTipWindow ctor sig.
5874         * ToolTip.cs : remove ToolTip param from Window sig since it is
5875         not used.
5876         * ToolBar.cs : add tooltip support.  Fixes #79565.
5877
5878 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5879
5880         * ComboBox.cs: move the events in set_SelectedIndex to 
5881         after the call to HighlightIndex in order to avoid 
5882         possible recursion and subsequent problems with the call
5883         to HighlightIndex and include a range check in 
5884         set_HighlightIndex. Fixes #79588
5885         
5886 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5887
5888         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
5889         to ui thread's settings instead of sunday. 
5890         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
5891
5892 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
5893
5894         * DateTimePicker.cs
5895         * MonthCalendar.cs
5896         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
5897         and implement missing functionality (selecting different parts 
5898         of the date and edit them individually with the keyboard).
5899         
5900 2006-10-11  Chris Toshok  <toshok@ximian.com>
5901
5902         * Control.cs (OnInvalidated): fix NRE relating to last change.
5903
5904 2006-10-11  Chris Toshok  <toshok@ximian.com>
5905
5906         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
5907         atoms in _NET_WM_STATE here if the window is maximized.  We need
5908         to do this because we're *replacing* the existing _NET_WM_STATE
5909         property, so those atoms will be lost otherwise, and any further
5910         call to GetWindowState will return Normal for a window which is
5911         actually maximized.  Fixes #79338.
5912
5913 2006-10-11  Jackson Harper  <jackson@ximian.com>
5914
5915         * TextControl.cs: Special case for setting selection end to
5916         selection start, we basically kill the anchor.
5917         - some todo comments.
5918
5919 2006-10-11  Chris Toshok  <toshok@ximian.com>
5920
5921         * Control.cs: switch to using an "invalid_region" to track which
5922         parts of the image buffer need updating.  This is more code than
5923         the simple fix from r66532.  That version just attempted to always
5924         fill the entire buffer on redraw, which turns out to be
5925         inefficient when invalidating small rectangles.  This version
5926         simply adds the invalid rectangle to the invalid region.  When we
5927         get any WM_PAINT message we see if it can be filled using the
5928         image buffer, and if it can't (if the paint event's clip rectangle
5929         is visible in the invalid region) we first fill the image buffer.
5930         So, the image buffer is still a cache, we just fill it lazily.
5931
5932         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
5933         need it any longer.
5934
5935 2006-10-11  Chris Toshok  <toshok@ximian.com>
5936
5937         * XplatUIX11.cs (SetWindowPos): we need to update both position as
5938         well as size after calling XMoveResizeWindow.  This keeps us from
5939         ignoring future SetWindowPos calls.  Fixes the disappearing
5940         DateTimePicker in the ToolBarDockExample from bug #72499.
5941
5942 2006-10-11  Chris Toshok  <toshok@ximian.com>
5943
5944         * TextBoxBase.cs: reorder things a bit when it comes to
5945         resizing-causing-recalculation.  we were recalculating the
5946         document when our position was changed, which shouldn't happen.
5947         We only care about size changes.  Clear up some more redundant
5948         recalculation calls while I'm at it.  This makes the toolbar dock
5949         example snappy when you're just dragging toolbars around (since it
5950         causes a relayout whenever you move one.)
5951
5952 2006-10-11  Chris Toshok  <toshok@ximian.com>
5953
5954         * ToolBarButton.cs (get_Rectangle): this only returns
5955         Rectangle.Empty if Visible == false, or Parent == null.
5956         Parent.Visible doesn't matter.
5957
5958 2006-10-10  Chris Toshok  <toshok@ximian.com>
5959
5960         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
5961         by .net 1.1, so switch to an internal method instead.
5962
5963 2006-10-10  Chris Toshok  <toshok@ximian.com>
5964
5965         * Control.cs (WM_PAINT): when a control is double buffered we draw
5966         initially to the ImageBuffer and then copy from there.  But when a
5967         parent control which has child controls is double buffered, the
5968         initial drawing doesn't encompass the entire ClientRectangle of
5969         the parent control, so we end up with uninitialized bits (this is
5970         easily seen by dragging the top toolbar in
5971         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
5972         manually set the ClipRectangle of the paint_event (only the one we
5973         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
5974         of the nastiness in bug #72499.
5975
5976         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
5977         which we use in Control.cs's WM_PAINT handling.
5978
5979 2006-10-10  Jackson Harper  <jackson@ximian.com>
5980
5981         * TextBoxBase.cs: Finish off the autoscrolling stuff.
5982
5983 2006-10-10  Chris Toshok  <toshok@ximian.com>
5984
5985         * Cursor.cs: Apply a slightly different patch to the one suggested
5986         in #79609.
5987
5988 2006-10-10  Jackson Harper  <jackson@ximian.com>
5989
5990         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
5991         not the parent form.
5992         * TextControl.cs: use difference in old line count vs new count to
5993         calculate how many lines were added, this takes into account soft
5994         line breaks properly.
5995
5996 2006-10-10  Chris Toshok  <toshok@ximian.com>
5997
5998         * LinkLabel.cs: don't call MeasureCharacterRanges against a
5999         rectangle located at 0,0 and the size of the text.  Use
6000         ClientRectangle instead.  This fixes rendering of non-left aligned
6001         link labels.
6002
6003 2006-10-10  Jackson Harper  <jackson@ximian.com>
6004
6005         * TextBoxBase.cs: When we set the selection start position the
6006         caret.
6007         * TextControl.cs: Need to update the caret when we decrement it to
6008         zero.
6009         - Make sure that the selection_visible flag gets reset to false if
6010         the selection isn't visible.  Before this you could get it set to
6011         visible by changing the selection start, then changing the end to
6012         equal the start.
6013
6014 2006-10-09  Jackson Harper  <jackson@ximian.com>
6015
6016         * TreeView.cs: Don't update scrollbars when we aren't visible.
6017         * TreeNodeCollection.cs: Only need to update scrollbars if being
6018         added to an expanded visible node or the root node.
6019
6020 2006-10-09  Chris Toshok  <toshok@ximian.com>
6021
6022         * XplatUIX11.cs (SendMessage): fix NRE.
6023
6024 2006-10-09  Jackson Harper  <jackson@ximian.com>
6025
6026         * TextBoxBase.cs: Implement horizontal autoscrolling.
6027         * TextControl.cs: Add a movement types that allows moving forward
6028         and backwards without wrapping.
6029
6030 2006-10-09  Mike Kestner  <mkestner@novell.com>
6031
6032         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
6033         with focus "expansion" of labels.  Fixes #79532 and then some.
6034         * ThemeWin32Classic.cs : add LineLimit to ListView label format
6035         when wrapping.
6036
6037 2006-10-09  Jackson Harper  <jackson@ximian.com>
6038
6039         * TextBoxBase.cs: Set the default max values to MaxValue since
6040         we use the scrollbar for autoscrolling and the default value is
6041         100.  If we don't do this the caret won't keep up with typing
6042         after about 18 characters.
6043         * TextControl.cs: Make sure the selection is offset by the
6044         viewport x.  This fixes selection when using auto scrolling.
6045
6046 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
6047         
6048         * Form.cs: The active control should be selected after the 
6049         OnLoad so that any child control initialization that affects
6050         the selection is done. Fixes #79406
6051
6052 2006-10-06  Chris Toshok  <toshok@ximian.com>
6053
6054         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
6055         to have no evil effects.
6056
6057         - Stop selecting StructureNotifyMask on non-toplevel windows.
6058
6059           The only way children should be resized is by using the SWF api,
6060           and we already send WM_WINDOWPOSCHANGED messages in those cases.
6061           Toplevel windows can be interacted with via the window manager,
6062           and so we keep the input mask there.
6063
6064           The other event StructureNotifyMask gives us (that we care
6065           about) is DestroyNotify.  The code is already structured such
6066           that it assumes we won't be getting a DestroyNotify event for
6067           the window we pass to XDestroyWindow (which is what
6068           StructureNotifyMask is supposed to guarantee.)  So, that code
6069           shouldn't be affected by this either.
6070
6071         - Stop selecting VisibilityChangeMask altogether.
6072
6073           We weren't doing anything with the resulting events anyway.
6074         
6075         This vastly reduces the number of X requests and events we see
6076         when resizing/laying out a large ui.
6077
6078 2006-10-06  Chris Toshok  <toshok@ximian.com>
6079
6080         * ScrollableControl.cs (DisplayRectangle): we need to take into
6081         account the DockPadding regardless of whether or not auto_scroll
6082         == true.  rework this slightly to this effect, and fix bug #79606,
6083         and part of #72499 (you can now see the drag handles and drag
6084         toolbars around).
6085
6086 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
6087
6088         * ListViewItem.cs: Collections of selected and checked items are now
6089         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
6090         we mark the collection "dirty".
6091         * ListView.cs: Marked collections readonly. Modified UpdateSelection
6092         to only clear SelectedItems when a new item is selected and MultiSelect
6093         is enabled. CheckedItems and SelectedItems now subscribe to Changed
6094         event of ListViewItemCollection, and mark its list dirty whenever
6095         that event is fire. This allows us to return selected/checked items 
6096         in the same order as they are in the Items collection. This matches
6097         the MS behavior.
6098
6099 2006-10-06  Chris Toshok  <toshok@ximian.com>
6100
6101         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
6102         right mouse clicks.  Fixes bug #79593.
6103
6104 2006-10-06  Chris Toshok  <toshok@ximian.com>
6105
6106         * Splitter.cs: doh, fix splitters that don't want to cancel the
6107         movement when you drag them.  Also, impose the limits on the
6108         values we send to the SplitterMovingEvent.  Fixes #79598.
6109
6110 2006-10-06  Jackson Harper  <jackson@ximian.com>
6111
6112         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
6113         since we use this for auto scrolling also.
6114
6115 2006-10-05  Chris Toshok  <toshok@ximian.com>
6116
6117         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
6118         beginning to think that most datagrid column types don't need this
6119         method.  Fixes bug #79392.
6120
6121 2006-10-05  Chris Toshok  <toshok@ximian.com>
6122
6123         * DataGrid.cs: move back to a more lazy scheme for creating the
6124         CurrencyManager, so we aren't updating it every time you set
6125         either DataSource or DataMember.  Also, don't call
6126         RecreateDataGridRows if the currency manager hasn't changed.
6127
6128 2006-10-05  Chris Toshok  <toshok@ximian.com>
6129
6130         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
6131         emitted, SelectedIndex should already be updated.  Fixes bug
6132         #78929.
6133
6134 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
6135
6136         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
6137           ToolStripTextBox.cs: Initial commit.
6138         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
6139
6140 2006-10-05  Jackson Harper  <jackson@ximian.com>
6141
6142         * TabControl.cs: We need to invalidate the tab control area when
6143         new ones are added (duh).
6144
6145 2006-10-03  Chris Toshok  <toshok@ximian.com>
6146
6147         * Form.cs (ProcessDialogKey): if the focused control is in this
6148         form and is a button, call its PerformClick method here.  Fixes
6149         #79534.
6150
6151 2006-10-04  Jackson Harper  <jackson@ximian.com>
6152
6153         * TabPage.cs: Ignore setting of Visible, and add an internal
6154         method for setting the controls visibility.  TabPage's Visible
6155         property is a little strange on MS, this seems to make us
6156         compatible, and fixes cases where people set all the tab pages to
6157         visible.
6158         * TabControl.cs: Use the new internal setting on tab pages
6159         visibility.
6160
6161 2006-10-03  Mike Kestner  <mkestner@novell.com>
6162
6163         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
6164
6165 2006-10-03  Mike Kestner  <mkestner@novell.com>
6166
6167         * ListView.cs : use is_visible instead of Visible to check if 
6168         scrollbars should be placed/sized.  Also some max_wrap_width
6169         love for LargeIcon view.  [Fixes #79533]
6170
6171 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
6172
6173         * TextControl.cs :
6174           Make set_TextAlign() do actually update the align. Fixed #78403.
6175
6176 2006-10-03  Chris Toshok  <toshok@ximian.com>
6177
6178         * DataGrid.cs: fix a crash when switching datasources if the
6179         vertical scrollbar is at someplace other than Value = 0.  Also,
6180         reduce the number of recalculation passes we do in SetDataSource
6181         from 2 to 1.
6182
6183 2006-10-03  Jackson Harper  <jackson@ximian.com>
6184
6185         * TextBoxBase.cs: Move the if value the same bail check up, we
6186         don't want to empty the document if it is already empty, this
6187         seems to severly mess up the caret.  TODO: I should probably fix
6188         the empty statement to update teh caret somehow.
6189
6190 2006-10-03  Chris Toshok  <toshok@ximian.com>
6191
6192         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
6193         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
6194         reflection, an internal row type, properties on said type, etc.)
6195         will work with our datagrid.  Fixes #79531.
6196
6197 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
6198
6199         * FileDialog.cs: Don't crash if a path is not accessible
6200           (System.UnauthorizedAccessException). Fixes #79569.
6201         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
6202           a ':' too. Return unknown icon for those paths/files.
6203
6204 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
6205
6206         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
6207         GetContainerControl returns null.
6208
6209 2006-10-02  Chris Toshok  <toshok@ximian.com>
6210
6211         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
6212         call to XGetWindowAttributes instead of "handle".  fixes an X
6213         error using notifyicon after the NotifyIconWindow to Form base
6214         class switch.
6215
6216 2006-10-02  Chris Toshok  <toshok@ximian.com>
6217
6218         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
6219         server grab and looping we need to do to get down to the most
6220         deeply nested child window.
6221         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
6222         QueryPointer again after the WarpPointer so we can generate a
6223         proper (fake) MotionNotify event to be enqueued in the destination
6224         window's queue.
6225         (GetCursorPos): call QueryPointer.
6226
6227         Fixes #79556.
6228
6229 2006-10-02  Jackson Harper  <jackson@ximian.com>
6230
6231         * NotifyIcon.cs: Derive the notify icon from a form, so things
6232         like FindForm work on it.
6233         - Swallow the WM_CONTEXTMENU message, since that is generated on
6234         mouse down, and context menu is a mouse up kinda guy.  I believe
6235         the correct fix here is probably to make the notify icon entirely
6236         NC area, but this seems to work fine for anyone not manipulating
6237         WndProc.
6238
6239 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
6240
6241         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
6242           ToolStripItemCollection.cs, ToolStripLabel.cs,
6243           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
6244           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
6245           Initial implementation.
6246         * TextRenderer.cs: Provide padding to MeasureText.
6247
6248 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
6249
6250         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
6251         of ButtonBaseAccessibleObject. Fix bug #79552.
6252
6253 2006-10-02  Jackson Harper  <jackson@ximian.com>
6254
6255         * MdiWindowManager.cs: When maximizing use the containers client
6256         rect, not it's bounds, so nc area is accounted correctly.
6257         - Use the parent form's size for the menu position, since the
6258         client isn't always the full form size.
6259
6260 2006-10-01  Chris Toshok  <toshok@ximian.com>
6261
6262         * ScrollableControl.cs: make sure neither right_edge or
6263         bottom_edge are < 0, since they're used as LargeChange for the
6264         horiz/vert scrollbars respectively.  Fixes #79539.
6265
6266 2006-10-01  Chris Toshok  <toshok@ximian.com>
6267
6268         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
6269         the xplatuix11 code can cause us to destroy/recreate our handle.
6270
6271         * XplatUIX11.cs
6272         (SystrayAdd):
6273         - this code can be invoked many times for the same Hwnd.  Make
6274           sure we only destroy the client window once (the first time this
6275           method is called).  This fixes bug #79544.
6276         - Remove the call to the improperly bound XSync.  why we had two
6277           bindings to this, I will never know, but this call resulted in
6278           events being discarded from the queue(!).
6279         - correct a misunderstanding of _XEMBED_INFO - the second atom is
6280           not our current state but the state we wish to be in.  So, 0 if
6281           we don't want to be mapped.  Change it to 1.
6282         (SystrayRemove): The XEMBED spec makes mention of the fact that
6283         gtk doesn't support the reparent of client windows away from the
6284         embedder.  Looking at gtksocket-x11.c seems to agree with this.
6285         The only avenue we have for removing systray icons is to destroy
6286         them.  We don't want the handle to go away for good, though, so
6287         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
6288         #79545.
6289         
6290 2006-10-01  Chris Toshok  <toshok@ximian.com>
6291
6292         * Form.cs (WndProc): inline the native_enabled variable usage into
6293         the cases in which it's used.  Fixes #79536.
6294
6295 2006-09-29  Mike Kestner  <mkestner@novell.com>
6296
6297         * ListView.cs : toggle the selection state for ctrl clicks in 
6298         multiselect mode. [Fixes #79417]
6299
6300 2006-09-29  Mike Kestner  <mkestner@novell.com>
6301
6302         * ListView.cs : kill CanMultiSelect and refactor the selection
6303         code to support multiselection in the absence of mod keys. Steal
6304         arrow/home/end keys by overriding InternalPreProcessMessage to
6305         restore regressed keynav behavior.
6306         [Fixes #79416]
6307
6308 2006-09-29  Jackson Harper  <jackson@ximian.com>
6309
6310         * MdiClient.cs: Repaint the titlebars when the active window is
6311         changed.
6312
6313 2006-09-29  Chris Toshok  <toshok@ximian.com>
6314
6315         * Application.cs: when entering a runloop with a modal, make sure
6316         the hwnd is enabled.  Fixes #79480.
6317
6318 2006-09-29  Chris Toshok  <toshok@ximian.com>
6319
6320         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
6321         when ListManager.CanAddRows == false, bump us back one.
6322
6323         * DataGridColumnStyle.cs (ParentReadOnly): remove the
6324         listmanager.CanAddRows check.  This makes ArrayLists uneditable
6325         using a datagrid, which is not right.
6326         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
6327         is an IEditable, but call property_descriptor.SetValue regardless.
6328         fixes #79435.
6329
6330 2006-09-29  Chris Toshok  <toshok@ximian.com>
6331
6332         * DataGridBoolColumn.cs: we need to test equality in the face of
6333         possible null values (as is the case with the default NullValue).
6334         This patch keeps us from crashing in that case.
6335
6336 2006-09-29  Jackson Harper  <jackson@ximian.com>
6337
6338         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
6339         here, since it will get called for every node collection in the
6340         tree. This is now done in the treeview once the sorting is
6341         finished.
6342         * TreeView.cs: Recalculate the visible order, and update the
6343         scrollbars after sorting, set the top nope to the root so that the
6344         recalc actually works.
6345
6346 2006-09-29  Chris Toshok  <toshok@ximian.com>
6347
6348         * LinkLabel.cs: more handling of the default link collection in
6349         the face of LinkArea manipulation.  The default link collection
6350         contains 1 element (start=0,length=-1).  If the user sets LinkArea
6351         to anything and the links collection is the default, clear it.
6352         Then only add the link if its nonempty.  Fixes #79518.
6353
6354 2006-09-29  Chris Toshok  <toshok@ximian.com>
6355
6356         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
6357         piece correctly when we hit a '\n'.  Fixes #79517.
6358
6359 2006-09-29  Chris Toshok  <toshok@ximian.com>
6360
6361         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
6362         change the binding of gdk_init_check to take two IntPtr's, and
6363         pass IntPtr.Zero for both of them.  Fixes #79520.
6364
6365 2006-09-29  Mike Kestner  <mkestner@novell.com>
6366
6367         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
6368         [Fixes #78779]
6369
6370 2006-09-28  Jackson Harper  <jackson@ximian.com>
6371
6372         * XplatUIX11.cs: When translating NC messages make sure we go from
6373         whole window to screen, not client window to screen.
6374         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
6375         method doesn't exist
6376         - Skip over controls that aren't forms when arranging.
6377
6378 2006-09-28  Jackson Harper  <jackson@ximian.com>
6379
6380         * XplatUIWin32.cs: Clip the rect to the parent window.
6381         * XplatUIStructs.cs: Add clipping modes struct.
6382         * InternalWindowManager.cs: New private method that factors title
6383         bar heights in when calculating the pos of an NC mouse message.
6384         - Use SendMessage to force a paint when the form's size is changed
6385         instead of painting the decorations immediately.
6386         - Don't let the NC button click messages get to DefWndProc,
6387         because they will attempt to handle windowing themself, and this
6388         messes up z-order (it will put them in front of the scrollbars).
6389         * XplatUIX11.cs: Make sure that we don't reset window managers if
6390         we already have one (ie the window is an MDI window).
6391
6392 2006-09-28  Chris Toshok  <toshok@ximian.com>
6393
6394         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
6395         menu code really needs going over.
6396
6397 2006-09-27  Chris Toshok  <toshok@ximian.com>
6398
6399         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
6400         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
6401         window is maximizable.  So, we need to make sure that even if we
6402         clear the border/wm frame of those functions, they're still
6403         available (basically, we remove the decoration without removing
6404         the function).  Half the fix for #79338.
6405
6406 2006-09-27  Chris Toshok  <toshok@ximian.com>
6407
6408         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
6409         Fixes bug #79515.
6410
6411 2006-09-27  Chris Toshok  <toshok@ximian.com>
6412
6413         * Splitter.cs: reorder things a bit so that we don't actually
6414         draw/move the splitter until after calling OnSplitterMoving.  This
6415         lets users cancel/disallow the movement by explicitly setting
6416         event.SplitX/SplitY.  Fixes #79372.
6417
6418 2006-09-27  Jackson Harper  <jackson@ximian.com>
6419
6420         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
6421         because it is most likely on a window being destroyed, and that
6422         will give us an X11 error.
6423
6424 2006-09-27  Chris Toshok  <toshok@ximian.com>
6425
6426         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
6427         the dropdown button now toggles between showing and hiding the
6428         dropdown.  Also, get rid of dropdown_form_showing and just use
6429         dropdown_form.Visible.  We still don't do a grab, but I'll leave
6430         that part to someone who has handled Capture-fu before.
6431
6432 2006-09-27  Chris Toshok  <toshok@ximian.com>
6433
6434         * DataGrid.cs: return false if alt isn't pressed when '0' is
6435         pressed.  this keeps the '0' key from being swallowed, and fixes
6436         bug #79350.
6437
6438 2006-09-27  Chris Toshok  <toshok@ximian.com>
6439
6440         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
6441         Calling Refresh (in response to a scrollbar event) screws up the
6442         scrollbar painting.  Fixes bug #78923.
6443
6444 2006-09-27  Chris Toshok  <toshok@ximian.com>
6445
6446         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
6447         then insert into hashtable" blocks threadsafe.
6448
6449 2006-09-27  Chris Toshok  <toshok@ximian.com>
6450
6451         * MessageBox.cs (CreateParams): the styles should be |'ed with our
6452         baseclass's, since otherwise the
6453         ControlBox/MinimizeBox/MaximizeBox assignments above have no
6454         effect.  This gets the close button back in messageboxes.
6455
6456 2006-09-27  Chris Toshok  <toshok@ximian.com>
6457
6458         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
6459         flag, not just != 0.  this makes flags that are actually multiple
6460         bits (like WS_CAPTION) work.  fixes bug #79508.
6461
6462 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
6463
6464         * PageSetupDialog.cs: add support for getting and settings the 
6465         paper size, source and orientation.
6466
6467 2006-09-26  Chris Toshok  <toshok@ximian.com>
6468
6469         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
6470         and caption == "", we need to remove the resize handles as well as
6471         the title bar.
6472
6473         * Control.cs (set_Text): turns out that setting Text on a form
6474         should change the WM styles on the window, since if ControlBox ==
6475         false, the only way to get a window border is to have a non-""
6476         Text property.  check winforms/forms/text.cs for an example.  so,
6477         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
6478         update both window styles and title.  This fixes a lot of dialogs
6479         (including the preferences dialog in MonoCalendar.)
6480
6481 2006-09-26  Chris Toshok  <toshok@ximian.com>
6482
6483         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
6484         control isn't a Form), call Win32ShowWindow to hide the window,
6485         but don't update the control Visible property.  When we reparent
6486         back to a parent control, call SetVisible in order for the
6487         window's visibility to be reinstated.
6488
6489         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
6490         the FosterParent.
6491
6492         * Control.cs (ControlCollection.Remove): remove that value.Hide()
6493         call for good, since it breaks MonoCalendar (and other things I'm
6494         sure.) Also, set all_controls to null *after* the owner calls,
6495         which end up regenerating it.
6496         (ChangeParent): allow new_parent to be == null, passing
6497         IntPtr.Zero down to XplatUI.
6498
6499         this fixes #79294 the right way.
6500
6501 2006-09-26  Mike Kestner  <mkestner@novell.com>
6502
6503         * GridEntry.cs : internal SetParent method.
6504         * PropertyGrid.cs : attach to property changed on the proper
6505         target if we have a hierarchical grid with subobjects. Setup
6506         GridItem.Parent for hierarchical items.
6507         * PropertyGridView.cs : Set value on the correct target for
6508         hierarchical grids. [Fixes #78903]
6509
6510 2006-09-26  Chris Toshok  <toshok@ximian.com>
6511
6512         * Control.cs (ChildNeedsRecreating): this should return true if
6513         either we're being recreated and the child is in our list, or our
6514         parent is waiting for our recreation.
6515
6516 2006-09-26  Chris Toshok  <toshok@ximian.com>
6517
6518         * Control.cs (ControlCollection.Remove): reinstate the
6519         value.Hide() call as suggested in bug #79294.
6520
6521 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
6522
6523         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
6524         coordinates (versus a relative move).
6525
6526 2006-09-26  Chris Toshok  <toshok@ximian.com>
6527
6528         * Control.cs: rework child recreation a little bit.  It turns out
6529         that we race between the DestroyNotify the WM_DESTROY message.  If
6530         the parent gets its DestroyNotify before the child gets the
6531         WM_DESTROY message, the child ends up not recreating (since the
6532         parent finishes its recreation on DestroyNotify, and the child
6533         checks ParentIsRecreating.)
6534
6535         So, instead we store off a list of all the child controls which
6536         need to be recreated when the parent control starts to recreate
6537         itself.  Then, when child controls get their WM_DESTROY message we
6538         check to see if they're in the parent's pending recreation list,
6539         and if so, we recreate.  This removes all dependency on ordering
6540         from the code and fixes the initial MonoCalendar upgrade dialog.
6541         
6542 2006-09-26  Jackson Harper  <jackson@ximian.com>
6543
6544         * TextControl.cs: Use the Line to get the length of the line,
6545         since soft line breaks can change the end line.
6546
6547 2006-09-26  Chris Toshok  <toshok@ximian.com>
6548
6549         * Control.cs (ControlCollection.AddImplicit): don't add the
6550         control again if it's already in one of our lists.  This keeps us
6551         from adding controls over and over again for comboboxes when their
6552         handle gets recreated (as the combobox adds implicit controls in
6553         OnHandleCreated).  Fixes the X11 errors in bug #79480.
6554
6555 2006-09-26  Jackson Harper  <jackson@ximian.com>
6556
6557         * TextControl.cs: When deleting characters make sure that any
6558         orphaned zero lengthed tags get deleted.
6559         - Fix ToString for zero lengthed tags.
6560
6561 2006-09-25  Jackson Harper  <jackson@ximian.com>
6562
6563         * TextControl.cs: When getting a tag at the location there can be
6564         multiple tags at the same spot, these are 0-lengthed tags that
6565         appear when extra formatting has been stuck in a location.  We
6566         need to pull out the last of these 0 lengthed tags.
6567
6568 2006-09-25  Jackson Harper  <jackson@ximian.com>
6569
6570         * TextControl.cs: Fix print out in debug method.
6571         * TextBoxBase.cs: When text is set bail if we are setting to the
6572         previous value.
6573         
6574 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
6575
6576         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
6577           It is now possible to change the selected index in a FontXXXListBox
6578           with the up and down arrow keys from the FontXXXTextBoxes.
6579           Also, send the FontXXXTextBox mouse wheel event to the corresponding
6580           FontXXXListBoxes to match ms.
6581
6582 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
6583
6584         * SystemInformation.cs: Return a clone of the theme's MenuFont because
6585         anyone can dispose it, anytime. All other properties returns enums, 
6586         structs or basic types so they don't need such tricks.
6587
6588 2006-09-22  Jackson Harper  <jackson@ximian.com>
6589
6590         * XplatUI.cs:
6591         * XplatUIWin32.cs:
6592         * Clipboard.cs:
6593         * DataFormats.cs:
6594         * XplatUIOSX.cs:
6595         * XplatUIDriver.cs: Update interface to add a primary selection
6596         flag, so the driver can use the primary selection buffer if
6597         needed.
6598         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
6599
6600         * RichTextBox.cs: We need to supply the data object to paste now
6601         (so we can choose to supply CLIPBOARD or PRIMARY).
6602         * TextBoxBase.cs: Supply data object to paste (see above).
6603         - Middle click uses the primary selection data object.
6604         
6605 2006-09-21  Chris Toshok  <toshok@ximian.com>
6606
6607         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
6608         of SetWMStyles.  It's still a rat's nest and is largely
6609         order-dependent which I dislike immensely.  This also fixes the X
6610         button disappearing from toplevel forms.
6611
6612 2006-09-21  Mike Kestner <mkestner@novell.com>
6613
6614         * ListBox.cs: move Jordi's click/dblclick raising code to the
6615         mouse up handler.
6616
6617 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
6618
6619         * ListBox.cs: Fixes 79450
6620
6621 2006-09-21  Mike Kestner <mkestner@novell.com>
6622
6623         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
6624         to deal with people updating the TreeNodeCollection after the tree
6625         is disposed.  "Fixes" 79330.
6626
6627 2006-09-20  Jackson Harper <jackson@ximian.com>
6628
6629         * TextControl.cs: Push the cursor record onto the undo stack
6630         before the delete action. This fixes 78651.
6631
6632 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
6633
6634         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
6635         CreateParams. Fixes 79329.
6636
6637 2006-09-19  Chris Toshok  <toshok@ximian.com>
6638
6639         * XplatUIX11.cs: a couple of blanket code massage passes to clean
6640         things up a bit.  First, get rid of the NetAtoms array (and the NA
6641         enum), and just embed the atoms as static fields.  Also, add a
6642         couple of functions (StyleSet and ExStyleSet) to clean up all the
6643         bitmask testing of styles.
6644
6645         * X11Structs.cs: remove the NA enum, not needed anymore.
6646         
6647 2006-09-19  Chris Toshok  <toshok@ximian.com>
6648
6649         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
6650         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
6651         added cleanup to get MessageBox titles appearing again, which were
6652         broken by my earlier fix for caption-less/ControlBox-less windows.
6653
6654 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
6655
6656         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
6657           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
6658           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
6659           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
6660           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
6661           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
6662           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
6663           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
6664           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
6665           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
6666           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
6667             Inital import.
6668         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
6669           ToolStripButton.cs: Stubs needed for above.
6670         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
6671
6672 2006-09-15  Chris Toshok  <toshok@ximian.com>
6673
6674         * XplatUIX11.cs:
6675         - make the MessageQueues hashtable Synchronized.
6676         
6677         - SendMessage: if the Hwnd is owned by a different thread, use the
6678         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
6679         thread.  Fixes bug #79201.
6680
6681 2006-09-15  Chris Toshok  <toshok@ximian.com>
6682
6683         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
6684         ControlBox == false, we disallow maximize/minimize/close.  If the
6685         form Caption is "" we also disallow move (and get rid of the Title
6686         decoration).  Unfortunately, regardless of how things are set,
6687         we're stuck with the Title and WM menu.
6688
6689 2006-09-15  Chris Toshok  <toshok@ximian.com>
6690
6691         * Application.cs: add locking around the static message_filters
6692         ArrayList, part of #79196.
6693
6694 2006-09-15  Chris Toshok  <toshok@ximian.com>
6695
6696         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
6697         Form.ControlBox == false, the window has no titlebar nor resize
6698         handles.  fixes bug #79368.
6699
6700 2006-09-15  Chris Toshok  <toshok@ximian.com>
6701
6702         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
6703         >= 0.  Fixes bug #79370.
6704
6705 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
6706         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
6707         * Control.cs:
6708             Add properties: LayoutEngine, Margin, DefaultMargin.
6709             Add method: GetPreferredSize.
6710             Move layout logic from PerformLayout to layout engines. 
6711
6712 2006-09-13  Chris Toshok  <toshok@ximian.com>
6713
6714         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
6715         fix for #79326 broke #78718, so this change addresses that.
6716
6717         - in SendWMDestroyMessages remove the call to
6718         CleanupCachedWindows, since we might be recreating the control and
6719         need to maintain the references to right Hwnd handles.  Also, set
6720         the zombie flag to true for each of the children in the hierarchy
6721         instead of calling hwnd.Dispose.  This will cause GetMessage to
6722         ignore all events for the window except for DestroyNotify.
6723
6724         - In GetMessage, ignore messages except for DestroyNotify for
6725         zombie hwnds.
6726         
6727         * Control.cs: revert the is_recreating fix from the last
6728         ChangeLog.  It's definitely "right", but it breaks switching from
6729         an MDI form to a non-MDI form.  Will need to revisit that.
6730
6731         * Hwnd.cs: add a zombie flag, which means "the
6732         client_window/whole_window handles are invalid, but we're waiting
6733         for the DestroyNotify event to come in for them".  Set the flag to
6734         false explicitly if setting WholeWindow/ClientWindow, and also
6735         when Disposing.
6736         
6737 2006-09-13  Chris Toshok  <toshok@ximian.com>
6738
6739         * XplatUIX11.cs: rework window destruction slightly.
6740
6741         - when destroying the windows associated with a control, we don't
6742         need 2 separate XDestroyWindow calls.  Just the one for the
6743         whole_window (or for client_window if whole_window is somehow
6744         IntPtr.Zero -- can this happen?) is enough.
6745
6746         - reworked SendWMDestroyMessages slightly, so we always dispose
6747         the child control hwnd's after sending the messages.
6748         
6749         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
6750         the two places it was used (one was even using hwnd.Handle and the
6751         other hwnd.client_window.  ugh), adding another call in
6752         SendWMDestroyMessages.  We need this new call because now the
6753         DestroyNotify events in the queue will be ignored for the child
6754         controls (as their hwnd's were disposed, and the window id's
6755         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
6756
6757         - this fixes bug #79326.
6758
6759 2006-09-13  Chris Toshok  <toshok@ximian.com>
6760
6761         * Control.cs: don't always set is_recreating to false at the end
6762         of RecreateHandle, since sometimes we're not done (and won't be
6763         until WndProc handles the WM_DESTROY message).  Also, set
6764         is_recreating to false in the WM_DESTROY handling code.  Part of
6765         the fix for bug #79326.
6766
6767 2006-09-13  Miguel de Icaza  <miguel@novell.com>
6768
6769         * X11DesktopColors.cs: Start the droppage of debugging messages.
6770
6771         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
6772
6773 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
6774
6775         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
6776
6777 2006-09-12  Chris Toshok  <toshok@ximian.com>
6778
6779         * DataGrid.cs (get_ListManager): if the list_manager is null, try
6780         to create it using SetDataSource.  Fixes bug #79151.
6781
6782 2006-09-11  Chris Toshok  <toshok@ximian.com>
6783
6784         * XEventQueue.cs: add a DispatchIdle property.
6785
6786         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
6787         either the queue is null, or the queue has DispatchIdle set to
6788         true.
6789         (DoEvents): set queue.DispatchIdle to false around the
6790         peek/translate/dispatch message loop in this method.  This keeps
6791         Application.Doevents from emitting idle events.  Part of the fix
6792         for #78823.
6793
6794 2006-09-11  Chris Toshok  <toshok@ximian.com>
6795
6796         * DataGrid.cs (set_DataSource): make this work for both the
6797         winforms/datagrid test and ReportBuilder.  It seems as though when
6798         we've created a ListManager (or maybe it's if we have a
6799         BindingContext?), when we set the DataSource it clears the
6800         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
6801         #79333.
6802
6803 2006-09-11  Chris Toshok  <toshok@ximian.com>
6804
6805         * XplatUIX11.cs: deal with queue being null, which happens in all
6806         the Clipboard functions.  Fixes one of the two problems mentioned
6807         in #78612.
6808
6809 2006-09-11  Chris Toshok  <toshok@ximian.com>
6810
6811         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
6812         button on various spots (including outside the menu) works closer
6813         to MS, and doesn't crash.  Fixes #79343.
6814
6815 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
6816
6817         * ListView.cs: Do not initialize item_sorter in init. To match MS,
6818         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
6819         and the internal comparer is set. When a new ListViewItemSorter is set,
6820         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
6821         was specified. No further processing is necessary if SortOrder is set
6822         to it's current value. If Sorting is modified to None, and View is
6823         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
6824         (either custom or our internal ItemComparer) to null, on 1.0 profile
6825         only set item_sorter to null if its our internal IComparer. If Sorting
6826         is modified to Ascending or Descending, then use our internal IComparer
6827         if none is set, and if the current IComparer is our internal one then:
6828         on 2.0 profile always replace it with one for new Sorting, and on 1.0
6829         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
6830         Enum.IsDefined to verify whether a valid View value is specified in
6831         its setter. Automatically sort listview items when listview is
6832         created. In Sort, do nothing if ListView is not yet created, or if
6833         no item_sorter is set (no Sorting was set, Sorting was explicitly set
6834         to None or ListViewItemSorter was set to null). Added Sort overload
6835         taking a bool to indicate whether the ListView should be redrawn when
6836         items are sorted (we use this in ListViewItemCollection to avoid double
6837         redraws). Modified our internal IComparer to take the sort order into
6838         account. In Add and AddRange methods of ListViewItemCollection, also
6839         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
6840         view), but use overload with noredraw option to avoid double redraw.
6841         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
6842         true when View is Tile, and do the same when attempting to set View to
6843         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
6844         for selected/checked indices, as it involves overhead when sorting is
6845         done while these collections are not used all that often. Instead
6846         we'll build the indices on demand. Modified IList implementation of
6847         CheckedIndexCollection to use public methods if object is int.
6848         Modified CheckedListViewItemCollection to hide checked items if
6849         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
6850         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
6851         IList implementation in SelectedIndexCollection to use public methods
6852         if object is int. Modified SelectedListViewItemCollection to hide
6853         selected items if listview is not yet created.
6854         * ListViewItem.cs: CheckedIndices list no longer needs to be
6855         maintained separately (see ListView changes). Also clone font, fixes
6856         test failure.
6857
6858 2006-09-11  Mike Kestner  <mkestner@novell.com>
6859
6860         * ComboBox.cs: if we are updating the contents of the currently
6861         selected index, refresh the control or the textbox selection.
6862         [Fixes #79066]
6863
6864 2006-09-11  Mike Kestner  <mkestner@novell.com>
6865
6866         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
6867         the 'specified' logic has been moved there.  This seems like a bug 
6868         in Control.cs, since our current SetBoundsCore completely ignores 
6869         the specified parameter.  Peter's commit seems to indicate that is 
6870         the way the MS control implementation works.  [Fixes #79325]
6871
6872 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
6873
6874         * XplatUI.cs: Set default_class_name to be composed
6875         of current domain id. This allows MWF to be loaded in multiple
6876         domains on Win32.
6877
6878 2006-09-09  Miguel de Icaza  <miguel@novell.com>
6879
6880         * X11Keyboard.cs: If we are unable to obtain the input method, do
6881         not call CreateXic to create the input context.   Should fix
6882         #78944/79276.
6883
6884 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
6885
6886         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
6887           Simplified gnome support by adding more pinvokes to get the
6888           icon for a file or mime type.
6889
6890 2006-09-08  Jackson Harper  <jackson@ximian.com>
6891
6892         * MenuAPI.cs: Deslect popup context menu items before closing the
6893         window, so that you don't see the previously selected item
6894         selected when you reopen the menu.
6895         * TextControl.cs: Update the cursor position even if we don't have
6896         focus.  This fixes typing in things like the ComboBox.  I'm not
6897         totally sure we should always set the visibility if we don't have
6898         focus, but couldn't find any corner cases where the cursor showed
6899         up when it shouldn't.
6900
6901 2006-09-08  Chris Toshok  <toshok@ximian.com>
6902
6903         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
6904         our arrays are length 256.  & 0xff before indexing.  Fixes the
6905         crash in bug #78077.
6906         
6907 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6908
6909         * ThemeWin32Classic.cs: 
6910         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
6911         is true. Handle that check box too.
6912
6913 2006-09-07  Chris Toshok  <toshok@ximian.com>
6914
6915         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
6916         79244.
6917
6918 2006-09-07  Chris Toshok  <toshok@ximian.com>
6919
6920         * Control.cs: in set_BackColor only do the work if
6921         background_color != value.
6922
6923         * XplatUIX11.cs: move the clearing of invalid areas (both client
6924         and nc) to the same block of code where we set (nc_)expose_pending
6925         to false.  That is, move it from PaintEventEnd to PaintEventStart,
6926         so things that cause invalidates from within OnPaint will trigger
6927         another call to OnPaint.  Fixes bug #79262.
6928
6929 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
6930
6931         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
6932         * FileDialog.cs: Fix typo
6933
6934 2006-09-07  Jackson Harper  <jackson@ximian.com>
6935
6936         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
6937         for tab pages if they have any.
6938
6939 2006-09-06  Mike Kestner  <mkestner@novell.com>
6940
6941         * Splitter.cs: use the "current" rect when finishing drag handle
6942         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
6943
6944 2006-09-06  Mike Kestner  <mkestner@novell.com>
6945
6946         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
6947         support offset splitters. [Fixes #79298]
6948
6949 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
6950
6951         * Mime.cs: Fixed a bug that could override the global mime type
6952           result.
6953
6954 2006-09-05  Jackson Harper  <jackson@ximian.com>
6955
6956         * TabControl.cs: Better calculation method for setting the slider
6957         pos. Prevents crashes on really wide tabs.
6958         - Draw Image on tab pages if an image list is used.
6959
6960 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6961
6962         * MonthCalendar.cs: When Font changes, the Size should be
6963         updated to fit the new font's space requirements.
6964
6965 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
6966
6967         * ListBox.cs: If the items are cleared with Items.Clear set
6968           top_index to 0.
6969
6970 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6971
6972         * MonthCalendar.cs: Handle arrow keys as input keys. Also
6973         fire DateChanged event instead of DateSelected event when
6974         the date was changed by keyboard interaction.
6975
6976 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
6977
6978         * DateTimePicker.cs: Handle DateChanged for the associated
6979         month_calendar control, and set month_calendar.Font from 
6980         OnFontChanged method, as well as resize the height of the
6981         control when needed. Make PreferredHeight proportional.
6982
6983 2006-09-01  Chris Toshok  <toshok@ximian.com>
6984
6985         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
6986         properties.
6987
6988         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
6989
6990 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
6991
6992         * FileDialog.cs: Set ClientSize instead of window size, to allow space
6993           for decorations (Fixes #79219)
6994
6995 2006-09-01  Mike Kestner  <mkestner@novell.com>
6996
6997         * ComboBox.cs: first stab at sorting plus some selection handling
6998         fixes to bring us more in line with MS behavior.  Also switches back
6999         to index based selection.  Alternative patches for index-based 
7000         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
7001         and latency@gmx.de on bug 78848.  I assume they were similar to this
7002         code I've had simmering in my tree forever.
7003         [Fixes #78848]
7004
7005 2006-09-01  Chris Toshok  <toshok@ximian.com>
7006
7007         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
7008         when setting list position guard against ending up with a -1 index
7009         (the other part of the fix for #78812).  Should probably make sure
7010         we don't need the analogous fix in the ItemDeleted case.
7011
7012         * DataGrid.cs:
7013         - in SetDataSource, work around the fact that the way
7014         OnBindingContextChanged is invoked will cause us to re-enter this
7015         method.  I'll remove the hack once I investigate
7016         OnBindingContextChanged.
7017
7018         - fix the logic in set_DataSource and set_DataMember (basically
7019         what to do if the other of the two is null.)
7020         
7021         - in OnListManagerItemChanged, we need to take into account the
7022         edit row when deciding whether or not to call RecreateDataGridRows
7023         (part of the fix for #78812).
7024
7025 2006-09-01  Jackson Harper  <jackson@ximian.com>
7026
7027         * Splitter.cs: Don't do anything if there is no control to affect
7028         (prevents us from crashing in weird tet cases).
7029         * TreeView.cs: Bounding box for the mouse movement reverting
7030         focus/selection back to previously selected node.  This matches
7031         MS, and makes the tree a lot more useable.
7032         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
7033         use clipping so they are not drawn.  This fixes when the control
7034         is set to have a transparent background, or if it was over an
7035         image.
7036
7037 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
7038
7039         * MimeIcon.cs: Improved handling for reading default icons when
7040           using gnome (2.16 made it necessary). Check and read svg icons
7041           first, then 48x48 and then 32x32 icons.
7042
7043 2006-08-31  Chris Toshok  <toshok@ximian.com>
7044
7045         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
7046         visible.
7047
7048         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
7049         ProcessKeyPreview.  Fixes part of #77806.
7050
7051         * DataGrid.cs: big patch.
7052
7053         - revert the queueing up of DataSource/DataMember if inside
7054         BeginInit/EndInit calls.  That's not the way the datagrid achieves
7055         its delayed databinding.  Instead, call SetDataSource in
7056         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
7057         #78811.
7058
7059         - Also, it wasn't mentioned in #78811, but the test case exhibits
7060         behavior that was lacking in our datagrid implementation - Columns
7061         that have mapping names that don't exist in the datasource's
7062         properties aren't shown.  Yuck.  To fix this I added the bound
7063         field to the column style, and basically any calculation to figure
7064         out anything about columns uses a loop to find the bound columns.
7065         still need to investigate if I can cache an array of the bound
7066         columns or if the indices must be the same.
7067
7068         - When setting CurrentCell, we no longer abort if the cell being
7069         edited was in the add row.  This fixes the other part of #77806.
7070
7071         - The new code also fixes #78807.
7072         
7073         * ThemeWin32Classic.cs: perpetrate the same disgusting
7074         column.bound field hack, and only render bound fields.
7075
7076 2006-08-31  Chris Toshok  <toshok@ximian.com>
7077
7078         * DataGridColumnStyle.cs: add bound field.  this field is true if
7079         the datasource has a property corresponding to the mapping name.
7080
7081         * DataGridTableStyle.cs: set the bound field on the column styles
7082         depending on whether or not we have a column for that property.
7083
7084 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
7085
7086         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
7087           splitter control (fixes #79228)
7088
7089 2006-08-31  Chris Toshok  <toshok@ximian.com>
7090
7091         * DataGridColumnStyle.cs: we need to delay the assignment of
7092         property descriptor until the last possible moment due to the lazy
7093         databinding stuff in the datagrid.  Also, fix the exceptions
7094         thrown by CheckValidDataSource to match MS.
7095
7096 2006-08-31  Jackson Harper  <jackson@ximian.com>
7097
7098         * Form.cs: When activated select the active control, if there is
7099         no active control, we select the first control.
7100         * XplatUIX11.cs: If there is no focus control when we get a
7101         FocusIn event, find the toplevel form and activate it.  This
7102         occurs when you popup a window, it becomes the focus window, then
7103         you close that window, giving focus back to the main window.
7104
7105 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7106
7107         * MonthCalendar.cs: 
7108         * ThemeWin32Classic.cs: Cache Font in bold style, as well
7109         as StringFormat with Center alignments in MonthCalendar,
7110         instead of creating new ones when drawing the control. 
7111         Also, draw the month name in bold style.
7112
7113 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
7114
7115         * Control.cs:
7116           - PerformLayout(): It would seem MS performs the fill even if the 
7117             control is not visible (part of #79218 fix)
7118           - ResetBackColor(): Use the setter to reset the color, to allow
7119             overriders to catch the change.
7120         * Form.cs:
7121           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
7122           - CreateHandle(): dito (part of $79218 fix)
7123           - Don't set an icon if we have a dialog
7124         * ScrollableControl.cs:
7125           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
7126           - ScrollIntoView(): No need to scroll if control is already visible
7127             (resolves fixme and fixes #79218)
7128
7129 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7130
7131         * MonthCalendar.cs: Change proportions in SingleMonthSize
7132         to match the aspect of the original control.
7133
7134 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
7135
7136         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
7137           get updated when they get maximized.
7138
7139 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
7140
7141         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
7142
7143 2006-08-29  Chris Toshok  <toshok@ximian.com>
7144
7145         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
7146
7147 2006-08-29  Jackson Harper  <jackson@ximian.com>
7148
7149         * TreeView.cs: Need to track selected node and highlighted node,
7150         they aren't always the same thing, when the mouse is down on a
7151         node it is hilighted, but not selected yet.
7152         - Do the HideSelection stuff right
7153         - Need to focus on rbutton mouse down. And redraw selection when
7154         right click is mouse upped.
7155
7156 2006-08-29  Mike Kestner  <mkestner@novell.com>
7157
7158         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
7159         when SubItems.Count < Columns.Count.  [Fixes #79167]
7160
7161 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
7162
7163         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
7164
7165 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
7166
7167         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
7168           from X. Only send based on ConfigureNotify if we don't have the
7169           correct location in hwnd (if the window manager moved us)
7170
7171 2006-08-28  Mike Kestner  <mkestner@novell.com>
7172
7173         * ListView.cs: remove a TODO. 
7174         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
7175         [Fixes ListView part of #79166]
7176
7177 2006-08-28  Mike Kestner  <mkestner@novell.com>
7178
7179         * ListView.cs: move wheel handler to parent since it is focused
7180         instead of the item_control now.  [Fixes #79177]
7181
7182 2006-08-28  Mike Kestner  <mkestner@novell.com>
7183
7184         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
7185         when the control is focused. [Fixes #79171]
7186
7187 2006-08-28  Mike Kestner  <mkestner@novell.com>
7188
7189         * ListView.cs: size the item and header controls for empty and
7190         unscrollable views.
7191         * ThemeWin32Classic.cs: draw disabled backgrounds.
7192         [Fixes #79187]
7193
7194 2006-08-28  Chris Toshok  <toshok@ximian.com>
7195
7196         * Form.cs: remove unused "active_form" static field.
7197
7198         * Hwnd.cs: lock around accesses to static windows collection.
7199
7200         * Application.cs: lock threads in Exit ().
7201
7202 2006-08-28  Chris Toshok  <toshok@ximian.com>
7203
7204         * NativeWindow.cs: lock around accesses to window_collection.
7205         
7206 2006-08-28  Chris Toshok  <toshok@ximian.com>
7207
7208         * Control.cs: err, fix this the right way, by locking on controls
7209         when using it.  not by making it synchronized.
7210
7211 2006-08-28  Chris Toshok  <toshok@ximian.com>
7212
7213         * Control.cs: make the static "controls" field synchronized, as it
7214         gets updated from multiple threads.
7215
7216 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
7217
7218         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
7219           Prevent other threads from exiting when calling thread sets quit state.
7220         * XEventQueue.cs: Added PostQuitState property
7221
7222 2006-08-27  Chris Toshok  <toshok@ximian.com>
7223
7224         * AsyncMethodData.cs: add a slot for the window handle.
7225
7226         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
7227         window (the destination control's window, not the foster window).
7228
7229         * Control.cs (BeginInvokeInternal): store the window's handle in
7230         the AsyncMethodData.
7231         
7232
7233 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
7234
7235         * XplatUIX11.cs:
7236           - PostQuitMessage: Removed resetting S.D display handle, we might have
7237             another loop started after calling PostQuitMessage (Fixes #79119)
7238           - Created destructor to reset S.D handle
7239
7240 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
7241
7242         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
7243
7244 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7245
7246         * TextControl.cs (Insert): Update the caret position even if we don't
7247           have a handle yet, just don't call the driver in that case.
7248         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
7249           to the end of the new selection text (Fixes #79184)
7250
7251 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7252
7253         * Form.cs (Activate): Only activate if the handle is created)
7254         * Control.c:
7255           - Mark window as invisible when it's disposed
7256           - Check if window handle is created when setting window visible, 
7257             instead of relying just on the is_created variable
7258           - Check if object is disposed when creating the control (Fixes #79155)
7259
7260 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7261
7262         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
7263           when allowing layout again. Otherwise we re-generate the anchoring 
7264           distance to the border again and actually alter what the user wanted
7265           This is ugly, it'd be better if we used DisplayRectangle instead of
7266           ClientRectangle for Control.UpdateDistances, but that causes us to
7267           have other problems (initial anchoring positons would be wrong)
7268           (Fixes #78835)
7269
7270 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7271
7272         * Control.cs:
7273           - The size and location setters shouldn't go directly to 
7274             SetBoundsCore, but to SetBounds, which triggers layout on the
7275             parent, then calls SetBoundsCore. (Related to fix for #78835)
7276           - SetBounds: Moved actual location update code into this function
7277             from SetBoundsCore, to match MS. Added call to PerformLayout if
7278             we have a parent (to trigger resizing of anchored parents if the 
7279             child size has changed (see testcase for #78835) 
7280         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
7281           new control code
7282         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
7283
7284 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7285
7286         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
7287           System.Drawing when a toplevel window gets closed; there might
7288           be other toplevel windows belonging to the same app (Fixes #78052)
7289
7290 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
7291
7292         * FileDialog.cs: After reading FileDialog settings from mwf_config
7293           use Desktop prefix only if a real folder doesn't exist anymore.
7294         * FontDialog.cs: Added char sets.
7295           It is now possible to select the font, size or style with the
7296           textboxes.
7297
7298 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
7299
7300         * PrintPreviewDialog.cs: Use assembly name constants.
7301
7302 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7303
7304         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
7305           scrollbar from whacking it's buttons)
7306
7307 2006-08-24  Chris Toshok  <toshok@ximian.com>
7308
7309         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
7310         in this patch (aggregating setting Left/Top/Width/Height to
7311         setting Bounds on the scrollbars), but the crux of the fix is in
7312         Recalculate, where we scroll by the remaining scroll_position if
7313         we're hiding a scrollbar.  The 2*$5 reward in the comment is
7314         serious.
7315
7316 2006-08-24  Jackson Harper  <jackson@ximian.com>
7317
7318         * MdiClient.cs:
7319         * MdiWindowManager.cs: If the form is made a non-mdi window we
7320         need to remove the form closed event so that closing forms works
7321         correctly.
7322
7323 2006-08-24  Jackson Harper  <jackson@ximian.com>
7324
7325         * Control.cs: Make IsRecreating internal so that the driver can
7326         check it
7327         - Temporarily remove the Hide when controls are removed, its
7328         making a whole bunch of things not work because visibility isn't
7329         getting reset elsewhere correctly
7330         * Form.cs: Need to do a full handle recreation when the mdi parent
7331         is set.
7332         * XplatUIX11.cs: If we are recreating handles don't dispose the
7333         HWNDs.  What was happening is the handles were being recreated in
7334         SendWMDestroyMessages, but then flow continued on in that method
7335         and destroyed the new handles.
7336
7337 2006-08-23  Jackson Harper  <jackson@ximian.com>
7338
7339         * Form.cs: MdiClient is always at the back of the bus
7340         * Control.cs: When the order of items in the collection is changed
7341         we need to reset the all_controls array
7342         - do the same sorta setup thats done when adding a control when a
7343         control is set on the collection.
7344
7345 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
7346
7347         * TextBoxBase.cs (get_Text): Return an empty array if our document
7348           is empty (fixes #79052)
7349
7350 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7351
7352         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
7353           on WM_SYSCHAR messages (fixes #79053)
7354
7355 2006-08-23  Chris Toshok  <toshok@ximian.com>
7356
7357         * DataGrid.cs: fix flickering when scrolling vertically.
7358
7359 2006-08-23  Chris Toshok  <toshok@ximian.com>
7360
7361         * DataGrid.cs (EndEdit): only invalidate the row header when we
7362         need to.
7363
7364 2006-08-23  Chris Toshok  <toshok@ximian.com>
7365
7366         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
7367         methods.  fixes the flicker when scrolling around.
7368
7369 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7370
7371         * FileDialog.cs: Making sure the control is created before we get a 
7372           chance to use it with BeginInvoke (Fixes #79096)
7373
7374 2006-08-23  Chris Toshok  <toshok@ximian.com>
7375
7376         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
7377         width to use when painting the rows.
7378
7379 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
7380
7381         * TextBoxBase.cs:
7382           - Throw ArgumentException if a negative value is passed to SelectionLength
7383           - Update the selection end if start is moved. end needs to be always
7384             after start. (Fixes #79095)
7385           - Track selection length; MS keeps the selection length even if start
7386             is changed; reset on all other operations affection selection
7387
7388 2006-08-22  Jackson Harper  <jackson@ximian.com>
7389
7390         * TreeView.cs: Make sure both scrollbars get displayed and sized
7391         correctly when the other bar is visible.
7392         - Use the original clip rectangle for checking if the area between
7393         the two scrollbars is visible, not the viewport adjusted clipping
7394         rectangle.
7395
7396 2006-08-22  Jackson Harper  <jackson@ximian.com>
7397
7398         * Binding.cs: We don't use IsBinding because it requires the
7399         control to be created, which really shouldn't be necessary just to
7400         set a property on the control.
7401
7402 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7403
7404         * ComboBox.cs: Some CB.ObjectCollection methods must throw
7405         ArgumentNullReferenceException when the argument is null.
7406
7407 2006-08-21  Jackson Harper  <jackson@ximian.com>
7408
7409         * Timer.cs: Track the thread that the timer is started in (NOT
7410         CREATED), this way messages for it will only be triggered on its
7411         queue.
7412         * XEventQueue.cs: Track the timers here, this makes timers per
7413         thread, like MS.
7414         * XplatUIX11.cs: The timers are moved to the XEventQueue.
7415
7416 2006-08-19  Chris Toshok  <toshok@ximian.com>
7417
7418         * XplatUIX11.cs: after further communication with pdb, we get the
7419         best of both worlds.  SetZOrder working for un-Mapped windows, and
7420         no X errors for un-mapped windows.
7421
7422 2006-08-19  Chris Toshok  <toshok@ximian.com>
7423
7424         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
7425         as it was causing pdn toolbars to not have the correct stacking.
7426
7427 2006-08-18  Mike Kestner  <mkestner@novell.com> 
7428
7429         * ListView.cs : guard against negative ClientArea.Width in scrollbar
7430         calculation.  Not sure why control should ever be setting a negative
7431         width though.  Fixes #78931.
7432
7433 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7434
7435         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
7436         null items in ObjectCollection class.
7437         * ListBox.cs.: Likewise.
7438
7439 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
7440
7441         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
7442           as the base method in ThemeWin32Classic should work fine.
7443           Fixed bug #78607.
7444
7445 2006-08-18  Jackson Harper  <jackson@ximian.com>
7446
7447         * Binding.cs: When validating if the value entered doesn't convert
7448         properly reset to the old value.
7449         * RadioButton.cs: Don't fire click when we get focus.
7450
7451 2006-08-18  Jackson Harper  <jackson@ximian.com>
7452
7453         * FileDialog.cs: Paint the selection on the directory combobox the
7454         same way as on MS. 
7455
7456 2006-08-17  Jackson Harper  <jackson@ximian.com>
7457
7458         * ErrorProvider.cs: Don't allow the error control to be selected.
7459         * Control.cs: Don't send the SetFocus messages, the control
7460         activation will do this, and if we do it blindly here validation
7461         does not work.
7462
7463 2006-08-17  Jackson Harper  <jackson@ximian.com>
7464
7465         * Control.cs:
7466         * ContainerControl.cs: Make validation events fire in the correct
7467         order.  TODO: For some reason the first validation event is not
7468         getting fired.
7469
7470 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7471
7472         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
7473
7474 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7475
7476         * ComboBox.cs : implement scroll wheel support for popped-down
7477         state. Fixes #78945. 
7478
7479 2006-08-17  Jackson Harper  <jackson@ximian.com>
7480
7481         * TreeView.cs: Specify treeview actions (old patch that didn't get
7482         committed for some reason).
7483         - Don't let the mouse wheel scroll us too far.  Just want to make
7484         the bottom node visible, not scroll it all the ways to the top.
7485
7486 2006-08-17  Jackson Harper  <jackson@ximian.com>
7487
7488         * XplatUIX11.cs: Mouse wheel events go to the focused window.
7489
7490 2006-08-17  Mike Kestner  <mkestner@novell.com> 
7491
7492         * ComboBox.cs : don't do mouseover selection in simple mode.
7493
7494 2006-08-16  Jackson Harper  <jackson@ximian.com>
7495
7496         * Form.cs: Fire the closing events for all the mdi child windows
7497         when a window is closed.  If the cancel args are set to true, the
7498         main window still gets the event fired, but it doesn't not close.
7499         * MdiWindowManager.cs: Do this closing cleanup in a Closed
7500         handler, instead of when the button is clicked, so cancelling the
7501         close works correctly.
7502         * ComboBox.cs: Send the mouse down to the scrollbar.
7503
7504 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7505
7506         * ListBox.cs: When passing 'null' to SelectedItem,
7507         set SelectedIndex to -1, to unselect items. This is the
7508         observed behaviour in .Net.
7509
7510 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
7511
7512         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
7513           MS flags saying there won't be any. (fixes #78800)
7514         * Control.cs (HandleClick): Made virtual
7515
7516 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
7517
7518         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
7519           cultures. Fixed bug #78399.
7520
7521 2006-08-16  Jackson Harper  <jackson@ximian.com>
7522
7523         * Form.cs: Use the MdiClients MdiChildren property to access
7524         MdiChildren instead of creating the array from the child controls.
7525         * MdiClient.cs: Maintain a separate array of the mdi children, so
7526         that insertion order is maintained when the Z-order is changed.
7527
7528 2006-08-16  Mike Kestner  <mkestner@novell.com> 
7529
7530         * ListView.cs : add an ItemComparer and default to it for sorting.
7531         Fixes #79076, but sorting needs a complete overhaul to be compat with
7532         MS.
7533
7534 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7535
7536         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
7537
7538 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7539
7540         * Hwnd.cs (Mapped): Properly traverse the tree
7541
7542 2006-08-15  Chris Toshok  <toshok@ximian.com>
7543
7544         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
7545         pass manager.Current.GetType() to ParseData.  It has to be the
7546         property type.  So, hold off doing the ParseData until we're in
7547         SetPropertyValue where we know the type.  This fixes the crash in
7548         #78821 but the textbox is still empty.
7549
7550 2006-08-15  Chris Toshok  <toshok@ximian.com>
7551
7552         * DataGrid.cs:
7553         - when we're scrolling, only call Edit() again if the
7554         current cell is still unobscured. Fixes bug #78927.
7555         - when handling mousedown on a cell, ensure the cell is visible
7556         before calling Edit.
7557         - remove the properties from DataGridRow, and remove the
7558         DataGridParentRow class altogether.
7559         
7560
7561 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7562
7563         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
7564           fire OnTextChanged by ourselves. There's no point calling base,
7565           we don't set the base value anywhere else. Fixes #78773.
7566
7567 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7568
7569         * ListBox.cs: Call CollectionChanged when modifying
7570         an item from Items indexer, to update the actual items
7571         in the list box.
7572
7573 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7574
7575         * PrintDialog.cs: Small fixes for focus and a pair of checks,
7576         to match .Net behaviour.
7577
7578 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7579
7580         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
7581
7582 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
7583
7584         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
7585
7586 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
7587
7588         * MessageBox.cs: Prevent potential NRE exception.
7589         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
7590
7591 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7592
7593         * MessageBox.cs: Calculate the owner of a messagebox, also make
7594           it topmost. Fixes #78753
7595
7596 2006-08-14  Chris Toshok  <toshok@ximian.com>
7597
7598         * XplatUIX11.cs: A couple of fixes so that metacity will let us
7599         programmatically move windows.  first, set the PPosition hint as
7600         well as the USPosition hint.  Second include some code from pdb
7601         that sets the window type to NORMAL when we set the transient for
7602         hint.  This is because, in the absence of a window type, metacity
7603         thinks any window with TransientFor set is a dialog, and refuses
7604         to let us move it programmatically.  fascists.
7605
7606 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
7607
7608         * XplatUIX11.cs: When setting normal hints, take into consideration
7609           an different hints previously set so we don't delete them (fixes #78866)
7610
7611 2006-08-12  Chris Toshok  <toshok@ximian.com>
7612
7613         * ToolBarButton.cs: make Layout return a boolean, if something to
7614         do with the button's layout changed.
7615
7616         * ToolBar.cs:
7617         - add another parameter to Redraw, @force, which all existing
7618           calls set to true.
7619         - make the Layout function return a boolean which is true if the
7620           layout has actually changed.  Redraw now uses this (and @force)
7621           to determine when to invalidate.  At present the only place
7622           where @force can be false is the call from OnResize, when
7623           background_image == null.  So, resizing a toolbar when the
7624           layout doesn't change results in no drawing.
7625
7626 2006-08-12  Chris Toshok  <toshok@ximian.com>
7627
7628         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
7629         the VScrollBar and HScrollbar reversed.  oops.
7630
7631         * DataGrid.cs: fix the logic that assigns sizes to the implicit
7632         scrollbars.  we were assigning them twice (once in
7633         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
7634         therefore causing two scrollbar resizes (and redraws?) to happen
7635         per grid resize.
7636
7637 2006-08-12  Chris Toshok  <toshok@ximian.com>
7638
7639         * ToolBarButton.cs: redraw the entire button if the theme tells us
7640         to.
7641
7642         * Theme.cs: add ToolBarInvalidateEntireButton.
7643
7644         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
7645         buttons, just the border.
7646
7647         * ThemeNice.cs: redraw the entire toolbar button since we need to
7648         draw the highlight image.
7649
7650         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
7651         we need to redraw the entire button (not just the border).
7652
7653 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7654
7655         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
7656           for vertical bars. Fixes the mismatches shown by #78513
7657
7658 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
7659
7660         * FileDialog.cs: If a saved/remembered path doesn't exist
7661           anymore, fall back to "Desktop".
7662
7663 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
7664
7665         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
7666           parent. It's apparently legal to not have one
7667         * XplatUIX11.cs:
7668           - SetZOrder: Don't try to set Z-Order on an unmapped window
7669           - CreateWindow: 0,0 are legal coordinates for a window. don't move
7670             it unless the coordinates are negative
7671
7672 2006-08-10  Mike Kestner  <mkestner@novell.com>
7673
7674         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
7675         when setting to null per msdn docs.  Fixes #78854.
7676
7677 2006-08-10  Chris Toshok  <toshok@ximian.com>
7678
7679         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
7680         flickering by setting a clip rectangle on the Graphics when we
7681         need to redraw just a particular menuitem.  Also, rename "OnClick"
7682         to "OnMouseDown" to reflect what it actually is.
7683         
7684         * Form.cs: track the OnMouseDown change.
7685
7686 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
7687
7688         * CommonDialog.cs: Properly inherit the CreateParams from the form
7689           and only change what we need. Fixes #78865
7690
7691 2006-08-10  Chris Toshok  <toshok@ximian.com>
7692
7693         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
7694         flickering in flat mode (and most of the flickering in general) by
7695         only invalidating the button border (and not the entire rectangle)
7696         when the state changes.  A couple of cases still flicker:
7697         ToggleButtons, and the dropdown arrow case when the user mouse
7698         ups.
7699
7700 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
7701
7702         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
7703           for german keyboards. Numlock state shouldn't affect the behaviour
7704           of the Del key. Fixes bug #78291.
7705
7706 2006-08-10  Chris Toshok  <toshok@ximian.com>
7707
7708         * ListControl.cs: remove the items.Clear line from BindDataItems,
7709         as this is the first thing done by both subclasses in their
7710         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
7711         passed -1, refresh the list.  This gets databinding working when
7712         the datasource is set on the list before the datasource is
7713         populated (as in wf-apps/ReportBuilder.)
7714
7715         * ComboBox.cs: remove the argument to BindDataItems.  This call
7716         should really go away, and be initiated by the ListControl code.
7717
7718         * ListBox.cs: same.
7719
7720 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7721
7722         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
7723           if no data is in the document when the control is displayed
7724
7725 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
7726
7727         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
7728           yes (fixes #78806)
7729         * TextControl.cs: 
7730           - PositionCaret: Allow positioning of caret but don't call methods 
7731             requiring a handle if the window isn't created yet
7732           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
7733           - owner_HandleCreated: Don't position the caret, just update it's 
7734             location. User might have already set a different position
7735
7736 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
7737
7738         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
7739           windows. Screws up the returned coordinates for child windows. 
7740           Fixes #78825. I'm hoping this doesn't break something, since the
7741           code was explicitly put in 8 months ago, but no bug was attached.
7742           Menus still seem to work properly.
7743
7744 2006-08-08  Chris Toshok  <toshok@ximian.com>
7745
7746         * DataGrid.cs: make BeginInit/EndInit actually do what they're
7747         supposed to do - delay data binding until the EndInit call.  Also,
7748         make the table style collection's CollectionChangeAction.Refresh
7749         work properly.
7750
7751         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
7752         (with action = Refresh) when a consituent table's MappingName is
7753         changed.
7754
7755 2006-08-08  Chris Toshok  <toshok@ximian.com>
7756
7757         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
7758         Invalidate, since changing the text can change the size of the all
7759         toolbar buttons.
7760
7761 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7762
7763         * Form.cs (AddOwnedForm): Still need to add the form to our listif
7764           we don't have it yet
7765
7766 2006-08-08  Chris Toshok  <toshok@ximian.com>
7767
7768         * PrintControllerWithStatusDialog.cs: don't .Close() the status
7769         dialog, as this causes X errors later on, since we actually
7770         destroy the window.  Instead, .Hide() it.
7771
7772 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
7773
7774         * ComboBox.cs: Added focus reflection for popup window
7775         * XplatUIX11.cs: 
7776           - Removed transient setting for non-app windows for now, not sure it
7777             was needed
7778           - Fixed logic checking if we have captions when deciding 
7779             override_redirect, WS_CAPTION is two bits and a 0 check was not
7780             sufficient
7781           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
7782             complicated
7783         * Form.cs: 
7784           - AddOwnedForm: Don't just add the form to the list, call the property
7785             to ensure the driver is informed about the ownership as well
7786           - CreateHandle: Set the TopMost status in the driver if we have an owner
7787         * XplatUI.cs: Fixed debug statement
7788
7789 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
7790         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7791           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
7792           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
7793           TrackBarRenderer.cs: Make constructor private.
7794         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
7795         * ProfessionalColorTable.cs: Make properties virtual.
7796
7797 2006-08-06  Duncan Mak  <duncan@novell.com>
7798
7799         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
7800         is not changing.
7801
7802 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7803         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
7804           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
7805           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
7806           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
7807           Initial import of new 2.0 classes.
7808
7809 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7810         * Application.cs: Add 2.0 VisualStyles properties.
7811
7812 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
7813         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
7814           XplatUIX11.cs: Create property to allow access to existing private
7815           variable "themes_enabled"
7816
7817 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7818
7819         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
7820         file size, as otherwise our class libraries fail using windows. Fixes
7821         bug #78759.
7822
7823 2006-08-04  Jackson Harper  <jackson@ximian.com>
7824
7825         * Form.cs:
7826         * XplatUIX11.cs: Move the toolwindow window manager creation into
7827         the X11 driver, this way on win32 we can let windows create/handle
7828         the toolwindows.
7829
7830 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7831
7832         * PrintDialog.cs: Remove some redundant checks, add some others,
7833         clean some code, and move the focus to the text boxes when the
7834         values are incorrect.
7835
7836 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
7837
7838         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
7839
7840 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7841
7842         * NumericUpDown.cs: Setting the Minimum and Maximum is now
7843           handled correctly. Fixes bug #79001.
7844
7845 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
7846
7847         * PrintDialog.cs: The "Copies" numeric up down must have
7848         set the Minimum property to 1; only if the value is bigger
7849         than 1, activate "Collate" check box. This is the behaviour of .Net.
7850         Also modify the Document elements only if it is not null.
7851
7852 2006-08-03  Jackson Harper  <jackson@ximian.com>
7853
7854         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
7855         length. (We have a larger array then actual node count).
7856                 
7857 2006-08-03  Jackson Harper  <jackson@ximian.com>
7858
7859         * ComboBox.cs: Don't show selection by default.
7860         - The SelectAll isn't needed here, since the focus code should do
7861         that
7862         - DDL style lists to manual selection drawing, so when they
7863         get/lose focus they have to invalidate.
7864
7865 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
7866
7867         * TextBoxBase.cs: Don't always show all selections by default.
7868
7869 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
7870         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
7871           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
7872           Fixed various typos.
7873
7874 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
7875
7876         * Control.cs: Removing the controls in a ControlCollection with
7877           Clear now hides the controls as expected. Fixes bug #78804. 
7878
7879 2006-08-03  Jackson Harper  <jackson@ximian.com>
7880
7881         * Control.cs: Revert previous focus patch, it breaks reflector.
7882
7883 2006-08-03  Jackson Harper  <jackson@ximian.com>
7884
7885         * ComboBox.cs: Cleanup selection and focus with the combobox.
7886         This also eliminates some duplicated keyboard code, since now
7887         everything is handled by the main class.
7888         - Make list selection work on mouse up instead of down, to match
7889         MS.
7890
7891 2006-08-02  Jackson Harper  <jackson@ximian.com>
7892
7893         * Control.cs: Setting focus needs to go through the whole
7894         selection mechanism.
7895
7896 2006-08-02  Chris Toshok  <toshok@ximian.com>
7897
7898         * PrintPreviewDialog.cs: change MinimumSize to use
7899         base.MinimumSize so it works.
7900
7901 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
7902
7903         * TextControl.cs:
7904           - UpdateCaret: Added sanity check in case caret isn't defined yet
7905           - Line.Delete: Now updating selection and caret markers if we're
7906             transfering a node (Properly fixes #78323)
7907           - SetSelectionEnd: Added sanity check
7908         * TextBoxBase.cs: Removed broken attempt to fix #78323
7909
7910 2006-08-01  Chris Toshok  <toshok@ximian.com>
7911
7912         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
7913         Close() call is handled in Form, not here.
7914
7915 2006-08-01  Chris Toshok  <toshok@ximian.com>
7916
7917         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
7918         layout/rendering.
7919
7920         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
7921         for sizes < 100% zoom.  The code now aggressively attempts to keep
7922         from calling document.Print (), and tries not to use the scaling
7923         g.DrawImage whenever possible (it still does if you scale to >
7924         100%, since usually that involves huge images).
7925
7926         * PrintPreviewControl.cs: hook up the close button.
7927
7928 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
7929         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
7930           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
7931           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
7932           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
7933           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
7934           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
7935           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
7936           Removed [Serializable] for 2.0 Event Handlers.
7937
7938 2006-07-31  Jackson Harper  <jackson@ximian.com>
7939
7940         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
7941         * TextControl.cs: Uncomment out the body of this method.
7942
7943 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
7944
7945         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
7946           standard cursors.
7947
7948 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7949
7950         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
7951           that embed TextBox and need selections visible even if textbox is not
7952           focused to enforce that behaviour.
7953         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
7954           selection drawing
7955
7956 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7957
7958         * TextControl.cs:
7959           - Added new SetSelectionStart/SetSelectionEnd overloads
7960           - Fixed viewport width assignment to be accurate
7961           - Adjusted alignment line shift calculations to allow cursor on right
7962             aligned lines to be always visible at the right border (like MS)
7963         * TextBoxBase.cs:
7964           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
7965           - TextBoxBase_SizeChanged: recalculating canvas on size changes
7966           - CalculateScrollBars: Use ViewPort size instead of window size, to
7967             properly consider space occupied by the border and scrollbars 
7968             (Fixes #78661)
7969           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
7970             calculations; no longer leaves artifacts
7971           - CaretMoved: Adjusted window scrolling to match MS and fixed several
7972             calculation bugs (Still missing right/center align calculations)
7973
7974 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
7975
7976         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
7977           use of both scroll rect and clip rect, as they do the same.
7978
7979 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
7980
7981         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
7982           in the event handler (fixes #78912)
7983
7984 2006-07-31  Chris Toshok  <toshok@ximian.com>
7985
7986         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
7987         grid.ListManager.Count, since grid.ListManager might be null.
7988         This of course begs the question "why are we drawing rows for a
7989         grid with no list manager (and therefor no rows)?"  Fixes the
7990         crash in bug #78929.
7991
7992 2006-07-31  Chris Toshok  <toshok@ximian.com>
7993
7994         * RelatedPropertyManager.cs: Don't always chain up to the parent
7995         ctor.  instead, call SetDataSource if the parent's position is !=
7996         -1.  Fixes the crash in #78822.
7997
7998 2006-07-31  Chris Toshok  <toshok@ximian.com>
7999
8000         * DataGrid.cs (get_ListManager): use field instead of property
8001         accessors for datasource and datamember.
8002         (RowsCount): make internal again.
8003         (OnMouseDown): end edits before resizing columns/rows.
8004         (OnMouseUp): restart edits after resizing columns/rows.
8005
8006 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
8007
8008         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
8009           This fixes the situation where the last set cursor is displayed
8010           whenever the mouse is over scrollbars.
8011
8012 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8013
8014         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
8015         Document properties, as well as initial values.
8016
8017 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
8018
8019         * XplatUIWin32.cs (SetBorderStyle): Setting both border
8020           and ClientEdge results in a 3-pixel border, which is
8021           wrong.
8022
8023 2006-07-28  Jackson Harper  <jackson@ximian.com>
8024
8025         * TreeNodeCollection.cs: Fix the clear method.
8026         - Fix the Shrink also
8027
8028 2006-07-27  Jackson Harper  <jackson@ximian.com>
8029
8030         * TreeView.cs: Make sure the visible order is computed when we
8031         attempt to size the scrollbars (for trees that mess with the
8032         scrolling when they shouldn't.
8033         - Make sure to give the scrollbars valid values.
8034
8035 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
8036
8037         * XplatUIX11.cs: Move motion compression code to where it
8038           has less performance impact
8039
8040 2006-07-26  Jackson Harper  <jackson@ximian.com>
8041
8042         * UpDownBase.cs: When the control is selected make the child
8043         controls non selectable, so that a click on them won't do a
8044         focus/unfocus cycle.
8045         - Don't give focus to the text box when the spinner is selected.
8046         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
8047
8048 2006-07-26  Chris Toshok  <toshok@ximian.com>
8049
8050         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
8051         satisfied with this solution.  If the bitmaps are small, we should
8052         just cache them in the PrintPreviewDialog and draw them here.
8053         Also, the layout is broken for the 2-up and 3-up cases.
8054
8055         * Theme.cs: add PrintPReviewControlPaint.
8056
8057         * PrintPreviewDialog.cs: first pass implementation.
8058
8059         * PrintPreviewControl.cs: first pass implementation.  No
8060         scrollbars yet.
8061
8062         * PrintDialog.cs: only validate fields if that particular portion
8063         of the UI is enabled.  Also, set the document's controller to a
8064         PrintControllerWithStatusDialog wrapping the document's print
8065         controller.
8066
8067         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
8068         bring up a SaveFileDialog (i hope we don't want to match the
8069         behavior of the crappy windows file entry) and set the
8070         PrinterSettings.PrintFileName accordingly.
8071
8072 2006-07-26  Jackson Harper  <jackson@ximian.com>
8073
8074         * ContainerControl.cs: Add a field that disables auto selecting
8075         the next control in a container when the container is activated.
8076         * UpDownBase.cs: Don't select the text box when the up down is
8077         selected.
8078
8079 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
8080
8081         * XEventQueue.cs: Added methods for peeking (used for compression
8082           of successive events)
8083         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
8084           mouse move events (fixes #78732)
8085
8086 2006-07-25  Jackson Harper  <jackson@ximian.com>
8087
8088         * UpDownBase.cs: Use an internal class for the textbox so that we
8089         can control focus.  the updown control should always have focus,
8090         if either the text area or the buttons are clicked.
8091         - Send the key messages to the textbox, since it never actually
8092         has focus
8093         - Activate and decativate the textbox caret.
8094
8095 2006-07-24  Jackson Harper  <jackson@ximian.com>
8096
8097         * Control.cs: Use the directed select when selecting a control,
8098         this way the container controls override will get called and the
8099         whole ActiveControl chain will get triggered.  TODO: probably need
8100         to make sure this gets done everywhere instead of the old
8101         Select(Control).
8102         * ContainerControl.cs: Implement the directed Select method to
8103         find and activate the correct child control.    
8104         
8105 2006-07-22  Mike Kestner  <mkestner@novell.com>
8106
8107         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
8108         menu handling code so that clicks without a grab work too.
8109         [Fixes #78914]
8110
8111 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
8112
8113         * FileDialog.cs: Enable the BackButton when dirstack has one element.
8114           Added some small optimizations.
8115
8116 2006-07-21  Matt Hargett  <matt@use.net>
8117
8118         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
8119
8120 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
8121
8122         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
8123           tests pass and match MS in some strange border cases.
8124
8125 2006-07-21  Chris Toshok  <toshok@ximian.com>
8126
8127         * ThemeWin32Classic.cs: handle drawing of the relation links and
8128         parent row buttons.
8129
8130         * Theme.cs: change args to DataGridPaintParentRow.
8131
8132         * DataGrid.cs: Don't use controls for the relation links and
8133         parent buttons, so we have to handle all their interactions in
8134         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
8135         when we're navigating through child tables, so we can reinstate
8136         selection, expanded state, current cell, etc.
8137
8138 2006-07-20  Chris Toshok  <toshok@ximian.com>
8139
8140         * ToolBar.cs: When we redraw a button, for whatever reason,
8141         there's no reason to redraw the entire toolbar.  Also, don't call
8142         Control.Refresh from within Redraw, as it's much heavier than
8143         Invalidate (which is really what we want).
8144
8145 2006-07-20  Chris Toshok  <toshok@ximian.com>
8146
8147         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
8148         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
8149         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
8150         traces from within a debug IBindingList datasource
8151         (in mono/winforms/datagrid) for *days*, I've finally gotten things
8152         to work in a similar fashion.
8153
8154 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8155
8156         * ListBox.cs: Don't call Sort () when setting 
8157         the Sorted property to false (avoid an unnecessary sort).
8158
8159 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8160
8161         * ListControl.cs: DataSource should throw an ArgumentException
8162         instead of a normal exception when the argument is not of the 
8163         correct type.
8164
8165 2006-07-20  Mike Kestner  <mkestner@novell.com>
8166
8167         * Control.cs: add InternalPreProcessMessage to allow us to steal
8168         key events before MWF gets its paws on them.  Adapted from a
8169         suggestion by eno.
8170         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
8171         up/down/left/right navigation. Override the new internal control
8172         method to steal the events since they never make it to WndProc.
8173         * ToolBarButton.cs: don't worry about pushed when setting hilight
8174         since the drawing code prefers pushed to hilight. Invalidate on 
8175         Hilight changes. Fixes #78547 and #78525.
8176
8177 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
8178
8179         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
8180           the canvas size. Fixes #78868
8181
8182 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
8183
8184         * Splitter.cs: Track requested split position until first layout
8185           is performed. Fixes #78871
8186
8187 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
8188
8189         * Application.cs: Removed code that forces 1.x for the version
8190           number if the version started with 0. Not sure why that code was
8191           there and I couldn't find any bugs that indicated we needed it.
8192           Fixes #78869
8193
8194 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
8195
8196         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
8197           ResetDefaults(), just write some output to the console until it's
8198           implemented. Fixes bug #78907 for now. Eliminated two warnings.
8199
8200 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
8201
8202         * PropertyGridView.cs: set StartPosition of drop down forms
8203         so they appear in correct initial spot.  Fixes #78190.
8204
8205 2006-07-19  Mike Kestner  <mkestner@novell.com>
8206
8207         * ThemeWin32Classic.cs: use parent background color when drawing
8208         flat toolbars.  Restructure the conditionals to make sure non-flat
8209         non-Divider toolbars are filled too.  Fixes #78837.
8210
8211 2006-07-19  Mike Kestner  <mkestner@novell.com>
8212
8213         * ListBox.cs: Sort on collection changes even if the handle
8214         isn't created yet.  Fixes #78813.
8215
8216 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
8217
8218         * ListControl.cs: DisplayMember should never be null,
8219         and now we assign String.Empty when null is passed to it (this
8220         is the .Net way).
8221
8222 2006-07-17  Mike Kestner  <mkestner@novell.com>
8223
8224         * ListViewItem.cs: restructure Font and subitem Font handling 
8225         to hold a specific font and refer back to owner on null.
8226         Fixes #78761.
8227
8228 2006-07-17  Mike Kestner  <mkestner@novell.com>
8229
8230         * ToolBar.cs: bandaid for side-effect of previous patch which was
8231         discarding explicit heights for non-AutoSize toolbars.  Need to
8232         extend my format tester to deal with AutoSize=false. Fixes #78864.
8233
8234 2006-07-15  Jackson Harper  <jackson@ximian.com>
8235
8236         * LabelEditTextBox.cs:
8237         * TreeView.cs: Use a new LabelEdit class for node editing, this
8238         class automatically 'closes' itself when it gets the enter key or
8239         loses focus.
8240         - Use the client rectangle when setting the trees scrollbars, so
8241         border style is taken into account.
8242         
8243 2006-07-14  Jackson Harper  <jackson@ximian.com>
8244
8245         * TreeNode.cs:
8246         * TreeView.cs: Make the editing work similar to MSs, firing the
8247         events correctly and ending edits correctly.
8248
8249 2006-07-14  Mike Kestner  <mkestner@novell.com>
8250
8251         * ToolBarButton.cs:
8252         * ToolBar.cs: layout restructuring and redraw enhancements to support
8253         formatting changes gracefully, like setting TextAlign, ImageList, 
8254         ButtonSize, and Appearance.  Handles explicit button sizing quirks
8255         of the MS controls.  Things like flat toolbars ignoring button size
8256         but becoming constant sized at the largest button's size.  Normal
8257         toolbars with an image set cannot be shrunk smaller than the image,
8258         but text can be clipped/ignored.
8259         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
8260         is zero.  Seems like DrawString should be smart enough to not put
8261         anything on screen though. Also trim labels and ellipsize at the char
8262         boundary, not word.
8263         Fixes #78711 and #78483.
8264
8265 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8266
8267         * FolderBrowserDialog.cs: Disable "New Folder" button and
8268           "New Folder" contextmenu menuitem if a folder like "My Computer"
8269           is selected.
8270
8271 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8272
8273         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
8274         * FolderBrowserDialog.cs:
8275           - Use MWFConfig to store and read size and position settings
8276           - Added code to create a new folder (button or context menu).
8277             Use TreeView labeledit to change the name of the new folder.
8278
8279 2006-07-14  Jackson Harper  <jackson@ximian.com>
8280
8281         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
8282         when the tree is scrolled we end editing.
8283
8284 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
8285
8286         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
8287           Down arrows
8288
8289 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
8290
8291         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
8292         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
8293         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
8294         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
8295         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
8296         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
8297         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
8298         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
8299         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
8300         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
8301         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
8302         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
8303         ListViewItemSelectionChangedEventHandler.cs,
8304         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
8305         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
8306         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
8307         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
8308         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
8309         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
8310         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
8311         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
8312         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
8313         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
8314         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
8315         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
8316         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
8317         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
8318         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
8319         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
8320         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
8321         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
8322         WebBrowserNavigatingEventHandler.cs, 
8323         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
8324
8325 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
8326
8327         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
8328         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
8329         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
8330         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
8331         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
8332         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
8333         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
8334         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
8335         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
8336         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
8337         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
8338         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
8339         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
8340         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
8341         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
8342         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
8343         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
8344         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
8345         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
8346         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
8347         ListViewItemStates.cs, MaskFormat.cs: Added
8348
8349 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
8350
8351         * PropertyGridView.cs: Fix keyboard navigation of drop down.
8352         Patch from eno for bug 78558.
8353         
8354 2006-07-13  Jackson Harper  <jackson@ximian.com>
8355
8356         * TreeView.cs: When an edit is finished make sure that the
8357         selected node is visible.
8358         - When setting the top/bottom use the scrollbars is_visible, so
8359         everything will be set correctly even if the tree isn't visible
8360         yet.
8361
8362 2006-07-13  Jackson Harper  <jackson@ximian.com>
8363
8364         * ComboBox.cs: Revert the item->index part of my previous patch.
8365         * TreeView.cs: Use LostFocus instead of Leave for detecting when
8366         the edit box has lost focus (duh).
8367         - Just make the edit box not visible when we get return, that will
8368         take the focus, which will call EndEdit
8369         * TreeNode.cs When we start editing, notify the treeview.
8370
8371 2006-07-12  Jackson Harper  <jackson@ximian.com>
8372
8373         * ComboBox.cs: Clear out old items before setting the item list.
8374         This prevents databound controls from having their items added
8375         twice.
8376         - Switch the combobox to use indices whereever possible instead of
8377         using Item's.  This allows usto navigate through lists that have
8378         more then one item with the same string value (ie a, b, b, a).
8379         - Scroll the listboxes scrollbar when a non visible item is
8380         highlighted
8381         - Allow keypress to cycle through all the possible values. For
8382         example if you have b1, b2, b3 and hold down the B key all the
8383         values will be cycled through.
8384         
8385 2006-07-12  Jackson Harper  <jackson@ximian.com>
8386
8387         * TextBoxBase.cs:
8388         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
8389         this using the internal methods.
8390         * Control.cs: Add OnGotFocusInternal.  A new method that allows
8391         controls to "override" OnGotFocus and change focus behavior if
8392         needed.
8393         - Same thing for LostFocus
8394         * ComboBox.cs: Pass off focus to the text control properly.
8395
8396 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
8397
8398         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
8399         * FolderBrowserDialog.cs: Almost a complete rewrite.
8400           - Better support for Environment.Specialfolders
8401           - Added support for MWFVFS
8402           - Made setting SelectedPath work
8403
8404 2006-07-12  Jackson Harper  <jackson@ximian.com>
8405
8406         * Control.cs: Optimze getting all the controls.
8407
8408 2006-07-11  Jackson Harper  <jackson@ximian.com>
8409
8410         * ContainerControl.cs: Override SETFOCUS in the container control,
8411         so that it is not selected on mouse click.
8412
8413 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
8414
8415         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
8416           Hopefully we will have a better way once all of focus is complete.
8417
8418 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
8419
8420         * ThemeWin32Classic.cs: Commented out some debug code and fixed
8421           a compile error with csc.
8422
8423 2006-07-11  Jackson Harper  <jackson@ximian.com>
8424
8425         * Control.cs: When hiding a control only select the next control
8426         if the current control was focused.
8427         - Don't handle enter/leave when setting/killing focus, this is
8428         done by the container control.
8429         - Remove is_selected, it's not needed anymore.
8430         - Add utility methods for selecting a child control, and for
8431         firing the Enter/Leave events.
8432         * ContainerControl.cs: When a control is activated fire the
8433         enter/leave events.
8434         - Don't wrap when processing the tab key, so that focus can be
8435         moved outside of the container.
8436         - Use the correct active control
8437
8438 2006-07-11  Jackson Harper  <jackson@ximian.com>
8439
8440         * ComboBox.cs: Remove some debug code that was blinding me.
8441         * UpDownBase.cs: These controls actually aren't implicit, they are
8442         visible to the user.
8443
8444 2006-07-10  Chris Toshok  <toshok@ximian.com>
8445
8446         * DataGrid.cs: move back to the is_adding boolean field.  god i
8447         hate this is_editing/is_adding/is_changing stuff.
8448
8449 2006-07-10  Chris Toshok  <toshok@ximian.com>
8450
8451         * DataGridTableStyle.cs: just check if the property type is bool.
8452         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
8453         Don't use CanRenderType.
8454
8455         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
8456         if our text == NullText.  Remove CanRenderType.
8457
8458         * DataGridBoolColumn.cs: nuke CanRenderType.
8459
8460         * DataGrid.cs: reenable some code to end the current edit inside
8461         of set_CurrentCell.  This fixes the other 1.1.16 regression.
8462         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
8463         Also, remove the visible_row_count arg from CalcRowHeaders, since
8464         we don't need to worry about the actual height of the area.
8465
8466 2006-07-10  Chris Toshok  <toshok@ximian.com>
8467
8468         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
8469         mode, just return.
8470
8471         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
8472         the real sense of the IsInEditOrNavigateMode property (true =
8473         navigate, false = edit).  Also, update OnKeyPress to reflect this.
8474
8475         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
8476         column style exists, we still need to set its property descriptor
8477         to match up with our list manager.
8478
8479 2006-07-10  Chris Toshok  <toshok@ximian.com>
8480
8481         * ThemeWin32Classic.cs: implement the new row/header painting
8482         approach.  The parent row painting will likely go away and
8483         replaced with label controls, but the rest seems to work ok (and
8484         efficiently).
8485
8486         * Theme.cs: change the way we draw datagrid rows.  we don't draw
8487         the row headers as a block now.  Instead we draw them in the
8488         normal draw-row loop.  Add some calls for drawing parent rows and
8489         relation rows.
8490
8491         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
8492         a default table style.  Set the defaults from ThemeEngine.Current,
8493         not SystemColors.  Fix lots of misc issues with property setters.
8494
8495         * DataGrid.cs: move loads of style information out of this class
8496         as it's being duplicated with DataGridTableStyle.  keep track of a
8497         special DataGridTableStyle for the properties we used to mirror
8498         here.  Switch all the style properties to access this table style
8499         instead of instance fields of this class.  Also add a internal
8500         class to represent parent rows (more needs to be stored here, like
8501         the selection state from the parent table, as well as the
8502         expansion state.)  Also, for datasources with relations, do the
8503         right thing for collapse/expand, and add support for the
8504         navigation/parent row buttons.
8505
8506         Lastly, fix the crash in the 1.1.16 build.
8507
8508         * GridTableStylesCollection.cs: make the explicit interface
8509         implementations call the class's methods as opposed to duplicating
8510         them.
8511
8512         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
8513         0 so the text doesn't jump around when we move the cursor.
8514
8515 2006-07-10  Jackson Harper  <jackson@ximian.com>
8516
8517         * TextBoxBase.cs:
8518         * ListBox.cs: Match MS's ToString (this makes debugging focus
8519         stuff infinitely easier).
8520
8521 2006-07-10  Jackson Harper  <jackson@ximian.com>
8522
8523         * Control.cs (SelectNextControl): When checking the control's
8524         parent use this instead of ctrl.parent so that null can be passed
8525         to SelectNextControl. (I have unit tests for this).
8526         - Remove unused var.
8527
8528 2006-07-10  Chris Toshok  <toshok@ximian.com>
8529
8530         * CurrencyManager.cs: correct one regression, the removal of the
8531         finalType field.  Also, add a MonoTODO on CanAddRows, implement
8532         Refresh() correctly, and fix some event emission in
8533         ListChangedHandler.
8534
8535 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8536
8537         * FileDialog.cs: Don't use brackets for new folders if they exist
8538           under *nix. Instead use -(number of existing folders +1).
8539
8540 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
8541
8542         * FileDialog.cs:
8543           - Fixed really nasty bug #78771
8544           - Don't block the whole GUI when reading directories with a lot of
8545             entries. Use an other thread instead and call BeginInvoke to
8546             update the ListView in MWFFileView
8547
8548 2006-07-07  Chris Toshok  <toshok@ximian.com>
8549
8550         * Control.cs (Dispose): release any Capture when disposing.
8551
8552 2006-07-07  Chris Toshok  <toshok@ximian.com>
8553
8554         * LinkLabel.cs (Select): if we chain up to the parent, set
8555         focused_index to -1 so we'll search for the first available link
8556         the next time the user tabs into us.  Also, if the direction is
8557         backward and focused_index == -1, start the search from the last
8558         element.
8559
8560 2006-07-07  Chris Toshok  <toshok@ximian.com>
8561
8562         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
8563         is beyond the end of the text, don't do anything.
8564         (CreateLinkPieces): set our ControlStyles.Selectable based on
8565         whether or not we have any links.
8566         (Link.Invalidate): use a loop instead of foreach.
8567         (Link.set_Start): null out owner.sorted_links so it'll be
8568         recreated by CreateLinkPieces.
8569
8570 2006-07-06  Chris Toshok  <toshok@ximian.com>
8571
8572         * LinkLabel.cs: revert the SetStyle change.
8573
8574 2006-07-06  Chris Toshok  <toshok@ximian.com>
8575
8576         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
8577         (OnEnableChanged): s/Refresh/Invalidate
8578         (OnGotFocus): if we have a focused index already, refocus it (so
8579         if we mouse out/in to the window it'll focus the right link).
8580         (OnKeyDown): move the tab handling out of here.
8581         (OnLostFocus): don't set focused_index to -1, so we can refocus it
8582         when we lose focus.
8583         (OnMouseDown): don't Capture here - Control handles it.  Also,
8584         focus the active link.
8585         (OnMouseUp): don't deal with Capture.
8586         (OnPaintBackgroundInternal): remove.
8587         (OnTextAlignChanged): CreateLinkPieces before calling the
8588         superclass's method.
8589         (OnTextChanged): call CreateLinkPieces before calling superclass's
8590         method.
8591         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
8592         move around.
8593         (Select): implement this, moving the selection between different
8594         links, and call parent.SelectNextControl if we don't have another
8595         link to focus in the given direction.
8596         (CreateLinkPieces): call Invalidate instead of Refresh.
8597         
8598 2006-07-06  Chris Toshok  <toshok@ximian.com>
8599
8600         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
8601         new LinkLabel internals.
8602
8603         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
8604         over pieces looking for active/focused/etc links.  also, deal with
8605         runs of text (and links) with embedded \n's in them, and use
8606         MeasureCharacterRanges instead of MeasureString to figure out the
8607         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
8608         two-step.
8609
8610 2006-07-04  Jackson Harper  <jackson@ximian.com>
8611
8612         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
8613         XKB or key auto repeat, do it manually.  Without key auto repeat,
8614         when a key is held down we get key press, key release, key press,
8615         key release, ... with auto repeat we get key press, key press, key
8616         press ..., and then a release when the key is actually released.
8617
8618 2006-07-03  Jackson Harper  <jackson@ximian.com>
8619
8620         * TabControl.cs:
8621         * ThemeWin32Classic.cs: Tabs do not obey normal background color
8622         rules, they are always control color regardless of the background
8623         color.
8624
8625 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
8626
8627         * FileDialog.cs: Added internal class MWFConfig.
8628           Removed Registry support and replaced it with support for the new
8629           MWFConfig class. See MWFConfig comments for more information.
8630
8631 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
8632
8633         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
8634           rectangle. Added some patches from eno from bug #78490 and fixed
8635           the arrow position for small up and down CPDrawScrollButtons.
8636
8637 2006-06-30  Jackson Harper  <jackson@ximian.com>
8638
8639         * InternalWindowManager.cs: Remove some debug code.
8640         * Form.cs: When an MdiParent is set to null, the window is
8641         "detatched" and becomes a normal window.
8642         * MdiClient.cs: Don't bring the new child form to the front until
8643         it is activated (setting it as active does this), this makes the
8644         previously active forms titlebar get redrawn as inactive.
8645
8646 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
8647
8648         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
8649           with later controls
8650
8651 2006-06-29  Mike Kestner  <mkestner@novell.com>
8652
8653         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
8654         arrow in keynav state.  Fixes #78682.
8655
8656 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8657
8658         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
8659           order (fixes #78393)
8660
8661 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
8662
8663         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
8664           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
8665           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
8666           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
8667           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
8668           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
8669           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
8670           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
8671           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
8672           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
8673           enumerations (FlagsAttribute, SerializableAttribute, added/removed
8674           values)
8675
8676 2006-06-28  Mike Kestner  <mkestner@novell.com>
8677
8678         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
8679
8680 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
8681
8682         * PropertyGrid.cs,
8683           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
8684           item lines from other area (It also makes BackColor consistent and
8685           compatible with .NET). Fixed bug #78564.
8686
8687 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
8688
8689         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
8690         Patch from Eno for #78555.
8691
8692 2006-06-27  Chris Toshok  <toshok@ximian.com>
8693
8694         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
8695
8696         * DataGridColumnStyle.cs: same.
8697
8698         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
8699         
8700         * DataGridDrawingLogic.cs: nuke.
8701
8702 2006-06-27  Chris Toshok  <toshok@ximian.com>
8703
8704         * DataGridTableStyle.cs: clean up the constructors, and build the
8705         list of child relations for this table.  I have no idea if this is
8706         where we should be doing it (it probably isn't), but since we're
8707         already iterating over the properties..
8708
8709         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
8710         struct and array for keeping track of row information, similar to
8711         what's shown in a hack on
8712         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
8713
8714         * Theme.cs: be consistent about the naming of DataGrid methods,
8715         prefering ColumnWidths and RowHeights over columnsWidths and
8716         RowsHeights.
8717
8718         * ThemeWin32Classic.cs: same, and also add support for variable
8719         sized rows (and the +/- expansion icons for related rows).
8720
8721 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8722
8723         * TextBoxBase.cs: Applied Eno's patch from #78660
8724
8725 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8726
8727         * Form.cs (ScaleCore): We don't want to scale our form if it's
8728           state is minimized or maximized, but we still need to scale our
8729           child windows. Also, added try/finally block to ensure layout
8730           gets reset (Fixes #78697)
8731
8732 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
8733
8734         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
8735
8736 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
8737
8738         * Form.cs: Fixed c+p error and added check to resize form if minimum
8739           size is bigger than current size (Fixes #78709)
8740
8741 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
8742
8743         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
8744
8745 2006-06-26  Mike Kestner  <mkestner@novell.com>
8746
8747         * ComboBox.cs: only do Keypress handling in the combo when there  
8748         are items in the collection. Fixes #78710.
8749
8750 2006-06-26  Chris Toshok  <toshok@ximian.com>
8751
8752         * Binding.cs: make this work bi-directionally.  also, clear up
8753         other mixups between Push/Pull Data (e.g. we're supposed to pull
8754         data when validating).
8755
8756         * BindingManagerBase.cs: trim some fully qualified collection
8757         types.
8758
8759         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
8760
8761 2006-06-23  Chris Toshok  <toshok@ximian.com>
8762
8763         * PropertyManager.cs: It appears (according to the unit tests)
8764         that PropertyManager doesn't use
8765         PropertyDescriptor.AddValueChanged to track propery value changes
8766         in its datasource, but uses the same scheme as Binding, where it
8767         looks for a <Property>Changed event and binds to it.
8768
8769         Also, according to the docs, IsSuspended always returns false for
8770         a property manager with a non-null datasource.
8771
8772 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
8773
8774         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
8775           need to update the actual DialogResult. (Fixes #78613)
8776
8777 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
8778
8779         * Form.cs (ShowDialog): Release any captures before running the
8780           new message pump (fixes #78680)
8781
8782 2006-06-22  Mike Kestner  <mkestner@novell.com>
8783
8784         * ListView.cs: Layout column widths properly in details mode even 
8785         if HeaderStyle.None is set.  Fixes #78691.
8786
8787 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
8788
8789         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
8790
8791 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
8792
8793         * Control.cs (ContainsFocus): Using new driver method to get focused
8794           window, instead of trying to use internal tracking var, which can
8795           recursion issues (Fixes #78685)
8796         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
8797           XplatUIWin32.cs: Added GetFocus method to return focused window
8798
8799 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8800
8801         * ColorDialog.cs: when the mouse button is pressed inside the color
8802         matrix, don't let the cursor move out of it until the button is
8803         released, which is the behavior on windows. Changed 'colours' by
8804         'colors' to use the same word consistently.
8805
8806 2006-06-21  Chris Toshok  <toshok@ximian.com>
8807
8808         * DataGrid.cs: add in some basic navigation stuff (navigating to a
8809         child relation and back, using a stack).  Also, remove
8810         GetDataSource and the code that calls it - it's not needed.  Also,
8811         track CurrencyManager.ListName's removal.
8812
8813 2006-06-21  Chris Toshok  <toshok@ximian.com>
8814
8815         * CurrencyManager.cs: push some of the original type checking from
8816         BindingContext.CreateBindingManager to here, and remove some of
8817         the finalType stuff.  Need more tests to make sure I've got the
8818         ListName part right, and we might need more in SetDataSource.
8819
8820         * PropertyManager.cs: add a ctor that takes just the datasource,
8821         and no property name.  Make SetDataSource work with a null
8822         property_name, and make Current return the data_source if the
8823         property descriptor is null.  this makes 'string foo = "hi";
8824         BindingContext[foo].Current' return "hi" as it should.
8825
8826         * RelatedCurrencyManager.cs: make this code more generic - there's
8827         no reason the parent manager has to be CurrencyManager, and
8828         there's no reason to pass the DataRelation.  It suffices to use a
8829         BindingManagerBase and PropetyDescriptor.
8830
8831         * RelatedPropertyManager.cs: make a similar change here.
8832         
8833         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
8834         flower I knew it could be.
8835
8836 2006-06-20  Chris Toshok  <toshok@ximian.com>
8837
8838         * PropertyManager.cs: the PropertyChangedHandler is invoked when
8839         data in the source has changed and we need to update the control,
8840         so s/PullData/PushData.
8841
8842         * CurrencyManager.cs: Refresh is meant to update the control from
8843         data in the datasource.  So, s/PullData/PushData.
8844
8845         * BindingContext.cs: add more ugliness (we weren't handling the
8846         case where data_source = DataTable and data_member = column_name).
8847
8848         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
8849         from the perspective of the datasource.  PullData pulls from the
8850         control, PushData pushes to the control.
8851
8852 2006-06-20  Chris Toshok  <toshok@ximian.com>
8853
8854         * BindingContext.cs: rewrite the CreateBindingManager code to
8855         handle navigation paths more or less properly.  This could
8856         definitely stand some more work, in particular to push the
8857         recursion up to the toplevel.  But that relies on fixes in other
8858         places (System.Data comes to mind).
8859
8860         Also, move to a flat hashtable (and encode the twolevel nature of
8861         the dictionary into the hash key).  This lets us implement the
8862         IEnumerable.GetEnumerator method.
8863
8864         * RelatedCurrencyManager.cs: new class.  Update our view based on
8865         our relation and our parent CurrencyManager's position.
8866
8867         * CurrencyManager.cs: split out some logic from the ctor into
8868         SetView, so it can be called from the new RelatedCurrencyManager
8869         subclass.
8870
8871         * RelatedPropertyManager.cs: new class.  Update our datasource
8872         based on the position of our parent CurrencyManager.
8873
8874         * PropertyManager.cs: split out some logic from the ctor into
8875         SetDataSource, so it can be called from the new RelatedDataSource
8876         subclass.  Also, make the Current getter return the value
8877         of the PropertyDescriptor, not the data_source.
8878
8879         * Binding.cs: no need to duplicate the string splitting code here.
8880
8881 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8882
8883         * Control.cs:
8884           - set_Enabled: OnEnabledChanged is not called if the inherited state 
8885             of the control is not altered, even though  we might be changing the
8886             internal state of the control (#78458)
8887           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
8888             OnEnabledChanged, to allow easy altering of any child window state
8889           - OnEnabledChanged: Added code to enable/disable driver window state
8890           - OnParentEnabledChanged: Instead of firing the event, call 
8891             OnEnabledChanged, which will fire the event and also a) set driver
8892             window state and pass the enabled state to any grandchildren (#78458)
8893
8894 2006-06-19  Jackson Harper  <jackson@ximian.com>
8895
8896         * InternalWindowManager.cs: We don't set the cursor explicitly
8897         thats done via the response to NCHITTESTs.
8898         - Don't need to adjust for titlebar heights anymore, the
8899         coordinates are coming in the correct coordinates now (see peters
8900         last patch).
8901
8902
8903 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
8904
8905         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
8906           being translated relative to whole window, instead of client window.
8907           That caused broken offsets on mouseclick (and caused gas for our
8908           InternalWindowManager)
8909
8910 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8911
8912         * TextControl.cs:
8913           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
8914           - Undo(): Added replay of cursor move on DeleteChars action; added
8915             calling Undo() again if a recorded cursor move is invalid (to
8916             ensure that some action is performed on Undo)
8917         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
8918
8919 2006-06-16  Jackson Harper  <jackson@ximian.com>
8920
8921         * MdiClient.cs: Instead of just sizing maximized windows when
8922         there is a resize we also have to adjust the Y of minimized
8923         windows, so they stay pinned to the bottom of the mdi container.
8924         - Eliminate separate tracking of the active control, we can just
8925         get this from the controls collection.
8926         - Paint the decorations for the newly activated titlebar so we get
8927         a pretty blue bar.
8928         * InternalWindowManager.cs:
8929         * ThemeWin32Classic.cs: Minimized windows get all three buttons
8930         even if they are a tool window.
8931         
8932 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
8933
8934         * TextControl.cs (Undo): Handle non-existent cursor locations in the
8935           undo buffer, these can happen when text was deleted and the cursor
8936           was recorded first. Since we will also have a recorded cursor
8937           after the delete this is not an issue. (Fixes #78651)
8938
8939 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
8940
8941         * AccessibleObject.cs: Remove dependence on Control.is_selected;
8942           instead properly track control states internally (allows us to
8943           remove is_selected from Control)
8944
8945 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8946
8947         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
8948         whose width is not a multiple of 8.
8949
8950 2006-06-13  Jackson Harper  <jackson@ximian.com>
8951
8952         * MdiClient.cs:  Only maximize the next child if the current one
8953         is maximized.
8954
8955 2006-06-13  Chris Toshok  <toshok@ximian.com>
8956
8957         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
8958         modified.  Also, guard against grid or grid_drawing being null in
8959         Invalidate.
8960
8961         * DataGrid.cs: Reformat tons of getters/setters.  In the
8962         DataMember setter, just call SetNewDataSource instead of
8963         duplicating some of its functionality.  In SetNewDataSource, don't
8964         check ListManager for null, since the property getter creates the
8965         object if needed.
8966
8967         * DataGridTableStyle.cs: don't set TableStyle or call
8968         SetDataGridInternal on the column here, it's done in
8969         GridColumnStylesCollection.Add.
8970
8971         * GridColumnStylesCollection.cs: fix all the explicit interface
8972         implementations to just call our methods.  Nuke AddInternal() and
8973         move the body of it to Add().  Also, add a call to
8974         column.SetDataGridInternal to Add().
8975
8976         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
8977         base()+duplicate code.  Also, use the Format property instead of
8978         format to generate an Invalidate ala MS.  Lastly, create the
8979         textbox here, unconditionally.
8980         (set_Format): call Invalidate.
8981         (get_TextBox): no need to call EnsureTextBox.
8982         (Commit): remove the message box.
8983         (Edit) remove the call to EnsureTextBox.
8984         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
8985         (EnterNullValue): no need to check textbox for null.
8986         (HideEditBox): no need to check textbox for null.
8987         (SetDataGridInColumn): add the textbox to the grid's controls.
8988         (EnsureTextBox): nuke.
8989         
8990 2006-06-13  Jackson Harper  <jackson@ximian.com>
8991
8992         * MdiWindowManager.cs: Hook up to the maximized menus paint event
8993         and redraw the buttons when needed. Unhook when the window is
8994         unmaximized.
8995         * MainMenu.cs: Add an internal Paint event, the mdi window manager
8996         needs this so that it can redraw its buttons when the menu is
8997         repainted.
8998         * InternalWindowManager.cs:
8999         * Form.cs: The method order has changed for DrawMaximizedButtons,
9000         so that it can be a PaintEventHandler.
9001         
9002 2006-06-13  Jackson Harper  <jackson@ximian.com>
9003
9004         * MdiClient.cs: When we close a maximized mdi window, the next mdi
9005         window is activated and maximized, even if it wasn't before.
9006         - When  a new window is activated repaint the decorations of the
9007         old one, so that it no longer has the Active "look" (the blue
9008         titlebar).
9009         * InternalWindowManager.cs: Open up CreateButtons to base classes
9010         so they can recreate the buttons on state changes.
9011         - If a window is maximized give it all three buttons
9012         * MdiWindowManager.cs: Create the titlebar buttons when the state
9013         is changed, this is needed because a toolwindow will not have all
9014         three buttons until it is maximized.
9015
9016 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
9017
9018         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
9019           Fixed bug #78609.
9020
9021 2006-06-12  Jackson Harper  <jackson@ximian.com>
9022
9023         * KeysConverter.cs: Make sure we handle the Ctrl special case
9024         if its the only key.
9025         
9026 2006-06-12  Jackson Harper  <jackson@ximian.com>
9027
9028         * Theme.cs: Add a method to get the size of a managed window
9029         toolbar button.
9030         * InternalWindowManager.cs: Remove the ButtonSize property, this
9031         should be retrieved from the theme.
9032         * MdiWindowManager.cs: Get the button size from the theme
9033         * ThemeWin32Classic.cs: Make the method to get the managed window
9034         titlebar button size public.
9035         - Handle the different button sizes of maximized toolwindows
9036         (should match any maximized window).
9037         - Get the titlebar height from the theme, not the WM (which gets
9038         it from the theme).
9039
9040 2006-06-12  Jackson Harper  <jackson@ximian.com>
9041
9042         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
9043         event down to the mdi window manager.
9044         - Expose some extra stuff to base classes
9045         - Make sure to end the Capture on an NC Mouse up, so that we can
9046         get double clicks properly, and the sizing doens't stick.
9047         - When doing PointToClient contain it in the workable desktop
9048         area, this prevents windows from changing size when the cursor is
9049         pulled outside of the working area while sizing.
9050         * MdiWindowManager.cs: When we get a double click maximize the
9051         window.
9052         - Reset the cursor after handling mode changes.
9053
9054 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
9055
9056         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
9057           current desktop, instead of just assuming a 0, 0 origin. This
9058           is needed for our internal window manager, to know the top
9059           margin of the desktop
9060
9061 2006-06-12  Chris Toshok  <toshok@ximian.com>
9062
9063         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
9064         we need this to get rid of the selected background in the bool
9065         column.
9066         (CancelEditing): move the ConcedeFocus call to above the Abort
9067         call.  Also, set is_changing to false and invalidate the row
9068         header if we were changing before.
9069         (ProcessKeyPreviewInternal): remove, since noone outside this
9070         class calls it anymore.  Roll the code into ProcessKeyPreview.
9071         (EndEdit): remove the internal version.
9072         (InvalidateCurrentRowHeader): make private.
9073
9074         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
9075         Keys.Escape handling (and with it the last call to
9076         DataGrid.EndEdit from outside the class.)
9077
9078
9079 2006-06-12  Chris Toshok  <toshok@ximian.com>
9080
9081         * DataGridTextBox.cs (.ctor): isedit defaults to false.
9082         (OnKeyPress): set isedit to true.
9083         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
9084         already handled by the grid.
9085
9086         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
9087         right.  ugh.
9088         (set_DataSource): SetDataSource always returns true, so stop
9089         putting it in an if statement.
9090         (EndEdit): get rid of some {}'s
9091         (ProcessGridKey): return true in case Keys.Escape.
9092         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
9093         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
9094         PositionChanged, stopped connecting to CurrentChanged.
9095         (GetDataSource): simplify this a bunch.
9096         (SetDataSource): change return type from bool to void.
9097         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
9098         to this, and make sure we don't set ListManager.Position inside
9099         set_CurrentCell.
9100         (OnListManagerItemChanged): if we're passed an actual index,
9101         redraw that row.
9102
9103         * CurrencyManager.cs (set_Position): don't call PullData here.
9104
9105 2006-06-09  Jackson Harper  <jackson@ximian.com>
9106
9107         * TreeNode.cs:  Recalculate the visible order before doing the
9108         Expand/Collapse Below calls, because those calls generate an
9109         expose.
9110         - Reduce calls to the TreeView property, which is mildly expensive
9111         by using a local var.
9112         * Form.cs: Layout the MDI child windows when creating the parent
9113         form.
9114         - Don't use the internal constructor anymore
9115         * MdiClient.cs: use the parent form width/height (if available)
9116         when laying out the child windows, we do this because the
9117         mdiclient isn't docked yet when the initial layout is done.
9118         - Don't need an internal constructor anymore.
9119
9120 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9121
9122         * FileDialog.cs: handle access errors when trying to create a folder
9123         or changing to a directory. No need to initialize out parameters.
9124
9125 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9126
9127         * FileDialog.cs: Append a number when creating a new folder if the
9128           folder already exists (use parenthesis instead of square brackets)
9129
9130 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9131
9132         * FileDialog.cs:
9133           - Disabled registry support for windows and added better registry
9134             error checking for other systems (need to investigate why it
9135             works perfectly on my system)
9136           - If a folder already exist show an error MessageBox instead of
9137             trying to create an indexed name.
9138           - Fixed a non intentional typo.
9139
9140 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9141
9142         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
9143
9144 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9145
9146         * FileDialog.cs: When creating a new folder don't crash if the
9147           folder already exists.
9148
9149 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9150
9151         * FileDialog.cs: Allmost a complete rewrite.
9152           - added a "virtual" file system that handles the differences
9153             between unix and windows file systems (especially the directory
9154             structure). Moved most of the directory and file handling code
9155             into the vfs.
9156             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
9157             UnixFileSystem and FSEntry.
9158           - Recently used folder/directory, size, location and used file names
9159             (file name ComboBox) are now stored in the registry and get read
9160             before the dialog shows up (fixes part 6 of bug #78446).
9161           - Creation of new folders/directories is now possible (context menu
9162             or ToolBar). Added TextEntryDialog for this that fills in the gap
9163             until ListView.LabelEdit works.
9164           - Fixed cursor handling (bug #78527) and focus handling for
9165             PopupButtonPanel
9166           - Various "Search in" ComboBox enhancements. The content of the
9167             dropdown listbox now almost matches ms.
9168           - Changed the behaviour when the user switches to SpecialFolder
9169             Recent to show the ListView in View.Details.
9170           - Beside using the ToolBar to change the View property of the
9171             file ListView it is now possible to use the context menu too.
9172
9173 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
9174
9175         * ComboBox.cs: Don't create a new ObjectCollection when an item
9176           gets inserted. Just insert the item in the existing object_items
9177           ArrayList.
9178
9179 2006-06-08  Jackson Harper  <jackson@ximian.com>
9180
9181         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
9182         that the treeview and root node checks are done also, this fixes a
9183         regression i caused in the unit tests.
9184
9185 2006-06-07  Wade Berrier <wberrier@novell.com> 
9186
9187         * RichTextBox.cs: More ISO8859-1 -> unicode
9188
9189 2006-06-07  Mike Kestner  <mkestner@novell.com>
9190
9191         * ComboBox.cs : use items to hold highlight/selection so that
9192         collection insertions don't require synchronization.
9193
9194 2006-06-07  Jackson Harper  <jackson@ximian.com>
9195
9196         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
9197         routine.  We now always keep the sized edge at the cursor instead
9198         of computing movement and adjusting rects.  There is one buglet
9199         with this method though when the cursor is moved over area that
9200         the window can not expand too (such as the toolbars on the desktop).
9201
9202 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9203
9204         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
9205         here. Fixes crash on startup in AlbumSurfer.
9206
9207 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
9208
9209         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
9210           values
9211
9212 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9213
9214         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
9215         statement to avoid calling XNextEvent which will block if another thread
9216         took the event that we were expecting. Fixes bug #78605.
9217
9218 2006-06-07  Mike Kestner  <mkestner@novell.com>
9219
9220         * ListView.cs : isolated checkbox clicking from the selection logic.
9221         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
9222
9223 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
9224
9225         * Form.cs: Check that the value passed to Form.DialogResult
9226         is a valid enum value.
9227
9228 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9229
9230         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
9231         Computer'. Clicking it in the network view goes to 'My Computer'.
9232         Added CIFS filesystem type. Display the mount point of filesystems.
9233         Avoid duplicate mount points (happens for me with CIFS);
9234
9235 2006-06-06  Jackson Harper  <jackson@ximian.com>
9236
9237         * InternalWindowManager.cs: Draw the maximized windows buttons
9238         when resizing.
9239
9240 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9241
9242         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
9243         all other dialogs. Fixes bug #78585.
9244
9245 2006-06-06  Mike Kestner  <mkestner@novell.com>
9246
9247         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
9248         Only invalidate checkbox on checkstate changes to avoid flicker.
9249         * ListBox.cs : avoid unselect/select when clicking selected item.
9250         avoid reselection flicker for already multiselected items.
9251         Fixes #78382.
9252
9253 2006-06-06  Jackson Harper  <jackson@ximian.com>
9254
9255         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
9256         the parent form so that the menu is removed if needed.
9257
9258 2006-06-06  Mike Kestner  <mkestner@novell.com>
9259
9260         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
9261         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
9262
9263 2006-06-06  Mike Kestner  <mkestner@novell.com>
9264
9265         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
9266
9267
9268 2006-06-06  Jackson Harper  <jackson@ximian.com>
9269
9270         * Control.cs: Use the property (instead of the field) to get the
9271         default cursor so it is instantiated correctly.
9272         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
9273         resizes so we need to manually repaint the window decorations here.
9274         - Set the titlebar button locations as soon as they are created,
9275         otherwise they are not set correctly on win32.
9276         
9277 2006-06-06  Chris Toshok  <toshok@ximian.com>
9278
9279         * CurrencyManager.cs (set_Position): call PullData before
9280         OnCurrentChanged.
9281         (AddNew): after calling IBindingList.AddNew, update our
9282         listposition, and call OnCurrentChanged/OnPositionChanged (without
9283         calling PullData).
9284         (OnCurrentChanged): remove the call to PullData from here.
9285         (OnItemChanged): remove the call to PushData from here.
9286         (OnPositionChanged): change the test from == null to != null to
9287         match the other methods.
9288         (ListChangedHandler): the grossest part of the patch.  Implement
9289         this such that it passes the unit tests in CurrencyManagerTest and
9290         the output more or less matches that of MS's implementation.
9291  
9292 2006-06-06  Mike Kestner  <mkestner@novell.com>
9293
9294         * ListView.cs : only update check state on single click.
9295         * ThemeWin32Classic.cs : fix focus drawing for details view without
9296         fullrowselect.  Fixes #78454.
9297         * XplatUIX11.cs : fix for double click emission.
9298
9299 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9300
9301         * PropertyGridView.cs : Applied Atsushi's patch to fix
9302         font dialog bug  (#78197).
9303
9304 2006-06-05  Jackson Harper  <jackson@ximian.com>
9305
9306         * TreeNode.cs: Compute the next node for expanding/collapsing
9307         correctly. We now factor in nodes without a NextNode
9308         correctly. (Fixes somes cases in nunit-gui).
9309         * InternalWindowManager.cs: Set the bounds when updating the
9310         virtual position of a tool window.
9311         
9312 2006-06-05  Chris Toshok  <toshok@ximian.com>
9313
9314         * DataGrid.cs: rename cached_currencymgr to list_manager.
9315         (set_CurrentCell): move SetCurrentCell code here, and clean it up
9316         some.
9317         (CurrentRow, CurrentColumn): single accessors so we can make the
9318         cursor movement code a lot easier to understand.
9319         (CurrentRowIndex): implement this in terms of CurrentRow.
9320         (BeginEdit): clean this up a bit.
9321         (CancelEditing): sort out the is_editing/is_changing/is_adding
9322         stuff a little.
9323         (EndEdit): minor changes.
9324         (OnKeyDown): add a comment about a (most likely) unnecessary
9325         check.
9326         (OnMouseDown): cancel editing when we click on a row header.  And
9327         use the CurrentRow setter, not CurrentCell.
9328         (ProcessDialogKey): directly call ProcessGridKey.
9329         (UpdateSelectionAfterCursorMove): factor out this common block of
9330         code (it's used everywhere that we move the cursor by updating row
9331         or column).
9332         (ProcessGridKey): pretty substantial overhaul.  Use the
9333         CurrentRow/CurrentColumn properties to make the code a lot more
9334         readable.  Only use the CurrentCell property when we have to
9335         modify both row and column at once.  Tab behavior is still broken,
9336         and Delete is untested.
9337         (Select): if we have no selected rows, set selection_start to
9338         @row.
9339         (EditCurrentCell): rename EditCell this.  It was only ever invoked
9340         with CurrentCell as the arg, so drop the arg and rename it.
9341
9342         * DataGridColumnStyle.cs: clean up the constructors a little, and
9343         drop CommonConstructor().
9344
9345         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
9346         actually get notified when the user hits it.
9347         (ProcessKeyMessage): *substantially* simplify this method.
9348         There's no reason (that I can see) for the textbox to be making
9349         calls into the datagrid at all.  Remove all of them but the ones
9350         for Enter handling.  those will take some more work.
9351
9352         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
9353         calling HideEditBox.
9354         (HideEditBox): if we have an active textbox, render it invisible
9355         without causing a re-layout of the datagrid.
9356
9357 2006-06-05  Mike Kestner  <mkestner@novell.com>
9358
9359         * ListView.cs : fix NRE crasher when focuseditem is cleared by
9360         collection changes by resetting it to Items[0].  Fixes #78587.
9361
9362 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9363
9364         * MessageBox.cs: if the height of the text is larger than the icon_size,
9365         use that. Fixes bug #78575.
9366
9367 2006-06-05  Jackson Harper  <jackson@ximian.com>
9368
9369         * TreeView.cs: Fix line drawing when scrolling.  To do this each
9370         node is basically responsible for drawing its entire horizontal
9371         area.  When drawing a node it draws its parent node lines if
9372         needed.
9373         - Adjust the clip area to the viewport rectangle
9374         - Fix Left/Right key handling to match MS. (It expand/collapses
9375         and moves to parents/first child but does not move selection to
9376         sibling nodes).
9377         - Fix SetTop to work with new bound calculation code
9378         - When scrollbars are no longer needed we need to reset scrolling
9379         vars and recalculate the visible order so the redraw is correct
9380         * TreeNode.cs: We can't expand/collapse nodes with no children.
9381
9382 2006-06-03  John Luke  <john.luke@gmail.com> 
9383
9384         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
9385         so the colors work without dev packages
9386         
9387 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
9388
9389         * Control.cs 
9390           - Select: Implemented to just use activate. Seems to match MS 
9391             behaviour closest. Documented to only do actual control walking 
9392             based on it's parameters if in a container control so I moved 
9393             the code there.
9394           - Removed selection check logic from our internal Select() method
9395         * ContainerControl.cs:
9396           - Select: Moved selection logic from Control here, since MS documents
9397             that containers obey the bool arguments. No longer calling base
9398
9399 2006-06-02  Jackson Harper  <jackson@ximian.com>
9400
9401         * TreeView.cs: If the selected node isn't changed when we get
9402         focus update the previously selected node so that we see the
9403         selection box.
9404
9405 2006-06-02  Mike Kestner  <mkestner@novell.com>
9406
9407         * ComboBox.cs: restructure grab and general mouse event handling.
9408         Make the composite control raise mouse events like it was a single
9409         control for leaves/enters/motion/up/down events.  fix dropdown list
9410         coordinate mangling and refactor it into the scrollbar subclass to
9411         reduce code duplication.  Fixes #78282 #78361 and #78457.
9412
9413 2006-06-02  Mike Kestner  <mkestner@novell.com>
9414
9415         * ScrollBar.cs: remove Capture setting/clearing, as it happens
9416         automatically in the Control.WndProc.
9417
9418 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9419
9420         * FileDialog.cs: fix crash when running SharpChess, which sets the
9421         FilterIndex to 2 with only one Filter.
9422
9423 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9424
9425         * ToolBar.cs: add SizeSpecified property.
9426         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
9427         try to figure out our real size, otherwise fallback to what the
9428         container says.
9429
9430 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9431
9432         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
9433         * Control.cs (WndProc): MS always calls the DefWndProc to pass
9434           up the event
9435
9436 2006-06-01  Mike Kestner  <mkestner@novell.com>
9437
9438         * ListView.cs: revamp the focus management in ListView.  It still
9439         causes churn of LostFocus/GotFocus emissions on clicks, but it's
9440         better than not handling focus at all.  Will revisit when pdb feels
9441         the general focus handling is solid.  Fixes #78526.
9442
9443 2006-06-01  Jackson Harper  <jackson@ximian.com>
9444
9445         * TreeView.cs: Set the default border style in the constructor.
9446         - Move painting to use OnPaintInternal instead of capturing
9447         WM_PAINT, this is the correct way of doing things
9448         - UpdateBelow shouldn't invalidate the scrollbar area
9449         - Cap the top on update below in case the node was above the top
9450         of the viewport rectangle.
9451         - ExpandBelow and Collapse below need to obey Begin/End Update.
9452         * TreeNode.cs: Make is_expanded internal so the treenode
9453         collection can change it without firing the whole event chain.
9454         * TreeNodeCollection.cs: When clearing all the child nodes make
9455         sure to recalc the visible order.
9456         - Improve algo for remove the top node
9457
9458 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
9459
9460         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
9461           SendMessage directly calling window procedures, which in turn might
9462           call SetFocus()
9463
9464 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
9465
9466         * Control.cs: Don't handle WM_SETFOCUS if the same window already
9467           has focus (works around X11 sending a FocusIn after our SetFocus)
9468         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
9469
9470 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
9471
9472         * Mime.cs: Fix for the NET_2_0 build.
9473           NameValueCollection needs StringComparer now.
9474
9475 2006-05-31  Chris Toshok  <toshok@ximian.com>
9476
9477         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
9478         return (via an out parameter) the starting X of the column.
9479         (UpdateVisibleColumn): track change to FromPixelToColumn.
9480         (HitTest): add a ColumnResize case here.
9481         (DrawResizeLine): new function, probably poorly named.
9482
9483         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
9484         only need to keep one reference.
9485         (set_ListManager): same.
9486         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
9487         Also, add support for HitTestType.ColumnResize.
9488         (OnMouseMove): add column resize behavior here, and change the
9489         cursor to the correct one as we move around the datagrid.
9490         (OnMouseUp): terminate the column resize if we're resizing.
9491         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
9492         for the current cell.
9493         (ConnectListManagerEvents): use cached_currencymgr.
9494         (DisconnectListManagerEvents): fill this in, using
9495         cached_currencymgr.
9496         (SetCurrentCell): remove cached_currencymgr_events handling.
9497         (SetDataMember): only call DisconnectListManagerEvents if
9498         cached_currencymgr is != null.
9499         (SetDataSource): same.
9500         (OnListManagerCurrentChanged): cached_currencymgr_events ->
9501         cached_currencymgr.
9502
9503 2006-05-31  Jackson Harper  <jackson@ximian.com>
9504
9505         * BindingManagerBase.cs: Remove somedebug code that creeped into
9506         SVN.
9507         * TreeNode.cs: We get the indent level dynamically right now, so
9508         don't track it as a member.
9509         * TreeNodeCollection.cs: Make sure all nodes added to the list
9510         have parents, treeviews/topnodes setup properly.
9511         - Don't attempt to track indent level.
9512
9513 2006-05-30  Jackson Harper  <jackson@ximian.com>
9514
9515         * BindingContext.cs: Create the currency manager tables here.
9516         This allows us to more easily create null tables (when bad data
9517         members are used), and more easily create related currency
9518         managers.
9519         * CurrencyManager.cs: All the table creation stuff is done by the
9520         binding context now.
9521         - Current should throw an exception if listposition is -1.
9522         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
9523         been bound yet.
9524
9525 2006-05-30  Mike Kestner  <mkestner@novell.com>
9526
9527         * ListView.cs: allow reexpansion of zero-width column headers.
9528         Fixes #78528.
9529
9530 2006-05-28  Chris Toshok  <toshok@ximian.com>
9531
9532         * CurrencyManager.cs (get_Current): after the late binding
9533         listposition = -1 fix, we need to guard against it here and return
9534         null, otherwise we raise an exception (which is swallowed
9535         elsewhere, and breaks datagrid databinding.)
9536
9537 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9538
9539         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
9540           than WM_SYSKEY, don't throw if get something unexpected (#78507)
9541
9542 2006-05-26  Jackson Harper  <jackson@ximian.com>
9543
9544         * ControlPaint.cs:
9545         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
9546         values, it's faster and it's all we care about (we don't care if
9547         the names aren't equal).
9548         * KeyboardLayouts.cs: Eliminate some dead code.
9549         - Lazy init things
9550         * X11Keyboard.cs: Lazy init keyboard detection.
9551         - Cleanup access modifiers a little.
9552
9553 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
9554
9555         * XplatUIX11.cs: Once again, attempting to get layout just right.
9556
9557 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
9558
9559         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
9560           the sizes of each link section, that will result in sizes that
9561           match DrawString's layout (Fixes #78391)
9562
9563 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
9564
9565         * FileDialog.cs: If AddExtension property is true autocomplete the
9566           extensions in SaveFileDialog correctly. Fixes bug #78453.
9567           Set MyNetwork and MyComputer to "C:\" for windows. This should
9568           fix part 8 of bug #78446 for now.
9569
9570 2006-05-26  Chris Toshok  <toshok@ximian.com>
9571
9572         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
9573         invalidate the current row header if we need to, but presumably
9574         we'll invalidate the row corrsponding to the bounds or
9575         editingControl.
9576         (GridHScrolled): switch back to this method, as it's part of the
9577         public api.  *sigh*.
9578         (GridVScrolled): same.
9579         (OnMouseWheel): hack up something that more or less works.  Call
9580         GridHScrolled/GridVScrolled directly, instead of duplicating much
9581         of their code here.
9582         (EnsureCellVisibility): reinstate a bunch of this code, since we
9583         can't just set the scrollbar Value and expect to do all the work
9584         in the ValueChanged handler.  Also, Call Update() after scrolling
9585         in one direction so the other XplatX11.ScrollWindow call has the
9586         proper stuff in the proper places.
9587         (EditCell): set is_editing to true before calling .Edit.
9588
9589         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
9590         don't bother comparing first.
9591         (OnKeyPress): call grid.ColumnStartedEditing before calling
9592         base.OnKeyPress.  this will set is_changing and invalidate the row
9593         header if necessary.
9594         (ProcessKeyMessage): for WM_CHAR messages, call
9595         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
9596         and WM_KEYDOWN.
9597         
9598         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
9599         it's done in the DataGrid.
9600         (NextState): call grid.ColumnStartedEditing, which takes care of
9601         invalidating the row header (and setting is_changing).
9602
9603         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
9604         here.  it's done in the DataGrid.
9605
9606 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9607
9608         * Control.cs: allow changing the cursor when the mouse position is
9609         out of bounds but Capture is set.
9610         * LinkLabel.cs: handle the case when the mouse button is pressed on the
9611         linklabel but released somewhere else.
9612
9613 2006-05-25  Jackson Harper  <jackson@ximian.com>
9614
9615         * TreeView.cs: When we get focus if there is no selected node make
9616         it the top node
9617         - Remove some uneeded setup code from Draw.
9618         * TreeNodeCollection.cs: If the tree doesn't have a top node when
9619         a new node is inserted make the new node the top.
9620         * XplatUIX11.cs:
9621         * Timer.cs: Use Utc time so that no local time zone stuff needs to
9622         be used (should be faster).
9623         
9624 2006-05-25  Chris Toshok  <toshok@ximian.com>
9625
9626         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
9627         problem with the last commit.
9628
9629 2006-05-25  Chris Toshok  <toshok@ximian.com>
9630
9631         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
9632         need the invalidate call here, while scrolling right-to-left via
9633         the left arrow key (i.e. moving the editing cell while scrolling).
9634
9635         * DataGrid.cs (.ctor): remove the initialization of
9636         ctrl_pressed/shift_pressed.  We no longer track them using key
9637         up/down handlers, but by using Control.ModifierKeys.  Also, switch
9638         to using ValueChanged handlers on the scrollbars instead of
9639         Scrolled event handlers.  This simplifies a bunch of the scrolling
9640         code.
9641         (GridHValueChanged): rename from GridHScrolled, and change it to
9642         work with the new event args.
9643         (GridVValueChanged): same.
9644         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
9645         (OnMouseWheel): actually scroll the datagrid.  Don't change the
9646         selected cell.
9647         (ProcessGridKey): correct all the keyboard navigation stuff I
9648         could find.  Ctrl up/down/left/right/home/end work now.
9649         (EnsureCellVisibility): correct method name spelling.  Also,
9650         simplify this a touch by not explicitly calling the
9651         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
9652         scrollbar value.
9653         (OnKeyUpDG): no need for this method now.
9654         
9655 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9656
9657         * LinkLabel.cs: display the OverrideCursor when hovering the label.
9658         Fixes bug #78392.
9659
9660 2006-05-25  Chris Toshok  <toshok@ximian.com>
9661
9662         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
9663         r61019.
9664
9665 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9666
9667         * Application.cs: Moved setting of is_modal and closing to before
9668           we create the control, to allow the event handlers called as a
9669           result of creation affect closing. Also removed Gonzalo's previous
9670           change to setting DialogResult, the behaviour has been moved to 
9671           Form.ShowDialog()
9672         * Form.cs: 
9673           - ShowDialog(): Removed explicit creation of the form, let RunLoop
9674             handle it instead
9675           - ShowDialog(): If no dialog result is set, we need to return Cancel
9676           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
9677             the close is cancelled
9678
9679 2006-05-25  Jackson Harper  <jackson@ximian.com>
9680
9681         * StatusBar.cs: We only need to update the sizes of the other
9682         panels when we have auto size contents.  Also we are only updating
9683         the contents of the panel, not the borders, so compensate for the
9684         border width (TODO: get this width from the theme somehow).
9685         * TreeView.cs: Scrollable is true by default
9686         - Use invalidate instead of refresh where needed
9687         - Factor the scrollable value into scrollbar updating
9688         - Update the scrollbars if the Scrollable property is altered
9689         - Update the selected node if its ImageIndex is changed
9690         - Handle null nodes in UpdateNode (mainly so we don't have to
9691         check if selected is null when updating it
9692         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
9693         are factored into the visible count
9694         - Use VisibleCount for clarity in the code
9695         - When the font is changed we need to recurse through all the
9696         nodes and invalidate their sizes
9697         
9698 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9699
9700         * Application.cs: set the DialogResult to fixed when the main form is
9701         hidden or destroyed while being modal.
9702
9703 2006-05-25  Miguel de Icaza  <miguel@novell.com>
9704
9705         * Theme.cs: Use Tangoified messagebox icons. 
9706
9707         (GetSizedResourceImage): Also cope with width = 0 and do not
9708         trigger a warning in that case (0 means "give me your icon from
9709         the resouce, no special size needed).
9710
9711 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
9712
9713         * Application.cs: Leave runloop if the the main modal form is 
9714           hidden (fixes #78484)
9715
9716 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
9717
9718         * BindingContext.cs : reject null datasource in Contains() and
9719           Item[].
9720         * CurrencyManager.cs : check data_member validity when data_source
9721           is dataset. When it is late binding, the initial position is -1.
9722
9723 2006-05-24  Jackson Harper  <jackson@ximian.com>
9724
9725         * TreeNodeCollection.cs: Dont't recalculate the visible order on
9726         inserted nodes that aren't visible.  This changes the
9727         max_visible_order which confuses scrollbar settings.
9728         - Use the enumerator to get the prev node instead of duplicating
9729         code.
9730         * TreeView.cs: Use new method for setting scrollbar values
9731         - Don't set the bounds every time the scrollbar is updated
9732         - When updating below the root node use an invalidate instead of a
9733         refresh to prevent the child controls (scrollbars) from being
9734         refreshed. (UpdateBelow still needs to be reworked anyways).
9735         - Reenable SetBottom now that visible orders are set correctly,
9736         added some debug code incase we ever get bad values there again.
9737         - Set the scrollbar max to 2 less then the max value, this
9738         compensates for the max value being one above the node count, and
9739         for scrollbars adding one extra "notch".
9740         - When drawing image nodes if there is an imagelist we draw the
9741         first image in the list if the supplied image index is out of the
9742         image list's bounds.
9743         
9744 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9745
9746         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
9747           we receive a size change from the WM (Fixes #78503)
9748
9749 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
9750
9751         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
9752           rectangle (Fixes #78501)
9753
9754 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
9755
9756         * ButtonBase.cs: 
9757           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
9758             as a bitfield.
9759           - Fixed MouseMove to no longer switch pressed state unless the left
9760             mouse button is pressed. Atsushi provided the original patch (#78485)
9761           
9762 2006-05-24  Jackson Harper  <jackson@ximian.com>
9763
9764         * ScrollBar.cs: New internal methods that allow us to change a
9765         couple values on the scrollbar (the most common case is maximum
9766         and large change) without getting multiple invalidates.
9767
9768 2006-05-24  Chris Toshok  <toshok@ximian.com>
9769
9770         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
9771         (Edit): save off the original state in oldState, and set
9772         grid.is_editing to true.
9773         (OnKeyDown): abort editing if escape is pressed.  also, call
9774         NextState if space is pressed.
9775         (OnMouseDown): call NextState.
9776         (NextState): factor out shared code from OnKeyDown and OnMouseDown
9777         here.  Also, only invalidate the row header once (on the initial
9778         is_changing switch) to save on redraws.
9779
9780 2006-05-24  Chris Toshok  <toshok@ximian.com>
9781
9782         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
9783         if the value in the cell is different than it was before.  This
9784         keeps us from triggering a layout when we move around a datarid
9785         with a highlighted cell.
9786         (Edit): suspend layout when creating/positining the text box, and
9787         resume passing false so we don't ever actually re-layout.
9788         (ReleaseHostedControl): same.
9789         (EnsureTextBox): reformat slightly, and set WordWrap to false.
9790
9791         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
9792         control-key sequences should go to the datagrid - remove that
9793         lock.  Also, modify the conditions under which we move between
9794         cells when moving the cursor within a cell, and remove the "this"
9795         and "base" from field accesses.  We weren't even consistent, given
9796         they all were in the base class.
9797
9798 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
9799
9800         * Binding.cs : (.ctor)
9801           An obvious NRE fix for BindingTest.CtorNullTest().
9802
9803 2006-05-23  Chris Toshok  <toshok@ximian.com>
9804
9805         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
9806         them between lines.  This fixes some quirks editing cells in the
9807         datagrid.
9808
9809 2006-05-23  Jackson Harper  <jackson@ximian.com>
9810
9811         * TreeView.cs: Use begin/end update when doing expand/collapse all
9812         so that we don't get flicker on the scrollbar.
9813
9814 2006-05-23  Jackson Harper  <jackson@ximian.com>
9815
9816         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
9817         treenode calculations to be independant of the painting code. To
9818         do this nodes track a visible order which is calculated by the
9819         treeview.
9820         - Call new methods for expanding/collapsing nodes.  These methods
9821         use scrollwindow so we don't have to update everything below the
9822         node.
9823         * TreeView.cs: Refactored drawing and scrolling code.  We don't
9824         need to update nodes when drawing anymore or calculate scrollbar
9825         stuff.
9826         - Added new methods for expanding/collapsing nodes. These methods
9827         use ScrollWindow so as to not have to redraw all the nodes below.
9828         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
9829         we add/remove nodes or sort.
9830         - Handle removing the selected and the top node properly.
9831
9832 2006-05-23  Chris Toshok  <toshok@ximian.com>
9833
9834         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
9835         maybe this should actually happen in the datagrid code?
9836         (EndEdit): no need to invalidate anything, given that
9837         ReleaseHostedControl causes the datagrid to relayout, which
9838         invalidates everything anyway.
9839
9840         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
9841         in SetCurrentCell).
9842         (set_SelectionBackColor): call InvalidateSelection instead of
9843         Refresh.
9844         (set_SelectionForeColor): same.
9845         (BeginEdit): Flesh this out a bit.
9846         (CancelEditing): only do any of this if we're editing/adding.
9847         (EndEdit): same.
9848         (OnMouseDown): there's no need to cancel editing here, it's done
9849         in SetCurrentCell.
9850         (SetCurrentCell): only invalidate the current row header if it's a
9851         different row than the new one.
9852         (ShiftSelection): fix this to work like MS does.
9853         (ResetSelection): factor out the invalidation of selected_rows to
9854         InvalidateSelection.
9855         (SetDataSource): cancel any editing that's going on.
9856
9857         * DataGridColumnStyle.cs
9858         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
9859         call the non-interface version.
9860
9861         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
9862         header rectangle with the clip rectangle so we don't redraw the
9863         entire header for just a small area.  Gets rid of the last flicker
9864         when horizontally scrolling.
9865         (DataGridPaintRow): same.
9866
9867 2006-05-23  Mike Kestner  <mkestner@novell.com>
9868
9869         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
9870         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
9871         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
9872         Critical bug report.
9873
9874 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9875
9876         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
9877           and this fixes #78493
9878
9879 2006-05-23  Miguel de Icaza  <miguel@novell.com>
9880
9881         * Theme.cs (GetSizedResourceImage): Scale images if the proper
9882         size is not found.  
9883         
9884         * FileDialog.cs: Do not change the background for the side bar as
9885         it wont work nicely with the theme, and also reduces the artifacts
9886         in rendering the icons (which I want to fix too).
9887
9888         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
9889         resources, not resgen resources. 
9890
9891         (PlatformDefaultHandler): Pull images using the new API.
9892
9893 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
9894
9895         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
9896           a reference to the hwnd and will not remove it unless there are
9897           no pending exposures (fixes #78341)
9898         * XplatUI.cs: Improved debug
9899
9900 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
9901
9902         * MenuAPI.cs : don't handle OnClick event when it was not the left
9903           button. Fixed bug #78487.
9904
9905 2006-05-23  Mike Kestner  <mkestner@novell.com>
9906
9907         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
9908         prefer submenus to the top menu for item lookup, to avoid popping down
9909         top-row items.
9910
9911 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
9912
9913         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
9914           Graphics.FillRectangle as the visual results are really bad (even
9915           on win). We now draw perfect arrows (and perfect shadows when the
9916           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
9917           Pen.DashPattern to draw the dots of each line.
9918
9919 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
9920
9921         * FileDialog.cs: Update the filename combobox when navigating through
9922           the ListView with the cursor keys. Fixes part 7 of bug #78446.
9923
9924 2006-05-22  Mike Kestner  <mkestner@novell.com>
9925
9926         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
9927         Fixes #78463.
9928
9929 2006-05-22  Mike Kestner  <mkestner@novell.com>
9930
9931         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
9932         requests. Fix a misspelled parameter and a copy paste exception error
9933         in Select.
9934
9935 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
9936
9937         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
9938           to get the same width/height (5/13) on X11 as the default font has on
9939           win32. This means that our DefaultFont emSize is smaller than the 
9940           the MS SWF equivalent (even thought the width/height stays the same)
9941
9942 2006-05-20  Jackson Harper  <jackson@ximian.com>
9943
9944         * MdiClient.cs:
9945         * MdiWindowManager.cs:
9946         * InternalWindowManager.cs: Make sure to use the border width from
9947         the theme.
9948
9949 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
9950
9951         * PrintDialog.cs: Implements printer details
9952
9953 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
9954
9955         * FileDialog.cs: Added focus handling for PopupButtonPanel.
9956           Fixes part 1 and 2 of bug #78446
9957
9958 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
9959
9960         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
9961           instead of sticking to the first ever calculated value
9962
9963 2006-05-19  Mike Kestner  <mkestner@novell.com>
9964
9965         * ComboBox.cs: fix mouse motion selection to use MousePosition and
9966         PointToClient, since Capture is set. Fixes #78344.
9967
9968 2006-05-19  Mike Kestner  <mkestner@novell.com>
9969
9970         * ListView.cs: match MS behavior in Details view where items are not
9971         drawn if Columns.Count == 0. 
9972         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
9973         Use a separate pen to draw the check, since changing the width affects
9974         the box as well.  Fixes #78454.
9975
9976 2006-05-18  Miguel de Icaza  <miguel@novell.com>
9977
9978         * ListView.cs: ArgumentOutOfRangeException, single versions of the
9979         exception should throw the name of the invalid argument.
9980
9981         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
9982         there are no files listed. 
9983
9984 2006-05-18  Jackson Harper  <jackson@ximian.com>
9985
9986         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
9987         up.
9988
9989 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
9990
9991         * Control.cs: Brought back our old UpdateZOrder method as a private
9992           function and switched our calls from UpdateZOrder to the new one.
9993           This fixes the Paint.Net canvas disappearing bug.
9994
9995 2006-05-18  Jackson Harper  <jackson@ximian.com>
9996
9997         * Theme.cs:
9998         * ThemeWin32Classic.cs:
9999         * InternalWindowManager.cs: Move the drawing into the theme,
10000         expose everything the theme should need from the window manager.
10001
10002 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
10003
10004         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
10005           from the call to NativeWindow to avoid walking up the parent chain
10006           further than needed (speeds up setting cursors and avoids setting
10007           the wrong cursor if a parent has another cursor defined)
10008         * Cursor.cs: When loading an icon as cursor, MS uses the center of
10009           the icon as hotspot, not what's contained as hotspot in the icon
10010           file. This fixes the perceived drawing offset seen with Paint.Net
10011         
10012 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
10013
10014         * XplatUIX11.cs: 
10015           - Store the calculated rectangle in Hwnd object and use it when 
10016             setting the client size
10017           - Force Toolwindows to always be type Dock, to ensure they're on top
10018
10019 2006-05-18  Mike Kestner  <mkestner@novell.com>
10020
10021         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
10022         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
10023         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
10024         Substantial refactoring to remove confusing nested classes. Coding
10025         standard and Get+Set->property refactorings.  Shift to index based
10026         highlighting in ComboListBox instead of constantly using IndexOf and
10027         Items[]. Add invalidations on resize for DropDownList to fix ugliness
10028         in FileDialog growth.  Draw borders manually since Simple mode needs
10029         to look like two independent controls.  Make listbox border
10030         conditional to DropDownStyle.  Improved OwnerDraw support.
10031
10032 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
10033
10034         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
10035         Don't set the disposed graphics to null, so we can throw the "right"
10036         exception if the graphics is reused later (added a flag to avoid 
10037         double disposing). Some behaviours are different under 2.0 and are
10038         filled under bug #78448.
10039
10040 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
10041
10042         * Control.cs: When double-buffering is enabled, we need to reset
10043           our graphics context between paint calls. Otherwise, any 
10044           transformations and other alterations on the context will 
10045           become cumulative (#77734)
10046
10047 2006-05-18  Mike Kestner  <mkestner@novell.com>
10048
10049         * ListView.cs: do focused item selection like MS on clicks. 
10050         Rework focus handling for ItemControl so LostFocus invalidates as
10051         well.
10052         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
10053         the ListView ItemControl has focus.
10054
10055 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
10056
10057         * XplatUIX11.cs: If client_window ends up being width or height zero
10058           due to border settings, move it off window inside whole_window (#78433)
10059
10060 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
10061
10062         * Mime.cs: Shrink the mime file cache correctly.
10063
10064 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
10065
10066         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
10067
10068 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10069
10070         * XplatUIX11.cs (AddExpose): More sanity checks
10071
10072 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10073
10074         * XplatUIX11.cs:
10075           - AddExpose: Don't add expose ranges outside the size of our
10076             window
10077           - Cast opacity values to Int32 to avoid crashes with certain
10078             values
10079           - Added disabled code paths that protect against illegal cross-
10080             thread painting (Developers.exe)
10081
10082 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10083
10084         * ProgressBar.cs: Invalidate the control when it's resized
10085           since block size is based on control size. (#78388)
10086
10087 2006-05-16  Miguel de Icaza  <miguel@novell.com>
10088
10089         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
10090         of setting the incoming argument to the "reset" value, we set the
10091         this.datamember to string.empty (before we were invalidating the
10092         incoming data).   
10093
10094         Fixes 78420
10095
10096 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10097
10098         * Form.cs: Only apply transparency settings after the form
10099           is created. (Fixes #77800)
10100
10101 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
10102
10103         * ApplicationContext.cs: Grab the HandleDestroyed event so
10104           we know when to fire OnMainFormClosed 
10105
10106 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10107
10108         * Application.cs: Introduced sub-class to allow tracking of
10109           threads and centralized triggering of the event mess for
10110           ThreadExit, AppExit, etc..  (#76156)
10111
10112 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
10113
10114         * MimeIcon.cs:
10115           - Do not return a null icon index value for a mime subclass.
10116             Instead try the main mime type class too.
10117           - Seems that some newer distributions don't have a link to some
10118             gnome default icons anymore. So check the default gnome dir too.
10119           
10120
10121 2006-05-16  Jackson Harper  <jackson@ximian.com>
10122
10123         * MdiClient.cs: Don't paint the parent background image if we have
10124         our own background image.
10125
10126 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
10127
10128         * Control.cs:
10129           - PerformLayout: Do not shrink space filled by DockStyle.Fill
10130             controls, all filled controls are supposed to overlap (#78080)
10131           - UpdateZOrder is supposed to update the control's z-order in the
10132             parent's z-order chain. Fixed to behave like that
10133           - BringToFront: Removed obsolete code
10134           - SendToBack: Simplyfied
10135           - SetChildIndex: Trigger layout calculations when Z-order changes
10136             since layout is done by z-order
10137
10138 2006-05-16  Chris Toshok  <toshok@ximian.com>
10139
10140         [ fixes bug #78410 ]
10141         * DataGrid.cs (set_AlternatingBackColor): use
10142         grid_drawing.InvalidateCells instead of Refresh().
10143         (set_BackColor): call grid_drawing.InvalidateCells.
10144         (set_BackgroundColor): use Invalidate instead of Refresh.
10145
10146         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
10147         invalidate the cell area.
10148
10149 2006-05-15  Chris Toshok  <toshok@ximian.com>
10150
10151         [ fixes bug #78011 ]
10152         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
10153         on to DataGridPaintRow.
10154         (DataGridPaintRow): take a clip argument, and only draw the cells
10155         which intersect it.  same with the not_usedarea.
10156
10157         * Theme.cs (DataGridPaintRow) add @clip parameter.
10158
10159         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
10160         XplatUI.ScrollWindow.
10161         (ScrollToRow): same.
10162
10163         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
10164         with last column which was causing a gray swath to appear with the
10165         XplatUI.ScrollWindow code.
10166
10167 2006-05-15  Chris Toshok  <toshok@ximian.com>
10168
10169         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
10170         use XplatUI.ScrollWindow.
10171         (VerticalScrollEvent): use XplatUI.ScrollWindow.
10172
10173 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
10174
10175         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
10176
10177 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
10178
10179         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
10180           file since there are no equivalent X11 cursors
10181
10182 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
10183
10184         * MonthCalendar.cs : DateTimePicker should reflect selected date
10185           on mouse*up*, not mouse*down*. Fixed originally reported part of
10186           bug #76474.
10187
10188 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
10189
10190         * TabControl.cs : When argument index is equal or more than tab
10191           count, just ignore. Fixed bug #78395.
10192
10193 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
10194
10195         * Control.cs: Dispose all child controls when control is diposed (#78394)
10196
10197 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10198
10199         * ColorDialog.cs: Finally it is possible to select the color with
10200           the text boxes
10201
10202 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10203
10204         * PrintDialog.cs: Fix typo
10205
10206 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
10207
10208         * PrintDialog.cs: PrintDialog is not resizable
10209         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
10210           color. Made some ToolBar drawing methods protected virtual.
10211
10212 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
10213
10214         * PrintDialog.cs: Implementation of the PrintDialog
10215
10216 2006-05-12  Chris Toshok  <toshok@ximian.com>
10217
10218         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
10219         thumb, instead use MoveThumb.  This has the side effect of making
10220         most of the other thumb moving machinery use MoveThumb as well.
10221         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
10222         need to actually invalidate the rectangle where the new thumb will
10223         go.
10224         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
10225         We force an Update() after, so it's not as fast as it could be,
10226         but at least there's zero flicker and no droppings.
10227         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
10228         (UpdateThumbPos): add another argument (dirty), which says whether
10229         or not to calculate/add dirty regions which we later invalidate.
10230         For cases where we know we're going to use MoveThumb, we pass
10231         false for this.  Otherwise, pass true.
10232
10233 2006-05-12  Jackson Harper  <jackson@ximian.com>
10234
10235         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
10236         the status bar.
10237         
10238 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
10239
10240         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
10241           and GetClipRegion methods and UserClipWontExposeParent property.
10242         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
10243           overriding UserClipWontExposeParent property, setting to false, since
10244           Win32 handles the required expose messages to draw our clipped parent
10245           areas internally
10246         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
10247           PaintEventStart to set the user clip region if set.
10248         * Control.cs: 
10249           - Now internally tracking the Region for the control since we need to
10250             store it if the handle is not yet created and only set it when it
10251             becomes created. Before setting the region forced handle creation
10252           - Added code to draw the parents underneath a user-clipped region
10253         * Hwnd.cs: Added UserClip property
10254
10255 2006-05-12  Chris Toshok  <toshok@ximian.com>
10256
10257         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
10258         (set_Maximum): same.
10259         (set_Minimum): same.
10260         (set_SmallChange): same.
10261         (OnMouseUpSB): remove the call to refresh when releasing the
10262         thumb.  We shouldn't need it.
10263         
10264 2006-05-12  Miguel de Icaza  <miguel@novell.com>
10265
10266         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
10267         AutoSize set to None, we do not need to relayout everything, we
10268         just need to invalidate the current region.
10269
10270         (Draw): Do not draw the entire ClientArea, just redraw the
10271         clip area being passed.
10272
10273         * MdiClient.cs: Make MdiClient constructor with the Form argument
10274         internal. 
10275
10276 2006-05-12  Jackson Harper  <jackson@ximian.com>
10277
10278         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
10279         parents background image,  but strangely not their own.
10280         - (DrawStatusBarPanel): Take into account horizontal alignment
10281         when drawing the strings and icons.
10282
10283 2006-05-12  Mike Kestner  <mkestner@novell.com>
10284
10285         * ListBox.cs: avoid invalidations for focus when the collection is
10286         empty. 
10287
10288 2006-05-12  Chris Toshok  <toshok@ximian.com>
10289
10290         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
10291         invalidate the entire thumb area.  Call InvalidateDirty which
10292         limits the redraw to the thumb itself and surrounding pixels.
10293
10294         * XplatUIX11.cs (ScrollWindow): optimize copying.
10295         
10296 2006-05-12  Chris Toshok  <toshok@ximian.com>
10297
10298         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
10299         Figure out the positioning/layout in a single pass instead of
10300         multiple recursive invocations.  Speeds up the initial display of
10301         the data grid.  Also, make many things private that were
10302         originally public but unused outside this class.
10303
10304 2006-05-11  Jackson Harper  <jackson@ximian.com>
10305
10306         * MdiClient.cs: Improved layout code.
10307
10308 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
10309
10310         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
10311           not SelectedObject.
10312
10313 2006-05-11  Chris Toshok  <toshok@ximian.com>
10314
10315         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
10316         union of that will always be {0,0,width,height}.
10317
10318 2006-05-11  Jackson Harper  <jackson@ximian.com>
10319
10320         * Form.cs: Match MS's DefaultSize for forms (they must have
10321         changed the size in sp2).
10322
10323 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10324
10325         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
10326
10327 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
10328
10329         * TextControl.cs : Fixed bug #78109. This incorrect position
10330           comparison caused crash on automatic line split.
10331         * TextBoxBase.cs : reduce duplicate code.
10332
10333 2006-05-10  Jackson Harper  <jackson@ximian.com>
10334
10335         * MdiClient.cs: Active form is only sent to the back when using
10336         the Next form functionality, when a form is clicked the current
10337         active shouldn't be sent to the back.
10338         - Layout the mdi windows when the container is first made visible.
10339         * Form.cs: Give the MdiClient a ref to the containing form when we
10340         create it.
10341         
10342 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10343
10344         * LinkLabel.cs : link_font could be uninitialized, so populate one
10345           before actual use. Fixed bug #78340.
10346
10347 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
10348
10349         * XplatUIX11.cs : clipboard format native value is IntPtr.
10350           Fixed bug #78283.
10351
10352 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10353
10354         * Control.cs: 
10355           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
10356             which is passed up the parent chain by DefWndProc
10357           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
10358             to DefWndProc (#77956)
10359         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
10360
10361 2006-05-10  Jackson Harper  <jackson@ximian.com>
10362
10363         * MdiClient.cs: We need to remove the controls from the mdi
10364         collection, when we close the window.
10365         * MdiWindowManager.cs: Special handling of closing mdi windows.
10366         * InternalWindowManager.cs: Make the close method virtual so the
10367         mdi window manager can handle it specially.
10368
10369 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
10370
10371         * DataGrid.cs:
10372           - Recalculate grid when the data source has changed
10373           - Matches styles provided by user from all data sources types
10374         * DataGridTableStyle.cs: For columns that provided by the user set the
10375         with the preferred value is there was unassigned.
10376         * CurrencyManager.cs: throw OnItemChanged event
10377
10378 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
10379
10380         * PictureBox.cs: Don't animate until handle is created. Start animation
10381           when handle is created.
10382
10383 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10384
10385         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
10386           current codebase.
10387         * XEventQueue.cs: We don't need to provide the extra info
10388
10389 2006-05-10  Jackson Harper  <jackson@ximian.com>
10390
10391         * MdiClient.cs: If the mdi clients parent form has a background
10392         image set, we draw that background image for the mdi area's
10393         background.
10394
10395 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
10396
10397         * TextBoxBase.cs: Set IBeam cursor (#78347)
10398
10399 2006-05-10  Mike Kestner  <mkestner@novell.com>
10400
10401         * ToolBar.cs: fix some text padding issues with ButtonSize
10402         calculation. Update the default size to match MS documentation.
10403         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
10404         button size. Fixes #78296.
10405
10406 2006-05-10  Mike Kestner  <mkestner@novell.com>
10407
10408         * ListBox.cs: use is_visible for scrollbar positioning in case the
10409         control isn't on screen yet.  Fix off by one with Right vs Width
10410         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
10411         
10412 2006-05-10  Jackson Harper  <jackson@ximian.com>
10413
10414         * X11Dnd.cs: Drop to a control with another control on top of it.
10415         * ToolBar.cs: Work on a copy of the buttons list, so that it can
10416         be modified in click handlers. TODO: Look for similar problems in
10417         other controls.
10418
10419 2006-05-09  Jackson Harper  <jackson@ximian.com>
10420
10421         * Form.cs: Window managers need the old window state when setting
10422         window state now.
10423         * InternalWindowManager.cs: Allow the base mdi window manager to
10424         handle more of the MDI only stuff (like maximize buttons).
10425         * MdiWindowManager.cs: Fix some snafus in changing the window
10426         state.  Add all the menu functionality, for both popup and
10427         maximized menus.
10428         * MdiClient.cs: When a new form is selected the currently
10429         activated form is sent to the back, this matches MS.
10430         - Implement a new method to activate the next mdi child window.
10431
10432 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
10433
10434         * Control.cs: 
10435           - Added new InternalCapture method to allow controls to prevent
10436             the capture behaviour on the click handlers
10437           - Switched to use InternalCapture
10438         * ComboBox.cs:
10439           - Using InternalCapture to prevent mouse captures from being released
10440             on mouse button release (Fixes #78100)
10441         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
10442           returns Form borders if a caption is present. (Fixes #78310)
10443
10444 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
10445
10446         * TreeNode.cs: Changed serialization .ctor to not require every field
10447           to be present. (#78265)
10448         * OwnerDrawPropertyBag.cs: Added serialization .ctor
10449
10450 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
10451
10452         * MimeIcon.cs: for is faster than foreach for strings.
10453
10454 2006-05-05  Mike Kestner  <mkestner@novell.com>
10455
10456         * CheckedListBox.cs: update check handling code to not use selected.
10457         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
10458         behavior for visual feedback, motion response, shift/ctrl handling,
10459         and properly deal with all 4 selection modes. Updates to bounds
10460         handling logic.  Add scroll wheel support. [Fixes #77842]
10461
10462 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10463
10464         * ListView.cs:
10465           - Moved adding of Implicit controls into .ctor. That way, subsequent
10466             creation of the controls will not cause them to think they are 
10467             toplevel windows (fixes #78200 header problem)
10468           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
10469           - Switched visibility setting of header control to use internal field
10470             to avoid triggering handle creation
10471           - Now checking if handle is created before causing a refresh when items
10472             are added (This makes us now match handle creation time with MS)
10473         * Splitter.cs: Removed loading of private splitter cursor, switched to
10474           Cursors version now that that is loading the right ones
10475         * Cursors.cs: Load proper splitter cursors from resources
10476         * Cursor.cs: Added second method of loading resource cursors for the 
10477           VS.Net users amongst us
10478
10479 2006-05-05  Mike Kestner  <mkestner@novell.com>
10480
10481         * ListView.cs: give header_control a minimum size based on the
10482         ListView size.
10483
10484 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
10485
10486         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
10487           window seems to do that with metacity, so set that type. (#78120)
10488
10489 2006-05-05  Mike Kestner  <mkestner@novell.com>
10490
10491         * ListViewItem.cs: fix Details mode checkbox layout bug.
10492         * ThemeWin32Classic.cs: draw a ListView column header for unused space
10493         at the end of the header, if it exists. [Fixes for #78200]
10494
10495 2006-05-04  Jackson Harper  <jackson@ximian.com>
10496
10497         * MdiClient.cs: Add a helper property to get the container form.
10498         * MdiWindowManager.cs: We have to make sure to use the menu origin
10499         when drawing the icons and buttons, this fixes maximized window
10500         icons/buttons on win32.
10501         * InternalWindowManager.cs: Reset the restore captions when a
10502         window goes from Maximized to Minimized and vice versa. Move the
10503         DrawMaximizedButtons into the MdiWindowManager source, tool
10504         windows can't be maximized. NOTE: This could use a little
10505         refactoring if time ever permits.
10506         
10507 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10508
10509         * TextBox.cs: Add MWFCategoryAttributes
10510         * TextBoxBase.cs: Add MWFCategoryAttributes
10511         * Form.cs: Add MWFCategoryAttributes
10512
10513 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
10514
10515         * Control.cs: Add MWFCategoryAttributes
10516         * ScrollableControl.cs: Add MWFCategoryAttributes
10517
10518 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
10519
10520         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
10521           Divider is true. Fix a little glitch in PropertyToolBar
10522           drawing code
10523
10524 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
10525
10526         * Control.cs:
10527           - Dispose: Call base.Dispose, this causes the disposed event
10528             to be fired (and probably other, more important stuff)
10529           - SetVisibleCore: Set is_visible to true after creating the
10530             window so that the window still gets created invisible (if
10531             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
10532             to generate a WM_ACTIVE message
10533         * Form.cs: Call Dispose when we want to destroy the window, instead of
10534           just destroying the handle (Dispose will do that for us)
10535         * XplatUIX11.cs:
10536           - RootWindow also needs a queue, so we can properly process the
10537             property change events from RootWindow (like Activate)
10538           - Generatic synthetic WM_ACTIVE message when the active window is
10539             being destroyed
10540
10541 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10542
10543         * LinkLabel.cs: Trigger a recalc of our label dimensions when
10544           bounds are changed
10545
10546 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
10547
10548         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
10549           for determining width and height (image might not be assigned if
10550           we're drawing an imagelist)
10551
10552 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
10553
10554         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
10555         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
10556           height from system
10557         * Theme.cs: No longer returns hardcoded menu height, instead calls
10558           new driver method
10559         * Form.cs (OnLoad): Scaling happens before triggering Load events 
10560           on MS (# 78257)
10561
10562 2006-05-01  Mike Kestner  <mkestner@novell.com>
10563
10564         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
10565
10566 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
10567
10568         * TextBoxBase.cs: Removed Fixme
10569         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
10570
10571 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
10572
10573         * XplatUIX11.cs:
10574           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
10575             the rectangle relative to the parent, considering borders. We
10576             don't really want that.
10577           - ScrollWindow: Fixed warning to be more understandable
10578         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
10579           scrollbars and scroll only the visible area
10580         * RichTextBox.cs: Removed debug output
10581
10582 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10583
10584         * NumericUpDown.cs (Text): Just use base
10585         * UpDownBase.cs: Ensure txtView is created before using it
10586
10587 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10588
10589         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
10590           casting to IntPtr to avoid 64bit overflow errors
10591
10592 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10593
10594         * Control.cs:
10595           - AllowDrop: Don't force handle creation.
10596           - CreateHandle: Added call to tell driver if we're allowed to drop
10597
10598 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10599
10600         * FileDialog.cs: Remember the last directory not only for the
10601           current instance but also for new FileDialog instances.
10602
10603 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
10604         
10605         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
10606           broke sending async messages
10607
10608 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
10609
10610         * XplatUIX11.cs:
10611           - ScrollWindow: Fixed method. We finally generate expose events again
10612             for scrolled areas. This was causing 'garbage' when scrolling
10613             textbox and other controls that used ScrollWindow
10614           - Switched from using the regular queue for paint events to the MS 
10615             model of 'generating' paint events when the queue is empty.
10616             We use the new XQueueEvent.Paint subclass to store which windows
10617             need painting.
10618           - AddExpose now takes the x/y/width/height of the exposed area
10619             and inserts the window into the paint queue if not already there
10620           - InvalidateWholeWindow: Switched to use new AddExpose method
10621           - UpdateMessageQueue: Added which queue to monitor for paint events
10622           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
10623             the unlikely case nothing above handles it. We reset the expose
10624             pending states to get them off the queue.
10625           - GetMessage: Now pulls a paint event if no other events are in the
10626             queue
10627           - Invalidate: Switched to new AddExpose method
10628           - PeekMessage: Updated to understand pending paint events
10629           - UpdateWindow: Fixed logic bug. We were only updating if the window
10630             didn't need updating. Also switched to sending WM_PAINT directly,
10631             like MS does.
10632         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
10633           and random access Remove(). The random access is needed to handle
10634           UpdateWindow() where a WM_PAINT is sent directly without accessing
10635           the queue.
10636         * ScrollBar.cs: Added Update() calls to cause immediate updates to
10637           allow for better feedback when scrolling. Scrollbars are small and
10638           the immediate update should make it 'feel' more responsive without
10639           slowing things down. ScrollBar still needs it's invaliate logic
10640           updated to not always invalidate the whole bar on certain changes.
10641
10642 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10643
10644         * Control.cs:
10645         (BackColor): if the control does not support a transparent background,
10646         return the default backcolor when the parent backcolor is transparent.
10647
10648 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
10649
10650         * Application.cs: Updated to new StartLoop/GetMessage API
10651         * RichTextBox.cs: Provide some output on RTF parsing errors
10652         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
10653           new queue_id argument to GetMessage and PeekMessage to allow faster
10654           handling of per-thread queues in drivers.
10655         * Hwnd.cs: Added Queue tracking and property
10656         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
10657         * XEventQueue.cs: Added thread trackingA
10658         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
10659         * XplatUIX11.cs:
10660           - Implemented new per-thread queue
10661           - GetMessage: Fixed return/break behaviour on several cases. We were
10662             returning stale messages in some cases, instead of just processing
10663             the next message
10664
10665 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10666
10667         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
10668
10669 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
10670
10671         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
10672           fixed off-by-one comparisons between Width/Height and Right/Bottom.
10673
10674 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
10675
10676         * PropertyGridView.cs: Fix drop down width.
10677
10678 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10679
10680         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
10681           a mess in DrawToolBar, so I removed one of them.
10682
10683 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
10684
10685         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
10686           needed (clip). Otherwise we get artifacts.
10687
10688 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10689
10690         * FixedSizeTextBox.cs: Added constructor to allow specifying which
10691           dimension is fixed
10692         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
10693           and switched FixedSizeTextBox to only be fixed vertical (#78116)
10694         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
10695           if it matches the scale base font (avoids unneeded scaling)
10696
10697 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10698
10699         * X11DesktopColors.cs: One gtk_init_check should be enough
10700
10701 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
10702
10703         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
10704           match MS behaviour
10705
10706 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
10707
10708         * TextBoxBase.cs: 
10709           - Generate OnTextChanged for Backspace even if we're only deleting
10710             the current selection
10711           - When setting the Text property, only select all text if the
10712             control does not have focus when it is being set. Otherwise
10713             just place the cursor at the beginning of the control
10714
10715 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
10716
10717         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
10718           Added a little helper to draw PropertyGrid ToolBar with a different
10719           border and a different BackColor.
10720         * PropertyGrid.cs: Some background parts didn't get painted with the
10721           correct background color. Added a class that helps us to draw the
10722           correct border for PropertyGridView and a class that helps us to
10723           draw ToolBars with a different backcolor
10724         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
10725
10726 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
10727
10728         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
10729         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
10730
10731 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10732
10733         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
10734           into the palette entries. Also, since we're working on a copy
10735           we needed to copy the palette back onto the bitmap.
10736         * Cursor.cs: Same fix as XplatUIWin32.cs.
10737
10738 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
10739
10740         * ImageListStreamer.cs: Need to read the var (or we're off)
10741
10742 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
10743
10744         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
10745           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
10746           TextBoxBase.cs: Unused var fixes
10747         * AxHost.cs: Small 2.0 fix
10748         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
10749           as it seems that is what at least Metacity expects. This will make
10750           icons show up on 64bit platforms. We still have some 64bit size
10751           issues, though, since the startup app window size still won't match.
10752
10753 2006-04-25  Mike Kestner  <mkestner@novell.com>
10754
10755         * *.cs: cleanup newly reported exception var unused warnings.
10756
10757 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10758
10759         * ThemeWin32Classic.cs: Button image alignment now matches exactly
10760           ms
10761
10762 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10763
10764         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
10765           image. The image position is always the same, no matter if the
10766           button is pressed or not.
10767
10768 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
10769
10770         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
10771           selection and set the correct filename for SaveFileDialog.
10772           Patch by Emery Conrad.
10773
10774 2006-04-24  Mike Kestner  <mkestner@novell.com>
10775
10776         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
10777         check for item.X outside the ClientRect instead of item.Y. Fixes
10778         #78151.
10779
10780 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10781
10782         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
10783         trust that value blindly and do some sanity check. Fixes bug #77814.
10784
10785 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10786
10787         * ImageListStreamer.cs: save the mask as a 1bpp image.
10788
10789 2006-04-21  Mike Kestner  <mkestner@novell.com>
10790
10791         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
10792         pass Checked and Indeterminate to the Theme Engine. Improve
10793         encapsulation with ListBox.
10794         * ListBox.cs: Keep a StringFormat instead of calculating it every item
10795         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
10796         nested types.  Move all CheckState functionality to CheckedListBox.
10797         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
10798         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
10799         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
10800         single base list. Fix scrollbar sizing and placement to mirror MS.
10801         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
10802         used.
10803         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
10804         for CheckedListBox by using new DrawItemState info.  Center the
10805         checkboxes on the items. Use new StringFormat property.
10806
10807 2006-04-18  Jackson Harper  <jackson@ximian.com>
10808
10809         * Form.cs: MdiChildren don't do default locations the same way as
10810         regular forms.  This prevents a crash when trying to position the
10811         mdi windows.
10812
10813 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
10814
10815         * PropertyGridTextBox.cs: Formatting, copyright
10816         * PropertiesTab.cs: Formatting
10817         * PropertyGrid.cs: Formatting
10818         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
10819           click toggling of values
10820           
10821 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
10822
10823         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
10824         * Control.cs (.ctor): verify_thread_handle is static, don't reset
10825           every time a control is created
10826         * Application.cs: Removed obsolete EnableRTLMirroring method
10827
10828 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
10829
10830         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
10831         SelectedIndex to -1. Fixes bug #78121.
10832
10833 2006-04-17  Jackson Harper  <jackson@ximian.com>
10834
10835         * Binding.cs: Handle null values for Current and BindingContext.
10836         This occurs when binding is a little delayed.
10837         * CurrencyManager.cs: return null for Current when there are no
10838         items in the list.
10839         - Hookup to the listchanged event on the DataView and update
10840         bindings when the list is changed.  This fixes late binding of
10841         controls.
10842
10843 2006-04-17  Jackson Harper  <jackson@ximian.com>
10844
10845         * X11Dnd.cs:
10846         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
10847         Ringenbach.
10848
10849 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
10850
10851         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
10852           place
10853         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
10854           with the correct ButtonState
10855
10856 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
10857
10858         * XplatUIX11.cs: Improved distinguishing between window types to
10859           tell the WM a type closer to what the app wants (Fixes #78107)
10860
10861 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10862
10863         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
10864           GrabHandle
10865
10866 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
10867
10868         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
10869           drawing code to reflect the size grip changes
10870
10871 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10872
10873         * ImageListStreamer.cs: fix handling of the mask that follows the main
10874         bitmap when deserializing and serialize it properly. The generated mask
10875         should better be a 1bpp image, but I'll do that later.
10876
10877 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10878
10879         * FileDialog.cs: Show something in the DirComboBox on *nix if the
10880           path doesn't fit into some of our Current.Places
10881
10882 2006-04-13  Jackson Harper  <jackson@ximian.com>
10883
10884         * ComboBox.cs: Use borders instead of drawing our own decorations,
10885         try to obey correct rules for heights.
10886         * Theme.cs:
10887         * ThemeNice.cs:
10888         * ThemeClearLooks.cs:
10889         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
10890         this is now handled by borders.
10891         - Remove unused DrawListBoxDecorationSize method.
10892         
10893 2006-04-13  Mike Kestner  <mkestner@novell.com>
10894
10895         * MenuAPI.cs: null guarding for the disbled click check fixes crash
10896         reported by Alex.
10897
10898 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
10899
10900         * ThemeWin32Classic.cs: 
10901           - Fixed CPDrawStringDisabled
10902           - Corrected drawing of disabled menu items
10903           - Fixed drawing of disabled radio buttons (bug #78095)
10904           - Draw check in a disabled CheckBox with color ControlDark 
10905
10906 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10907
10908         * Form.cs: Use the provided width when calculating the menu size;
10909           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
10910           and ClientSize.Width won't be updated yet
10911         * Application.cs: Use Visible instead of Show() to make form visible,
10912           this way we create the handle later and menusize is considered
10913
10914 2006-04-12  Mike Kestner  <mkestner@novell.com>
10915
10916         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
10917         reporting.
10918
10919 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10920
10921         * TextBox.cs: Implemented context menu
10922
10923 2006-04-12  Mike Kestner  <mkestner@novell.com>
10924
10925         * ListView.cs: implement box selection. fixes #77838.
10926         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
10927
10928 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10929
10930         * XplatUIX11.cs: Added setting of window type when transient window
10931           is created (metacity would move it otherwise)
10932         * X11Structs.cs: Added WINDOW_TYPE atoms
10933         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
10934           background (the control is Opaque but still wants transparent
10935           backgrounds)
10936
10937 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10938
10939         * Control.cs: Added OnPaintBackgroundInternal to allow controls
10940           that set Opaque but don't mean it (like all ButtonBase-derived
10941           controls) to still draw their background
10942         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
10943           the background
10944
10945 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
10946
10947         * Control.cs (PaintControlBackground): Set the graphics object
10948           on our PaintEvent to null to prevent it from being disposed
10949           when the PaintEvent gets disposed
10950
10951 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
10952
10953         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
10954         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
10955
10956 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
10957
10958         * Control.cs: 
10959           - Added transparency check to BackColor property. Transparent
10960             backgrounds are only allowed if the control styles permit it
10961           - Added recursive painting of parent control background and
10962             foreground if a control with a transparent backcolor is drawn
10963             (Thanks to Tim Ringenback for providing his 'hack' as a base
10964              for this patch) Fixes #77985 and #78026.
10965           - Added Opaque style check before calling OnPaintBackground, no
10966             need to draw the background if the control is opaque
10967           - Removed ControlAccessibleObject owner variable (inherited from
10968             base, no need to define again)
10969           - Added some documentation links explaining the drawing events
10970             and styles
10971
10972 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10973
10974         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
10975           that the affected control is the located at the left border of our
10976           parent (Fixes #77936)
10977
10978 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10979
10980         * TextBoxBase.cs: When rendering disabled or readonly controls,
10981           draw the background with 'Control' instead of 'Window' color as
10982           long as the user hasn't specifically set a color
10983
10984 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
10985
10986         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
10987           since that won't be updated if the user types text (only if it's
10988           programatically set)
10989
10990 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
10991
10992         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
10993           layout changes do to app-triggered resizes will have the proper
10994           display rectangle for layout
10995
10996 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
10997
10998         * ThemeWin32Classic.cs:
10999           - Make use of the SystemBrushes and SystemPens wherever possible
11000           - Corrected some highlight colors
11001           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
11002             drawing
11003         * Theme.cs: Added Empty field to CPColor struct
11004
11005 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
11006
11007         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
11008           is displayed when calculating the display rectangle. Thanks to Mike
11009           for teaching me the err of my ways.
11010
11011 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
11012
11013         * ScrollableControl.cs:
11014           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
11015             (instead of 0,0) and we now return the real width/height instead of
11016             just the clientrectangle, adjusted for padding. The rectangle is
11017             now cached and created by the new CalculateDisplayRectangle method.
11018           - Created new CalculateDisplayRectange method, which basically does
11019             what get_DisplayRectangle() did originally, but now using the 
11020             right edge instead of DisplayRectangle to determine the size of
11021             our scrollbars
11022           - get_Canvas(): Fixed it to properly calculate canvas for 
11023             right/bottom controls which seem to be placed to the right/bottom
11024             of any controls that have a fixed location
11025           - Removed TODO that's taken care of
11026           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
11027             and SetDisplayRectLocation according to new MSDN2 docs
11028           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
11029             event when that is called, this is added for compatibility
11030           - ScrollControlIntoView(): Implemented.
11031           - Switched scrollbars to be implicit, they shouldn't be selectable
11032         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
11033           call it when the active control is set/changed
11034         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
11035         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
11036           implicit_control variable (used for native Win32 message generation)
11037         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
11038           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
11039         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
11040         * XplatUIStructs.cs: Added ScrollBarCommands enum
11041
11042 2006-04-10  Jackson Harper  <jackson@ximian.com>
11043
11044         * ButtonBase.cs:
11045         * CheckedListBox.cs:
11046         * ComboBox.cs:
11047         * DataGrid.cs:
11048         * DataGridView.cs:
11049         * Form.cs:
11050         * GroupBox.cs:
11051         * ListBox.cs:
11052         * PrintPreviewControl.cs:
11053         * ProgressBar.cs:
11054         * PropertyGrid.cs:
11055         * Splitter.cs:
11056         * StatusBar.cs:
11057         * TrackBar.cs:
11058         * UpDownBase.cs: Fixup base event overrides.
11059         
11060 2006-04-06  Mike Kestner  <mkestner@novell.com>
11061
11062         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
11063         all user-initiated value changes to min <= value <= max-thumbsz+1.
11064         (set_Value): check for vert/horiz when calculating new thumb position.
11065         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
11066         like MS does.
11067         (OnMouseMoveSB): refactor the thumb dragging code and refine
11068         invalidation logic to reduce flicker.
11069         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
11070         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
11071         (UpdateThumbPosition): small code readability cleanup
11072
11073 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
11074
11075         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
11076           different
11077
11078 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
11079
11080         * ThemeNice.cs: Use a better graphics effect when a button is pressed
11081
11082 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
11083
11084         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
11085         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
11086           This dramatically reduces the number of Pen.Dispose calls. 
11087           Where possible call ResPool methods only once instead of calling it
11088           over and over again (for example for the same color).
11089
11090 2006-04-06  Mike Kestner  <mkestner@novell.com>
11091
11092         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
11093         Also remove an unused private field on the collection. Fixes #77972.
11094
11095 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
11096
11097         * ThemeNice.cs: Added ToolBar drawing code
11098
11099 2006-04-06  Mike Kestner  <mkestner@novell.com>
11100
11101         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
11102         I'm assuming that means we need to look up the toplevel for the
11103         provided control. Fixes the crash trace in #77911 but exposes another
11104         crash in some strange reflection usage in NDocGui.
11105
11106 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
11107
11108         * ThemeNice.cs: Gave it a little silver touch and added Images
11109           method
11110         * FontDialog.cs: FontDialog is not resizable
11111         * FileDialg.cs: Added SizeGripStyle.Show
11112
11113 2006-04-05  Jackson Harper  <jackson@ximian.com>
11114
11115         * KeyboardLayouts.cs: Remove warning.
11116
11117 2006-04-05  Jackson Harper  <jackson@ximian.com>
11118
11119         * Control.cs: Enable OnPaintInternal so we can use it for drawing
11120         all of our controls instead of Paint +=.
11121         * ListBox.cs:
11122         * ListView.cs:
11123         * MenuAPI.cs:
11124         * MessageBox.cs:
11125         * NotifyIcon.cs:
11126         * ProgressBar.cs:
11127         * ScrollBar.cs:
11128         * Splitter.cs:
11129         * StatusBar.cs:
11130         * TabControl.cs:
11131         * TextBoxBase.cs:
11132         * ToolBar.cs:
11133         * TrackBar.cs:
11134         * UpDownBase.cs:
11135         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
11136         use OnPaintInternal. Remove Width/Height and Visible checks in
11137         paint handler, this is done at a higher level now.
11138         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
11139         * PaintEventArgs.cs: Add a handled flag so controls that don't
11140         want anymore painting after OnPaintInternal can make sure OnPaint
11141         isn't called.
11142
11143 2006-04-05  Mike Kestner  <mkestner@novell.com>
11144
11145         * Form.cs: fix the menu WndProc hacks to respect the native enabled
11146         state of the form, so that we don't process events when Modal dialogs
11147         are up. Fixes #77922.
11148
11149 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
11150
11151         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
11152           checking is done.
11153
11154 2006-04-05  Mike Kestner  <mkestner@novell.com>
11155
11156         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
11157
11158 2006-04-05  Mike Kestner  <mkestner@novell.com>
11159
11160         * ListView.cs (HeaderMouseMove): null guarding for the over column
11161         when setting up the drag_to_index.  Fixes #78015.
11162
11163 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
11164
11165         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
11166           in the taskbar. Transient windows seem to accomplish that.
11167
11168 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
11169
11170         * Form.cs:
11171           - Re-enabled CreateParams.X/Y code for FormStartPosition
11172           - Added code for manual placement when creating the Control
11173           - Incomplete patch to treat MDI forms differently when
11174             setting the ClientSizeCore. (Still need to figure out handling
11175             x/y coords there)
11176         * XplatUIX11.cs:
11177           - When we're explicitly setting the X/Y position of a non-Child
11178             window, let the WM know. Metacity really wants this.
11179
11180 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11181
11182         * ThemeNice.cs: Added CPDrawButton
11183
11184 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11185
11186         * ThemeNice.cs: Changed the color for focused buttons and activated
11187           the arrows for small scroll buttons.
11188
11189 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
11190
11191         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
11192           anymore. Changed some method modifiers to protected (virtual)
11193         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
11194           changes
11195         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
11196           Updated drawing of menus, buttons and progressbars; added
11197           CPDrawBorder3D 
11198
11199 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11200
11201         * ImageListStreamer.cs: implemented serialization/deserialization
11202         of the images.
11203
11204 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
11205
11206         * ThemeWin32Classic.cs:
11207           - Removed all the DrawFrameControl stuff; CPDrawButton,
11208             CPDrawCheckBox and CPDrawRadioButton are now handled directly
11209             inside the methods
11210           - Updated and corrected the drawing code of CPDrawButton,
11211             CPDrawCheckBox and CPDrawRadioButton to better match ms
11212           - Updated theme checkbox and radiobutton code to use the CP*
11213             methods
11214
11215 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
11216
11217         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
11218           bug is fixed
11219
11220 2006-03-31  Jackson Harper  <jackson@ximian.com>
11221
11222         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
11223         sometimes.
11224         * UpDownBase.cs: Don't CreateGraphics manually, use a
11225         Refresh. Ideally we would invalidate the correct areas here.
11226
11227 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
11228
11229         * XplatUIX11.cs: 
11230           - We now track the mapping state of windows. If a window (or 
11231             one of it's parents) is not mapped we no longer permit
11232             WM_PAINT messages to be generated since we'd otherwise get 
11233             lots of BadMatch X errors. Jackson did all the work figuring
11234             out the problem.
11235           - Destroying the caret if the window it's contained in is 
11236             destroyed. Can't use regular DestroyCaret method since it
11237             might fall into a drawing function (trying to remove the
11238             caret) and with that generate new BadMatch errors. Again,
11239             Jackson tracked this down.
11240           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
11241             make sure we send the messages to all windows. (The old code
11242             would send the WM_DESTROY to the window, and then all child
11243             windows would be 'gone' because the WM_DESTROY handle lookup
11244             would no longer find the destroyed window)
11245         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
11246         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
11247
11248 2006-03-31  Jackson Harper  <jackson@ximian.com>
11249
11250         * ScrollableControl.cs: Dont recalc if we are not visible.
11251
11252 2006-03-31  Mike Kestner  <mkestner@novell.com>
11253
11254         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
11255         the visibility branch.
11256
11257 2006-03-31  Jackson Harper  <jackson@ximian.com>
11258
11259         * ScrollBar.cs: Cap values when incrementing/decrementing.
11260
11261 2006-03-31  Mike Kestner  <mkestner@novell.com>
11262
11263         * MenuAPI.cs: setup menu.tracker for popup/context menus.
11264         * ToolTip.cs: guard against timer expirations with no active control.
11265         Not sure why it happened.
11266
11267 2006-03-31  Mike Kestner  <mkestner@novell.com>
11268
11269         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
11270         text.
11271         * ToolTip.cs: Position the tooltip based on where the cursor is at
11272         popup time, not at MouseEnter time.  Add a Down state so that we don't
11273         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
11274         positioning offset. Lookup DisplaySize at positioning time, since it
11275         can theoretically change during invocation.
11276         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
11277         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
11278
11279 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11280
11281         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
11282           Fixes behaviour when the Text property of the box is String.Empty
11283
11284 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
11285
11286         * XplatUIX11.cs: Only send mouseleave for our client windows, not
11287           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
11288           a window)
11289
11290 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11291
11292         * FileDialog.cs: Visual enhancement for the popup buttons in 
11293           PopupButtonPanel
11294
11295 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
11296
11297         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
11298           code
11299
11300 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
11301
11302         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
11303           highlighted menu items to match ms
11304
11305 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
11306
11307         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
11308
11309 2006-03-30  Mike Kestner  <mkestner@novell.com>
11310
11311         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
11312         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
11313         go active to account for HotLight to Selected transition.
11314         * MenuItem.cs: add internal Selected prop. Fill out the Status
11315         property by calculating it from item info. Add HotLight,
11316         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
11317
11318 2006-03-30  Mike Kestner  <mkestner@novell.com>
11319
11320         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
11321
11322 2006-03-29  Jackson Harper  <jackson@ximian.com>
11323
11324         * Form.cs: Implement TODO.
11325
11326 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
11327
11328         * PrintPreviewDialog.cs: Implemented missing methods and events; still
11329           missing proper dialog setup in the constructor
11330
11331 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
11332
11333         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
11334         * Control.cs:
11335           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
11336           - Fixed ResetBindings and removed TODO
11337           - Added check for cross-thread calls to get_Handle()
11338           - Added Marshaller attribute for set_Font to satisfy class status
11339         * FontDialog.cs: Removed TODOs that seemed implemented
11340         * UpDownBase.cs: Removed unneeded TODO and Fixme
11341         * MessageBox.cs: Implemented support for Default button and removed TODO
11342         * FileDialog.cs: Removed obsolete TODO
11343         * DomainUpDown.cs: Removed obsolete TODO
11344         * ButtonBase.cs: Removed obsolete TODO
11345         * XplatUIWin32.cs: Removed obsolete TODO
11346         * Form.cs:
11347           - Removed obsolete TODO
11348           - Calling CheckAcceptButton when the acceptbutton is changed to allow
11349             internal status updates
11350           - Making sure the active control is selected when the control is created
11351         * CurrencyManager.cs: Removed obsolete TODO
11352
11353 2006-03-29  Mike Kestner  <mkestner@novell.com>
11354
11355         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
11356         of PrintPreviewDialog and RichTextBox.
11357
11358 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11359
11360         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
11361           DarkDark, Light and LightLight colors for a specific color
11362         * ThemeWin32Classic.cs:
11363           - Use Button drawing code to draw RadioButtons and CheckBoxes with
11364             Appearance = Button 
11365           - Make use of the new ResPool helper CPColor
11366           - Draw ProgressBar and StatusBar with correct 3D borders
11367
11368 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
11369
11370         * ColorDialog.cs: Return selected color. Fixes bug #77940.
11371
11372 2006-03-28  Mike Kestner  <mkestner@novell.com>
11373
11374         * ListView.cs: fix Icon layout to plan for scrollbar widths when
11375         calculating col/row counts.
11376
11377 2006-03-28  Mike Kestner  <mkestner@novell.com>
11378
11379         * ColumnHeader.cs:
11380         * ListView.cs:
11381         * ListViewItem.cs:
11382         * Menu.cs: 
11383         switch to explicit interface method implementation for some methods
11384         corcompare identifies as inconsistent with MS.
11385
11386 2006-03-28  Mike Kestner  <mkestner@novell.com>
11387
11388         * MainMenu.cs: 
11389         * Menu.cs:
11390         add a few missing methods from the class status output.
11391
11392 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
11393
11394         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
11395           correct.
11396
11397 2006-03-28  Mike Kestner  <mkestner@novell.com>
11398
11399         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
11400
11401 2006-03-27  Mike Kestner  <mkestner@novell.com>
11402
11403         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
11404         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
11405
11406 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
11407
11408         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
11409
11410 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11411
11412         * ThemeWin32Classic.cs:
11413           - GroupBox: Inserted a little gap between the text and the lines
11414             on the right side
11415           - Made the code in CPDrawBorder3D more readable
11416           - Corrected the drawing location of the up and down arrows in 
11417             CPDrawScrollButton
11418
11419 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11420
11421         * ControlPaint.cs: Corrected line widths in DrawBorder for
11422           ButtonBorderStyle Inset and Outset
11423
11424 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11425
11426         * ThemeWin32Classic.cs:
11427           - Rewrote the totally broken CPDrawBorder3D method. That was
11428             one of the main problems for the terrific ThemeWin32Classic
11429             look
11430           - Updated and corrected Button drawing
11431           - Correct the dimensions of the SizeGrip to match ms ones
11432           - Removed a small drawing glitch in DrawComboBoxEditDecorations
11433         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
11434           Border3DStyle.Sunken to match ms.
11435
11436 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
11437
11438         * ThemeWin32Classic.cs: First small part of the "de-uglify
11439           ThemeWin32Classic" effort, SizeGrip
11440
11441 2006-03-24  Jackson Harper  <jackson@ximian.com>
11442
11443         * XplatUIX11.cs: Give a max idle time of one second, this matches
11444         MS and forces an Idle event every second when there are no other
11445         events in the queue.
11446
11447 2006-03-24  Mike Kestner  <mkestner@novell.com>
11448
11449         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
11450         * ListView.Item.cs: fix layout issues with null image lists and images
11451         smaller than checkbox size.
11452         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
11453         mode like MS does.  It's weird, but consistent.  ;-)
11454         Fixes #77890.
11455
11456 2006-03-24  Mike Kestner  <mkestner@novell.com>
11457
11458         * ListView.cs: Scroll wheel support for the item control.  Fixes
11459         #77839.
11460
11461 2006-03-23  Jackson Harper  <jackson@ximian.com>
11462
11463         * ScrollableControl.cs: Special case negative sized areas, not
11464         zero.
11465         * MonthCalendar.cs: Save the rect of the clicked date so we can
11466         use it for invalidation.
11467         - Try to cut down on the number of invalidates
11468         - Invalidate the rect the mouse is over and was over when moving
11469         the mouse, so we get the focus box following the cursor.
11470
11471 2006-03-23  Mike Kestner  <mkestner@novell.com>
11472
11473         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
11474         focus rectangle drawing. Fixes #77835.
11475
11476 2006-03-23  Mike Kestner  <mkestner@novell.com>
11477
11478         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
11479         the if and else if and reverting back to the original == check on the
11480         None conditional.
11481
11482 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11483
11484         * FontDialog.cs: Update the example panel if the selected index of
11485           the fontListBox changes.
11486
11487 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
11488
11489         * FileDialog.cs: Make FileDialog remember which directory it was in
11490           last in the same execution.
11491
11492 2006-03-22  Mike Kestner  <mkestner@novell.com>
11493
11494         * FileDialog.cs: make the DropDownMenu on the toolbar display
11495         RadioChecks since they are mutually exclusive and that's what MS does.
11496
11497 2006-03-22  Mike Kestner  <mkestner@novell.com>
11498
11499         * Theme.cs: add Color param to CPDrawMenuGlyph.
11500         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
11501         checks and radio marks and arrows are visible on highlighted items.
11502         * ControlPaint.cs: update to use new Theme signature.
11503
11504 2006-03-22  Mike Kestner  <mkestner@novell.com>
11505
11506         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
11507         is active. Fixes #77870.
11508
11509 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11510
11511         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
11512           to be focused/selected after startup
11513
11514 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
11515
11516         * ColorDialog.cs: 
11517           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
11518             CustomColors and ShowHelp properties
11519           - Some internal rewrites to get better results when using the
11520             ColorMatrix
11521
11522 2006-03-22  Mike Kestner  <mkestner@novell.com>
11523
11524         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
11525         HoverSelection.  Fixes #77836.
11526
11527 2006-03-22  Mike Kestner  <mkestner@novell.com>
11528
11529         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
11530         ToggleButtons.  (De)Sensitize the Back button around a stack count of
11531         1, not 0.  Update ButtonSize based on a pixel count of the win32
11532         control.  Adjust the toolbar size/location for new button size.
11533
11534 2006-03-22  Jackson Harper  <jackson@ximian.com>
11535
11536         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
11537         true.
11538         * ScrollBar.cs: When doing increments and decrements we need to
11539         set the Value property so that ValueChanged gets raised. A
11540         possible optimization here would be to make an internal SetValue
11541         that doesn't invalidate immediately.
11542         * ToolTip.cs: Tooltips get added to their container (when
11543         supplied) so they get disposed when the container is disposed.
11544         - Don't create tooltips for String.Empty. This prevents all these
11545         little 2-3 pixel windows from showing up when running nunit-gui
11546         and driving me mad.
11547         * Form.cs: Don't set topmost when setting the owner if the handles
11548         haven't been created yet.  The topmost set will happen when the
11549         handles are created.
11550
11551 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
11552
11553         * XplatUIX11.cs:
11554           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
11555           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
11556             visible (to allow them to recalculate their sizes)
11557
11558 2006-03-21  Mike Kestner  <mkestner@novell.com>
11559
11560         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
11561         methods. Removed a ton of redundant code.  Still not really happy with
11562         the border rendering, but I think that's mainly because of the
11563         ControlDarkDark being black instead of a dark grey. Depending on how 
11564         close we want to be, we might want to revisit those color choices.
11565         Among the new features added during the refactor were DropDownArrow
11566         pressed rendering, Disabled image rendering.  Proper flat appearance
11567         boundary rendering.  Removed the Divider and Wrapping dividers since I
11568         can't figure out any combination of themes and conditions to make the
11569         MS control draw a horizontal line on a toolbar despite what the
11570         Divider property docs indicate.
11571         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
11572         conditions and incorrect layout.  Updated to coding standard.
11573         * ToolBarButton.cs: refactored layout and positioning code from
11574         ToolBar to here.  Invalidate wherever possible instead of forcing
11575         redraws of the whole toolbar. 
11576         (Known remaining issues: explicit ButtonSize smaller than provided
11577         images.)
11578
11579 2006-03-21  Mike Kestner  <mkestner@novell.com>
11580
11581         * ContextMenu.cs (Show): use the position parameter instead of just
11582         showing at the MousePosition.
11583
11584 2006-03-21  Jackson Harper  <jackson@ximian.com>
11585
11586         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
11587         control handle this.
11588         * TreeNodeCollection.cs: If we are clearing the root node we need
11589         to reset top_node so calcs can still happen.
11590         * ThemeWin32Classic.cs: This is a Flags so we need to check
11591         properly.
11592         
11593 2006-03-21  Jackson Harper  <jackson@ximian.com>
11594
11595         * DataGrid.cs: Create columns when the binding context has been
11596         changed.
11597         * X11Structs.cs: Keysyms are uints.
11598         - Add size to fix build.
11599
11600 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
11601
11602         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
11603           XplatUIOSX.cs: 
11604           - Added ResetMouseHover method to allow controls to retrigger
11605             hovering if they need it more than once
11606           - Implemented MouseHoverTime and MouseHoverSize properties
11607         * Timer.cs: Start() must reset the interval
11608         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
11609           properties
11610
11611 2006-03-21  Jackson Harper  <jackson@ximian.com>
11612
11613         * X11Keyboard.cs: improved layout detection. Move the nonchar
11614         tables into this file.
11615         * KeyboardLayouts.cs: Move the tables into resource files.
11616
11617 2006-03-21  Mike Kestner  <mkestner@novell.com>
11618
11619         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
11620
11621 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
11622
11623         * Mime.cs: Various speed optimizations. Looking up mime types
11624           is now 2 times faster than before
11625
11626 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
11627
11628         * CreateParams.cs: Added internal menu field
11629         * Control.cs: 
11630           - Switched call order for UpdateBounds; now we always call
11631             the one that also takes ClientSize, and we're calculating the 
11632             client size via driver method in the others. The previous
11633             method of tracking client size by difference wasn't working
11634             for forms where even the starting client size wouldn't match
11635             the overall form size (due to borders) (Part of fix for #77729)
11636           - CreateParams(): Do not use parent.Handle unless the handle is
11637             already created. Causes havoc with Nexxia and throws off our
11638             creation of controls
11639         * XplatUIX11.cs:
11640           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
11641           - Switched handling of ConfigureNotify over to new PerformNCCalc 
11642             method (consolidates code)
11643           - Changed RequestNCRecalc to use new PerformNCCalc method
11644           - Added calls to RequestNCRecalc when menus and borders are changed
11645             to allow app to set NC size. (Part of fix for #77729) This matches
11646             when MS send a WM_NCRECALC on Win32 windows.
11647           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
11648             (Part of fix for #77729). This matches what MS does, they also
11649             send that message when the form is made visible.
11650           - XException.GetMessage: Improved usability of X errors by including
11651             a translation of the window into Hwnd and Control class
11652           - Improved debug info for window creation, reparenting and destruction
11653           - Created helper method WindowIsMapped() [Currently not used]
11654         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
11655         * Form.cs:
11656           - CreateParams: Now setting our menu on the new internal menu field
11657           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
11658             avoid calculating the same property twice
11659         * Hwnd.cs:
11660           - Improved usability of ToString() for debugging purposes
11661           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
11662             determine the height of the menu, instead of just the font. This
11663             required to also create a graphics context and to keep a bmp 
11664             around (for performance reasons)
11665
11666 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
11667
11668         * MenuAPI.cs: Added OnMouseUp method
11669         * Form.cs:
11670           - Now remembering the requested client size, avoids size errors
11671           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
11672             instead of base if the menu is active. This is required due to
11673             control now capturing and releasing on down/up and it would
11674             prematurely release our menu capture
11675
11676 2006-03-17  Jackson Harper  <jackson@ximian.com>
11677
11678         * KeyboardLayouts.cs: Add the czech layouts.
11679
11680 2006-03-16  Jackson Harper  <jackson@ximian.com>
11681
11682         * Control.cs: Use the viewport space when sizing not the controls
11683         client size, so things like ScrollableControl that effect the
11684         viewport size (when scrollbars are added) are computed correctly.
11685         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
11686         of ManagerEntrys.
11687         - Handle creating BindingManagers for null data sources.
11688         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
11689         source, otherwise when rows are added they are added to the 'fake'
11690         datasource and we will crash when trying to set the position in
11691         those rows.
11692         - Use Implicit scrollbars on the datagrid so they arent
11693         selectable.
11694         
11695 2006-03-16  Jackson Harper  <jackson@ximian.com>
11696
11697         * Binding.cs:
11698         * InternalWindowManager.cs:
11699         * MdiWindowManager.cs:
11700         * X11Keyboard.cs: I really want Mike to love me again (fix
11701         compiler warnings).
11702
11703 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
11704
11705         * DataGrid.cs:
11706           - OnMouseDown: Switch to editing mode when clicking on the cell
11707                          even if we're clicking on the cell that's currently 
11708                          selected
11709           - ProcessGridKey: Left/Right now wrap like MS.Net does
11710           - ProcessGridKey: Tab now knows to add a new row when tab is
11711                             pressed in the cell of the last column of the 
11712                             last row
11713           - ProcessGridKey: Enter now adds another row  if pressed in the last
11714                             row and selectes the new row, same column cell
11715           - ProcessGridKey: Home/End navigate columns, not rows, like 
11716                             originally implemented
11717           - Broke ProcessKeyPreview code out into an extra Internal method
11718             so it can be called from the edit code
11719         * DataGridTextBox.cs (ProcessKeyMessage):
11720           - Switched to accept Tab keypresses
11721           - Added F2 handling to allow jumping to the end of the edited cell
11722           - Added logic to allow moving caret left/right inside edited cell
11723             and making the edited cell jump when the caret hits cell borders
11724           - Tab and Enter are now passed to the datagrid after being handled
11725         * TextBoxBase.cs:
11726           - Removed capture code now that Control handles it
11727           - set_SelectionStart now ensures caret is visible
11728
11729 2006-03-16  Jackson Harper  <jackson@ximian.com>
11730
11731         * TrackBar.cs: Debackwards the increment/decrement for handling
11732         mouse clicks on the bar with vertical trackbars.
11733         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
11734         bottom to match MS.
11735
11736 2006-03-16  Mike Kestner  <mkestner@novell.com>
11737
11738         * ListView.cs: make shift/ctrl keyboard and mouse selection 
11739         consistent with the MS control. Fix a bug in
11740         SelectedListViewItemCollection.Clear that was pissing me off for the
11741         better part of a day because the collection was being altered
11742         underneath us as we walked the list.
11743
11744 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
11745
11746         * Control.cs: Not sure how we could miss this so long, but it seems
11747           that MS.Net has Capture set all the way from before calling 
11748           OnMouseDown through sending the mouse events until after
11749           OnMouseUp. This will fix DataGrid's selection being set to end
11750           at the location of the MouseUp.
11751
11752 2006-03-15  Jackson Harper  <jackson@ximian.com>
11753
11754         * BindingContext.cs: Check the binding after its added so that it
11755           can initialize the binding managers and hookup to events.
11756         * Binding.cs: Data members seem to sometimes include rows/cols in
11757           the format Row.Column we now take this into account.
11758           - Hookup to the position changed event so we can update the
11759           control when the position has changed in the data set.
11760         * CurrencyManager.cs: Take into account the row/col naming
11761           convention when creating dataset tables.
11762         * BindingContext.cs: Using a newer better way of storing
11763           datasource/datamember pairs.  Hopefully this better matches MS for
11764           looking up binding managers.
11765
11766
11767 2006-03-15  Jackson Harper  <jackson@ximian.com>
11768
11769         * BindingContext.cs: The currency manager needs the data member
11770         name, if the member is a data set we use the name to find the
11771         correct table.
11772         * CurrencyManager.cs: When creating the list prefer an IList over
11773         an IListSource.
11774         - Attempt to create a DataTable from a DataSet (TODO: might need
11775         some better error checking here, although MS doesn't seem to have much)
11776         - If we have a DataTable create a view and use it as our list.
11777
11778 2006-03-15  Mike Kestner  <mkestner@novell.com>
11779
11780         * ListView.cs: keep a matrix of the icon mode layout to facilitate
11781         keyboard navigation. Support Up/Down/Left/Right selection correctly
11782         for all 4 View modes.
11783         * ListViewItem.cs: add internal row/col fields for icon layouts.
11784
11785 2006-03-15  Jackson Harper  <jackson@ximian.com>
11786
11787         * TabControl.cs: Redraw the tabs when we resize so their newly
11788         calculated sizes are drawn on screen.
11789         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
11790         composite characters.
11791         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
11792         - filter events so that composite characters can be created
11793         patches by peter
11794         * X11Structs.cs: Add XIMProperties enum.
11795
11796 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11797
11798         * Control.cs (BringToFront, SendToBack): Don't use window or handle
11799           unless it's created
11800
11801 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11802
11803         * Control.cs (PerformLayout): We don't need to consider visiblity
11804           for anchoring, only for docking. This fixes 'whacky' alignment
11805           in listbox and other controls that use implicit scrollbars after
11806           the previous PerformLayout patch
11807         * ListBox.cs: Switched to use implicit scrollbars
11808           
11809 2006-03-14  Mike Kestner  <mkestner@novell.com>
11810
11811         * ToolBar.cs: 
11812         * VScrollBar.cs:
11813         - chain up the "new event" overrides to base and use
11814         OnEvent to raise them.  Part of fix for bug #76509.
11815
11816 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
11817
11818         * FileDialog.cs: Do not select an item in the parent directory
11819           on backspace
11820
11821 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
11822
11823         * Control.cs (PerformLayout): It would seem that we considered
11824           invisible windows for our layout. Not quite the right thing
11825           to do. Now we don't any longer, thereby fixing bug #76889.
11826
11827 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
11828
11829         * Control.cs (CanFocus): I goofed. A control can have focus 
11830           even though it's not selectable. Made it match MS docs.
11831
11832 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11833
11834         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
11835           center by default (fixes #76895)
11836         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
11837           all uses of Border3DSides.All with the explicit ORd together
11838           Left|Right|Top|Bottom because I assume that nobody was aware 
11839           that All also implies a center fill. Most places I checked had
11840           a fill right above.
11841         * ProgressBarStyle.cs: Added
11842
11843 2006-03-13  Mike Kestner  <mkestner@novell.com>
11844
11845         * ListView.cs: fix breakage in drag shadow header positioning 
11846         from Peter's csc compilation fix.
11847
11848 2006-03-13  Mike Kestner  <mkestner@novell.com>
11849
11850         * ListView.cs: fix NRE produced by backspacing twice in a focused
11851         FileDialog.
11852
11853 2006-03-13  Mike Kestner  <mkestner@novell.com>
11854
11855         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
11856
11857 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11858
11859         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
11860           be changed
11861         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
11862           the allowed size before making programmatic size changes
11863
11864 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
11865
11866         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
11867           set, metacity is broken and will still use the emty sizes in 
11868           the struct. (Fix for #77089)
11869
11870 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
11871
11872         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
11873           WindowExStyles and marked both enums as Flags
11874         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
11875           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
11876           to match WindowStyles split
11877         * XplatUIX11.cs:
11878           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
11879           - Updated to match WindowStyles split
11880         * XplatUIWin32.cs:
11881           - Fixed FosterParent creation, was using ExStyle on the Style field
11882             (This should help with Popup focus issues)
11883           - Updated to match WindowStyles split
11884
11885 2006-03-13  Jackson Harper  <jackson@ximian.com>
11886
11887         * MdiWindowManager.cs: Use the system menu height. Fixes some
11888         strange sizing issues.
11889
11890 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11891
11892         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
11893         * TextBoxBase.cs:
11894           - Scroll to caret after inserting text (#77672)
11895           - Make scroll range one pixel higher, fixes off-by-one error (and
11896             makes underlines visible on the last line)
11897
11898 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
11899
11900         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
11901           the keyboard state from being stuck with keys in 'pressed' state when
11902           focus is switched away via keyboard
11903         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
11904           reset the keyboard if no X11 KeyUp events are expected to come
11905         * X11Structs.cs: Switched type of Visible to bool to match driver
11906
11907 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
11908
11909         * TextControl.cs:
11910           - Switched caret to be just 1 pixel wide, matches MS and looks less
11911             clunky
11912           - Moved caret display 1 pixel down from the top of the control
11913             to improve view
11914           - InsertCharAtCharet: Update the selection start if moving the caret
11915             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
11916           - No longer always creating the caret when the caret methods are
11917             called. Only the actual ShowCaret/HideCaret will do that now
11918           - Only setting caret visible if the owner control has focus
11919           - UpdateView: Added invalidation-shortcut logic for center and right 
11920             aligned text. Previously we'd update all according to the left
11921             logic which caused drawing errors. Also fixed height of invalidated
11922             areas, now properly invalidating the whole area (was off-by-one)
11923           - owner_HandleCreated: Always generate the document when the
11924             handle is created; this ensures that 
11925         * TextBoxBase.cs:
11926           - Fixed situation where caret would disappear under the right
11927             window border, also improved scrolling behaviour on left-
11928             aligned textboxes
11929           - Fixed right-aligned textboxes to have a border to the
11930             right instead of the caret being under the right border
11931         * XplatUIX11.cs:
11932           - Switched from 'nested' to simple visible/not visible tracking 
11933             for caret (part of fix for #77671)
11934           - No longer passing through translated FocusIn/FocusOut messages
11935             since we were notifying too often and the wrong windows. Instead
11936             we just notify our focussed window of receiving or loosing focus
11937         * XplatUIWin32.cs: Switched from 'nested' show/hide 
11938           counting for caret to simple visible yes/no behaviour (part of 
11939           fix for #77671)
11940
11941 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11942
11943         * Mime.cs: Remove debug code...
11944
11945 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
11946
11947         * MimeGenerated.cs: Removed
11948         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
11949           and subclasses) from /usr/(local/)share/mime and
11950           $HOME/.local/share/mime.
11951
11952 2006-03-10  Jackson Harper  <jackson@ximian.com>
11953
11954         * MdiWindowManager.cs: Recalc the NC area when a window is
11955         maximized/restored so that the menu area is drawn on forms that
11956         don't have a menu.
11957
11958 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
11959
11960         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
11961           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
11962           us to force a WM_NCCALCRESIZE message being sent. This is needed
11963           for MDI maximizing.
11964
11965 2006-03-10  Jackson Harper  <jackson@ximian.com>
11966
11967         * Form.cs: We need to use the ActiveMenu when calculating menu
11968         height.
11969         - Fix nullref when the window manager hasn't been created yet.
11970         * Control.cs: Fix nullref when we try to bring a control to the
11971         front that has no parent.
11972         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
11973         height.
11974         - Add a dummy item to the maximized menu so it always has the
11975         correct height. Otherwise when there are no menus we don't get our
11976         icon and buttons.
11977         
11978
11979 2006-03-10  Jackson Harper  <jackson@ximian.com>
11980
11981         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
11982         stuff.
11983         * Form.cs: Make the window_state internal so the window managers
11984         can track it.
11985         - When an MDI child is maximized let its window manager create the
11986         main menu (so it can add its icon).
11987         - Notify the window managers of state changes
11988         - Let the window manager paint its buttons and handle button
11989         clicks on the menu when it is maximized.
11990         * InternalWindowManager.cs: Move the prev_bounds into the mdi
11991         window manager, since tool windows don't use it, only mdi windows.
11992         - Tell the main form that we don't want it to handle NCPAINT
11993         itself to avoid extra painting.
11994         - Handle clicks on a maximized windows menu.
11995         - Handle window state changes
11996         - Handle minimize/maximize clicks correctly by setting the window state.
11997         * MdiWindowManager.cs: Add an icon menu that (the menu you get
11998         when clicking on the forms icon).
11999         - New method to create a forms maximized menu. This is its normal
12000         menu + an icon.
12001         - Handle window state changes.
12002         - Handle sizing of maximized windows.  Maximized windows are just
12003         drawn bigger then the parent visible area. All controls are still
12004         there, they are just outside the visible area (this matches windows).
12005         * MdiClient.cs: No scrollbars when a child window is maximized.
12006         - Let the children windows figure out how big they should be when
12007         sizing maximized windows.
12008         - Implement a version of ArrangeIconicWindows somewhat similar to
12009         Windows version.  There are some little differences, but I don't
12010         think any app will rely on the layout of minimized mdi windows.
12011
12012 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12013
12014         * Padding.cs: Several fixes to allow compiling with csc 2.0
12015
12016 2006-03-09  Jackson Harper  <jackson@ximian.com>
12017
12018         * Menu.cs:
12019         * MenuItem.cs: Cheap hack so we can add items to the list without
12020         the events being raised.  This allows adding mdi items during
12021         drawing. TODO: Should probably find a better time to add the items.
12022
12023 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12024
12025         * ThemeWin32Classic.cs:
12026           - CheckBox_DrawText: Added logic to not wrap if not enough space
12027             is available (Fix for bug #77727)
12028           - RadioButton_DrawText: Added logic not to wrap if not enough
12029             space is available (Fix for bug #77727). Also removed some
12030             duplicate code, DrawString always drawing the regular text
12031             before hitting the if statement.
12032
12033 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
12034
12035         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
12036
12037 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
12038
12039         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
12040         * ContainerControl.cs: Partial implementation of some 2.0 scaling
12041           methods. Moved the new 2.0 properties into alphabetical order with
12042           other properties and added MonoTODO tags
12043
12044 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12045
12046         * AutoScaleMode.cs: Added. Fix build.
12047
12048 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12049
12050         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
12051           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
12052           and was requiring premature handle creation for calls from above
12053         * Form.cs, Control.cs: Removed handle arguments from calls to
12054           CalculateClientRect()
12055
12056 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12057
12058         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
12059           drag_column.column_rect is MarshalByRef and can't be used that way
12060
12061 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12062
12063         * AxHost.cs: Added deserialization constructor for 
12064           AxHost+State (fixes 77743)
12065
12066 2006-03-09  Mike Kestner  <mkestner@novell.com>
12067
12068         * ListView.cs: 
12069         - Added column drag reordering for details view.
12070         - fixed behavior when mouse is dragged off column and
12071         AllowColumnReorder is false.
12072         * ColumnHeader.cs: clone the format too in Clone.
12073         * Theme.cs: add DrawListViewHeaderDragDetails method.
12074         * ThemeWin32Classic.cs:
12075         - impl new method for drawing drag column shadows and targets.
12076         - support column offset for details mode in DrawListViewItem.
12077
12078 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12079
12080         * TextControl.cs: Reset the char_count when the document is cleared
12081           (Fixes bug reported on mono-winforms mailing list)
12082
12083 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
12084
12085         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
12086           of calling base we simply process the key ourselves, since both
12087           DefWindowProc and the handled method would set m.Result. 
12088           (Fixes #77732)
12089
12090 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
12091
12092         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
12093           method also moves the window; instead implemented a copy of
12094           Control.ScaleCore (Part of fix for #77456)
12095         * TextBoxBase.cs: 
12096           - Created new CreateGraphicsInternal method to allow providing
12097             a graphics context when no handle is created without triggering
12098             handle creation. (Part of fix for #77456)
12099           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
12100         * TextControl.cs: 
12101           - Switched Constructor to require TextBoxBase instead of Control (to
12102             allow uncast access to CreateGraphicsInternal)
12103           - Safeguarded use of owner.Handle property. No longer accessing it
12104             unless the handle is already created.
12105           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
12106           - Now triggering a recalc when owning control becomes visible
12107         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
12108           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
12109           premature handle creation (Part of fix for #77456)
12110         * Control.cs:
12111           - We now only destroy our double-buffering buffers when the
12112             control is resized or disposed, but not when visibility
12113             changes. (The code even re-created them twice every time)
12114           - Now requiring a redraw of the buffer on visibility changes
12115             (fixes bug 77654 part 2)
12116           - Not passing OnParentVisibleChanged up unless the control
12117             is visible
12118           - CanFocus: Fixed to match MS documentation
12119           - Focus: Fixed to return actual focus state and to check if
12120             setting focus is legal before setting it
12121
12122 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
12123
12124         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
12125           when to draw focus rectangle by looking at parent focus and
12126           selected state instead. This fixes TabPages on Linux sometimes
12127           having none or multiple focus rectangles.
12128         * XplatUIX11.cs (SetFocus): 
12129           - Don't set the focus if the same window already has focus
12130           - Use SendMessage instead of PostMessage (like it's Win32
12131             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
12132             to match MS behaviour
12133         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
12134           are not selectable.
12135
12136 2006-03-07  Jackson Harper  <jackson@ximian.com>
12137
12138         * PictureBox.cs: Revert line I accidently committed last week.
12139
12140 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
12141
12142         * Control.cs: 
12143           - Added new IsRecreating and ParentIsRecreating properties to
12144             allow testing if RecreateHandle has been called on ourselves
12145             or one of our parents
12146           - WndProc(WM_DESTROY): If our control handle is being recreated
12147             we immediately need to create the handle when receiving the
12148             destroy, that way our child windows find a valid parent handle
12149             when they themselves are being recreated upon WM_DESTROY receipt
12150             (fix for bug #77654 part 1)
12151         * XplatUIX11.cs:
12152           - DestroyWindow: WM_DESTROY must be sent to our own window before
12153             notifying any child windows. MS documents that child windows
12154             are still valid when WM_DESTROY is received. (Control now relies on
12155             this behaviour)
12156           - Added some fine-grain debug options
12157
12158 2006-03-06  Jackson Harper  <jackson@ximian.com>
12159
12160         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
12161         box and base calculations off this.
12162         * MdiChildContext.cs:
12163         * MdiWindowManager.cs: Don't need to ensure scrollbars here
12164         anymore.
12165         
12166 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
12167
12168         * Splitter.cs: In situations where the affected control is added
12169           to the parent's control list after the splitter, we would not
12170           populate affected. Now we try populating it on mousedown, if
12171           it's not already set, and force it to be re-set whenever our
12172           parent changes.
12173
12174 2006-03-03  Matt Hargett  <matt@use.net>
12175
12176         * Control.cs: implement Control.Padding
12177         * Padding.cs: -Padding.All returns -1 when constructing with the
12178         implicit default ctor
12179         -Padding.ToString() matches MS.NET
12180         * ContainerControl.cs: implement
12181         ContainerControl.AutoScaleDimensions
12182         * ListControl.cs: implement ListControl.FormattingEnabled
12183         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
12184         * ButtonBase.cs:
12185         * TabPage.cs: Implement UseVisualStyleBackColor.
12186         * PictureBox.cs: Implement PictureBox.InitialImage.
12187
12188 2006-03-03  Mike Kestner  <mkestner@novell.com>
12189
12190         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
12191         event declarations to proxy to base event.
12192         * ListViewItem.cs: update to use ItemControl.
12193         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
12194         * ThemeWin32Classic.cs: update to new ListView theme API and fix
12195         column header label rendering for 0 width columns.
12196
12197 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
12198
12199         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
12200           that causes the control to be created. Fixes #77476.
12201
12202 2006-03-02  Jackson Harper  <jackson@ximian.com>
12203
12204         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
12205         expose_pending.
12206
12207 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
12208
12209         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
12210           passed in for the EventArgs (fixes #77690)
12211
12212 2006-03-01  Jackson Harper  <jackson@ximian.com>
12213
12214         * ScrollBar.cs: Refresh afterbeing resized.
12215
12216 2006-02-28  Mike Kestner  <mkestner@novell.com>
12217
12218         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
12219         Clean up a tracker compile warning.
12220         * MenuItem.cs: add internal PerformPopup method.
12221         [Fixes #77457]
12222
12223 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
12224
12225         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
12226           implicit expose) when the text is set to null
12227
12228 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
12229
12230         * RichTextBox.cs (FlushText): When newline is true, we always
12231           need to split the line, even if no text is on it and we may
12232           never eat newlines. (Fixes #77669)
12233
12234 2006-02-28  Mike Kestner  <mkestner@novell.com>
12235
12236         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
12237         and set Selected instead.
12238         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
12239         collections.
12240
12241 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
12242
12243         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
12244
12245 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
12246
12247         * FontDialog.cs:
12248           - Got rid of the panel. All controls are now directly added to
12249             the dialog form
12250           - It is now possible to set a font with the Font property
12251           - MinSize and MaxSize property do now what they should
12252           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
12253           - Searching and selecting a font with the font textbox works now,
12254             the same applies to the style and size textbox
12255           - Draw the correct 3D border in the example panel
12256           - Fixed a little mem leak (unused fonts didn't get disposed)
12257           - Many other internal updates/rewrites...
12258           - Fix typo
12259
12260 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
12261
12262         * TextControl.cs: 
12263           - InsertRTFFromStream: Added 'number of characters inserted' argument
12264           - set_SelectedRTF: Now using the number of characters to calculate
12265             the new location for the selection and cursor (x/y cannot be used
12266             due to potentially already wrapped text)
12267
12268 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
12269
12270         * TextControl.cs: Added property and implemented means to allow 
12271           disabling recalculation of a document (can be used to speed up
12272           multiple inserts and is needed to make RTF inserts predictable, see
12273           bug #77659)
12274         * RichTextBox.cs: Using the new NoRecalc property of Document to
12275           keep x/y insert locations predictable. Also makes it faster inserting
12276           large chunks of RTF
12277
12278 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
12279
12280         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
12281           it's easier for a child control to handle the other messages without
12282           having to duplicate the special functionality
12283         * TextBoxBase.cs
12284           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
12285             code to handle processing the key ourselves, in order to get 
12286             access to the result of KeyEventArgs.Handled. We now only call 
12287             ProcessKey if they key hasn't been handled already. Fixes #77526.
12288           - set_Text: If null or empty string is given, just clear the 
12289             document. Fixes part of #77526
12290
12291 2006-02-27  Jackson Harper  <jackson@ximian.com>
12292
12293         * SizeGrip.cs: Paint the background color before painting the grip
12294         so things look right.
12295         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
12296
12297 2006-02-27  Mike Kestner  <mkestner@novell.com>
12298
12299         * ListView.cs:
12300           - Restructure layout and invalidation model to remove a ton of
12301           flicker from the control and speed up performance in general.
12302           - Add manual column resize, flickers like crazy, but I already have
12303           some ideas on how I'll fix that. (#76822)
12304           - Merge the three Icon-based views into a single layout method.
12305           - Move item selection interaction logic from the item since 
12306           interaction with the collections is more appropriate to the view.
12307           - Deselection on non-item clicks.
12308         * ListViewItem.cs:
12309           - Encapsulate most of the layout. Add some internal props to trigger
12310           layout.  Move to a model where Items invalidate themselves instead
12311           of just invalidating the whole control every time something changes.
12312           - Invalidate on Text/Caption changes.
12313           - switch to an offset based layout model to avoid having to absolute
12314           position every element on item moves.
12315           - correct checkbox layout to conform to MS layout.
12316         * ThemeWin32Classic.cs:
12317           - refactor some column header drawing code.
12318           - fix string justification for column headers (#76821)
12319           - make SmallIcon labels top justified for compat with MS impl.
12320         * ThemeClearlooks.cs:
12321           - adjust to new ListViewItem internal checkbox bounds api.
12322
12323 2006-02-27  Jackson Harper  <jackson@ximian.com>
12324
12325         * Control.cs:  Change where implicit controls fall in the zorder.
12326         They are now on top of all children.
12327         - Synced AddImplicit code with Add
12328         - Removed unused enumerator.
12329         * SizeGrip.cs: Remove the TODO as its been TODONE.
12330
12331 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
12332
12333         * TextControl.cs(Insert): Combine the last lines unless the insertion
12334           string ends with \n\n, otherwise we leave one line too many (Fixes
12335           something I noticed with the testapp for #77526; the bug itself was
12336           already fixed in the previous checkin)
12337
12338 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
12339
12340         * RichTextBox.cs:
12341           - SelectionColor and SelectionFont methods no longer set absolute
12342             styles. Instead, the keep font or color respectively (This 
12343             resolves a long-standing FIXME in the code)
12344           - When flushing RTF text, the insert code now considers text trailing
12345             behind the insertion point (Fixes the bug where when replacing
12346             the selected text via SelectedRTF the remainder of the line behind 
12347             the selection would stay on the first insertion line)
12348         * TextBoxBase.cs:
12349           - AppendText now updates the selection points after inserting text
12350           - AppendText now ensures that the last tag (sometimes 0-length) of
12351             the document is used for the style information (Fixes part of 
12352             bug #77220)
12353         * TextControl.cs:
12354           - Created new FontDefiniton class to allow describing partial style
12355             changes
12356           - StreamLine() now takes a lines argument, to allow it to decide
12357             whether an encountered zero-length tag is the last in the document
12358             (which must be kept to not loose the font/color contained in it,
12359             for later appends)
12360           - Created Combine() and Split() methods for Marker structs, to 
12361             support marker updates due to reformatted documents (soft line
12362             wraps)
12363           - Implemented Document.CaretTag setter
12364           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
12365             of the last line (Not the cause, but also exposed by bug #77220)
12366           - Added LineTag argument to InsertString method, to allow callers
12367             to force a certain tag to be used (required to force use of the
12368             trailing zero-length tag of a document)
12369           - Now updating markers in Combine(), to avoid stale tag markers
12370           - Added some method descriptions to aid maintenance
12371           - Implemented new FormatText concept, allowing additive/subtractive
12372             formatting by only specifying the components that are to be 
12373             changed. This was needed for resolving the RTB.SelectedColor/
12374             RTB.SelectedFont fixmes
12375           - Added Break() support method to allow breaking up linetags (used
12376             for partial formatting)
12377           - Added GenerateTextFormat() method. It is used for partial 
12378             formatting and allows to generate a full font/color from given
12379             attributes and an existing tag.
12380
12381 2006-02-26  Jackson Harper  <jackson@ximian.com>
12382
12383         * XplatUIX11.cs:  Use the correct caption height.
12384         - Translate hittest coordinates to screen coords to match MS.
12385         * XplatUIWin32.cs: When we create MDI windows we need to reset
12386         some of the style flags, so we get a nice blank window, and can
12387         draw all the decorations ourselves.
12388         - Set a clipping rectangle on the non client paint event, the
12389         window manager drawing code needs one.
12390         * Form.cs: The window manager needs to know when the window state
12391         has been updated.
12392         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
12393         don't need to factor in border and title sizes in these
12394         methods. TODO: Remove the args and fix the call points.
12395         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
12396         properly.
12397         - Let the driver set the cursors.
12398         - Improve active window handling
12399         - Correct sizes for title bars and buttons.
12400         - Match MS drawing better
12401         * MdiWindowManager.cs: We don't need to handle border style
12402         updates specially anymore.
12403         - Check for scrollbars when windows are done moving
12404         - Handle Active properly.
12405         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
12406         correctly. I am spewing the exception though, so we don't hide the
12407         bugs.
12408         
12409 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
12410
12411         * DataGridViewRowPostPaintEventArgs.cs,
12412           DataGridViewCellPaintingEventArgs.cs,
12413           DataGridViewRowCollection.cs,
12414           DataGridViewRowPrePaintEventArgs.cs,
12415           DataGridViewCell.cs: Clear a few warnings and implement a few
12416           exceptions that should be thrown.
12417
12418 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12419
12420         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
12421           'inheriting' our parent's (non-default) cursor. (Part of
12422            the fix for #77479)
12423
12424 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
12425
12426         * XplatUIX11.cs: Fixed cast to make csc happy
12427
12428 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
12429
12430         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
12431           it's for the client area (part of fix for #77479 and needed
12432           for MDI window cursor handling)
12433         * XplatUIX11.cs
12434           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
12435             the appropriate default cursors and also passing the message
12436             up the parent chain 
12437           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
12438             for non-client areas
12439
12440 2006-02-15  Jackson Harper  <jackson@ximian.com>
12441
12442         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
12443         is a real MDI window
12444
12445 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
12446
12447         * X11DesktopColors.cs: Instead of checking the desktop session
12448           string for "KDE" check if it starts with "KDE"
12449
12450 2006-02-10  Jackson Harper  <jackson@ximian.com>
12451
12452         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
12453         systems).
12454
12455 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12456
12457         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
12458           errors
12459         * ColorDialog.cs:
12460           - Got rid of the panel. All controls are now directly added to
12461             the dialog form
12462           - Changed to mono coding style
12463
12464 2006-02-10  Jackson Harper  <jackson@ximian.com>
12465
12466         * InternalWindowManager.cs: We don't need the set visibility to
12467         false hack anymore now that peter has written beautiful shutdown
12468         code.
12469
12470 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
12471
12472         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
12473           where already explicitly destroyed
12474
12475 2006-02-10  Jackson Harper  <jackson@ximian.com>
12476
12477         * MdiClient.cs: Handle the case where windows are too high or to
12478         the left and we need scrollbars.
12479
12480 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
12481
12482         * MimeIcon.cs: Added some icons
12483         * FileDialog.cs:
12484           - Fixed bug #77477
12485           - Got rid of the panel. All controls are now directly added to
12486             the dialog form
12487           - Changed to mono coding style
12488           - On Linux "My Computer" and "My Network" will now show some
12489             more usefull information. A new class, MasterMount, gathers
12490             this information from /proc/mount. Updated MWFFileView to make
12491             use of this information
12492           - Fixed a bug that caused FileDialog to crash when
12493             ".recently_used" file had a zero size
12494           - FilterIndex does now what it should
12495           - Some Refactoring
12496         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
12497             FileDialog changes
12498
12499 2006-02-09  Jackson Harper  <jackson@ximian.com>
12500
12501         * ComboBox.cs: Don't touch if null.
12502
12503 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
12504
12505         * Cursor.cs: 64bit safeness fix
12506         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
12507
12508 2006-02-09  Jackson Harper  <jackson@ximian.com>
12509
12510         * Form.cs: If a form is made into an MDI form update the styles so
12511         all the props can get set correctly.
12512         - Kill the mdi_container when we dont need it anymore.
12513         * InternalWindowManager.cs: Add missing NOT
12514
12515 2006-02-08  Jackson Harper  <jackson@ximian.com>
12516
12517         * InternalWindowManager.cs: Respek clipping when drawing MDi
12518         decorations.
12519
12520 2006-02-08  Jackson Harper  <jackson@ximian.com>
12521
12522         * Hwnd.cs: Add bits to track non client expose events.
12523         * XplatUIX11.cs: Track non client expose events on the hwnd. This
12524         gives us a proper invalid rect and will allow for some nice
12525         optimizations with NC client drawing
12526         - MDI windows are children windows, so move their style handling
12527         into the child window block.
12528         * InternalWindowManager.cs: Remove a state reset that was
12529         getting invoked at the wrong time. Fixes managed windows getting
12530         into a 'stuck' captured state.
12531
12532 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12533
12534         * TextControl.cs (Document.ctor): Now initializing 
12535           selection_anchor. Fixes #77493
12536
12537 2006-02-07  Jackson Harper  <jackson@ximian.com>
12538
12539         * TrackBar.cs: The increment/decrements were backwards.
12540
12541 2006-02-07  Mike Kestner  <mkestner@novell.com>
12542
12543         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
12544         to the instance itself.
12545
12546 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
12547
12548         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
12549           on ulongs and pointers, the size differs between 32bit and 64bit
12550           systems. 
12551
12552 2006-02-07  Mike Kestner  <mkestner@novell.com>
12553
12554         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
12555         for 64 bit platforms to work around a metacity bug. 
12556
12557 2006-02-07  Jackson Harper  <jackson@ximian.com>
12558
12559         * TrackBar.cs: Process the input keys we need, and hookup to
12560         KeyDown instead of using WndProc, so we get key messages.
12561
12562 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
12563
12564         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
12565           machine we're on. 
12566         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
12567           we need to translate the XdndVersion atoms array before sending it
12568
12569 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
12570
12571         * XplatUIX11.cs: 
12572           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
12573             number of bits for the property, not the number of bytes. The
12574             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
12575             but would not crash since it specified 8 bits instead of 4 bits)
12576           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
12577             defined as XID -> long in the C headers)
12578           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
12579             references since those are now IntPtr to begin with
12580           - Switched all Atom.XXX 'int' casts to IntPtr casts
12581           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
12582           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
12583           - Added XChangeActivePointerGrab DllImport (for X11DnD)
12584         * X11Structs.cs:
12585           - Changed 'int' type for Atoms in XEvent structures to IntPtr
12586           - Changed atom in HoverStruct to be IntPtr
12587         * X11DnD.cs:
12588           - Removed local DllImports, switched code to use those from XplatUIX11
12589           - Removed/fixed casts related to the switch of Atom to be a IntPtr
12590
12591 2006-02-06  Mike Kestner  <mkestner@novell.com>
12592
12593         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
12594         method signatures in the import region.  There may still be some
12595         lingering struct marshaling issues, as I didn't drill down into those.
12596         Yet.
12597
12598 2006-02-06  Jackson Harper  <jackson@ximian.com>
12599
12600         * ComboBox.cs: Dont manually set the top_item, this is computed
12601         when the scrollbar position is set.
12602
12603 2006-02-06  Mike Kestner  <mkestner@novell.com>
12604
12605         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
12606         startup crashes on amd64.  There's other fixes needed.  All pinvoke
12607         usage of Atom needs to be mapped to IntPtr for example.  And there are
12608         likely other int/long issues to be addressed.
12609
12610 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
12611
12612         * FileDialog.cs: One more...
12613
12614 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12615
12616         * FileDialog.cs: Next try
12617
12618 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12619
12620         * FileDialog.cs: First part of fix for #77464
12621
12622 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
12623
12624         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
12625           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
12626           AcceptButton border drawing.
12627
12628 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
12629
12630         * Form.cs: Moved positioning of form after auto scaling is applied,
12631           otherwise it would possibly use wrong form size.
12632
12633 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
12634
12635         * Control.cs (RecreateHandle): No need to re-create any child
12636           controls, the child windows will get destroyed automatically by
12637           the windowing system or driver, and re-created when the handle
12638           is being accessed the first time. Fixes #77456
12639         * Form.cs: No longer setting the form to closing if the handle is 
12640           being recreated. This seems like the right thing to do, don't
12641           have a bug or testcase for this, though.
12642
12643 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12644
12645         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
12646           controls to avoid unwanted side effects
12647
12648 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
12649
12650         * Control.cs: 
12651           - ScaleCore needs to scale the bounds, not the ClientSize of the 
12652             control. Fixes #77416.
12653           - DefaultSize is 0,0 for control
12654         * TextBoxBase.cs: 
12655           - DefaultSize is 100, 20
12656           - SetBoundsCore: Now enforcing the height, no matter if the provided
12657             height is more or less than the preferred one, as long as AutoSize
12658             is on
12659         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
12660
12661 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
12662
12663         * Control.cs:
12664           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
12665             call unless both performLayout is true *and* we have a pending
12666             layout change
12667           - ResumeLayout: MS does not completely nest Suspend and Resume,
12668             they bottom out at 0, fixed our code to match that.
12669           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
12670             SetBoundsCore, we were updating even when we shouldn't. This fixes
12671             swf-anchors mis-anchoring when resizing the app fast and lots.
12672           - UpdateDistances: Now only setting the left and top distance if 
12673             we have a parent and are not suspended, this is based on
12674             a suggestion by Don Edvaldson in bug #77355.
12675           - OnVisibleChanged: Fixed logic when to create the control. We may
12676             not create the control if we have no parent or if it's not visible;
12677             switched to using Visible property instead of is_visible field 
12678             since the property also considers parent states. This fixes a bug
12679             when starting Paint.Net
12680
12681 2006-02-02  Jackson Harper  <jackson@ximian.com>
12682
12683         * Form.cs: If the forms handle hasn't been created yet don't call
12684         into xplatui to make it top most, just set the topmost flag on the
12685         form in CreateParams
12686         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
12687
12688 2006-02-01  Jackson Harper  <jackson@ximian.com>
12689
12690         * ScrollableControl.cs: Refactored the Recalculate method a
12691         little, this wasn't handling all the variants of bottom and right
12692         bars needed to be added and added/removed based on their
12693         counterparts being added/removed (which changes the drawable
12694         size). Also we special case client widths and heights of 0 and
12695         don't add the scrollbar for those.
12696
12697 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
12698
12699         * XplatUIX11.cs: 
12700           - Added method to get AbsoluteGeometry(); currently unused, but might
12701             be used in the future, if we try again to figure out toplevel
12702             coordinates with some more crappy window managers
12703           - Added FrameExtents() method to retrieve the WM set decoration size
12704           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
12705             to deal with at least KDE, FVWM and metacity (Fixes #77092)
12706         * Hwnd.cs: 
12707           - Added whacky_wm tracking var for metacity
12708           - Added logic to have default menu height if the actual menu height
12709             has not yet been calculated (part of fix for #77426)
12710         * Form.cs: Keep track whether client size has been set and re-set 
12711           it if a menu is added/removed afterwards (Fixes #77426)
12712
12713 2006-01-31  Jackson Harper  <jackson@ximian.com>
12714
12715         * Control.cs: When a new Site is set on the component attempt to
12716         pull the AmbientProperties from it.
12717
12718 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
12719
12720         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
12721           in the background of the owning form. Fixes #77332
12722
12723 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12724
12725         * MimeIcon.cs: Fix for #77409
12726
12727 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
12728
12729         * XplatUIX11GTK.cs: Initial import
12730
12731 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
12732
12733         * FixedSizeTextBox: fixes class signature
12734
12735 2006-01-30  Jackson Harper  <jackson@ximian.com>
12736
12737         * FixedSizeTextBox.cs: New internal class that represents a
12738         textBox that will not be scaled.
12739         * TreeView.cs:
12740         * ComboBox.cs:
12741         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
12742         standard TextBox.
12743                 
12744 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
12745
12746         * XplatUIX11.cs: Retrieve default screen number instead of
12747           assuming 0. Attempted fix for #77318
12748
12749 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
12750
12751         * XplatUIWin32.cs: 
12752           - GetWindowPos: When a window is parented by FosterParent, use 
12753             the desktop instead of FosterParent as the base to get coordinates
12754           - CreateWindow: Don't make FosterParent the parent window for Popups
12755             if we don't want a taskbar entry, Popups automatically don't get one
12756         * Hwnd.cs: Need to call remove to actually remove the key from the
12757           hash table
12758
12759 2006-01-30  Mike Kestner  <mkestner@novell.com>
12760
12761         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
12762
12763 2006-01-30  Jackson Harper  <jackson@ximian.com>
12764
12765         * TreeView.cs:
12766         * TreeNode.cs: Raise events no matter how the treenode is
12767         checked. Patch by Don Edvalson.
12768
12769 2006-01-30  Jackson Harper  <jackson@ximian.com>
12770
12771         * TreeNode.cs: Signature fix.
12772
12773 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
12774
12775         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
12776
12777 2006-01-20  Mike Kestner  <mkestner@novell.com>
12778
12779         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
12780         event forwarding when menus are active.
12781         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
12782         Most of the patch is pdb's with a little rework.
12783
12784 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12785
12786         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
12787           Removed GetMenuDC and ReleaseMenuDC methods; replaced
12788           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
12789         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
12790         * InternalWindowManager.cs: Added use of PaintEventStart/End to
12791           handling of WM_NCPAINT message, now passing the PaintEventArgs to
12792           the PaintWindowDecorations method
12793         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
12794         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
12795         * MenuAPI.cs: Made tracker window invisible
12796         * XplatUIWin32.cs:
12797           - Removed GetMenuDC and ReleaseMenuDC methods
12798           - Implemented the client=false path for PaintEventStart and
12799             PaintEventEnd
12800
12801 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12802
12803         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
12804         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
12805           styles
12806         * Form.cs: 
12807           - MaximizeBox, MinimizeBox: Recreate the handle when setting
12808             the style
12809           - CreateParams: Reworked the styles to match MS look'n'feel,
12810             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
12811             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
12812
12813 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
12814
12815         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
12816           window is not mapped, since otherwise every form that's being 
12817           created is considered minimized, which is wrong.
12818         * Form.cs: Catching the exception and returning our internal value
12819           instead
12820
12821 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
12822
12823         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
12824           SetWindowMinMax() to have means to tell the driver about the minimum,
12825           maximum and maximized state window sizes. (Part of the fix for #76485)
12826         * Form.cs:
12827           - Implemented tracking of minimum and maximum window size, now calling
12828             new SetWindowMinMax() driver method to tell the driver (Part of the
12829             fix for #76485)
12830           - Finished handling of WM_GETMINMAXINFO method, now setting all values
12831             (Completes fix for #76485)
12832           - Calling new SetWindowMinMax driver method when the handle for a 
12833             form is created, to make sure the driver knows about it even if
12834             the values have been set before the window was created
12835           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
12836             to avoid messing up our anchoring calculations (partial fix
12837             for #77355)
12838         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
12839         * XplatUIX11.cs:
12840           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
12841           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
12842             (and presumably other freedesktop.org compliant WMs). Left the
12843             assumption unmapped=minimized, needed for SetVisible to work.
12844           - Now setting the window state when creating windows
12845           - Fixed SetVisible to consider/set the window state when mapping
12846             a Form. We cannot set the state before it's mapped, and we cannot
12847             use Form.WindowState once it's mapped (since it would ask the
12848             driver and get 'normal'. Therefore, we grab the state before
12849             mapping, map, and then set state.
12850           - Implmemented SetWindowMinMax method; Metacity does not seem to
12851             honor the ZoomHints, though.
12852         * XplatUIWin32.cs:
12853           - Removed MINMAXINFO (moved to XplatUIStructs)
12854           - Added SetWindowMinMax stub (on Win32 the only way to set that
12855             information is in response to the WM_GETMINMAXINFO message, which
12856             is handled in Form.cs)
12857           - Added logic to SetVisible to set the proper window state when a 
12858             form is made visible (fixes #75720)
12859
12860 2006-01-26  Jackson Harper  <jackson@ximian.com>
12861
12862         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
12863         same way we handle them with Invoke.
12864
12865 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
12866
12867         * Form.cs:
12868           - Added tracking of window state so CreateParams can return
12869             the appropriate style
12870           - Moved setting of WS_CAPTION style in CreateParams to allow
12871             styles without caption
12872         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
12873           control if the TextBox property is accessed. Fixes #77345
12874         * Control.cs:
12875           - get_Created: now uses is_disposed and is_created to determine
12876             return value (suggested by Jackson)
12877           - CreateHandle: No longer exits if the handle is being recreated
12878           - RecreateHandle: If the handle is not yet created call the 
12879             appropriate method to create either control or handle. If the
12880             control is already created CreateHandle will simply exit instead
12881             of just creating the handle
12882         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
12883           now SendMessage WM_DESTROY directly to the control when DestroyWindow
12884           is called.
12885         * XplatUIX11.cs: 
12886           - When DestroyWindow is called, instead of waiting for the 
12887             DestroyNotification from X11, we directly post it to the WndProc
12888             and immediately dispose the hwnd object.
12889             Same applies to DestroyChildWindows, and this obsoletes the
12890             expose_pending tracking. Contrary to Win32 behaviour we destroy our
12891             child windows before our own, to avoid X11 errors.
12892           - Removed the direct sending of WM_PAINT on UpdateWindow
12893         * XplatUIWin32.cs:
12894           - Reworked DoEvents and GetMessage to allow access to internal queue
12895             even when trying non-blocking access to the queue.  Fixes #77335. 
12896             Based on a patch suggestion by Don Edvalson. The new private
12897             GetMessage can now also be used as a backend for a PeekMessage
12898             frontend version.
12899         * XplatUI.cs: Improved debug output for CreateWindow
12900
12901 2006-01-25  Jackson Harper  <jackson@ximian.com>
12902
12903         * Help.cs: Allow param to be null. Patch by Don Edvalson.
12904
12905 2006-01-24  Jackson Harper  <jackson@ximian.com>
12906
12907         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
12908         when we have a MaxDropItems lower then the selected index.
12909
12910 2006-01-24  Jackson Harper  <jackson@ximian.com>
12911
12912         * Control.cs: Don't allow selection of non visible controls, allow
12913         selection of controls without parents.
12914
12915 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12916
12917         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
12918         * DataGridDrawingLogic.cs: Add editing row only when is necessary
12919
12920 2006-01-23  Jackson Harper  <jackson@ximian.com>
12921
12922         * UpDownBase.cs: Make the textbox handle all the selection and
12923         tabbing. This fixes tabing to updown controls.
12924
12925 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
12926
12927         * TextBoxBase.cs: fixes exception thown the object was null
12928
12929 2006-01-23  Jackson Harper  <jackson@ximian.com>
12930
12931         * ButtonBase.cs: Just use the base CreateParams. They set
12932         visibility and enabled correctly.
12933         * ComboBox.cs:
12934         * TrackBar.cs:
12935         * MonthCalendar.cs: Lets let the base set as much of the
12936         createparams as possible so we don't have duplicate code all over
12937         the place.
12938
12939 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
12940
12941         * ThemeGtk.cs: Added TrackBar and some experimental code to
12942           get double buffering back
12943
12944 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
12945
12946         * DataGrid.cs: Allows row number set internally higher than the last
12947         when creating a new row. Restores the editing functionality.
12948
12949 2006-01-20  Mike Kestner  <mkestner@novell.com>
12950
12951         * MimeIcon.cs: delay Image creation until the icons are accessed
12952         instead of creating 190 scaled images on GnomeHandler startup.
12953
12954 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
12955
12956         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
12957           first call base before processing the event. Fixes #77279
12958
12959 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
12960
12961         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
12962           that the stride for the GDI bitmap would match the stride of
12963           a DIB or a Cursor.
12964
12965 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
12966
12967         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
12968
12969 2006-01-19  Jackson Harper  <jackson@ximian.com>
12970
12971         * ComboBox.cs: Hookup the text controls keydown event so we get
12972         those when the text control has the focus.
12973
12974 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12975
12976         * Label.cs: Now using the base events instead of defining new ones;
12977           this allows us to just call the base properties without having to
12978           duplicate all base property logic 
12979
12980 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12981
12982         * Label.cs: A label by default is not a tabstop (Fixes one of our
12983           failing nunit tests)
12984
12985 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
12986
12987         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
12988         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
12989
12990 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
12991
12992         * Cursor.cs: Reimplemented creating cursor bitmaps without using
12993           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
12994           This fixes #77218
12995         * XplatUIWin32.cs: 
12996           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
12997             constructor creates images that can't be saved. Part of the fix
12998             for #76103
12999           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
13000           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
13001             bug fix for handling window state in forms properly)
13002
13003 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13004
13005         * ThemeGtk.cs: Simplify ScrollBar drawing
13006
13007 2006-01-18  Jackson Harper  <jackson@ximian.com>
13008
13009         * Splitter.cs: Set the default dock style for the splitter control
13010         in the constructor.
13011
13012 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13013
13014         * ThemeGtk.cs: Corrected StateType and ShadowType for
13015           gtk_paint_box
13016
13017 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13018
13019         * Control.cs: Make use of Theme.DoubleBufferingSupported
13020         * ThemeGtk.cs:
13021           - Added drawing for flat style buttons
13022           - Added ScrollBar drawing
13023
13024 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
13025
13026         * ThemeClearlooks.cs: Removed some unneeded code.
13027         * ThemeGtk.cs: First part of ThemeGtk enhancements.
13028
13029 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
13030
13031         * LinkLabel.cs: We need to update the hover drawing when
13032           leaving the control as well.
13033
13034 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
13035
13036         * DataGrid.cs: Clicking on non empty areas in the columns
13037            area was giving an exception
13038
13039 2006-01-17  Jackson Harper  <jackson@ximian.com>
13040
13041         * ThemeWin32Classic.cs:
13042         * ListView.cs: Do not draw/clip the headers when the header style
13043         is None.
13044
13045 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
13046
13047         * DataGrid.cs: Fixes 77260
13048         
13049 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
13050
13051         * DataGrid.cs: Clicking on a column on a empty grid was giving
13052           an exception
13053
13054 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
13055
13056         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
13057           or any keypress will crash the grid.
13058
13059 2006-01-17  Mike Kestner  <mkestner@novell.com>
13060
13061         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
13062         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
13063         invisible/previously-visible items.
13064         [Fixes #76909]
13065
13066 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
13067
13068         * ThemeClearlooks.cs:
13069         - Added CL_Draw_Button method; now other theme controls that are 
13070           not derived from button or do not have a button can draw buttons
13071           too
13072         - Updated ComboBox drawing
13073         - Beautified RadioButton drawing
13074         - Corrected drawing of bottom and left tabs
13075         - Beautified DateTimePicker and MonthCalendar
13076         - Added CPDrawButton and CPDrawRadioButton
13077
13078 2006-01-16  Jackson Harper  <jackson@ximian.com>
13079
13080         * ComboBox.cs: Set the initial value of the scrollbar to the
13081         current index. Reduce the numbers of refreshs and IndexOfs called.
13082
13083 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
13084
13085         * FileDialog.cs: When the file listview is focused hitting the
13086           backspace key moves the fileview to the parent directory
13087
13088 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
13089
13090         * Form.cs: 
13091           - Added RecreateHandle call when changing taskbar visibility to 
13092             trigger reparenting in Win32 driver (Fixes #75719)
13093           - If a window has minimize or maximize buttons, it cannot have
13094             a help button
13095         * XplatUIWin32.cs:
13096           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
13097             the toplevel form with FosterParent (A toolwindow not on the
13098             taskbar) (Fixes #75719)
13099           - Made FosterParent a toolwindow
13100
13101 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13102
13103         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
13104
13105 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13106
13107         * ToolTip.cs: If SetToolTip is called from a control and the mouse
13108           is currently over that control, make sure that tooltip_window.Text
13109           gets updated
13110
13111 2006-01-13  Mike Kestner  <mkestner@novell.com>
13112
13113         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
13114
13115 2006-01-13  Jackson Harper  <jackson@ximian.com>
13116
13117         * TreeView.cs: On MS GetNodeAt never actually factors in the X
13118         value passed.  Also redraw the selected node when we recieve
13119         focus, so tabbing between trees works correctly.
13120
13121 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
13122
13123         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
13124           ~/.gconf/%gconf-tree.xml, so use
13125           .gconf/desktop/gnome/interface/%gconf.xml
13126
13127 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
13128
13129         * TextControl.cs: Draw text in gray if control is disabled
13130
13131 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
13132
13133         * TreeView.cs: Draw the focus rectangle outside the highlight, to
13134           make sure it's always visible. Fixes #76680.
13135
13136 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
13137
13138         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
13139
13140 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
13141
13142         * PageSetupDialog.cs: Added.
13143         * PrintDialog.cs: Attributes.
13144         * PrintPreviewControl.cs: Updates.
13145         * PrintPreviewDialog.cs: Updates.
13146         
13147 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13148
13149         * Control.cs: Undid my selection check fix, since it's not needed
13150         * TextBoxBase.cs:
13151           - Now considering the presence of hscroll/vscroll when sizing
13152             vscroll/hscroll respectively. Fixed bug #77077
13153           - Added Left/Up/Down/Right to IsInputKey list to prevent
13154             ContainerControl from stealing them. This fixes what I broke
13155             with my last checkin.
13156
13157 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
13158
13159         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
13160           I finally understand how the property can be set without a setter :-)
13161
13162 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13163
13164         * Application.cs:
13165           - Switched RunLoop to use static Message.Create to create a 
13166             Message object
13167           - Added PreProcessMessage call in runloop for keyboard events; this
13168             is part of the fix for #77219, I overlooked this originally in the
13169             MSDN doc for PreProcessMessage
13170         * Control.cs:
13171           - Removed call to PreProcessMessage from handling of keyboard 
13172             messages; it's supposed to be done in the message pump
13173           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
13174             per MSDN documentation.
13175           - IsInputChar: All chars are input chars by default; removed the 
13176             parent calling chain, MS does not document that
13177           - PreProcessMessage: If IsInputChar is true, we want to return false
13178             to allow dispatching of the message
13179           - When selecting the next control, now also check that we're not
13180             selecting ourselves again and therefore return a false positive.
13181         * TextBoxBase.cs:
13182           - Tried to match return values for IsInputKey and ProcessDialogKey
13183             to what MS returns; moved processing of our special keys outside
13184             ProcessDialogKey since MS does not seem to return true on those.
13185           - Moved code that previously was in ProcessDialogKey into new private
13186             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
13187           - Reworked handling of WM_CHAR to not have to duplicate code from
13188             Control.cs anymore, instead we simply call down to base.
13189            
13190 2006-01-12  Jackson Harper  <jackson@ximian.com>
13191
13192         * ComboBox.cs: We always need to refresh the text area when
13193         EndUpdate is called. Fixes the combobox in the file dialog.
13194         * Control.cs: Don't create the creator_thread until the controls
13195         handle is created.  Also in InvokeRequired we check if the
13196         creator_thread is null. This gives the effect of InvokeRequired
13197         returning true if the controls handle is not created yet, and
13198         matches MS.
13199
13200 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13201
13202         * XplatUI.cs:
13203           - Added StartLoop() driver method. This is used to allow drivers to
13204             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
13205             loop for a particular thread
13206           - Added EndLoop() driver method. This is called once the message
13207             pump for the thread is shut down
13208           - Added SupportsTransparency method to allow the driver to indicate
13209             opacity support for windows
13210         * Form.cs:
13211           - Removed TODO attribute, completed AllowTransparency property
13212           - Added documented logic to Opacity
13213         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
13214           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
13215           versions of CompatibleTextRendering
13216         * X11Structs.cs: Added opacity atom to our atom enumeration
13217         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
13218           of a form might be set before it's reparented by the WM, and we need
13219           the opacity value without calling up to Form)
13220         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
13221           SupportsTransparency() driver methods
13222         * Application.cs: Now calling StartLoop and EndLoop driver methods
13223         * XplatUIX11.cs:
13224           - Added opacity atom registration
13225           - Added StartLoop()/EndLoop() methods. They're empty right now but
13226             will need to get implemented when we switch to a per-thread queue
13227           - Implemented SupportsTransparency() method
13228           - Implemented SetWindowTransparency() method
13229           - Added support for setting the opacity value when a window is
13230             reparented (since the opacity needs to be set on the WM frame)
13231         * XplatUIOSX.cs, XplatUIWin32.cs:
13232           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
13233
13234 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
13235
13236         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
13237
13238 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
13239
13240         * FileDialog.cs: Added ToolTip for MWFFileView
13241         * MimeIcon.cs: Rewrote GnomeHandler.
13242           - Get currently used gnome icon theme from
13243             ($HOME)/.gconf/%gconf-tree.xml
13244           - Make use of inherited icon themes
13245           - Support SVG icon themes like Tango via librsvg
13246
13247 2006-01-12  Miguel de Icaza  <miguel@novell.com>
13248
13249         Revert's Jackson's revert which broke 2.0 builds.   Fix both
13250         builds. 
13251         
13252         * Application.cs: Move the use_compatible_text_rendering outside
13253         the NET_2_0 define.  If we ever need to use the
13254         use_compatible_text_rendering on the individual controls they will
13255         access the variable from the common shared code paths.
13256
13257 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
13258
13259         * XplatUI.cs:
13260           - Added more granular debug options
13261           - Added method to print both window text and id
13262           - Switched debug output to use new Window() debug method
13263           - Added IsEnabled() driver method
13264           - Added EnableWindow() driver method
13265         * Form.cs:
13266           - Removed end_modal; no longer needed, new loop handles termination
13267             via 'closing' variable
13268           - If form is modal, setting DialogResult will now initiate loop
13269             termination via 'closing' variable
13270           - Added support for is_enabled/WS_DISABLED to CreateParams
13271           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
13272             does all the work
13273           - Removed code that's now in RunLoop from ShowDialog()
13274           - Added various documented sanity checks to ShowDialog()
13275           - Added handling of WM_DESTROY message; we set 'closing' on getting
13276             the message to indicate the message pump to terminate
13277           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
13278             send by the Application.ExitThread method. (We send the message
13279             to destroy the window after all other events have been
13280             processed through the queue, instead of destroying the handle 
13281             directly)
13282           - Moved code from Close() method to WM_CLOSE handler; added logic
13283             to only send close-related events if the form is not displayed
13284             modal
13285         * Splitter.cs (..ctor): Fixed typo in resource name
13286         * Control.cs:
13287           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
13288             brush now
13289           - set_Cursor: Now only setting calling into XplatUI if the handle for
13290             the control is already created; this avoids implict handle creation
13291             or crashes if it's not created
13292           - set_Enabled: Now setting the enabled state via the new driver method
13293             instead of just tracking it
13294           - CreateParams: Added logic to set WS_DISABLED based on enabled state
13295           - CreateControl: Reordered event firing and method calls to more
13296             closely fire events in the order MS does. Now setting the
13297             enabled state in the driver when creating the control.
13298           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
13299             match MS order
13300         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
13301           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
13302         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
13303         * Hwnd.cs:
13304           - Added tracking of window enabled state (get_Enabled/set_Enabled)
13305           - Added EnabledHwnd property to easily allow a driver to find the
13306             handle of the first enabled window in the parent chain (this is
13307             used by drivers to pass up input events of disabled windows)
13308         * XplatUIDriver.cs: Added IsEnabled() method
13309         * Application.cs:
13310           - Removed crude and obsolete exiting tracking variable
13311           - Removed internal ModalRun(); replaced by RunLoop()
13312           - Implemented private CloseForms() method to allow closing all 
13313             windows owned by a particular (or all) threads
13314           - Exit() now properly closes all windows without forcing the message
13315             pump to quit
13316           - Removed obsolete InternalExit() method
13317           - Changed Run() methods to use new RunLoop() message pump
13318           - Implemented new RunLoop() method for both modal and non-modal forms
13319         * CommonDialog.cs:
13320           - get_CreateParams: Added setting of WS_DISABLED
13321           - Simplified ShowDialog(); now all the work is done in RunLoop(),
13322             invoked via Form.ShowDialog()
13323         * NativeWindow.cs: We don't remove the window from the collection when
13324           the handle is destroyed; there might still be messages for it in the
13325           queue (mainly the resulting WM_DESTROY); instead it will be removed
13326           when Control calls InvalidateHandle in the WM_DESTROY handler
13327         * XplatUIX11.cs:
13328           - CreateWindow: Added logic to handle the WS_DISABLED window style
13329           - EnableWindow: Implemented based on Hwnd.Enabled
13330           - GetMessage: Reset PostQuitState so the method can be called again
13331           - Implemented support for disabled windows (passing messages to the
13332             first enabled parent) in handling all input messages
13333           - Added optimizations for handling Expose events
13334           - Implemeted new driver method IsEnabled()
13335           - Now always resetting paint pending tracking vars when we start paint
13336           - Re-implemented UpdateWindow via just sending a WM_PAINT message
13337         * XplatUIOSX.cs: Added IsEnabled method stub
13338         * XplatUIWin32.cs: Implemented new IsEnabled() method
13339
13340 2006-01-11  Jackson Harper  <jackson@ximian.com>
13341
13342         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13343         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
13344         variables a little.
13345         * ColorDialog.cs: Clear out the old form before adding the new
13346         panel.  
13347
13348 2006-01-11  Jackson Harper  <jackson@ximian.com>
13349
13350         * X11Dnd.cs: Make sure to add all the text formats when adding
13351         strings to the data object.
13352         * TreeNodeCollection.cs: When adding to a sorted tree we need to
13353         do some redrawing too.  Also change the UpdateNode to an
13354         UpdateBelow so the newly added node gets painted.
13355         
13356 2006-01-11  Miguel de Icaza  <miguel@novell.com>
13357
13358         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
13359         LinkLabel.cs, PropertyGrid.cs: Implement the
13360         UseCompatibleTextRendering property for 2.x
13361
13362         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
13363
13364 2006-01-11  Jackson Harper  <jackson@ximian.com>
13365
13366         * TreeView.cs: Use the property for setting the selected node so
13367         the correct events get raised.
13368         * TreeNode.cs: Update the tree when the fore/back colours of a
13369         node are set.
13370
13371 2006-01-10  Jackson Harper  <jackson@ximian.com>
13372
13373         * TreeView.cs: Allow setting SelectedNode to null.
13374
13375 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13376
13377         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
13378
13379 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13380
13381         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
13382
13383 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13384
13385         * PrintDialog.cs: Added attributes and set default property values.
13386
13387 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13388
13389         * PrintControllerWithStatusDialog.cs: 
13390         Added PrintControllerWithStatusDialog.
13391
13392 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13393
13394         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
13395         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
13396
13397 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
13398
13399         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
13400
13401 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
13402
13403         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
13404         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
13405
13406 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13407
13408         * MimeIcon.cs: Added internal class SVGUtil.
13409
13410 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
13411
13412         * FileDialog.cs: Don't crash if there are two files with the
13413           same name but different locations.
13414
13415 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
13416
13417         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
13418         dates across multiple month grids. Used to not highlight entire 
13419         month, but does now.
13420         
13421 2006-01-06  Jackson Harper  <jackson@ximian.com>
13422
13423         * MonthCalendar.cs: Removed DoEvents call to prevent a running
13424         message loop. Change timer intervals to numbers that seem more
13425         natural.
13426
13427 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
13428
13429         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
13430           object for location info since screen object is now implemented.
13431
13432 2006-01-05  Jackson Harper  <jackson@ximian.com>
13433
13434         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
13435         * AsyncMethodResult.cs: We no longer use a WeakReference for the
13436         AsyncMethodResult, this is because we ALWAYS want the
13437         ManualResetEvent to get set.
13438         * Control.cs: When disposing use an async invoke to call shutdown
13439         code, so that thigns don't block on the finalizer thread.  Also
13440         check if we even have a message loop before trying to send
13441         messages, if we don't then don't bother sending messages.
13442         - No more weak references for async methods
13443         * XplatUIDriver.cs: No more weak references for async methods.
13444
13445 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13446
13447         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
13448           returns two FontFamily with the same name
13449
13450 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13451
13452         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
13453           drawing disabled text. Instead using the ColorGrayText color
13454
13455 2006-01-04  Jackson Harper  <jackson@ximian.com>
13456
13457         * TreeNode.cs: redraw the node when its image index is changed.
13458
13459 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
13460
13461         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
13462           time I checked there are no others like it.
13463
13464 2006-01-04  Jackson Harper  <jackson@ximian.com>
13465
13466         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
13467         this gives the behavoir I was looking for.
13468         * Control.cs: Special case Invoking EventHandlers, this matches MS
13469         and fixes part of bug #76326.
13470
13471 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13472
13473         * ThemeClearlooks.cs, FileDialog.cs:
13474           - Reflect the latest Theme class changes
13475           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
13476             with DateTime
13477             
13478 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
13479
13480         * Theme.cs: Cache UI resource images and resize them if needed
13481
13482 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13483
13484         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
13485           is called. This fixes the crash in Nexxia when setting the font
13486           attributes in the chat. [However, RTF needs a look-over to make sure
13487           that all SelectionXXX methods handle the special case that selection
13488           is empty and therefore the change must be applied to all text starting
13489           at the cursor/selection start]
13490
13491 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
13492
13493         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
13494           XplatUIOSX.cs: Added SendMessage and PostMessage methods
13495         * X11Keyboard.cs: Switched to new way of calling PostMessage
13496
13497 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
13498
13499         * Theme.cs: Added theme interface for images to allow the theme to
13500           control what images are used for things like FileDialog, MessageBox
13501           icons, etc.
13502         * MessageBox.cs: Now uses the new Theme icon/image interfaces
13503
13504 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
13505
13506         * FileDialog.cs:
13507           - Removed some dead code
13508           - Opening a recently used file does work now
13509           - Small UI enhancements
13510           - Refactoring
13511
13512 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13513
13514         * FileDialog.cs: Forgot too add __MonoCS__
13515
13516 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
13517
13518         * FileDialog.cs: We are able to read recently used files now let's
13519           go on and write them.
13520
13521 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
13522
13523         * FileDialog.cs: Breathe some life into "last open"/"recently used"
13524           button
13525         * MimeIcon.cs: Do a check for the top level media type also
13526
13527 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13528
13529         * ThemeClearlooks.cs:
13530           - Added CPDrawStringDisabled
13531           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
13532             some chars if the text doesn't fit into text_rect
13533           - DrawListViewItem: If View = View.LargeIcon center the image;
13534             rewrote the drawing of ListViewItem.Text if View = 
13535             View.LargeIcon
13536
13537 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
13538
13539         * MimeIcon.cs: Use default KDE icon theme if there is no
13540           "48x48" directory for the current icon theme, fixes #77114
13541         * Mime.cs: Disable not working and actually not used code. 
13542         * ThemeWin32Classic.cs:
13543           - Replace "new SolidBrush" in GetControlBackBrush and
13544             GetControlForeBrush with ResPool.GetSolidBrush
13545           - Changed DrawListViewItem from private to protected virtual
13546         * FileDialog.cs:
13547           - Added form.MaximizeBox = true
13548           - Don't throw an exception if there is a broken symbolic link
13549
13550 2005-12-23  Jackson Harper  <jackson@ximian.com>
13551
13552         * TabControl.cs: Give the panels focus, keyboard navigation is
13553         fixed so this works correctly now.
13554         - We need these key events also.
13555         * ToolBar.cs: Remove some of the poor mans double buffering.
13556         
13557 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
13558
13559         * ComboBox.cs: The internal TextBox now returns the focus.
13560
13561 2005-12-23  Jackson Harper  <jackson@ximian.com>
13562
13563         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
13564
13565 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13566
13567         * Control.cs: Removed debug code
13568         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
13569           implicit children
13570
13571 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
13572
13573         * Control.cs: When creating the control, update the Z-order after
13574           all it's children are created, too. (Fixes nexxia not showing
13575           picturebox bug)
13576
13577 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
13578
13579         * Control.cs: Do not update the anchoring distances if layout is
13580           suspended, instead do it once layout is resumed
13581
13582 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
13583
13584         * Control.cs: 
13585           - After many hours of debugging, for both Jackson and
13586             myself, it turns out that it helps to set the parent of a control
13587             if you want to actually see it onscreen. In the spirit of that
13588             discovery, we're now setting the parent of the control and
13589             it's children when the control's handle is created. This fix
13590             will make Lutz Roeder's Reflector run happily. 
13591           - now just creating the handle instead of the whole control when
13592             getting a graphics context for the control.
13593
13594 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13595
13596         * ScrollableControl.cs: When calculating the canvas, don't consider
13597           the scrollbar widths. Instead, predict if horizontal scrollbar
13598           will affect canvas when deciding on vertical display and vice versa.
13599
13600 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
13601
13602         * RichTextBox.cs: Set default RTF font for documents that don't
13603           have a font table (Fixes #77076)
13604
13605 2005-12-22  Jackson Harper  <jackson@ximian.com>
13606
13607         * TextBoxBase.cs: It's difficult to do, but you can have an empty
13608         clipboard. This prevents a NullRef in that case.
13609         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
13610         clipboard. PRIMARY is for the currently selected text only. (We
13611         should implement PRIMARY at some point.
13612
13613 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13614
13615         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
13616           a Unicode function with a structure that was defined in Ansi way.
13617           This fixes #76942.
13618
13619 2005-12-21  Jackson Harper  <jackson@ximian.com>
13620
13621         * StatusBar.cs: Statusbar handles its fore/back colours on it's
13622         on. Because thats how it rolls. (and this avoids it using ambient
13623         colours).
13624         * ThemeWin32Classic.cs: Use the proper back color for filling.
13625         * Menu.cs: Use the system menu bar color for drawing menu
13626         bars. Using the window back color will bring ambient colours into
13627         the picture.
13628
13629 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
13630
13631         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
13632           Bitmaps were created and not disposed.
13633
13634 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13635
13636         * Control.cs (CreateControl): Don't do anything if the control is
13637           already created, otherwise we'd fire the OnCreated event more than
13638           once
13639
13640 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13641
13642         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
13643           will always match. Instead return -1. Fixes #76464.
13644
13645 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
13646
13647         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
13648           neither the beginning nor the end of the line (Fixes bug #76479)
13649
13650 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
13651
13652         * Control.cs:
13653           - ControlNativeWindow.ControlFromHandle(): Now handling situation
13654             where handle is invalid
13655           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
13656             instead of slower linear search
13657         * NativeWindow.cs: Don't remove the window from the hashtable until
13658           after the driver has destroyed it (since the driver might use
13659           Control.FromHandle to lookup the control object
13660         * Hwnd.cs: Added DestroyPending property to track if a window is 
13661           already destroyed as far as the driver is concerned and only hasn't
13662           yet notified the control
13663         * XplatUIX11.cs:
13664           - Activate(): Check if the window is still valid before using the 
13665             handle
13666           - Implemented DestroyChildWindow() method to mark child windows as
13667             destroyed when a window is destroyed. This prevents situations 
13668             where we might call an X method based on queued events for a
13669             window that already has been destroyed but we haven't yet pulled
13670             the destroy method from the queue.
13671           - Added a call to the new DestroyChildWindow() method to the drivers
13672             DestroyWindow code. Also now marking the destroyed window itself
13673             as pending
13674
13675 2005-12-20  Jackson Harper  <jackson@ximian.com>
13676
13677         * StatusBar.cs:
13678         * StatusBarPanel.cs: Don't calculate panel sizes on draw
13679         anymore. Just do them when needed, also track the rects of panels
13680         so that we can optimize refreshing more in the future.
13681
13682 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
13683
13684         * ColorDialog.cs: Fixed focus drawing in small color controls
13685
13686 2005-12-19  Jackson Harper  <jackson@ximian.com>
13687
13688         * InternalWindowManager.cs:
13689         * MdiWindowManager.cs: Cleanup some coordinate system changes so
13690         moving windows works properly.
13691
13692 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
13693
13694         * Control.cs: 
13695           - Removed call to InitLayout() from SetBoundsCore(); doc says
13696             it's only called when a control is added to a container
13697           - Split InitLayout logic, moved to separate UpdateDistances() method
13698             since we need to perform those calculations more often than just
13699             when adding the control to a container. (Needed to fix #77022)
13700           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
13701           - Reduced the OnBindingContextChanged events count, don't send them
13702             unless the control is created, we still aren't totally matching
13703             MS, but I can't quite figure out some of their rules
13704
13705 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13706
13707         * ThemeClearlooks.cs: Corrected distance between ProgressBar
13708           stripes
13709
13710 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13711
13712         * ThemeClearlooks.cs:
13713           - Updated ProgressBar drawing
13714           - Corrected drawing of ScrollBars and scroll buttons
13715           - Some temporary fixes for minor pixel artefacts
13716
13717 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
13718
13719         * Control.cs:
13720           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
13721             cause events to be sent in the same order as MS does.
13722           - Added ChangeParent() method to trigger various OnXXXChanged events
13723             that need to be fired when a parent changes (This is a reworking
13724             of the patch from r54254, with the X11 errors fixed)
13725           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
13726             since on MS we get OnLayoutChanged events when calling Clear()
13727           - Changed Enabled property to consider parent state as well, if a
13728             parent is not enabled, the control will not be either
13729           - Changed Parent property to simply call Controls.Add() since that
13730             now does all the work required, this way we avoid code duplication
13731           - Threw in a few OnBindingsContextChanged calls to try and match
13732             when MS sends them. We seem to send a few too many, though.
13733           - Added call to CreateControl when adding the control to a parent.
13734             We were never calling CreateControl. Still needs some work, in
13735             some places we treat HandleCreated and ControlCreated as equal, 
13736             which is wrong
13737           - Removed obsolete commented out code from UpdateZOrder()
13738
13739 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
13740
13741         * ThemeClearlooks.cs: Updated TrackBar drawing.
13742
13743 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13744
13745         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
13746
13747 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
13748
13749         * FileDialog.cs: Add the Help button and the open readonly
13750           checkbox only if needed
13751
13752 2005-12-16  Jackson Harper  <jackson@ximian.com>
13753
13754         * Control.cs: Make sure we have an active menu before trying to
13755         process commands on it. Prevents menu-less forms from crashing
13756         when Alt is pressed.
13757         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
13758         Dieter Bremes.
13759         * RichTextBox.cs: Expand statement to help out gmcs and fix the
13760         2.0 build.
13761
13762 2005-12-16  Jackson Harper  <jackson@ximian.com>
13763
13764         * InternalWindowManager.cs: Don't translate tool windows screen
13765         coordinates. This fixes windows 'bouncing' around when being moved.
13766
13767 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13768
13769         * TextBoxBase.cs:
13770           - MaxLength now treats 2^31-1 equal to unlimited length (this is
13771             not quite MS compatible, MS uses that number only for single line
13772             and 2^32-1 for multi-line, but I figure it won't hurt keeping
13773             the limit at 2GB)
13774           - Now enforcing the MaxLength limit when entering characters
13775           - Added argument to internal Paste() method to track if it's called
13776             from programatically or via keyboard, since keyboard driven pastes
13777             need to enforce max-length
13778           - Added logic to Paste to only paste as many chars as MaxLength 
13779             allows
13780         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
13781         * TextControl.cs:
13782           - Added Length property to return number of characters in document
13783           - Added private CharCount property which only tracks actual chars
13784             in the document (no linefeeds) and fires event when CharCount
13785             changes
13786           - Added tracking of character count to all methods that alter it
13787           - Added LengthChanged event to allow applications to subscribe
13788             to any changes to the document
13789
13790 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
13791
13792         * TextBox.cs: 
13793           - Removed local password_char field (moved to TextBoxBase)
13794           - Now setting the document's password var when password is
13795             set
13796         * TextBoxBase.cs:
13797           - Added password_char field (needed here so MultiLine can
13798             access it)
13799           - Added logic to MultiLine property setter to set the document's
13800             variable when password display is allowed
13801           - Removed debug code and made some debug code conditional
13802         * TextControl.cs:
13803           - Added RecalculatePasswordLine() method to handle special password
13804             char only lines
13805           - Added PasswordChar property, also added related tracking vars
13806           - Draw() method now uses local text var for grabbing text to draw,
13807             this var is set to line.text unless we're doing password display,
13808             then it is set to the pre-generated all-password-chars line
13809           - Added calling RecalculatePasswordLine() method for password lines
13810
13811 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13812
13813         * Hwnd.cs: 
13814           - Added Reparented property to allow tracking of Window Manager
13815             reparenting actions (which affect X/Y calculations of toplevel 
13816             windows)
13817           - Made ToString() print window handles in hex
13818         * XplatUIX11.cs:
13819           - AddConfigureNotify(): Now uses reparented state off Hwnd to
13820             determine if X/Y needs offsetting
13821           - AddConfigureNotify(): Fixed offset calculations
13822           - Now adds ReparentNotify messages into the queue
13823           - Now processes ReparentNotify messages and causes a 
13824             WM_WINDOWPOSCHANGED message to be sent upstream if a window
13825             is reparented (as most likely it's X/Y coordinates are changed
13826             due to that)
13827
13828 2005-12-14  Jackson Harper  <jackson@ximian.com>
13829
13830         * XplatUIX11.cs: Tool windows still need to respek focus.
13831
13832 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
13833
13834         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
13835           have a working release
13836
13837 2005-12-13  Jackson Harper  <jackson@ximian.com>
13838
13839         * Form.cs: Update styles after setting the border style regardless
13840         of whether or not the window is using a window manager.
13841
13842 2005-12-13  Jackson Harper  <jackson@ximian.com>
13843
13844         * Form.cs: We now hook into an internal window manager instead of just an
13845         MDI subsystem, this is so we can have properly behaving tool windows.
13846         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
13847         * InternalWindowManager.cs: New internal class that acts as a
13848         window manager for tool windows and as a base for mdi windows.
13849         * MdiWindowManager.cs: New class that acts as a window manager for
13850         mdi windows.
13851
13852 2005-12-12  Jackson Harper  <jackson@ximian.com>
13853
13854         * Control.cs: Updates so we match behavoir for for implicit
13855         controls. Fixes explosions in MDI.
13856
13857 2005-12-12  Jackson Harper  <jackson@ximian.com>
13858
13859         * Control.cs: Implement Invalidate (Region).
13860
13861 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
13862
13863         * Control.cs: 
13864           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
13865             the same events as MS does. MS fires events for each property 
13866             except, for unknown reasons, Cursor, when the control is reparented. 
13867             I can't seem to totally match add/remove since MS also fires some 
13868             VisibleChanged events, which makes no sense. Consolidated the
13869             parenting code into a separate method so it can be called from
13870             both Add and Remove. set_Parent no longer needs any special logic
13871             as it calls the parent's add method which implicitly fires
13872             all events
13873           - Removed some obsolete code and debug output
13874           - Enabled state is inherited from parents, if this is enabled
13875
13876 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
13877
13878         * Form.cs: Removed commented out code
13879
13880 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
13881
13882         * Control.cs:
13883           - Added internal version of Invoke, with additional argument 
13884             indicating if we're calling it from a Dispose() handler. That
13885             way we can avoid BeginInvoke throwing an exception if we're
13886             calling for an already destroyed window.
13887           - Added a dispose argument to BeginInvokeInternal, and made the
13888             check if a valid window handle chain exists conditional on
13889             it not being a dispose call
13890           - Removed code in DestroyHandle to destroy our children. Since we
13891             now handle the WM_DESTROY message we will catch all our children
13892             being destroyed.
13893           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
13894         * Form.cs:
13895           - Added a field to track the application context of the form.
13896           - No need to set closing variable as response to WM_CLOSE, instead
13897             we destroy the window. We also call PostQuitMessage if the form
13898             has an application context (which makes it the main app form,
13899             which, when closed terminates the app)
13900         * XplatUI.cs:
13901           - Dropped Exit() method, it's naming was confusing
13902           - Added PostQuitMessage() which causes GetMessage to return false
13903             once the message queue is empty
13904         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
13905           PostQuitMessage()
13906         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
13907           no longer a valid XplatUI method, but left it in since it's used
13908           internally. Added empty PostQuitMessage() method.
13909         * MenuAPI.cs: Replaced call to Exit() with call to
13910           PostQuitMessage, even though this is probably no longer needed.
13911         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
13912         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
13913         * Application.cs:
13914           - Replaced call to XplatUI.Exit() with PostQuitMessage()
13915           - Removed old debug code that would call XplatUI for exception
13916             display, enabled standard exception handling (Still not enabled
13917             though, until NativeWindow's ExternalExceptionHandler define
13918             is removed
13919         * NativeWindow.cs:
13920           - Added internal method to allow control to update NativeWindow
13921             after a window has been destroyed
13922           - Added handling of already destroyed windows when calling i
13923             DestroyWindow
13924           - Added removal of handle from list on ReleaseHandle
13925         * XplatUIX11.cs:
13926           - Dropped GetMessageResult var and related code
13927           - Added PostQuitState to field to track if PostQuitMessage has been
13928             called
13929           - Dropped Exit() method
13930           - Added PostQuitMessage() method
13931           - GetMessage now will return false if PostQuitState is set and no
13932             more messages are in the queue.
13933           - Expose handler will no longer generate WM_PAINT messages if we are
13934             in PostQuitState since it's very likely any windows have already
13935             been destroyed, and since Hwnd won't get updated until we have
13936             processed the DestroyNotify we'd be causing X errors.
13937         
13938 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13939
13940         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
13941           Thanks to Mike for pointing out the err of my ways.
13942
13943 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13944
13945         * Control.cs(PreProcessMessage): Moved menu handling back, but
13946           after all other key handling, to match MS (who handles Menu in
13947           DefWndProc)
13948         * Menu.cs (WndProc): Removed my brainfart
13949
13950 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13951
13952         * Control.cs(PreProcessMessage): Removed special menu handling 
13953         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
13954
13955 2005-12-07  Mike Kestner  <mkestner@novell.com>
13956
13957         * Control.cs : special case SYSKEYUP so that we can adjust keynav
13958         state according in tracker.
13959         * Menu.cs : promote tracker field to base class and provide a tracker
13960         lookup capability.  Add/Remove shortcuts dynamically if the top menu
13961         has a tracker. Unparent items that are removed from the collection.
13962         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
13963         * Theme*.cs: add always_show_hotkeys field to support configurability
13964         of mnemonic display.  win32 doesn't show mnemonics until Alt is
13965         pressed.
13966
13967 2005-12-07  Jackson Harper  <jackson@ximian.com>
13968
13969         * MdiChildContext.cs: Use Control.ResetCursor.
13970         * Control.cs: ResetCursor needs to set the property so that the
13971         correct XplatUI call gets made.
13972
13973 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13974
13975         * Control.cs: More fixes to make our key events match MS. We
13976           were not setting the modifier state on KeyData, and we were
13977           not generating any events when Alt was pressed with a key
13978           since handling of WM_SYSxxx was missing for the OnKey methods.
13979
13980 2005-12-07  Jackson Harper  <jackson@ximian.com>
13981
13982         * MdiChildContext.cs: reenable the sizing code.
13983         - When the mouse leaves a window reset its cursor.
13984
13985 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13986
13987         * ThemeClearlooks.cs: Reflect latest Hwnd changes
13988
13989 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
13990
13991         * Hwnd.cs: Now using the theme 3d bordersize to calculate
13992           widths of Fixed3D borders
13993
13994 2005-12-07  Jackson Harper  <jackson@ximian.com>
13995
13996         * MdiClient.cs: Fix warnings. Earn Mike's love.
13997
13998 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
13999
14000         * ThemeClearlooks.cs:
14001           - Adjusted mouse over button color
14002           - Added first parts of CheckBox drawing
14003           - Added correct color for selected text background
14004           - Fixed ComboBox drawing
14005           - Added CPDrawBorder3D and CPDrawBorder
14006
14007 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
14008
14009         * XplatUIX11.cs: Added call to XBell for AudibleAlert
14010
14011 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
14012
14013         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
14014           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
14015           alert users via sound. We could add an enum arg with different
14016           types of alerts in the future
14017
14018 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
14019
14020         * Control.cs: Fix behaviour problems pointed out by Mike
14021
14022 2005-12-05  Mike Kestner  <mkestner@novell.com>
14023
14024         * StatusBarPanel.cs: add Invalidate method and hook it into all the
14025         prop setters.  Calls parent.Refresh for now, but could be maybe be
14026         optimized with an internal method on StatusBar at some point.
14027         [Fixes #76513]
14028
14029 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
14030
14031         * RichTextBox.cs: Implemented get_SelectionColor
14032
14033 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
14034
14035         * ThemeClearlooks.cs:
14036           - Removed dead code
14037           - Draw black button border only if button is Form.AcceptButton
14038           - Draw correct button color for pressed RadioButton if the mouse 
14039             has entered the button
14040           - Updated ProgressBar drawing!
14041           - Updated CPDrawSizeGrip drawing
14042           - Updated StatusBarPanel drawing
14043
14044 2005-12-05  Mike Kestner  <mkestner@novell.com>
14045
14046         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
14047         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
14048
14049 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
14050
14051         * ThemeClearlooks.cs: Initial check-in, activate with
14052           export MONO_THEME=clearlooks
14053         * ThemeEngine.cs: Added ThemeClearlooks
14054
14055 2005-12-03  Mike Kestner  <mkestner@novell.com>
14056
14057         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
14058         [Fixes #76897]
14059
14060 2005-12-02  Jackson Harper  <jackson@ximian.com>
14061
14062         * Form.cs: If the child form has no menu the default main menu is
14063         used as the active menu.
14064
14065 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
14066
14067         * ListBox.cs: Check if any items exist before trying to resolve 
14068           coordinates into items
14069
14070 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
14071
14072         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
14073           as the second color for the background hatch
14074
14075 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
14076
14077         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
14078         * RichTextBox.cs: FormatText position arguments are 1-based, now making
14079           sure that what we pass to FormatText is always 1-based. Fixes #76885
14080
14081 2005-11-29  Miguel de Icaza  <miguel@novell.com>
14082
14083         * NumericUpDown.cs (EndInit): When we are done initializing,
14084         reflect any updates on the UI.
14085
14086 2005-12-02  Jackson Harper  <jackson@ximian.com>
14087
14088         * ImplicitHScrollBar.cs:
14089         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
14090         their container controls.
14091         * TreeView.cs: Use the new implicit scrollbars.
14092
14093 2005-12-02  Jackson Harper  <jackson@ximian.com>
14094
14095         * TreeView.cs: Make top_node internal so the TreeNodeCollections
14096         can play with it.
14097         * TreeNodeCollection.cs: If we remove the topnode we need to
14098         update topnode to the next node in line.
14099         - When clearing nodes go through the same process as removing
14100         them, so they get depareneted and checked if they are top node.
14101
14102 2005-12-01  Jackson Harper  <jackson@ximian.com>
14103
14104         * TreeView.cs: When imagelists are used the image area is
14105         selectable as well as the text.
14106         - If there are no selected nodes select the first one.
14107         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
14108         so don't do it more then we need to.
14109
14110 2005-12-01  Jackson Harper  <jackson@ximian.com>
14111
14112         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
14113         that arrows can be scaled.
14114
14115 2005-12-01  Jackson Harper  <jackson@ximian.com>
14116
14117         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
14118         fail. Patch by Dieter Bremes
14119
14120 2005-11-30  Jackson Harper  <jackson@ximian.com>
14121
14122         * Form.cs: Property is 2.0 only
14123         * PrintDialog.cs: Signature fix.
14124
14125 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
14126
14127         * TextControl.cs: 
14128           - No longer artificially moves text 2 pixels down (now that we have
14129             borders this is no longer needed)
14130           - Added calcs for left, hanging and right indent
14131
14132 2005-11-23  Mike Kestner  <mkestner@novell.com>
14133
14134         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
14135
14136 2005-11-30  Jackson Harper  <jackson@ximian.com>
14137
14138         * MdiChildContext.cs: Set the cloned menus forms, as these don't
14139         get cloned as part of CloneMenu ().
14140         * Menu.cs: Make sure the parent of the items get set correctly
14141         when they are added.  And the owners are notified of the changes.
14142         * Form.cs: Create an ActiveMenu property, so that when MDI is used
14143         we can change the menu being displayed/handled by the form without
14144         changing the menu assosciated with the form.
14145         - Don't let Mdi children draw/handle menus.
14146         
14147 2005-11-30  Jackson Harper  <jackson@ximian.com>
14148
14149         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
14150         a MenuChanged event. Just to make the API a little more
14151         consistent.
14152         * MainMenu.cs:
14153         * MenuItem.cs: Use the new OnMenuChanged
14154         * MdiChildContext.cs: Handle menu merging.
14155         * Form.cs: Implement MergedMenu.
14156         
14157 2005-11-30  Jackson Harper  <jackson@ximian.com>
14158
14159         * Menu.cs: We were misusing Add. Add goes behind the specified
14160         index according to the docs, and does not replace the specified
14161         index. So I added an Insert method.
14162
14163 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
14164
14165         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
14166           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
14167           is for Jackson
14168         * RichTextBox.cs: Added calls to base for DnD events
14169
14170 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
14171
14172         * TextControl.cs:
14173           - Fixed drag-selection related crash; style fixes
14174           - Implemented undo class
14175             o Implemented method to capture document state for specified
14176               range in document tree
14177             o Implemented method to restore captured document state
14178             o Implemented cursor tracking
14179             o Implemented basic undo stack
14180           - Added undo cursor tracking to methods altering cursor location
14181           - Added undo tracking to selection deletion (still missing
14182             other text-altering hookups)
14183         * RichTextBox.cs:
14184           - Added SelectionLength property
14185           - Implemented CanPaste()
14186           - Implemented Paste()
14187           - Added missing protected methods
14188           - Fixed RTF->Document conversion; now uses font index 0 and color 
14189             index 0 as the default font for the parsed text
14190           - Fixed RTF<->Document font size translation
14191           - Fixed RTF generation, now properly handles cross-tag boundaries
14192             for single line selection
14193           - No longer always appends blank line to generated RTF
14194           - Removed TODOs
14195           - Added missing attributes
14196           - Hooked up undo-related methods
14197         * TextBoxBase.cs:
14198           - Implemented Copy()
14199           - Implemented Paste()
14200           - Implemented Cut()
14201           - Fixed caret mis-behaviour on backspace across line-boundaries
14202
14203 2005-11-29  Jackson Harper  <jackson@ximian.com>
14204
14205         * MdiClient.cs: Add a method for activating mdi children. Very
14206         basic right now. I imagine someday it might need more girth.
14207         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
14208         children windows names are added to the menu item.
14209         * ThemeWin32Classic.cs: Draw the arrow if the item is an
14210         mdilist. This happens regardless of whether or not there are any
14211         mdi windows to see in the list, and according to my tests happens
14212         before the items are even added. Also happens if there isn't even
14213         an mdi client to get windows from.
14214
14215 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
14216
14217         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
14218         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
14219
14220 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
14221
14222         * DataGridTableStyle.cs:
14223           - Create always the styles for the missing columns even if they are
14224             provided by the user (not default table style)
14225         * DataGrid.cs:
14226           - Fixes bug 76770
14227           - Fixes SetDataBinding (always re-attach source)
14228           - Fixes SetNewDataSource (only clear styles if they are not for 
14229             this source)
14230          -  Expands OnTableStylesCollectionChanged to handle style refresh 
14231             and remove properly
14232
14233 2005-11-29  Jackson Harper  <jackson@ximian.com>
14234
14235         * FileDialog.cs: Implement missing bits, remove some dead
14236         code.
14237         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
14238         creation of the panel so that the options set on the dialog are
14239         seen when the panel is created.
14240         * TreeView.cs: raise a click when items are clicked.
14241         
14242 2005-11-29  Jackson Harper  <jackson@ximian.com>
14243
14244         * MdiClient.cs: Pass some signature methods through to base.
14245
14246 2005-11-28  Jackson Harper  <jackson@ximian.com>
14247
14248         * ListView.cs: Raise the click event when items are clicked.
14249
14250 2005-11-28  Jackson Harper  <jackson@ximian.com>
14251
14252         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
14253         a nullref.
14254
14255 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
14256
14257         * ThemeNice.cs: - Removed 1 pixel bitmaps
14258           - Use SmoothingMode.AntiAlias where it makes sense
14259             (ScrollButton arrow for example)
14260           - Enhanced Button focus drawing
14261           - Fixed ComboBox drawing (no artefacts anymore, focus
14262             rectangle is back again, reduced size of ComboButton, etc.)
14263           - Fixed RadioButton focus drawing for Appearence.Button
14264           - Slight ScrollButton redesign
14265           - Some LinearGradientBrush size fixes
14266           - GroupBoxes have now rounded edges
14267           - Fixed StatusBar drawing
14268
14269 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
14270
14271         * ThemeNice.cs: - Remove dead code
14272           - use correct background colors for menus, etc.
14273           - Fake pixel drawing with 1 pixel bitmaps
14274
14275 2005-11-24  Jackson Harper  <jackson@ximian.com>
14276
14277         * MdiClient.cs: Size the scrollbars when resizing the window.
14278         - Resize the maximized windows when the client is resized
14279         * Form.cs: Make the child context available
14280         
14281 2005-11-23  Jackson Harper  <jackson@ximian.com>
14282
14283         * MdiChildContext.cs: Don't size windows if they are maximized.
14284
14285 2005-11-23  Mike Kestner  <mkestner@novell.com>
14286
14287         * ContextMenu.cs: use MenuTracker.
14288         * Control.cs: remove menu handle usage.
14289         * Form.cs: remove menu handle usage.
14290         * Hwnd.cs: remove menu handle usage.
14291         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
14292         motion and clicks to the new Tracker handlers.
14293         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
14294         and handle usage.
14295         * MenuAPI.cs: refactored to combine popup and menubar event handling.
14296         Killed the MENU and MENUITEM data types and associated collections
14297         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
14298         MenuTracker class that exposes the leftovers from the old MenuAPI
14299         static methods. Restructured Capture handling so that only one grab is
14300         done for the entire menu hierarchy instead of handing off grabs to
14301         submenus. Tracker now has an invisible control to Capture when active.
14302         * MenuItem.cs: add sizing accessors, kill Create
14303         and handle usage.
14304         * Theme.cs: remove menu handle and MENU(ITEM) usage.
14305         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
14306         MENU(ITEM). remove menu handle usage, use Menu directly.
14307         * XplatUIDriver.cs: remove menu handle usage.
14308         * XplatUIOSX.cs: remove menu handle usage.
14309         * XplatUIWin32.cs: remove menu handle usage.
14310         * XplatUIX11.cs: remove menu handle usage.
14311
14312 2005-11-22  Jackson Harper  <jackson@ximian.com>
14313
14314         * Hwnd.cs: Don't compute the menu size for
14315         DefaultClientRectangle.
14316         - Reenable menu sizes being computed for GetClienRectangle.
14317         * Form.cs: Remove comment of trechery
14318         
14319 2005-11-22  Jackson Harper  <jackson@ximian.com>
14320
14321         * Hwnd.cs: The adjustments for the menu bar are made when it is
14322         attached to the form.
14323
14324 2005-11-19  Jackson Harper  <jackson@ximian.com>
14325
14326         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
14327         (just like on windows).
14328
14329 2005-11-19  Jackson Harper  <jackson@ximian.com>
14330
14331         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
14332         use real buttons anymore because they are in non client area. The
14333         one TODO here is that I need to somehow invalidate a section of
14334         the non client area.
14335
14336 2005-11-18  Jackson Harper  <jackson@ximian.com>
14337
14338         * Control.cs: Put the enum check back in now that MDI doesnt have
14339         to use this to set border styles.
14340         * Form.cs: Only set mdi child windows borders if the handle has
14341         been created.
14342         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
14343         this directly on to the driver.
14344         - Get the move start position before adjusting for the titlebar
14345         height, this fixes the windows "skipping" when they are first
14346         moved.
14347
14348 2005-11-18  Jackson Harper  <jackson@ximian.com>
14349
14350         * XplatUIX11.cs: Just compute the mdi borders separately as they
14351         don't totally match up with normal form borders.
14352
14353 2005-11-18  Jackson Harper  <jackson@ximian.com>
14354
14355         * Control.cs: Set WS_ styles for borders, so that the driver does
14356         not have to retrieve the control instance to figure out what kind
14357         of borders it should have.
14358         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
14359         driver can know its an mdi child easily.
14360         * XplatUIX11.cs: Get the border styles and whether the window is
14361         MDI from the Styles and ExStyles params instead of having to get a
14362         control. This prevents a chicken and egg problem.       
14363
14364 2005-11-18  Jackson Harper  <jackson@ximian.com>
14365
14366         * MdiClient.cs: Fix typo so scrollbars show up correctly.
14367
14368 2005-11-18  Jackson Harper  <jackson@ximian.com>
14369
14370         * MdiClient.cs: Calculate when to add and remove scrollbars
14371         correctly.
14372         * MdiChildContext.cs: Adjust the y position to take the titlebar
14373         into account.
14374         - No height for FormBorderStyle.None
14375
14376 2005-11-18  Jackson Harper  <jackson@ximian.com>
14377
14378         * Control.cs: Allow non enum values to be used for
14379         InternalBorderStyle.  MDI does this to set a special border style.
14380         - New utility methods for converting points to/from client coords
14381         - Add the newly created control to the Controls collection before
14382         updating its style. This way UpdateStyle can walk the control
14383         heirarchy to find the control if needed.
14384         so I don't need to create a new Point object all the time.
14385         * Form.cs: Let MDI windows handle their border styles.
14386         - Set styles on MDI windows so the correct title style is derived.
14387         * MdiChildContext.cs: Move all the painting and window handling
14388         into the non client area.
14389         - Use correct sizing and put correct buttons on frames based on
14390         the FormBorderStyle.
14391         - Notify the mdi client about scrolling
14392         - Need to handle the buttons ourselves now, because they are all
14393         in non client areas and we can't add controls there.
14394         * MdiClient.cs: Halfway to scrolling, this implementation is
14395         somewhat broken though, we need to check to make sure other
14396         windows aren't causing scrolling before removing the bars. Also
14397         the bars need to be drawn on top, maybe I can switch implicit
14398         controls to be on top.
14399         * Hwnd.cs: caption_height and tool_caption_height are now
14400         properties of an hwnd, this way they can be set by the driver
14401         based on the type of window they are.  In X11 the window manager
14402         handles the decorations so caption_height is zero unless its an
14403         MDI window.
14404         - Add 3 pixel borders for MDI windows (0xFFFF).
14405         - Get rid of some code duplication, have DefaultClientRectanle
14406         just call GetClientRectangle.
14407         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
14408         Hwnd now.
14409         - Set border styles differently for mdi windows.
14410         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
14411         Hwnd now.
14412         
14413 2005-11-15  Mike Kestner  <mkestner@novell.com>
14414
14415         * Menu.cs: when adding an item to the collection, if item is already 
14416         parented, remove it from the parent.
14417
14418 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
14419
14420         * X11DesktopColors.cs: Added KDE support
14421
14422 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
14423
14424         * XplatUIWin32.cs: 
14425           - Clipboard methods now can translate Rtf format
14426           - No longer removes clipboard contents whenever a new format is added
14427             to allow placing multiple formats on the clipboard
14428         * Clipboard.cs: Clipboard now supports getting a IDataObject and
14429           will place all formats contained in it onto the clipboard. Also
14430           now cleans the clipboard before placing a new object onto it
14431         * RichTextBox.cs:
14432           - Implemented set_Rtf
14433           - Implemented set_SelectedRtf
14434           - Created InsertRTFFromStream() method to allow single code base
14435             for all properties and methods that insert RTF into document
14436           - Removed debug output
14437         * TextControl.cs:
14438           - Fixed Delete(int) to fix up line numbers
14439           - Fixed ReplaceSelection to combine start and end line
14440           - Fixed serious DeleteChars bug that would leave the document tree
14441             broken
14442           - Improved DumpTree with several logic checks to detect broken
14443             document trees
14444           - Removed debug lines
14445           - Fixed Caret.WordForward/WordBack moving code, now always also 
14446             updates caret.tag (fixes crash when word-selecting across tag
14447             boundaries via keyboard)
14448           - Added Insert() method for inserting multiline text into documents
14449           - Fixed DeleteChars() calculation errors that would cause a broken
14450             tag chain with multiple tag lines
14451           - DeleteChars() no longer crashes on multi-tag lines if not all tags
14452           - Split() no longer moves caret if split is at caret location
14453           - ReplaceSelection() now updates the cursor and re-displays it
14454           - ReplaceSelection() now uses new Insert() method to avoid code
14455             duplication
14456           - FormatText() can now handle formatting partial lines
14457         * TextBoxBase.cs:
14458           - Append now uses new TextControl.Insert() method (this avoids 
14459             duplicate code)
14460           - Implemented Ctrl-X (Cut) (
14461           - Implemented Ctrl-C (Copy)
14462           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
14463             regeneration when pasting text; roundtripping Copy&Paste within
14464             edit control still fails due to some calculation bugs in GenerateRTF)
14465           - The Delete key will now remove the current selection if it is visible
14466         * TextBox.cs: Removed debug lines
14467         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
14468           driver to be initialized and can't therefore be done via a static ctor)
14469
14470 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
14471
14472         * TextControl.cs: Added backend code for finding char arrays and strings
14473         * TextBoxBase.cs:
14474           - Added mouse wheel scroll support
14475           - Added support for VScroll and HScroll events
14476         * RichTextBox.cs:
14477           - Implemented all seven Find() variants
14478           - Implemented GetCharFromPosition()
14479           - Implemented GetCharIndexFromPosition()
14480           - Implemented GetLineFromIndex()
14481           - Implemented GetPositionFromCharIndex();
14482           - Implemented SaveFile for PlainText and UnicodeText
14483           - Fixed set_Font, now setting a new font applies that font to
14484             the whole document
14485           - Implemented generic Document to RTF converter
14486           - Implemented SaveFile for RichText format (still missing unicode
14487             conversion for non-ansi chars)
14488           - Implemented get_Rtf
14489           - Implemented get_SelectedRtf
14490
14491 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
14492
14493         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
14494           to allow any captures to be released before triggering OnClick. This
14495           way a click handler may capture the mouse without interference.
14496         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
14497           This way we send them even though X may not allow a grab (if the window
14498           isn't visible, for example)
14499
14500 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
14501
14502         * DataGridViewRowEventArgs.cs: DataGridView implementation
14503         * DataGridViewElement.cs: DataGridView implementation
14504         * DataGridViewComboBoxCell.cs: DataGridView implementation
14505         * DataGridViewDataErrorContexts.cs: DataGridView implementation
14506         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
14507         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
14508         * ImageLayout.cs: DataGridView implementation
14509         * DataGridViewComboBoxColumn.cs: DataGridView implementation
14510         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
14511         * DataGridViewSelectionMode.cs: DataGridView implementation
14512         * IDataGridViewEditingControl.cs: DataGridView implementation
14513         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
14514         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
14515         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
14516         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
14517         * DataGridViewColumnSortMode.cs: DataGridView implementation
14518         * DataGridView.cs: DataGridView implementation
14519         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
14520         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
14521         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
14522         * Padding.cs: DataGridView implementation
14523         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
14524         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
14525         * DataGridViewRowEventHandler.cs: DataGridView implementation
14526         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
14527         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
14528         * DataGridViewButtonCell.cs: DataGridView implementation
14529         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
14530         * DataGridViewEditMode.cs: DataGridView implementation
14531         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
14532         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
14533         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
14534         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
14535         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
14536         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
14537         * DataGridViewCellEventHandler.cs: DataGridView implementation
14538         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
14539         * DataGridViewCellStyleConverter.cs: DataGridView implementation
14540         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
14541         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
14542         * DataGridViewColumnEventArgs.cs: DataGridView implementation
14543         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
14544         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
14545         * QuestionEventArgs.cs: DataGridView implementation
14546         * IDataGridViewEditingCell.cs: DataGridView implementation
14547         * DataGridViewTriState.cs: DataGridView implementation
14548         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
14549         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
14550         * DataGridViewColumnCollection.cs: DataGridView implementation
14551         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
14552         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
14553         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
14554         * DataGridViewColumn.cs: DataGridView implementation
14555         * DataGridViewCellBorderStyle.cs: DataGridView implementation
14556         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
14557         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
14558         * DataGridViewRow.cs: DataGridView implementation
14559         * DataGridViewImageCellLayout.cs: DataGridView implementation
14560         * DataGridViewImageCell.cs: DataGridView implementation
14561         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
14562         * DataGridViewCheckBoxCell.cs: DataGridView implementation
14563         * DataGridViewHeaderCell.cs: DataGridView implementation
14564         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
14565         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
14566         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
14567         * DataGridViewTextBoxColumn.cs: DataGridView implementation
14568         * QuestionEventHandler.cs: DataGridView implementation
14569         * DataGridViewCellStyleScopes.cs: DataGridView implementation
14570         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
14571         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
14572         * DataGridViewCell.cs: DataGridView implementation
14573         * DataGridViewCellEventArgs.cs: DataGridView implementation
14574         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
14575         * DataGridViewCellStyle.cs: DataGridView implementation
14576         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
14577         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
14578         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
14579         * TextFormatFlags.cs: DataGridView implementation
14580         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
14581         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
14582         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
14583         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
14584         * DataGridViewButtonColumn.cs: DataGridView implementation
14585         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
14586         * HandledMouseEventArgs.cs: DataGridView implementation
14587         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
14588         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
14589         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
14590         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
14591         * DataGridViewRowCollection.cs: DataGridView implementation
14592         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
14593         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
14594         * DataGridViewHitTestType.cs: DataGridView implementation
14595         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
14596         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
14597         * DataGridViewColumnEventHandler.cs: DataGridView implementation
14598         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
14599         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
14600         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
14601         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
14602         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
14603         * DataGridViewContentAlignment.cs: DataGridView implementation
14604         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
14605         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
14606         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
14607         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
14608         * DataGridViewPaintParts.cs: DataGridView implementation
14609         * DataGridViewCellCollection.cs: DataGridView implementation
14610         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
14611         * DataGridViewImageColumn.cs: DataGridView implementation
14612         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
14613         * DataGridViewElementStates.cs: DataGridView implementation
14614         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
14615         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
14616         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
14617         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
14618         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
14619         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
14620         * DataGridViewRowHeaderCell.cs: DataGridView implementation
14621         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
14622         * DataGridViewTextBoxCell.cs: DataGridView implementation
14623         * DataGridViewBand.cs: DataGridView implementation
14624         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
14625         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
14626         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
14627         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
14628         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
14629         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
14630         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
14631         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
14632         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
14633         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
14634         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
14635
14636 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
14637
14638         * ThemeWin32Classic.cs: 
14639           - Draw the outside focus rectangle around buttons
14640           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
14641             doesn't use end caps for every dash of a line anymore. This
14642             workaround ignores the forecolor.
14643
14644 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
14645
14646         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
14647           endian safe.
14648
14649 2005-11-07  Jackson Harper  <jackson@ximian.com>
14650
14651         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
14652
14653 2005-11-07  Jackson Harper  <jackson@ximian.com>
14654
14655         * ScrollableControl.cs: Calculate the maximum and change vars
14656         (more) correctly so that scrollbars appear as a sensible size.
14657
14658 2005-11-04  Jackson Harper  <jackson@ximian.com>
14659
14660         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
14661         collection.
14662         * TreeView.cs: When the tree is sorted null out the top_node so
14663         that it is recalculated.
14664         - Use dotted lines instead of dashed lines to match MS better.
14665
14666 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
14667
14668         * ListView.cs: 
14669           - Implements key search for items. Useful when browsing files with FileDialog
14670           - When changing view mode or when clear the items reset scrollbar positions
14671
14672 2005-11-04  Jackson Harper  <jackson@ximian.com>
14673
14674         * CurrencyManager.cs: Implement the MetaDataChanged event, the
14675         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
14676         as to what the method may do as there is no real way of creating a
14677         derived CurrencyManager and calling the method. 
14678
14679 2005-11-03  Jackson Harper  <jackson@ximian.com>
14680
14681         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
14682         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
14683         method which seems to just be used internally to refresh the tabs.
14684
14685 2005-11-03  Jackson Harper  <jackson@ximian.com>
14686
14687         * TabControl.cs: Implement the remove method. Fix some broken
14688         comments.
14689
14690 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14691
14692         * DateTimePicker.cs:
14693           - Added missing DateTimePickerAccessibleObject class
14694           - Added missing events
14695           - Added OnFontChanged method
14696         * Form.cs: Added missing attributes
14697         * TreeView.cs: Added missing attributes
14698
14699 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
14700
14701         * GridItemCollection.cs: Fix signatures
14702
14703 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14704
14705         * XplatUI.cs: Updated build rev/date
14706         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
14707           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
14708         * Application.cs: Trigger context-specific ExitThread events
14709
14710 2005-11-03  Jackson Harper  <jackson@ximian.com>
14711
14712         * Menu.cs:
14713         * MainMenu.cs:
14714         * GridTableStylesCollection.cs:
14715         * Timer.cs:
14716         * TabPage.cs:
14717         * HelpProvider.cs:
14718         * StatusBar.cs:
14719         * MonthCalendar.cs: Signature fixes
14720
14721 2005-11-03  Jackson Harper  <jackson@ximian.com>
14722
14723         * TreeNodeCollection.cs: Remove should not be virtual.
14724         * TreeView.cs: Implement the last of the missing methods.
14725
14726 2005-11-03  Jackson Harper  <jackson@ximian.com>
14727
14728         * TreeNodeConverter.cs: Implement to get off my class-status back.
14729
14730 2005-11-03  Jackson Harper  <jackson@ximian.com>
14731
14732         * TreeView.cs: Hookup the bits for drag and drop.
14733         * TreeNode.cs: Don't cache the tree_view or index anymore, now
14734         that nodes can be moved from tree to tree easily this just causes
14735         all sorts of problems.
14736         * TreeNodeCollection: Don't need to give treenodes an index and
14737         treeview anymore when they are added, these are computed on the
14738         fly. Also make sure to remove a node before its added.
14739
14740 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
14741
14742         * TextControl.cs:
14743           - Added CaretSelection enum
14744           - Added comparison methods to Marker struct, makes selection code
14745             more readable
14746           - Added SelectionStart and SelectionEnd as 'moveable' location for
14747             the CaretDirection enum and handler
14748           - Added selection_prev variable to track optimized invalidation for
14749             word and line selection
14750           - Added SelectionVisible property (returns true if there is a valid 
14751             selection)
14752           - Switched CaretHasFocus to only display the caret if there is no
14753             visible selection
14754           - Avoiding StringBuilder.ToString to retrieve a single char, instead
14755             using the direct character index; should be much faster
14756           - Added various conditional debug statements
14757           - Fixed invalidation calculation for selection ranges
14758           - Added ExpandSelection() method to support word and line selection
14759           - Switched SetSelectionToCaret to use new Marker compare overloads
14760           - Added central IsWordSeparator() method to determine word 
14761             separators/whitespace and FindWordSeparator() to streamline common
14762             usage of IsWordSeparator()
14763         * TextBoxBase.cs:
14764           - Removed unneeded grabbed variable, it was just mirroring
14765             Control.Capture
14766           - No longer firing OnTextChanged event when Text setter is called,
14767             since the base will fire the event for us
14768           - Added handling of Ctrl-Up/Down selection
14769           - Added handling of Shift-Cursorkey selection
14770           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
14771             words
14772           - Added handling of Shift and Ctrl-Shift-Home/End selection
14773           - Removed some debug output
14774           - Added handling for single/double/tripple-click to place caret/
14775             select word/select line respectively (Fixes bug #76031)
14776           - Added support for drag expansion of word/line selection
14777         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
14778           current selection
14779
14780 2005-11-02  Jackson Harper  <jackson@ximian.com>
14781
14782         * X11Dnd.cs: If the drag is going to and from a MWF window just
14783         copy the data instead of sending it out through the X Selection
14784         mechanism.
14785
14786 2005-11-02  Jackson Harper  <jackson@ximian.com>
14787
14788         * X11Dnd.cs:
14789         * XplatUIX11.cs: When in a drag we don't want motion notify
14790         messages to get passed on to the other controls. This prevents
14791         mouse move messages from showing up in the drag source.
14792
14793 2005-11-02  Jackson Harper  <jackson@ximian.com>
14794
14795         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
14796         the correct button is release to end a drag.
14797         * XplatUIX11.cs: Make the button state internal so the drag system
14798         can access it.  Dragging needs to know about all button releases,
14799         not just left button.
14800
14801 2005-11-02  Miguel de Icaza  <miguel@novell.com>
14802
14803         * Form.cs (Icon): If the icon is null, reset the icon to the
14804         default value. 
14805
14806         * Cursor.cs: When writing the AND-mask bitmap do not include the
14807         number of colors, but hardcode those to two (black and white),
14808         fixes the loading of color cursors (Paint Dot Net).
14809
14810         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
14811         turn off autoscaling.
14812
14813         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
14814
14815 2005-11-02  Jackson Harper  <jackson@ximian.com>
14816
14817         * X11Dnd.cs: Make sure to send a status message if the pointer
14818         enters a control that can not accept a drop, otherwise the cursor
14819         isn't updated correctly. Also tried to compress the lines of code
14820         a bit.
14821
14822 2005-11-02  Jackson Harper  <jackson@ximian.com>
14823
14824         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
14825         set actions correctly.  This isn't perfect as XDND and win32 have
14826         some differences on how you allow actions. I'll clear this up by
14827         adding a path for drag from MWF to MWF windows.
14828         * XplatUIX11.cs: Hook into the dnd system.
14829
14830 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
14831
14832         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
14833         previously shown but they are no longer need it. Very obvious when 
14834         browsing files with FileDialog.
14835
14836 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
14837
14838         * Control.cs: We always need to call OnPaintBackground. We pretty much
14839           ignore AllPaintingInWmPaint and always do the painting there, whether 
14840           it's set or not, since we always ignore the WM_ERASEBKGND message 
14841           (which we don't generate on X11). This fixes #76616.
14842         * Panel.cs: Removed unneeded background painting. This happens properly
14843           in Control.cs already
14844
14845 2005-10-31  Mike Kestner  <mkestner@novell.com>
14846
14847         * Menu.cs: Add items to collection before setting their index.
14848         * MenuItem.cs : add range checking with ArgumentException like MS.
14849         [Fixes #76510]
14850
14851 2005-10-31  Jackson Harper  <jackson@ximian.com>
14852
14853         * ListBox.cs: Invalidate if the area is visible at all not just
14854         contained in the visible rect. Fixes unselection of semi visible
14855         items.
14856
14857 2005-10-31  Jackson Harper  <jackson@ximian.com>
14858
14859         * Control.cs: Consistently name the dnd methods. Make them
14860         internal so we can override them to match some MS behavoir
14861         internally.
14862         * Win32DnD.cs: Use the new consistent names.
14863
14864 2005-10-31  Jackson Harper  <jackson@ximian.com>
14865
14866         * TreeView.cs: Don't draw the selected node when we lose focus.
14867
14868 2005-10-31  Jackson Harper  <jackson@ximian.com>
14869
14870         * X11Dnd.cs: We still need to reset the state even though a full
14871         reset isn't being done, otherwise status's still get sent all over
14872         the place.
14873
14874 2005-10-31  Jackson Harper  <jackson@ximian.com>
14875
14876         * Control.cs: Make the dnd_aware flag internal so the dnd
14877         subsystem can check it. Catch exceptions thrown in dnd handlers to
14878         match MS behavoir.
14879         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
14880         * X11Dnd.cs: Handle null data in the converters. Set the XDND
14881         version when sending a XdndEnter. Use the control/hwnd dnd_aware
14882         flags to reduce the number of dnd enters/status's sent.
14883
14884 2005-10-31  Jackson Harper  <jackson@ximian.com>
14885
14886         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
14887
14888 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
14889
14890         * PictureBox.cs: Fixes 76512
14891
14892 2005-10-28  Jackson Harper  <jackson@ximian.com>
14893
14894         * X11Dnd.cs: Early implementation to support winforms being a drag
14895         source for data on X11. Also restructured the converters so they
14896         can go both ways now.
14897         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
14898         
14899 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
14900
14901         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
14902           clipboard requests
14903
14904 2005-10-27  Jackson Harper  <jackson@ximian.com>
14905
14906         * TreeNode.cs: Implement serialization so my DnD examples will work.
14907
14908 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
14909
14910         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
14911           TreeView.cs: Don't dispose objects that are not owned.
14912           
14913 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
14914
14915         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
14916           should retrieve the current cursor and report that, but XplatUI
14917           doesn't (yet) have an interface for that (and I'm not sure I even
14918           can, on X11)
14919         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
14920           until any message loop processing is done (and the WM_SETCURSOR
14921           replaces the cursor to the proper one)
14922         * XplatUIX11.cs: 
14923           - Fixed override behaviour, we can't set the cursor globally on X11, 
14924             just for our windows.
14925           - Invalidating the System.Drawing X11 display handle when we are
14926             shutting down
14927         * Control.cs: Fix to make csc happy
14928
14929 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
14930
14931         * TextBoxBase.cs: 
14932           - get_Text: Add last line (without trailing newline) to returned
14933             value (Fixes 76212)
14934           - get_TextLength: Count last line in returned length
14935           - ToString: Call Text property instead of duplicating code
14936
14937 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
14938
14939         * ImageList.cs: Dispose ImageAttributes objects.
14940
14941 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14942
14943         * ImageList.cs: Use attribute constructors with less arguments where
14944           possible.
14945
14946 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
14947
14948         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
14949           Use typeof instead of strings when assembly is referenced. Added
14950           some more comments.
14951
14952 2005-10-21  Jackson Harper  <jackson@ximian.com>
14953
14954         * ListView.cs: Raise a double click event. Also tried to somewhat
14955         fix when the selectedindexchanged event is raised. Its still
14956         broken though.
14957
14958 2005-10-21  Jackson Harper  <jackson@ximian.com>
14959
14960         * TreeView.cs: New method to invalidate the plus minus area of a
14961         node without invalidating the whole node (maybe this can be used
14962         in some more places).
14963         * TreeNodeCollection.cs: When adding to an empty node we need to
14964         invalidate its plus minus area so the little block shows up.
14965         
14966 2005-10-21  Jackson Harper  <jackson@ximian.com>
14967
14968         * TreeView.cs: Make sure that when we invalidate a node the bounds
14969         are big enough to cover the selected box and the focus
14970         rectangle. Use a different colour for the lines connecting nodes
14971         so they show up with all themes.
14972
14973 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14974
14975         * NativeWindow.cs: Don't call anything that could call into the driver,
14976           we might be on a different thread.
14977
14978 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
14979
14980         * Control.cs(Dispose): Since Dispose might run on a different thread,
14981           make sure that we call methods that could call into the driver via
14982           invoke, to avoid thread issues
14983
14984 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
14985
14986         * XplatUI.cs: Removed finalizer
14987         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
14988           not allowing to be called on the finalizer thread.
14989
14990 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
14991
14992         * ImageList.cs:
14993           - Reverted r51889 and r51891.
14994           - Added ImageListItem class that stores unmodified image items and image
14995             properties required to create list images until handle is created.
14996           - Added AddItem and moved image creation logic to AddItemInternal.
14997           - Added CreateHandle method that creates images based on unmodified items.
14998           - Added DestroyHandle that changes state to store unmodified items.
14999           - Add and AddStrip methods no more create handle.
15000           - ReduceColorDepth has no return value.
15001           - Dispose destroys handle.
15002           - Modified other methods to reflect the above changes.
15003           - Implemented key support.
15004           - Added profile 2.0 members and attributes.
15005           - Added private Reset and ShouldSerialize methods that provide the same
15006             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
15007             them as they are private.
15008           - Added some more comments about implementation details.
15009
15010 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15011
15012         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
15013
15014 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15015
15016         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
15017
15018 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
15019
15020         * DataGridDrawingLogic.cs: Fixes column hit calcultation
15021         * DataGridColumnStyle.cs: Remove debug message
15022
15023 2005-10-20  Jackson Harper  <jackson@ximian.com>
15024
15025         * TreeView.cs: We can always get input keys regardless of whether
15026         or not editing is enabled. They are used for navigation.
15027
15028 2005-10-20  Jackson Harper  <jackson@ximian.com>
15029
15030         * TreeNode.cs: Use the viewport rect for determining if a node
15031         needs to be moved for visibility. Don't use Begin/End edit. This
15032         calls a full refresh when its done.
15033         * TreeView.cs: New SetBottom works correctly.  Make the viewport
15034         rect property internal so the treenodes can see it. When clicking
15035         on a node we need to ensure that its visible because it might just
15036         be partly visible when clicked.
15037
15038 2005-10-20  Jackson Harper  <jackson@ximian.com>
15039
15040         * TreeNodeCollection.cs: Remove debug code.
15041
15042 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
15043
15044         * Datagrid.cs: Implements column sorting in Datagrid
15045         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
15046
15047 2005-10-20  Jackson Harper  <jackson@ximian.com>
15048
15049         * TreeNodeCollection.cs: Remove items properly. Update the correct
15050         area after removing them.
15051
15052 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
15053
15054         * Datagrid.cs: Should not call base.OnPaintBackground
15055
15056 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
15057
15058         * XplatUIX11.cs (GetMessage):
15059           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
15060             window instead of client window
15061           - Now properly calculates NC_xBUTTONUP message coordinates
15062           - ScreenToMenu now properly calculates it's coordinates of whole 
15063             window, since menus are in the whole window, not in the client
15064             window
15065           - Added WholeToScreen coordinate translation method
15066
15067 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
15068
15069         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
15070           want to return a message, loop back to the beginning of the function
15071           and grab the next real message to process instead.
15072
15073 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
15074
15075         * Splitter.cs: Properly set limits if no filler control is used
15076
15077 2005-10-19  Jackson Harper  <jackson@ximian.com>
15078
15079         * ColorDialog.cs: Don't show the help button if it is not enabled
15080         instead of disabling it (this is what MS does). Don't create the
15081         panel until the dialog is run, otherwise the vars (such as
15082         ShowHelp) are not set yet.
15083
15084 2005-10-19  Jackson Harper  <jackson@ximian.com>
15085
15086         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
15087         are reduced when adding nodes.
15088         * TreeNode.cs:
15089         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
15090         tree.
15091         
15092 2005-10-19  Jackson Harper  <jackson@ximian.com>
15093
15094         * FolderBrowserDialog.cs: End editing our treeview so the window
15095         actually gets refreshed.
15096
15097 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
15098
15099         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
15100           Obsoleted handling of WM_ERASEBKGND, now always draws our background
15101           inside of WM_PAINT
15102
15103 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15104
15105         * MenuAPI.cs: Returns after Hidding window
15106         * XplatUIX11.cs: Added TODO found while debugging menu issues
15107
15108 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
15109
15110         * XplatUIX11.cs: Do not re-map the whole window when it's size
15111           becomes non-zero unless it's supposed to be actually visible
15112
15113 2005-10-18  Jackson Harper  <jackson@ximian.com>
15114
15115         * TreeView.cs: We don't need to keep a count anymore.
15116         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
15117         use the Grow method.
15118
15119 2005-10-18  Jackson Harper  <jackson@ximian.com>
15120
15121         * TreeNodeCollection.cs: Insert is not supported on arrays, so
15122         implement it manually here.
15123
15124 2005-10-18  Jackson Harper  <jackson@ximian.com>
15125
15126         * ImageList.cs: Dont kill the list when the colour depth is
15127         changed, just change the colour depth of all the images.
15128         - Same goes for setting the image size. Just resize them all
15129         instead of killing the list softly.
15130
15131 2005-10-18  Jackson Harper  <jackson@ximian.com>
15132
15133         * Control.cs: Don't invalidate empty rectangles.
15134
15135 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15136
15137         * ListViewItem.cs:
15138           - Adds checked item to the Checked/Item lists (where empty before)
15139           - Do not add items to the Selected lists if they are already present
15140         * ListView.cs:
15141           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
15142           - When deleting items make sure that we delete them for the Selected
15143           and Checked list also.
15144
15145 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
15146
15147         * Label.cs: Dispose objects no longer used
15148         * ThemeWin32Classic.cs: Dispose objects no longer used
15149
15150 2005-10-18  Jackson Harper  <jackson@ximian.com>
15151
15152         * TabControl.cs: Don't refresh the whole control when the tabs are
15153         scrolled, we just need to refresh the tab area.
15154
15155 2005-10-17  Jackson Harper  <jackson@ximian.com>
15156
15157         * XplatUIX11.cs: Compress code a little bit. Only calculate the
15158         after handle when we need it.
15159
15160 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
15161
15162         * Control.cs: When the parent size changes, recalculate anchor 
15163           positions. Partial fix for #76462
15164
15165 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
15166
15167         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
15168           drawn. Fixes #76462
15169
15170 2005-10-17  Jackson Harper  <jackson@ximian.com>
15171
15172         * MonthCalendar.cs: Don't create the numeric up down until our
15173         handle is created. Otherwise our handle is created in the
15174         constructor and we don't know if we are a WS_CHILD or WS_POPUP
15175         yet.
15176
15177 2005-10-17  Jackson Harper  <jackson@ximian.com>
15178
15179         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
15180         correctly.
15181
15182 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
15183         * TreeNode.cs : small logical fix (was using local var instead of field)
15184         
15185 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
15186
15187         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
15188
15189 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
15190
15191         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
15192
15193 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
15194
15195         * Control.cs: 
15196           - Re-implemented anchoring code. My first version was really broken.
15197             This fixes bug #76033. Unlike the previous implementation we will
15198             no longer have round errors since all numbers are calculated from
15199             scratch every time. Removed various anchor-related obsolete vars.
15200           - InitLayout no longer causes layout event firing and layout to be 
15201             performed
15202
15203 2005-10-16  Jackson Harper  <jackson@ximian.com>
15204
15205         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
15206         which was broken).
15207
15208 2005-10-16  Jackson Harper  <jackson@ximian.com>
15209
15210         * TabControl.cs: Remove debug code.
15211
15212 2005-10-16  Jackson Harper  <jackson@ximian.com>
15213
15214         * XEventQueue.cs: Increase the default queue size (very simple
15215         apps needed to grow the queue).
15216         * Hwnd.cs: No finalizer so we don't need to suppress
15217         finalization. Compute the invalid area manually so a new rectangle
15218         does not newto be created.
15219         * ScrollableControl.cs: Don't set any params (otherwise visibility
15220         isn't set correctly).
15221         * MdiChildContext.cs: New constructor takes the mdi parent so it
15222         doesn't have to be computed and avoids a crash on windows. Draw
15223         the window icon properly, and allow the text to be seen.
15224         * Form.cs: Use new MdiChildContext constructor. Make sure the
15225         child context isn't null in wndproc.
15226         * TabControl.cs: Don't set focus, this is muddling keyboard
15227         behavoir. Expand the tab rows when a window size increase will
15228         allow extra tabs to be seen. Don't allow tabs smaller than the
15229         width of a window to be scrolled out of view.
15230         * TreeNode.cs:
15231         * TreeView.cs: Use measure string to calculate a nodes width, the
15232         width is cached and only updated when the text or the font is
15233         changed. Don't check for expand/collapse clicks on the first level
15234         nodes if root lines are disabled.
15235         
15236 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
15237
15238         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
15239
15240 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
15241
15242         * DataGridBoolColumn.cs: fixes warning
15243
15244 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
15245
15246         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
15247         to match more to match more precisely the MS Net behavior
15248
15249 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
15250
15251         * Hwnd.cs: Added field to track if window is mapped
15252         * XplatUIX11.cs: 
15253           - Unmap windows if they become 0-size, re-map when 
15254             they are >0 again; fixes #76035
15255           - Re-set our error handler after initializing X11Desktop
15256             to override any error handlers Gtk or whatever was called
15257             may have set.
15258
15259 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
15260
15261         * CheckedListBox.cs: Removed unused vars
15262         * ListView.cs: Fixed signatures
15263         * RichTextBox.cs: Removed unused vars
15264         * TextBoxBase.cs: Removed unused vars
15265         * XplatUIWin32.cs: Removed unused vars
15266         * XplatUIX11.cs: Removed unused vars
15267         * XplatUI.cs: Updated version and date to latest published
15268
15269 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
15270
15271         * Cursor.cs: Added private .ctor to work around a bug in
15272           resourceset (Thanks to Geoff Norton for the help on this)
15273         * SplitterEventArgs.cs: Made fields accessible so we don't
15274           waste boatloads of objects and can reuse the same one
15275           in Splitter
15276         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
15277           any captions and borders when generating screen coordinates
15278         * Splitter.cs: Reimplemented control, now fully complete, uses
15279           rubberband drawing, supports and obeys all properties, has
15280           proper cursors
15281
15282 2005-10-13  Miguel de Icaza  <miguel@novell.com>
15283
15284         * Form.cs (Form): Setup default values for autoscale and
15285         autoscale_base_size;  Make these instance variables, not static
15286         variables. 
15287
15288         (OnLoad): on the first load, adjust the size of the form.
15289
15290 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
15291
15292         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
15293           width argument to DrawReversibleRectangle()
15294         * XplatUIWin32.cs, XplatUIX11.cs: 
15295           - Implemented width for DrawReversibleRectangle()
15296           - Added logic to DrawReversibleRectangle that recognizes a zero
15297             width or height and only draws a line in that situation
15298         
15299 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
15300
15301         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
15302         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
15303         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
15304           method (it uses our FosterParent window to get a graphics context)
15305
15306 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
15307
15308         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
15309           and SetWindowBackground methods
15310         * Control.cs:
15311           - Setting proper ControlStyles
15312           - We no longer call XplatUI.SetWindowBackground and XplatUI.
15313             EraseWindowBackground, instead we draw the window background
15314             ourselves in PaintControlBackground. This behaviour is
15315             required to match MS, where, when OnPaintBackground is not
15316             called, the background is not drawn.
15317           - Removed unneeded Refresh() in set_Text
15318         * Hwnd.cs: Dropped the ErasePending support. No longer needed
15319         * XplatUIX11.cs:
15320           - Created DeriveStyles method to translate from CreateParams to
15321             FormBorderStyle and TitleStyle, also handles BorderStyle (which
15322             matches FormBorderStyle enum values)
15323           - Consolidated SetHwndStyles and CalculateWindowRect border/title
15324             style calculations into single DeriveStyles method
15325           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
15326             from redrawing the whole window on any resize or expose.
15327           - Fixed CreateWindow usage of SetWindowValuemask. Before not
15328             all styles were applied to our whole/client window appropriately
15329           - Removed EraseWindowBackground() and SetWindowBackground() methods
15330           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
15331             no longer clear/redraw the background through X
15332           - Removed handling of erase_pending bit, we have no use for it (or
15333             so it seems)
15334         * XplatUIOSX.cs:
15335           - Removed generation and handling of WM_ERASEBKGND message
15336           - Removed EraseWindowBackground() and SetWindowBackground() methods
15337           - Removed handling of hwnd.ErasePending flag
15338         * XplatUIWin32.cs:
15339           - Removed EraseWindowBackground() and SetWindowBackground() methods
15340           - We no longer call EraseWindowBackground on PaintEventStart, we 
15341             ignore the fErase flag, erasing is handled in Control in the
15342             background handler
15343         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
15344           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
15345           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
15346           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
15347           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
15348           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
15349           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
15350
15351 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
15352
15353         * PropertyGrids.cs: Get sub properties
15354         * PropertyGridView.cs: Fix drawing code
15355
15356 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15357
15358         * ListBox.cs: Fixes 76383
15359
15360 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15361
15362         * DataGridTextBoxColumn.cs: Sets location and size before attachment
15363         * ThemeWin32Classic.cs: Fixes border drawing and calculations
15364         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
15365
15366
15367 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15368
15369         * ComboBox.cs: Fixes border drawing
15370
15371 2005-10-10  Miguel de Icaza  <miguel@novell.com>
15372
15373         * MimeIcon.cs: Ignore errors if the file can not be read.
15374
15375 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
15376
15377         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
15378          - Fixed border calculations
15379          - Fixed horizontal scrolling in single column listboxes
15380          - Fixed drawing issues
15381
15382 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
15383
15384         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
15385           FormBorderStyle enum
15386         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
15387           code to determine FormBorderStyles from CreateParams
15388         * Form.cs:
15389           - Fixed bug where we'd set the wrong window styles if we were
15390             not creating an MDI window
15391           - Added call to XplatUI.SetBorderStyle when form borders are set
15392         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
15393         * Hwnd.cs:
15394           - Removed obsolete edge style
15395           - Switched from BorderStyle to FormBorderStyle
15396         
15397 2005-10-10  Jackson Harper  <jackson@ximian.com>
15398
15399         * Form.cs: Use the property to get the window handle instead of
15400         accessing it directly. Prevents a null reference exception.
15401
15402 2005-10-10  Jackson Harper  <jackson@ximian.com>
15403
15404         * TreeView.cs: Don't adjust the rect given to DrawString now that
15405         our libgdiplus draws correctly.
15406
15407 2005-10-08  Jackson Harper  <jackson@ximian.com>
15408
15409         * TreeView.cs: Don't try to find the clicked on node if there are
15410         no nodes in the tree.
15411
15412 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15413
15414         * RichTextBox.cs:
15415
15416           restore
15417
15418 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
15419
15420         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
15421           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
15422           ErrorProvider.cs:
15423           Use ResPool for brushes and dispose System.Drawing objects that
15424           are not used anymore.
15425
15426 2005-10-07  Jackson Harper  <jackson@ximian.com>
15427
15428         * MdiChildContext.cs: Use the new borders instead of drawing them
15429         ourselves.
15430
15431 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15432
15433         * Calling UpdateBounds after changing the window's BorderStyle 
15434         since the style can change the ClientSize
15435
15436 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15437
15438         * Control.cs: Made PaintControlBackground virtual
15439         * Panel.cs: Overriding PaintControlBackground instead of using paint
15440           event; paint event method was interfering with 'real' users of the
15441           event.
15442
15443 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
15444
15445         * ThemeWin32Classic.cs: remove border drawing since it is handled
15446         by the base control class now and was causing double border drawing.
15447
15448 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15449
15450         * Panel.cs: Redraw our background on paint. Not a pretty solution,
15451           but it does seem to match MS behaviour. This fixes bug #75324
15452
15453 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15454
15455         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
15456           somewhat hackish looking
15457
15458 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15459
15460         * TextBoxBase.cs:
15461           - We now accept Enter even if AcceptEnter is false, if the containing
15462             form does not have an AcceptButton configured (fixes bug #76355)
15463           - Calculations are now fixed to no longer use Width/Height, but
15464             ClientSize.Width/Height, since we now support borders (this was
15465             a result of fixing borders and therefore bug #76166)
15466           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
15467             true (fixes bug #76354)
15468         
15469 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15470
15471         * Control.cs: 
15472           - Defaulting BorderStyle and setting it in XplatUI when our window 
15473             is created
15474           - Added enum check to InternalBorderStyle setter
15475         * XplatUIX11.cs: 
15476           - Added drawing of window borders
15477           - Now properly calculates WM decorations offset for toplevel 
15478             windows (fixes bug #74763)
15479         * XplatUIWin32.cs: 
15480           - Implemented BorderStyles for windows (we're letting win32 draw 
15481             the border for us)
15482           - Fixed the signature for SetWindowLong
15483         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
15484           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
15485           setting borders
15486         * UpDownBase.cs: Remove drawing of borders, this is handled by
15487           the driver, outside the client area
15488         * ListView.cs: Removed bogus border calculations. The control should
15489           be oblivious to borders, since those are not part of the client
15490           area. 
15491         * X11DesktopColors.cs: Commented out (currently) unneeded variables
15492         * ThemeWin32Classic.cs: Removed border calculations from ListView 
15493           drawing code
15494
15495 2005-10-06  Jackson Harper  <jackson@ximian.com>
15496
15497         * MdiChildContext.cs: Clear out the old virtual position remove
15498         all the unneeded calls to CreateGraphics.
15499
15500 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15501
15502         * TextControl.cs: Use proper color for highlighted text; fixes #76350
15503
15504 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
15505
15506         * Form.cs: 
15507           - Added loading and setting of our new default icon
15508           - Only set icon if window is already created
15509
15510 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
15511
15512         * Label.cs:
15513           - Do not explicitly set the foreground and background colors, to
15514             allow inheriting from parents (fixes #76302)
15515           - Use Control's InternalBorderStyle property to deal with borders
15516
15517 2005-10-06  Jackson Harper  <jackson@ximian.com>
15518
15519         * MdiChildContext.cs: Use the new xplatui function to draw a
15520         reversible rect.
15521
15522 2005-10-06  Jackson Harper  <jackson@ximian.com>
15523
15524         * Form.cs: Add the parent before creating the child context cause
15525         we need the parent when setting up the child.
15526
15527 2005-10-06  Jackson Harper  <jackson@ximian.com>
15528
15529         * FolderBrowserDialog.cs: redo the tree population code so a
15530         second thread isn't used. Should be a lot faster and more stable
15531         now.
15532
15533 2005-10-05  Jackson Harper  <jackson@ximian.com>
15534
15535         * TreeView.cs: There are no expand/collapse boxes if the node has
15536         no children.
15537
15538 2005-10-05  Jackson Harper  <jackson@ximian.com>
15539
15540         * X11DesktopColors.cs: Get menu colours for the gtk theme.
15541
15542 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
15543
15544         * FileDialog.cs: Fix InitialDirectory
15545
15546 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15547
15548         * ComboBox.cs:
15549                 - Fixes changing between styles
15550                 - Fixes simple mode
15551                 - Fixes last item crashing when navigating with keyboard
15552
15553 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
15554
15555         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
15556
15557 2005-10-05  Jackson Harper  <jackson@ximian.com>
15558
15559         * TreeView.cs: If updating the root node do a full refresh.
15560         * TreeNode.cs: The root node should be expanded by default. Also
15561         added a utility prop to tell if we are the root node.
15562         * TreeNodeCollection.cs: Only refresh if the node we are being
15563         added to is expanded. Also added a comment on a potential
15564         optimization.
15565         
15566 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
15567
15568         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
15569           in dispose method. Fixes #76330
15570
15571 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
15572
15573         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
15574
15575                 - Implements vertical and horizontal scrolling using XplatUI
15576                 - Fixes keyboard navagation
15577                 - Fixes EnsureVisible
15578                 - Drawing fixes
15579                 - Handles and draws focus properly
15580
15581
15582 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
15583
15584         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
15585           Create handle. NET_2_0: Destroy handle when value is null.
15586
15587 2005-10-03  Jackson Harper  <jackson@ximian.com>
15588
15589         * ScrollBar.cs: My last scrollbar patch was broken. This is a
15590         revert and a new patch to prevent the thumb from refreshing so
15591         much.
15592
15593 2005-10-02  Jackson Harper  <jackson@ximian.com>
15594
15595         * ScrollBar.cs: Don't update position if it hasn't actually
15596         changed. This occurs when you hold down the increment/decrement
15597         buttons and the thumb gets to the max/min.
15598
15599 2005-10-01  Jackson Harper  <jackson@ximian.com>
15600
15601         * Form.cs:
15602         * MdiChildContext.cs:
15603         * MdiClient.cs: Implement ActiveMdiChild in Form.
15604
15605 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
15606
15607         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
15608
15609 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
15610
15611         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
15612           be found
15613
15614 2005-09-30  Jackson Harper  <jackson@ximian.com>
15615
15616         * ListBox.cs: Don't do a full refresh unless some data has
15617         actually changed.
15618
15619 2005-09-30  Jackson Harper  <jackson@ximian.com>
15620
15621         * TreeView.cs: Make sure that the checkboxes size is factored in
15622         even when not visible.
15623
15624 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15625
15626         * FileDialog.cs: Fix Jordi's build break
15627
15628 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15629
15630         * FileDialog.cs: 
15631                 - Use standard the Windows colours for the combobox as espected
15632                 - Dispose objects that use resouces when no longer need them
15633
15634 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
15635
15636         * X11DesktopColors.cs: Initial incomplete implementation
15637         * XplatUIX11.cs: Added call to initialize X11DesktopColors
15638
15639 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
15640
15641         * Theme.cs: 
15642           - Switched Theme color names to match the names defined in 
15643             System.Drawing.KnownColors. Life's hard enough, no need to make 
15644             it harder.
15645           - Added setters to all theme color properties so themes can set
15646             their color schemes. The setters also propagate the color changes
15647             to System.Drawing.KnownColors via reflection
15648         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
15649           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
15650           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
15651           use the new, more logical theme color names
15652         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
15653           post-NT colors
15654         * ThemeWin32Classic.cs:
15655           - Removed code to set the old classic Windows colors. Instead it
15656             now relies on the colors returned by System.Drawing.KnownColors
15657             which will be either modern static colors (Unix) or colors
15658             read from the user's configuration (Win32)
15659           - Updated to use the new, more logical theme color names
15660           - Switched DataGrid drawing code to use only Theme colors instead of
15661             a mix of System.Drawing.KnownColors and Theme colors
15662           - DrawFrameControl(): Removed code that fills the button area, the
15663             fill would overwrite any previous fill done by a control. This
15664             fixes bug #75338 
15665           - Added DrawReversibleRectangle() stub
15666         * ScrollableControl.cs: Set visible state to false when scrollbars
15667           are removed (pdn fix)
15668         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
15669           DrawReversibleRectangle() method to allow drawing primitive 
15670           'rubber bands'
15671         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
15672
15673 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15674
15675         * ImageList.cs: Add(Icon): Create handle.
15676
15677 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
15678
15679         * ListView.cs:
15680         * ThemeWin32Classic.cs:
15681                 - Fixes detail mode
15682                 - Sets clippings
15683                 - Issues with drawing
15684
15685 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15686
15687         * ImageList.cs: Moved RecreateHandle back to ImageList as event
15688           source has to be the ImageList.
15689
15690 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15691
15692         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
15693
15694 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15695
15696         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
15697
15698 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15699
15700         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
15701
15702 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
15703         * GridItem.cs: Fixed TODOs
15704         * GridItemCollection.cs: Added ICollection interface
15705
15706 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
15707
15708         * ImageList.cs: Resize icons when needed.
15709
15710 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
15711
15712         * ListViewItem.cs
15713                 - Fixes GetBounds and returns on screen rects
15714         * ListView.cs:
15715                 - Fixes vertical and horzintal scrolling of items
15716         * ThemeWin32Classic.cs:
15717                 - Fixes drawing
15718                 
15719 2005-09-29  Raja R Harinath  <harinath@gmail.com>
15720
15721         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
15722
15723 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
15724
15725         * ImageList.cs: Added comments about handle creation. Moved Handle,
15726           HandleCreated and OnRecreateHandle implementations to ImageCollection.
15727           Handle is created in Add methods.
15728
15729 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15730          
15731         * DataGridDrawingLogic.cs: 
15732                 - Takes rows into account on Colum calculations
15733                 - Returns the column when clickig
15734         * DataGrid.cs:
15735                 - Fixes default HitTestInfo values
15736                 - Fixes HitTestInfo.ToString
15737                 - Fixes ResetBackColor          
15738         
15739 2005-09-28  Jackson Harper  <jackson@ximian.com>
15740
15741         * MdiChildContext.cs: Obey rules for fixed sized windows (no
15742         sizing or cursor changes). Also added some temp code to draw the
15743         titlebars text (Makes dev a little easier).
15744
15745 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15746
15747         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
15748
15749 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
15750          
15751         * ListBox.cs: Fixes bug 76253
15752
15753 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
15754
15755         * ImageList.cs: Added comments about the current implementation. Added
15756           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
15757           Format32bppArgb to preserve transparency and can use Graphics.FromImage
15758           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
15759           with Bitmap.LockBits for better performance. Revised the whole file to
15760           match MS.NET behaviour and provide better performance. Non-public
15761           interface members are calling public members even when they throw
15762           NotSupportedException for better maintainability. Moved ColorDepth,
15763           ImageSize, ImageStream and TransparentColor implementations to
15764           ImageCollection for better performance as these properties are not used
15765           by ImageList.
15766         * ImageListStreamer.cs: Added a new internal constructor that takes an
15767           ImageList.ImageCollection and serializes Images based on
15768           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
15769           match ImageList property name.
15770
15771 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
15772
15773         * ListBox.cs: Fixes IndexFromPoint for last item
15774
15775 2005-09-27  Jackson Harper  <jackson@ximian.com>
15776
15777         * Form.cs: Set the position of new mdi children correctly.
15778
15779 2005-09-27  Jackson Harper  <jackson@ximian.com>
15780
15781         * MdiClient.cs: New mdi children need to be added to the back of
15782         the controls collection so the zorder is set correctly. Also add a
15783         count of all the child windows that have been created.
15784
15785 2005-09-27  Jackson Harper  <jackson@ximian.com>
15786
15787         * Form.cs (CreateParams): Setup MDI forms correctly.
15788
15789 2005-09-27  Jackson Harper  <jackson@ximian.com>
15790
15791         * MdiChildContext.cs:
15792         * MonthCalendar.cs:
15793         * UpDownBase.cs:
15794         * ListBox.cs:
15795         * ListView.cs:
15796         * TextBoxBase.cs:
15797         * TreeView.cs:
15798         * ScrollableControl.cs:
15799         * ComboBox.cs: Add implicit controls using the new implict control
15800         functionality in ControlCollection. Also try to block multiple
15801         control add in a suspend/resume layout to save some cycles.
15802         
15803 2005-09-27  Jackson Harper  <jackson@ximian.com>
15804
15805         * Control.cs: Add functionality to the controls collection to add
15806         'implicit controls' these are controls that are created by the
15807         containing control but should not be exposed to the user. Such as
15808         scrollbars in the treeview.
15809         * Form.cs: The list var of the ControlsCollection is no longer
15810         available because of the potential of implicit controls getting
15811         ignored by someone accessing the list directly.
15812
15813 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
15814
15815         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
15816           loose it's parent. (Fixed bug introduced in r49103 when we added
15817           setting the child parent to null on Remove)
15818
15819 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
15820
15821         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
15822         * Splitter.cs: Added missing attributes for BorderStyle property.
15823         * TextBoxBase.cs: Marked Calculate* methods internal.
15824         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
15825         MS.NET.
15826
15827 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
15828          
15829         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
15830
15831 2005-09-25  Jackson Harper  <jackson@ximian.com>
15832
15833         * TreeView.cs: Update the node bounds correctly regardless of
15834         whether the node is visible.
15835
15836 2005-09-25  Jackson Harper  <jackson@ximian.com>
15837
15838         * ImageList.cs: Don't dispose the image after it is added to the
15839         image list. Only reformat images that need to be resized.
15840
15841 2005-09-25  Jackson Harper  <jackson@ximian.com>
15842
15843         * ImageList.cs: Don't set the format when changing the image.
15844
15845 2005-09-25  Jackson Harper  <jackson@ximian.com>
15846
15847         * TreeView.cs: We can't just assume the node has a font. Use the
15848         treeviews font if no node font is available.
15849
15850 2005-09-25  Jackson Harper  <jackson@ximian.com>
15851
15852         * TreeView.cs: Allow the scrollbars to be reset with negative
15853         values.
15854         - Don't add scrollbars to negative sized windows.
15855
15856 2005-09-23  Jackson Harper  <jackson@ximian.com>
15857
15858         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
15859         old Mono.Posix. Also remove some stray code that shouldn't have
15860         been committed.
15861
15862 2005-09-23  Jackson Harper  <jackson@ximian.com>
15863
15864         * TreeView.cs: Attempt at proper sizing of the horizontal
15865         scrollbar. Also don't resize the scrollbars unless they are
15866         visible.
15867
15868 2005-09-23  Jackson Harper  <jackson@ximian.com>
15869
15870         * TreeView.cs: We don't need to expand the invalid area when the
15871         selection changes, as this is all drawn in the node's bounding
15872         box. The area needs to be expanded (previous typo was contracting
15873         it) when the focus rect moves.
15874
15875 2005-09-23  Jackson Harper  <jackson@ximian.com>
15876
15877         * TreeView.cs: Display the selection box under the correct
15878         circumstances. We were rendering white text with no selection box
15879         before.
15880
15881 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
15882
15883         * TextControl.cs(Split): Now updates selection start/end if it points 
15884           into a line that's being split. Fixes a FIXME and bug #75258
15885
15886 2005-09-23  Jackson Harper  <jackson@ximian.com>
15887
15888         * Binding.cs:
15889         * ListControl.cs: Don't use the path when retrieving binding
15890         managers from the binding context. My bat sense tells me that the
15891         path is only used on insertion.
15892
15893 2005-09-22  Jackson Harper  <jackson@ximian.com>
15894
15895         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
15896
15897 2005-09-22  Jackson Harper  <jackson@ximian.com>
15898
15899         * Splitter.cs: There are special cursors used for splitting.
15900         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
15901
15902 2005-09-22  Jackson Harper  <jackson@ximian.com>
15903
15904         * Splitter.cs: Change the cursor appropriately when the splitter
15905         is moused over, so the user actually knows there is a splitter
15906         there.
15907
15908 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
15909
15910        * Label.cs : Fix ToString method to give same output as MS.NET
15911
15912 2005-09-22  Jackson Harper  <jackson@ximian.com>
15913
15914         * TreeView.cs: Create the scrollbars when the handle is created
15915         and add them right away, just make them invisble. Also account for
15916         the window being shrunk vertically to the point that the vert
15917         scrollbar needs to be added.
15918         - Remove some 0.5 adjustments to get around anti aliasing issues.
15919         
15920 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
15921          
15922         * MainMenu.cs: Fixes default value
15923         * MenuItem.cs: Fixes default value
15924
15925 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
15926
15927         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
15928
15929 2005-09-21  Jackson Harper  <jackson@ximian.com>
15930
15931         * Control.cs: Don't try to set the border style on the window if
15932         it hasn't been created. When the window is created the border
15933         style will be used.
15934
15935 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15936
15937         * Control.cs (Update): Don't call XplatUI if we don't have a
15938           window handle yet
15939
15940 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15941
15942         * ContainerControl.cs: Instead of throwing an exception, print
15943           a one-time warning about Validate not being implemented
15944         * XplatUIWin32.cs: Removed debug output
15945
15946 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
15947
15948         * Control.cs: Only set XplatUI background if we expect the windowing
15949           system to handle the background. This stops controls that draw their
15950           own background from flickering
15951
15952         * XplatUIX11.cs: Support custom visuals and colormaps for window 
15953           creation. This allows, amongst other things, using MWF X11 windows 
15954           with OpenGL.
15955
15956 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
15957
15958         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
15959           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
15960           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
15961           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
15962           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
15963           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
15964           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
15965           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
15966           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
15967           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
15968           GridColumnStylesCollection.cs, 
15969           IDataGridColumnStyleEditingNotificationService.cs,
15970           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
15971           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
15972           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
15973           TreeNodeCollection.cs, AmbientProperties.cs, 
15974           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
15975           DataObject.cs, ErrorProvider.cs, Splitter.cs,
15976           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
15977           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
15978           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
15979           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
15980           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
15981           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
15982           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
15983           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
15984           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
15985           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
15986           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
15987           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
15988           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
15989           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
15990           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
15991           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
15992           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
15993           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
15994           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
15995           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
15996           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
15997           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
15998           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
15999           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
16000           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
16001           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
16002           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
16003           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
16004           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
16005           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
16006           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
16007           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
16008           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
16009           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
16010           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
16011
16012 2005-09-21  Jackson Harper  <jackson@ximian.com>
16013
16014         * TreeNode.cs: Call Before/After Expand not Collapse when
16015         expanding.
16016
16017 2005-09-20  Jackson Harper  <jackson@ximian.com>
16018         
16019         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
16020
16021 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
16022          
16023         * ListViewItem.cs:
16024                 - Fixes bug 76120
16025                 - Fixes proper storing of subitems
16026                 - Fixes not updated items
16027
16028 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
16029
16030         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
16031           things if our window handle isn't created yet. Also disabled 
16032           debug for TextBoxBase
16033
16034 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
16035
16036         * MenuAPI.cs: Remove filtering of events to allow menu usage
16037
16038 2005-09-20  Miguel de Icaza  <miguel@novell.com>
16039
16040         * Cursor.cs: Allow null to be passed to Cursor.Current.
16041
16042 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
16043
16044         * ThemeWin32Classic.cs:
16045           - Change some private methods/fields to protected virtual so that 
16046             they can be accessed and overriden in derived classes
16047           - First refactoring of some methods. Derived themes now don't 
16048             need to duplicate the complete code from ThemeWin32Classic
16049         * ThemeNice.cs:
16050           - Added nice StatusBar
16051           - Derive from ThemeWin32Classic and not Theme
16052           - Removed duplicate ThemeWin32Classic code
16053
16054 2005-09-20  Miguel de Icaza  <miguel@novell.com>
16055
16056         * Control.cs (ControlCollection.Add): If the value null is passed
16057         the control is ignored. 
16058
16059         Optimize this loop.
16060
16061 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
16062
16063         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
16064           PostQuitMessage state.
16065         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
16066
16067 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
16068
16069         * Application.cs: Our constructor will never get called, move 
16070           initialization to fields; fixes bug #75933
16071
16072 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
16073
16074         * FileDialog.cs :
16075                 - Allow files to be selected properly using file name
16076                 combo box.
16077                 - Add ability to change diretory (absolute / relative)
16078                 using file name combo box.
16079
16080 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
16081          
16082         * ListBox.cs: 
16083                 - Fixes Multicolumn listboxes item wrong calculations
16084                 - Allows to click when only one item is in the listbox
16085                 - Fixes crash when no items using keyboard navigation
16086
16087 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
16088
16089         * ComboBox.cs: Reverted almost everything from the latest patch which
16090           broke ComboBox
16091
16092 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
16093         
16094         * ToolTip.cs:
16095                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
16096         * ComboBox.cs:
16097                 - When DropDownStyle is Simple, it does not show scrollbar 
16098                 to the last item of the list.
16099                 - When DropDownStyle is Simple, it crashed when the list was 
16100                 scrolled down with the down cursor key.
16101                 - Fixed a bug that when DropDownStyle is DropDownList, the 
16102                 selected item was not shown.
16103                 - The position of the selected item was not preserved when 
16104                 the next dropdown happened.
16105         * ThemeWin32Classic.cs:
16106                 - Items were wrapped at the right end.
16107         * CheckedListBox.cs:
16108                 - Fixed Add method
16109         * ListBox.cs:
16110                 - Items should be fully shown.
16111                 - When resizing and vertical scrollbar disappeared, the item 
16112                 of index 0 should be on the top of the list.
16113                 - GetItemRectangle should consider the size of ver. scrollbar
16114         * StatusBar.cs:
16115                 - SizingGrip area should not be allocated when it is not 
16116                 displayed.
16117                 - Now it reflects MinWidth of the containing panel and 
16118                 fixed a crash that happens when its width becomes so small.
16119
16120 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
16121
16122         * CheckedListBox.cs: Fixes bug 76028
16123         * ListBox.cs: Fixes bug 76028
16124
16125 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
16126
16127         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
16128         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
16129
16130 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
16131
16132         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
16133
16134 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
16135
16136         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
16137
16138 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
16139
16140         * IRootGridEntry.cs: Added
16141         * PropertyGridCommands.cs: Added
16142         * PropertiesTab.cs: Added missing methods and property
16143         * PropertyGridView.cs: Made class internal
16144         * PropertyGridTextBox.cs: Made class internal
16145
16146 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16147
16148         * MimeIcon.cs: Try to check some other environment variables
16149           if "DESKTOP_SESSION" returns "default"
16150
16151 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16152
16153         * ThemeNice.cs: Corrected background colors (e.g. menus)
16154         * ColorDialog.cs: Use correct background colors for controls
16155
16156 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
16157
16158         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
16159
16160 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
16161
16162         * RichTextBox.cs: Added initial implementation
16163         * lang.cs: Removed. Was accidentally checked in long time ago
16164         * TODO: Removed. Contents were obsolete
16165
16166 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
16167                                                                                 
16168         * PropertiesTab.cs : Added
16169
16170 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
16171                                                                                 
16172         * PropertyGrid.cs : Update
16173         * PropertyGridView.cs : Update
16174         * System.Windows.Forms.resx : Added images and strings
16175
16176 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
16177
16178         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
16179  
16180 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
16181
16182         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
16183           a busy loop right after the Ungrab the X11 display is otherwise 
16184           blocked
16185
16186 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
16187
16188         * ThemeWin32Classic.cs: Optimise the use of clipping
16189
16190 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
16191
16192         * DataGrid.cs: fixes recursion bug
16193
16194 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
16195
16196         * ThemeNice.cs: 
16197           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
16198           - Cleanup
16199
16200 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
16201
16202         * ThemeNice.cs: Draw nice ProgressBars
16203
16204 2005-09-01  Miguel de Icaza  <miguel@novell.com>
16205
16206         * VScrollBar.cs: Another buglet found by Aaron's tool. 
16207
16208         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
16209         bug finder.
16210
16211 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
16212
16213         * ThemeNice.cs:
16214           - Added nicer menu drawing
16215           - Updated DrawTab
16216           - some refactoring
16217
16218 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
16219
16220         * CreateParams.cs (ToString): Made output match MS
16221         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
16222             handle is already created (to avoid forcing window creation)
16223         * XplatUIX11.cs: Set window text to caption after creating window,
16224           in case Text was set before window was created
16225         * Form.cs: Use this.Text instead of a static string as caption
16226
16227 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
16228
16229         * NotifyIcon.cs: Don't set the window to visible; this screws
16230           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
16231           OnPaint without a bitmap)
16232         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
16233           happen very often anyway; we could add the check to the WM_PAINT 
16234           event generation code
16235
16236 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
16237
16238         * NotifyIcon.cs: Fill the icon area with a background color, to 
16239           avoid 'residue' when transparent icons are drawn
16240         * XplatUIX11.cs:
16241           - Handle whole_window == client_window when destroying windows
16242           - SystrayAdd(): Set client_window to whole_window value to
16243             get mouse and other events passed to NotifyIcon
16244
16245 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
16246
16247         * Form.cs: Set proper default for Opacity property
16248         * NotifyIcon.cs:
16249           - ShowSystray(): Don't bother creating telling the OS
16250             about the systray item if no icon is provided
16251           - Now handles WM_NCPAINT message to deal with whole/client window
16252             split
16253           - Create window as visible to not get caught by Expose optimization
16254         * Hwnd.cs: Removed debug message
16255         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
16256           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
16257             PaintEventStart/End to use new client argument
16258         * TextBoxBase.cs:
16259           - Commented out debug messages
16260           - Switched PaintEventStart/End to use new client argument
16261         * XplatUI.cs: Added client window bool to PaintEventStart()/
16262           PaintEventEnd() calls, to support drawing in non-client areas
16263         * XplatUIDriver.cs: 
16264           - Added client window bool to PaintEventStart()/PaintEventEnd() 
16265             calls, to support drawing in non-client areas
16266           - Added conditional compile to allow using MWF BeginInvoke 
16267             on MS runtime
16268         * XplatUIX11.cs:
16269           - Added some conditional debug output
16270           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
16271             whole/client window split
16272           - Implemented handling of client argument to PaintEventStart()/End()
16273         * Control.cs:
16274           - Throw exception if BeginInvoke() is called and the window handle
16275             or one of the window's parent handles is not created
16276           - Added conditional compile to allow using MWF BeginInvoke on
16277             MS runtime
16278           - get_Parent(): Only sets parent if handle is created. This avoids
16279             forcing window handle creation when parent is set.
16280           - Now fires Layout and Parent changed events in proper order
16281           - Switched to use Handle instead of window.Handle for Z-Order setting,
16282             the get_Parent() patch above causes us to possibly get null for 'window'
16283           - Implemented handling of client argument to PaintEventStart()/End()
16284           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
16285             default handling)
16286           - Now sends a Refresh() to all child windows when Refresh() is called
16287
16288 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
16289
16290         * Form.cs: Added (non-functional) Opacity property
16291         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
16292
16293 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
16294         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
16295           use export MONO_THEME=nice to activate it.
16296           Currently supported controls:
16297           - Button
16298           - ComboBox
16299           - ScrollBar
16300           - TabControl (TabAlignment.Top only, other will follow)
16301         * ThemeEngine.cs: Add theme nice
16302         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
16303           if enabled
16304
16305 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
16306
16307         * Splitter.cs: Resize docked control and its neighbor.
16308
16309 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16310         -- Making Windows with Menus layout correctly --
16311         * Form.cs : The first leg of the fix
16312                 Menu setter - adjust Client Size as needed to make space for the menu
16313                 SetClientSizeCore - doesn't call base version to be able to pass the 
16314                         menu handle to XplatUI.CalculateWindowRect
16315         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
16316         * XplatUIX11.cs: The critical second leg of the fix
16317                 GetWindowPos needs to use a recalculated client_rect
16318                 so that resizing the window doesn't break layout of child controls. 
16319                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
16320                 Lots of \t\n killed
16321
16322 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
16323
16324         * Label.cs: Now properly recalculates width and height on Font and Text
16325           changes if AutoSize is set
16326
16327 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
16328         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
16329
16330 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
16331
16332         * ImageList.cs: Makes ToString method compatible with MS
16333
16334 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
16335
16336         * MenuAPI.cs: fixes bug 75716
16337
16338 2005-08-11 Umadevi S <sumadevi@novell.com>
16339         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
16340
16341 2005-08-11 Umadevi S <sumadevi@novell.com>
16342         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
16343
16344 2005-08-10  Umadevi S <sumadevi@novell.com>
16345         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
16346
16347 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
16348
16349         * Menu.cs: fixes bug 75700
16350         * MenuAPI.cs: fixes navigation issues
16351
16352 2005-08-09  Umadevi S <sumadevi@novell.com>
16353         * CheckedListBox.cs - simple fix for GetItemChecked.
16354
16355 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
16356
16357         * ComboBox.cs: Serveral fixes
16358         * ListBox.cs: Serveral fixes
16359
16360 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16361
16362         * ComboBox.cs: Fixes FindString methods and GetItemHeight
16363         * ListBox.cs: Fixes FindString methods
16364
16365 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
16366
16367         * DataGrid.cs: fixes bugs exposed by new tests
16368
16369 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
16370
16371         * Mime.cs: Compile Mono assembly references only if compiling
16372           with Mono (Allows to build with VS.Net again)
16373
16374 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
16375
16376         * Control.cs (PaintControlBackground): Draw background image
16377         corrrectly.
16378         (CheckForIllegalCrossThreadCalls): Stubbed.
16379         
16380         * Form.cs (OnCreateControl): Center when should be centered.
16381         
16382         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
16383
16384 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
16385
16386         * Binding.cs: Binding to properties should be case unsensitive
16387
16388 2005-07-18 vlindos@nucleusys.com
16389
16390         * DataGrid.cs: fixes setmember order
16391
16392 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
16393
16394         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
16395         * FileDialog.cs: FileDialog is now resizable and uses the new
16396           MimeIconEngine
16397
16398 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
16399
16400         * DataGridTextBoxColumn.cs: default value
16401         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
16402         * GridTableStylesCollection.cs: fixes checking MappingName
16403         * DataGridDrawingLogic.cs: fixes drawing logic issues
16404         * DataSourceHelper.cs: rewritten to make compatible with more data sources
16405         * DataGrid.cs: fixes    
16406
16407 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
16408
16409         * MimeGenerated.cs: Use case sensitive comparer for
16410           NameValueCollections
16411
16412 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
16413
16414         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
16415         * ThemeWin32Classic.cs: bug fixes, code refactoring
16416         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
16417         * DataGrid.cs: bug fixes, code refactoring
16418         * DataGridTextBox.cs: bug fixes, code refactoring
16419         * DataGridColumnStyle.cs:  bug fixes, code refactoring
16420         * Theme.cs:  bug fixes, code refactoring
16421
16422 2005-07-01  Peter Bartok  <pbartok@novell.com> 
16423
16424         * TextControl.cs: Quick fix for the reported crash on ColorDialog
16425           and other text box usage
16426
16427 2005-07-01  Jackson Harper  <jackson@ximian.com>
16428
16429         * TabControl.cs: Make sure the bottom of the tab covers the pages
16430         border.
16431
16432 2005-06-30  Peter Bartok  <pbartok@novell.com> 
16433
16434         * Form.cs (ShowDialog): Assign owner of the dialog
16435         * TextBoxBase.cs: Always refresh caret size when deleting, caret
16436           might have been moved to a tag with different height
16437
16438 2005-06-30  Jackson Harper  <jackson@ximian.com>
16439
16440         * Form.cs: Don't create an infinite loop when setting focus
16441         * MenuItem.cs: Don't dirty the parents if we don't have any
16442
16443 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
16444
16445         * LibSupport.cs: Rename
16446
16447 2005-06-29  Peter Bartok  <pbartok@novell.com>
16448
16449         * TextBoxBase.cs: Re-align caret after deleting a character
16450         * TextControl.cs:
16451           - DeleteChars(): Ensure that tag covers the provided position
16452           - StreamLine(): Drop reference for dropped tag
16453
16454 2005-06-29  Peter Bartok  <pbartok@novell.com> 
16455
16456         * TextControl.cs: 
16457           - Selections now work properly, anchoring at the initial location
16458             and properly extending in either direction (SetSelectionToCaret(),
16459             SetSelectionStart() and SetSelectionEnd())
16460           - No longer redraws the whole control on selection change, now
16461             calculates delta between previous and new selection and only
16462             invalidates/redraws that area
16463           - Fixed FindPos() math off-by-one errors
16464           - Changed DeleteChars() to verify the provided tag covers the
16465             provided position, selections may have a tag that doesn't cover
16466             the position if the selection is at a tag border
16467           - Fixed off-by-one errors in DeleteChars()
16468           - Added missing streamlining check in DeleteChars() to remove
16469             zero-length tags
16470           - Implemented Invalidate() method, now properly calculates exposures
16471             between two given lines/positions
16472           - Implemented SetSelection()
16473           - Obsoleted and removed FixupSelection()
16474           - Improved RecalculateDocument() logic, removing code duplication
16475
16476 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16477
16478         * LibSupport.cs: changes to match different input/output arguments.
16479
16480 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16481
16482         * LibSupport.cs: added libsupport.so init routine.
16483
16484 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
16485         
16486         * ControlBindingsCollection.cs
16487                 - Throws an exception on null datasource when adding
16488                 - Checks for duplicated bindings when adding
16489
16490 2005-06-28  Jackson Harper  <jackson@ximian.com>
16491
16492         * TreeView.cs (OnKeyDown): Support left and right properly
16493         (navigates as well as expanding and collapsing.
16494         - Add support for Multiply, this expands all the selected nodes
16495         children.
16496         - Fix some tabbing.
16497
16498 2005-06-28  Jackson Harper  <jackson@ximian.com>
16499
16500         * TreeView.cs: Implement keyboard navigation, currently supports,
16501         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
16502         support for toggling checkboxes with the space bar.
16503
16504 2005-06-28  Jackson Harper  <jackson@ximian.com>
16505
16506         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
16507         tree.
16508
16509 2005-06-28  Jackson Harper  <jackson@ximian.com>
16510
16511         * TreeView.cs: Add missing event.
16512
16513 2005-06-27  Peter Bartok  <pbartok@novell.com> 
16514
16515         * TextControl.cs:
16516           - Made line ending size configurable (now allows for counting 
16517             lineendings as \n or \r\n)
16518           - Added margin to viewport to keep caret visible on right side
16519           - Fixed translation routines for line/pos to documentpos to consider
16520             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
16521           - Fixed some line-endings to be unix style
16522           - Fixed Document.FormatText to perform it's calculations 1-based
16523           - Added descriptions for a few methods that might otherwise get 
16524             used wrong
16525           - Added NOTE section with some basic conventions to remember at 
16526             the top of the file
16527           - Major fixup for RichTextBox selection drawing:
16528             * Fixed crashes when multiple tags on a single line were selected
16529             * fixed selection box drawing not overlaying text
16530             * fixed bogus offset calculation for tags not starting at index 1
16531             * Switched behaviour from using multiple Substrings of a 
16532               StringBuilder.ToString() to using multiple 
16533               StringBuilder.ToString(start, length) statements, hoping this is
16534               faster (kept original version commented out in the code, in case
16535               original version was faster)
16536         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
16537           alignment != Left
16538         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
16539           call it as well
16540
16541 2005-06-27  Jackson Harper  <jackson@ximian.com>
16542
16543         * TabControl.cs: Move to the left and right with the arrow
16544         keys. These keys don't cycle beyond first and last like
16545         tab. Refresh all the tabs when scrolling them to the left or
16546         right.
16547
16548 2005-06-27  Jackson Harper  <jackson@ximian.com>
16549
16550         * TabControl.cs:
16551           - ToString: Added method
16552           - CreateParams: Remove TODO and comment
16553           - OnKeyDown: Cycle through bounds properly.
16554           - SelectedIndex: Scroll to the right or left if we need to
16555           display the newly selected tab.
16556
16557 2005-06-23  Jackson Harper  <jackson@ximian.com>
16558
16559         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
16560         set.
16561
16562 2005-06-23  Jackson Harper  <jackson@ximian.com>
16563
16564         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
16565         CTRL-SHIFT-TAB, and HOME, END are there any others?
16566
16567 2005-06-23  Jackson Harper  <jackson@ximian.com>
16568
16569         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
16570
16571 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16572         
16573         * DataGridTextBoxColumn.cs: fixes and enhancements
16574         * ThemeWin32Classic.cs: fixes and enhancements
16575         * DataGridBoolColumn.cs:  fixes and enhancements
16576         * DataGridDrawingLogic.cs:  fixes and enhancements
16577         * CurrencyManager.cs: fixes and enhancements
16578         * DataGrid.cs: fixes and enhancements
16579         * DataGridColumnStyle.cs:  fixes and enhancements
16580
16581 2005-06-22  Jackson Harper  <jackson@ximian.com>
16582
16583         * TabControl.cs: Add some missing methods that just call into the
16584         base. Make the TabPageCollection's IList interface behave in the
16585         same manner as the MS implementation.
16586
16587 2005-06-22  Peter Bartok  <pbartok@novell.com> 
16588
16589         * TextControl.cs: Added sanity check
16590         * TextBoxBase.cs: 
16591           - Fixed wrapping behaviour, don't set wrap on single line controls
16592             (this fixes the breakage of colordialog introduced in an earlier
16593              checkin)
16594           - Added rudimentary support for autoscrolling right-aligned controls
16595             (still needs fixing, also, center alignment scroll is missing)
16596
16597 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
16598         
16599         * ScrollBar.cs: Fixes thumbpos on Maximum values
16600
16601 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
16602         
16603         * PropertyGridView.cs: Pass context information to UITypeEditors 
16604
16605 2005-06-21  Peter Bartok  <pbartok@novell.com> 
16606
16607         * TextBoxBase.cs:
16608           - Now calling PositionCaret with absolute space coordinates
16609           - Enabled vertical scrolling
16610           - Better tracking of scrollbar changes, tied into WidthChange
16611             event
16612           - Improved cursor tracking
16613           - Removed debug output
16614         * TextControl.cs:
16615           - PositionCaret coordinates are now works in absolute space, not 
16616             the canvas
16617           - Improved tracking of document size
16618           - Added events for width and height changes
16619
16620 2005-06-21  Peter Bartok  <pbartok@novell.com>
16621
16622         * Form.cs: Set focus to active control when form is activated
16623         * TextControl.cs: 
16624           - Added word-wrap functionality to RecalculateLine() 
16625           - Added some short function descriptions for VS.Net to aid in
16626             writing dependent controls
16627           - Added Caret property, returning the current coords of the caret
16628           - Added ViewPortWidth and ViewPortHeight properties
16629           - Added Wrap property
16630           - Added CaretMoved event
16631           - Removed some old debug code
16632           - Split() can now create soft splits
16633           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
16634           - Added method to format existing text
16635           - Fixed size/alignment calculations to use viewport
16636           - RecalculateDocument now can handle changing line-numbers while
16637             calculating lines
16638
16639         * TextBox.cs:
16640           - Added some wrap logic, we don't wrap if alignment is not left
16641           - Added casts for scrollbar var, base class switched types to
16642             also support RichTextBoxA
16643           - Implemented handling of scrollbar visibility flags
16644
16645         * TextBoxBase.cs:
16646           - Switched scrollbars type to RichTextBoxScrollBars to support
16647             RichTextBox
16648           - Added tracking of canvas width/height
16649           - Switched scrollbars to be not selectable (to keep focus on text)
16650           - Added central CalculateDocument() method to handle all redraw
16651             requirements
16652           - Added ReadOnly support
16653           - Added WordWrap support
16654           - Fixed handling of Enter key (we now treat it as a DialogKey)
16655           - Fixed caret positioning when h or v scroll is not zero
16656           - Fixed placing/generation of vertical scrollbar
16657           - Added CalculateScrollBars() method to allow updating scrollbar
16658             limits and visibility
16659           - Fixed handling of horizontal scroll
16660           - Added handling of vertical scroll
16661           - Implemented auto-'jump' when caret moves to close to a left or
16662             right border and there is text to be scrolled into view (currently
16663             there's the potential for a stack overflow, until a bug in
16664             scrollbar is fixed)
16665
16666 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
16667         
16668         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
16669
16670 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
16671
16672         * Mime.cs:
16673         - added inodes.
16674         - return application/x-zerosize for files with size zero
16675           (if no extension pattern matches).
16676         - check matches collection for strings too.
16677         - return only the first mime type if the name value
16678           collection has more than one mime type.
16679
16680 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
16681         
16682         * PropertyGrid.cs: Cleaned up some TODOs
16683         * PropertyGridView.cs: Added support for UITypeEditors
16684
16685 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16686         
16687         * DataGrid.cs: clears cached value
16688
16689 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
16690
16691         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
16692         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
16693         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
16694         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
16695         
16696 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
16697
16698         * ThemeWin32Classic.cs: fixes colour
16699
16700 2005-06-15  Peter Bartok  <pbartok@novell.com>
16701
16702         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
16703         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
16704         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
16705         * Control.cs: Added some MWFCategory and MWFDescription attributes
16706         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
16707
16708 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
16709
16710         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
16711         usage
16712
16713 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
16714
16715         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
16716         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
16717         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
16718         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
16719         * DataGrid.cs: default datagrid settings for Default Styles, fixes
16720         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
16721
16722 2005-06-13  Jackson Harper  <jackson@ximian.com>
16723
16724         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
16725         isn't printed when the user enables dropping. (X11 does accept
16726         drops).
16727         
16728 2005-06-13  Jackson Harper  <jackson@ximian.com>
16729
16730         * TreeView.cs: Remove some TODOS.
16731
16732 2005-06-13  Jackson Harper  <jackson@ximian.com>
16733
16734         * Form.cs: Hook into the mdi framework.
16735         * MdiClient.cs: Use the base control collections add method so
16736         parents get setup correctly. Set the default back colour and dock
16737         style.
16738         * MdiChildContext.cs: New class, this bad actor handles an
16739         instance of an MDI window. Right now there is only basic
16740         support. You can drag, close, and resize windows. Minimize and
16741         Maximize are partially implemented.
16742
16743 2005-06-13  Jackson Harper  <jackson@ximian.com>
16744
16745         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
16746         freaky when both vals are negative. NOTE: There are probably other
16747         places in XplatUIX11 that this needs to be done.
16748
16749 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
16750
16751         * DataGrid.cs: implement missing methods, move KeyboardNavigation
16752         * DataGridColumnStyle.cs: fixes signature
16753
16754 2005-06-12  Jackson Harper  <jackson@ximian.com>
16755
16756         * XplatUIX11.cs: Use sizing cursors similar to the ones on
16757         windows.
16758
16759 2005-06-11  Jackson Harper  <jackson@ximian.com>
16760
16761         * StatusBarPanel.cs: Signature cleanups. Implement
16762         BeginInit/EndInit.
16763
16764 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
16765
16766         * DataGridTextBoxColumn.cs: Honors aligment
16767         * GridColumnStylesCollection.cs: Contains is case unsensitive
16768         * GridTableStylesCollection.cs: several fixes
16769         * DataGridTableStyle.cs: default column creation
16770         * DataGridDrawingLogic.cs: fixes
16771         * CurrencyManager.cs: ListName property
16772         * DataGrid.cs: multiple styles support
16773         * DataGridColumnStyle.cs: fixes
16774         
16775
16776 2005-06-10  Peter Bartok  <pbartok@novell.com>
16777
16778         * Control.cs(Select): Moved SetFocus call to avoid potential
16779           loops if controls change the active control when getting focus
16780         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
16781           the up/down buttons
16782
16783 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
16784
16785         * ImageListConverter.cs: Implemented
16786
16787 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16788
16789         * MonthCalendar.cs: Wired in NumericUpDown control for year
16790
16791 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
16792
16793         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
16794           DoubleClick events, since they are not meant to be fired.
16795
16796 2005-06-09  Peter Bartok  <pbartok@novell.com>
16797
16798         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
16799           Jonathan's standalone controls into MWF, implemented missing
16800           events, attributes and methods; added xxxAccessible classes
16801         * AccessibleObject.cs: Made fields internal so other classes
16802           can change them if needed
16803
16804 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
16805
16806         * UpDownBase.cs: Complete implementation
16807         * NumericUpDown.cs: Complete implementation
16808         * DomainUpDown.cs: Complete implementation
16809
16810 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
16811
16812         * DataGridTextBoxColumn.cs: drawing fixes
16813         * DataGridCell.cs: fixes ToString method to match MSNet
16814         * DataGridTableStyle.cs: fixes
16815         * DataGridBoolColumn.cs: fixes, drawing
16816         * DataGridDrawingLogic.cs: fixes, new methods
16817         * DataGridTextBox.cs: Keyboard and fixes
16818         * DataGrid.cs:
16819                 - Keyboard navigation
16820                 - Scrolling fixes
16821                 - Row selection (single, multiple, deletion, etc)
16822                 - Lots of fixes
16823         
16824 2005-06-07  Jackson Harper  <jackson@ximian.com>
16825
16826         * ThemeWin32Classic.cs: Clear the background area when drawing
16827         buttons.
16828
16829 2005-06-06  Peter Bartok  <pbartok@novell.com>
16830
16831         * ImageListStreamer.cs: Fixed signature for GetData
16832         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
16833         * ComboBox.cs:
16834           - Added missing ChildAccessibleObject class
16835           - Added missing OnXXXFocus overrides, switched to using those
16836             instead of the event handler
16837         * Control.cs:
16838           - Added Parent property for ControlAccessibleObject
16839           - Fixed signatures
16840           - Fixed attributes
16841           - Added ResetBindings()
16842         * ListBindingConverter.cs: Implemented some methods
16843         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
16844         * ImageList.cs: Implemented basic handle scheme, removed TODOs
16845         * ContainerControl.cs: Fixed signature, now subscribing to the
16846           ControlRemoved event instead of overriding the handler, LAMESPEC
16847         * CurrencyManager.cs: Added missing attribute
16848         * MonthCalendar.cs: Added missing properties
16849
16850 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16851
16852         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
16853         
16854 2005-06-06  Gaurav Vaish and Ankit Jain
16855
16856         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
16857         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
16858         
16859 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
16860
16861         * Control.cs: fixes CreateParams Width / Height.
16862
16863 2005-06-05  Peter Bartok  <pbartok@novell.com>
16864
16865         * Win32DnD.cs: Removed compilation warnings
16866
16867 2005-06-05  Peter Bartok  <pbartok@novell.com>
16868
16869         * Control.cs (CreateParams): Since we don't know if one of the
16870           properties we use is overridden, lets make sure if we fail accessing
16871           we continue with a backup plan
16872
16873 2005-06-05  Peter Bartok  <pbartok@novell.com>
16874
16875         * Win32DnD.cs:
16876           - Removed debug output
16877           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
16878             struct
16879           - Plugged resource leak
16880         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
16881           MS size
16882
16883 2005-06-05  Peter Bartok  <pbartok@novell.com>
16884
16885         * XplatUIWin32.cs: Removed DnD code
16886         * Win32DnD.cs: Implemented drop source and drop target functionality
16887
16888 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16889
16890         * UpDownBase.cs: remove duplicate addition of event, enable some code
16891         that was commented out.
16892         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
16893         Validate input when a key is pressed. It works fine now for every
16894         combination of Hexadecimal. Only missing some drawing love when sharing
16895         space with other controls.
16896
16897 2005-06-04  Peter Bartok  <pbartok@novell.com>
16898
16899         * Control.cs:
16900           - We need to pass a window for DragDrop, so enable callback events
16901           - Added DnD callback events when being a DragSource
16902         * XplatUI.cs (StartDrag): Added window handle argument
16903         * XplatUIDriver.cs (StartDrag): Added window handle argument
16904         * QueryContinueDragEventArgs: Made fields internally accessible so
16905           drivers can set them
16906         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
16907           can set them
16908
16909 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
16910
16911         * DataGridTextBoxColumn.cs: column text editing
16912         * DataGridTableStyle.cs: Respect columns styles created by the user
16913         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
16914         * DataGridBoolColumn.cs: bool column editing
16915         * DataGrid.cs: fixes to scrolling, properties, etc
16916         * DataGridTextBox.cs: handle keyboard
16917         * DataGridColumnStyle.cs: fixes
16918
16919 2005-06-02  Jackson Harper  <jackson@ximian.com>
16920
16921         * ImageListStreamer.cs: Somewhat broken implementation of
16922         GetObjectData. The RLE needs some work to match MS properly.
16923
16924 2005-06-02  Jackson Harper  <jackson@ximian.com>
16925
16926         * X11Dnd.cs: Attempting to keep at least one file in MWF
16927         monostyled.
16928
16929 2005-06-02  Peter Bartok  <pbartok@novell.com>
16930
16931         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
16932           that way
16933
16934 2005-06-02  Peter Bartok  <pbartok@novell.com>
16935
16936         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
16937         * XplatUI.cs: Added DoDragDrop() method
16938         * XplatUIDriver.cs: Added DoDragDrop() method
16939
16940 2005-06-02  Jackson Harper  <jackson@ximian.com>
16941
16942         * Splitter.cs: Implement BorderStyle.
16943
16944 2005-06-02  Jackson Harper  <jackson@ximian.com>
16945
16946         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
16947         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
16948         X11 using XDND.
16949
16950 2005-06-02  Peter Bartok  <pbartok@novell.com>
16951
16952         * DataObject.cs:
16953           - Added Data setter
16954           - Fixed broken insertion code for SetData, now also
16955             overwrites any existing entry of the same format name
16956         * Hwnd.cs: Added list of pointers that automatically gets
16957           freed when the window is disposed
16958         * XplatUI.cs: Call driver initialization method when loading
16959           a driver
16960         * Control.cs:
16961           - OnDragLeave takes EventArgs, not DragEventArgs
16962           - Added setting of WS_EX_ACCEPTFILES style when dropping is
16963             supported
16964           - Forces style update when drop state changes
16965         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
16966           not perfect since we cannot (yet) call the IDataObject.GetData()
16967           method, we keep getting 0x80004005 error, dunno why)
16968
16969 2005-06-02  Peter Bartok  <pbartok@novell.com>
16970
16971         * DragEventArgs.cs: Make fields internal so we can cache the
16972           object and re-set the fields from XplatUI
16973
16974 2005-06-02  Jackson Harper  <jackson@ximian.com>
16975
16976         * Control.cs: Add some internal methods so the DnD subsystem can
16977         raise DnD events. Also call into the driver when AllowDrop is set.
16978         * XplatUI.cs:
16979         * XplatUIDriver.cs: New method for setting whether or not a window
16980         is allowed to accept drag and drop messages.
16981                 
16982 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
16983         
16984         * ScrollBar.cs: Make sure that values sent in Scroll events
16985         are always between Maximum and Minimum.
16986
16987 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
16988
16989         * Menu.cs: Call MenuChanged when menuitem visibility has been
16990         changed.
16991         * MenuItem.cs: Rebuild menu when item is (not) visible.
16992         * MainMenu.cs: MainMenu has special MenuChanged.
16993         * Theme.cs: Caption and FrameBorderSize are not fixed.
16994         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
16995         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
16996         * XplatUIX11.cs,
16997         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
16998         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
16999
17000 2005-05-30  Jackson Harper  <jackson@ximian.com>
17001
17002         * DataFormat.cs: We can't statically initialize this stuff because
17003         it calls into the xplatui and could create a loop. So we lazy init
17004         it.
17005
17006 2005-05-28  Jackson Harper  <jackson@ximian.com>
17007
17008         * Control.cs: Proper implementation of Product(Name/Version).
17009
17010 2005-05-27  Jackson Harper  <jackson@ximian.com>
17011
17012         * DataObject.cs: Dont crash if no data is found.
17013
17014 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
17015         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
17016                 as per status page, guessing it should be set to true
17017
17018 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
17019
17020         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
17021         * DataGridTableStyle.cs: set proper formatting text, def header text
17022         * ThemeWin32Classic.cs: new themable paramaters
17023         * DataGridBoolColumn.cs: paint check box, get data, fixes
17024         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
17025         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
17026         * DataGridColumnStyle.cs: fixes
17027         * Theme.cs: new themable paramaters
17028                 
17029 2005-05-26  Peter Bartok  <pbartok@novell.com>
17030
17031         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
17032
17033 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17034         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
17035
17036 2005-05-24  Peter Bartok  <pbartok@novell.com>
17037
17038         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
17039           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
17040           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
17041           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
17042           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
17043           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
17044           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
17045           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
17046           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
17047           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
17048           missing attributes, etc
17049         * DataGridPreferredColumnWidthTypeConverter.cs: Added
17050
17051 2005-05-24  Peter Bartok  <pbartok@novell.com>
17052
17053         * Help.cs: Added, implemented trivial functions, throws up MessageBox
17054           when user tries to get help
17055         * DataObject.cs, DataFormats.cs, LinkArea.cs,
17056           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
17057           to suppress warnings
17058         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
17059           avoid unreachable code warning
17060
17061 2005-05-20  Peter Bartok  <pbartok@novell.com>
17062
17063         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
17064
17065 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17066
17067         * DataGridTextBoxColumn.cs: Basic painting methods
17068         * DataGridTableStyle.cs: Set table style in the column
17069         * ThemeWin32Classic.cs: Use Theme for colors
17070         * DataGridDrawingLogic.cs: Implement more drawing
17071         * DataGrid.cs: drawing, theming, enhacements, fixes
17072         * DataGridColumnStyle.cs: fixes, drawing
17073         * Theme.cs: theming for Datagrid
17074
17075 2005-05-20  Peter Bartok  <pbartok@novell.com>
17076
17077         * Cursor.cs: Implemented GetObjectData() method
17078
17079 2005-05-20  Peter Bartok  <pbartok@novell.com>
17080
17081         * Cursors.cs: Added setting of cursor name
17082         * Cursor.cs:
17083           - Implemented constructors
17084           - Implemented Draw and DrawStretched
17085           - Implemented Current property
17086           - Implemented == and != operators
17087           - Implemented Dispose()
17088           - Implemented ToString
17089           - Added missing attributes
17090         * XplatUIX11.cs:
17091           - Added missing reset for OverrideCursor when DoEvents is called
17092           - Fixed creation of cursor, logic was wrong
17093         * XplatUIWin32.cs:
17094           - Added missing reset for OverrideCursor when DoEvents is called
17095           - Fixed creation of cursor, bit arrays were swapped
17096         * Clipboard.cs: Removed obsolete MonoTODO attribute
17097
17098 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17099
17100         * ComboBox.cs: fixes OnSelectedItemChanged
17101         * ControlBindingsCollection.cs: fixes item range check
17102
17103 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
17104
17105         * UpDownBase.cs:
17106                 - Calc preferred height properly
17107                 - Implement missing properties
17108                 
17109         * NumericUpDown.cs: Implement missing events
17110
17111 2005-05-19  Jackson Harper  <jackson@ximian.com>
17112
17113         * TabControl.cs: New method that resizes the tab pages before
17114         redrawing them. This as needed as the control is double buffered
17115         and sizing will not be recalculated unless ResizeTabPages is
17116         called.
17117         * TabPage.cs: Set base.Text instead of Text in the constructor so
17118         that UpdateOwner does not get called. Use the new Redraw method of
17119         TabControl instead of Refresh so the sizing is recalculated.
17120         * ThemeWin32Classic.cs: Draw the text for button tabs.
17121
17122 2005-05-19  Jackson Harper  <jackson@ximian.com>
17123
17124         * Control.cs: Paint control background images. Fix typo where
17125         PaintControlBackground was not getting called correctly.
17126
17127 2005-05-19  Peter Bartok  <pbartok@novell.com>
17128
17129         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
17130           I can investigate, apparently I broke FileDialog
17131
17132 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
17133
17134         * AxHost.cs: Some simple properties.
17135         * Control.cs: window must be accessible after ctor.
17136         * Form.cs: Added TransparencyKey property.
17137         * TextBoxBase.cs: Implemented Clear. Text property can be null.
17138         * XplatUIWin32.cs: SetBorderStyle implemented.
17139
17140 2005-05-18  Peter Bartok  <pbartok@novell.com>
17141
17142         * DataObject.cs: Entries are not global but particular to the
17143           DataObject, now it behaves that way
17144         * XplatUIWin32.cs: Implemented Clipboard methods
17145         * Clipboard.cs: Implemented
17146         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
17147         * XplatUIOSX.cs: Updated to final clipboard prototypes
17148         * XplatUIX11.cs: Implemented Clipboard methods
17149         * XplatUIDriver.cs: Updated to final clipboard prototypes
17150         * XplatUIStructs.cs:
17151           - Added BITMAPINFOHEADER struct
17152           - Added ClipboardFormats enum
17153         * X11Structs.cs:
17154           - Added ClipboardStruct
17155           - Added Atom enum items for clipboard types
17156           - Fixed atom types for Selection event structures
17157         * DataFormats.cs:
17158           - Added internal properties and methods for drivers to enumerate
17159             all known formats
17160           - Switched initialization method to allow drivers to assign their
17161             own IDs even for the MS predefined clipboard IDs
17162         * XplatUI.cs: Updated to final clipboard interface
17163
17164 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17165         * PropertyGridView.cs: Fixed compiler warnings.
17166
17167 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
17168         * PropertyGrid.cs: Added some event calls
17169         * PropertyGridView.cs: Change drawing code to use double buffering
17170         * PropertyGridTextBox.cs: Changed Text property name
17171         * GridItem.cs: Added Bounds property.
17172         * GridEntry.cs: Added Bounds property.
17173
17174 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
17175
17176         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
17177         since GetType() may not return the correct type if the object is
17178         a remoting proxy.
17179
17180 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
17181
17182         * TreeNodeCollection.cs: fixes get/set item ranges
17183         
17184 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
17185
17186         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
17187                 
17188 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
17189
17190         * ComboBox.cs: Fix item range comparation
17191         * ListView.cs: Fix item range comparation
17192
17193 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17194
17195         * FontDialog.cs:
17196           - Clear example panel when OnPaint is called
17197           - Better solution for displaying the example panel text
17198           - Select default indexes in the ListBoxes
17199
17200 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
17201
17202         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
17203
17204 2005-05-11  Peter Bartok  <pbartok@novell.com>
17205
17206         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
17207         * SelectionRangeConverter.cs: Implemented
17208         * PropertyGrid.cs: Fixed attribute value
17209         * Control.cs:
17210           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
17211           - Added Sebastien Pouliot's CAS Stack Propagation fixes
17212         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
17213           that's common to all drivers. First methods to go there are
17214           Sebastien Pouliot's CAS Stack Propagation helper methods
17215         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
17216           Sebastien Pouliot for CAS Stack Propagation
17217
17218 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
17219
17220         * OSXStructs.cs:
17221           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
17222
17223 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
17224
17225         * DataGridTextBoxColumn.cs: fixed some members
17226         * GridColumnStylesCollection.cs: indexed column is case insensitive
17227         * DataGridTableStyle.cs: fixes
17228         * ThemeWin32Classic.cs: add new theme parameter
17229         * Theme.cs: add new theme parameter
17230         * DataGridDrawingLogic.cs: Datagrid's drawing logic
17231         * DataGrid.cs: fixes, new internal properties, etc.
17232         * DataGridColumnStyle.cs: allows to set grid value
17233         *
17234
17235 2005-05-10  Peter Bartok  <pbartok@novell.com>
17236
17237         * AccessibleObject.cs:
17238           - Removed MonoTODO attribute on help, method is correct
17239           - Fixed Bounds property
17240         * AxHost.cs: Moved MonoTODO
17241         * ButtonBase.cs: Now setting AccessibleObject properties
17242         * RadioButton.cs: Setting proper AccessibleObject role
17243         * CheckBox.cs: Setting proper AccessibleObject role
17244         * ControlBindingsCollection.cs: Added properties, methods and attributes
17245         * DataFormats.cs: Fixed awkward internal API, and changed to enable
17246           userdefined DataFormats.Format items as well
17247         * ListControl.cs: Removed data_member from the public eye
17248         * OpenFileDialog.cs:
17249           - Made class sealed
17250           - Added missing attributes
17251         * SaveFileDialog.cs: Added missing attributes
17252         * ImageListStreamer.cs: Fixed code that caused warnings
17253         * LinkLabel.cs: Removed unreachable code
17254         * TreeView.cs: Fixed code that caused warnings
17255         * PropertyGridView.cs: Fixed code that caused warnings
17256         * GridColumnStylesCollection.cs: Added missing attributes
17257         * GridTableStylesCollection: Added missing attribute
17258         * PropertyManager: Added .ctor
17259         * SecurityIDType: Added
17260         * DataObject.cs: Implemented class
17261         * LinkArea.cs: Added missing attribute
17262
17263 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
17264
17265         * RadioButton.cs: call base method to allow to fire OnClick event
17266         * UpDownBase.cs: OnMouseUp call base method
17267         * CheckedListBox.cs: call base method before returning
17268         * TrackBar.cs: call base method before returning
17269         
17270
17271 2005-05-10  Peter Bartok  <pbartok@novell.com>
17272
17273         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
17274           for messages
17275
17276 2005-05-10  Peter Bartok  <pbartok@novell.com>
17277
17278         * DataFormats.cs: Implemented
17279         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
17280           XplatUIX11.cs: Added Clipboard APIs
17281         * XplatUIWin32.cs: Implemented Clipboard APIs
17282         * FolderBrowserDialog.cs: Added missing event, attributes
17283
17284 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
17285
17286         * CheckBox.cs: call base method to allow to fire OnClick event
17287
17288 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
17289
17290         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
17291
17292 2005-05-06  Peter Bartok  <pbartok@novell.com>
17293
17294         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
17295         * Screen.cs: Implemented
17296         * HelpNavigator.cs: Added
17297         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
17298           property
17299         * HelpProvider.cs: Implemented all we can do until we have a CHM
17300           help library (which means that "What's This" does work now)
17301
17302 2005-05-06  Jackson Harper  <jackson@ximian.com>
17303
17304         * XplatUIX11.cs: Fix waking up the main loop.
17305                 
17306 2005-05-05  Peter Bartok  <pbartok@novell.com>
17307
17308         * XplatUI.cs: Updated revision
17309         * Form.cs: Removed enless loop
17310         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
17311         * Label.cs (OnPaint): Added call to base.OnPaint()
17312         * ToolTip.cs: Made ToolTipWindow reusable for other controls
17313         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
17314         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
17315         * AxHost.cs: Added
17316         * ButtonBase.cs: Moved base.OnPaint() call to end of method
17317         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
17318           to ToolTip.ToolTipWindow for drawing and size methods; this allows
17319           reuse of ToolTipWindow by other controls
17320         * SizeGrip.cs: Moved base.OnPaint() call to end of method
17321         * XplatUIX11.cs: Now clipping drawing area (experimental)
17322         * PictureBox.cs: Moved base.OnPaint() call to end of method
17323         * Theme.cs: Fixed ToolTip abstracts to match new format
17324         * ErrorProvider.cs: Implemented
17325
17326 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
17327
17328         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
17329         * LinkLabel.cs:
17330                 - Adds cursors
17331                 - Handles focus
17332                 - Implements LinkBehavior
17333                 - Fixes many issues
17334
17335 2005-05-03  Jackson Harper  <jackson@ximian.com>
17336
17337         * ListView.cs: Calculate the scrollbar positioning on resize and
17338         paint, so they get put in the correct place.
17339
17340 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
17341
17342         * ColorDialogs.cs: The small color panels are now handled by
17343           SmallColorControl. This fixes drawing of the focus rectangle
17344           and adds a 3D border.
17345
17346 2005-05-03  Peter Bartok  <pbartok@novell.com>
17347
17348         * Control.cs: Modified version of Jonathan Chamber's fix for
17349           double-buffering
17350
17351 2005-05-03  Jackson Harper  <jackson@ximian.com>
17352
17353         * ListView.cs: Remove redraw variable. Control now handles whether
17354         or not a redraw needs to be done, and will only raise the paint
17355         event if redrawing is needed.
17356
17357 2005-05-03  Jackson Harper  <jackson@ximian.com>
17358
17359         * Splitter.cs: No decorations for the splitter form. Cache the
17360         hatch brush.
17361
17362 2005-05-03  Jackson Harper  <jackson@ximian.com>
17363
17364         * TreeView.cs: Use dashed lines to connect nodes. Use the
17365         ControlPaint method for drawing the focus rect instead of doing
17366         that in treeview.
17367
17368 2005-05-02  Peter Bartok  <pbartok@novell.com>
17369
17370         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
17371
17372 2005-04-29  Jackson Harper  <jackson@ximian.com>
17373
17374         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
17375         entire image buffer. Just clear the clipping rectangle.
17376
17377 2005-04-29  Jackson Harper  <jackson@ximian.com>
17378
17379         * ThemeWin32Classic.cs: Don't draw list view items that are
17380         outside the clipping rectangle.
17381
17382 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
17383
17384         * ListBox.cs: added horizontal item scroll
17385
17386 2005-04-29  Jackson Harper  <jackson@ximian.com>
17387
17388         * ThemeWin32Classic.cs: Remove some old debug code that was
17389         causing flicker with the new double buffering code.
17390
17391 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
17392
17393         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
17394         behave like combobox and comboboxlist (still not sure if this is
17395         correct though).
17396
17397 2005-04-28  Jackson Harper  <jackson@ximian.com>
17398
17399         * ThemeWin32Classic.cs: Don't fill the middle of progress
17400         bars. This fills areas outside of the clip bounds that don't need
17401         to be filled.
17402
17403 2005-04-28  Jackson Harper  <jackson@ximian.com>
17404
17405         * Control.cs: Don't expose functionality to touch the image buffers.
17406         * ProgressBar.cs:
17407         * ListView.cs: We do not need to (and no longer can) manipulate
17408         the image buffers directly. All of this is handled by Control.
17409
17410 2005-04-28  Peter Bartok  <pbartok@novell.com>
17411
17412         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
17413           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
17414           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
17415
17416 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17417
17418         * Combobox:
17419                 - Adjust control's height for non-simple comboboxes (bug fix)
17420                 - Remove dead code
17421         * MenuAPI.cs: remove unused var
17422         * ScrollBar.cs: remove unsed var
17423                  
17424         * ListBox.cs: unselect items when clearing
17425
17426 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
17427
17428         * ListControl.cs: honors OnPositionChanged and default Selected Item
17429         * ListBox.cs: unselect items when clearing
17430
17431 2005-04-27  Jackson Harper  <jackson@ximian.com>
17432
17433         * X11Keyboard.cs: Initialize a default keyboard and give a warning
17434         if a "correct" keyboard is not found. This will make us not crash,
17435         but might give some users bad keyboard layouts...seems to be the
17436         same thing rewind does.
17437
17438 2005-04-27  Jackson Harper  <jackson@ximian.com>
17439
17440         * BindingManagerBase.cs: Attach the current/position changed
17441         handlers to their respective events.
17442
17443 2005-04-27  Jackson Harper  <jackson@ximian.com>
17444
17445         * Control.cs: Make sure that the first WM_PAINT does a full draw,
17446         not just a blit.
17447         * ThemeWin32Classic.cs: Don't fill the background for picture
17448         boxes. This could overright user drawing.
17449         * ComboBox.cs: Just fill the clipping rect not the entire client
17450         rect when drawing the background. This prevents pieces of the
17451         image buffer from getting overwritten and is theoretically faster.
17452
17453 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
17454
17455         * ComboBox.cs: Databinding support fixes, fire missing events
17456         * ListControl.cs: implement missing methods and properties, fixes
17457         * ThemeWin32Classic.cs: Databiding support on Drawing
17458         * CheckedListBox.cs: Databinding support fixes, fire missing events
17459         * ListBox.cs: Databinding support fixes, fire missing events
17460         
17461 2005-04-25  Peter Bartok  <pbartok@novell.com>
17462
17463         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
17464
17465 2005-04-25  Jackson Harper  <jackson@ximian.com>
17466
17467         * TreeView.cs: Use the horizontal scrollbars height not width when
17468         determining how much of the client area is available.
17469
17470 2005-04-25  Jackson Harper  <jackson@ximian.com>
17471
17472         * Control.cs: Double buffering is handled differently now. As per
17473         the spec, the extra buffer is created in the WM_PAINT message and
17474         passed down to the control's drawing code.
17475         * GroupBox.cs:
17476         * Label.cs:
17477         * CheckBox.cs:
17478         * ProgressBar.cs:
17479         * RadioButton.cs:
17480         * ColorDialog.cs:
17481         * ComboBox.cs:
17482         * PropertyGridView.cs:
17483         * UpDownBase.cs:
17484         * MessageBox.cs:
17485         * MenuAPI.cs:
17486         * ListView.cs:
17487         * ButtonBase.cs:
17488         * SizeGrip.cs:
17489         * ScrollBar.cs:
17490         * ListBox.cs:
17491         * TrackBar.cs:
17492         * ToolBar.cs:
17493         * PictureBox.cs:
17494         * DateTimePicker.cs:
17495         * StatusBar.cs:
17496         * TreeView.cs: Update to new double buffering system.
17497         * MonthCalendar.cs: Uncomment block, as Capture is now
17498         working. Update to new double buffering
17499         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
17500         * PaintEventArgs.cs: New internal method allows us to set the
17501         graphics object. This is used for double buffering.
17502         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
17503         rectangle. The internal paint_area var has been removed from
17504         StatusBar. The clipping rect should be used instead.
17505         * Theme.cs: Give the PictureBox drawing method a clipping rect.
17506         * TabPage.cs: The RefreshTabs method was removed, so just call the
17507         tab controls Refresh method now.
17508         * TabControl.cs: Update to new double buffering. Make sure the
17509         handle is created before sizing the tab pages, otherwise we will
17510         get stuck in a loop.
17511
17512 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
17513
17514         * LinkLabel.cs: Fix typo, bug #74719; patch
17515           from Borja Sanchez Zamorano
17516
17517 2005-04-22  Jackson Harper  <jackson@ximian.com>
17518
17519         * TreeNode.cs: Implement Handle stuff.
17520         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
17521
17522 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
17523
17524         * DataGridTextBoxColumn.cs: call base constructors, fixes
17525         * GridColumnStylesCollection.cs: missing events, methods, and functionality
17526         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
17527         * DataGridTableStyle.cs: implements create default column styles
17528         * DataGridBoolColumn.cs: which types can handle
17529         * DataGrid.cs: missing methods, fixes, new functionality
17530         * DataGridColumnStyle.cs: fixes
17531
17532 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
17533         * FolderBrowserDialog.cs:
17534         - Use a thread to fill the TreeView
17535         - Adjusted some sizes
17536
17537 2005-04-19  Peter Bartok  <pbartok@novell.com>
17538
17539         * LinkLabel.cs: (Re-)create the pieces when setting the Text
17540           property. Fixes #74360.
17541
17542 2005-04-19  Jackson Harper  <jackson@ximian.com>
17543
17544         * XEventQueue.cs: Lock when getting the lockqueue size.
17545         * PictureBox.cs: Call base OnPaint
17546         
17547 2005-04-19  Peter Bartok  <pbartok@novell.com>
17548
17549         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
17550           messages were no longer being processed (this broke BeginInvoke)
17551
17552           
17553 2005-04-18  Jackson Harper  <jackson@ximian.com>
17554
17555         * TreeView.cs: buglet that caused node images to get drawn
17556         regardless of whether or not they were in the clipping rectangle.
17557
17558 2005-04-18  Jackson Harper  <jackson@ximian.com>
17559
17560         * CurrencyManager.cs: There are four rules for GetItemProperties:
17561         - If the type is an array use the element type of the array
17562         - If the type is a typed list, use the type
17563         - If the list contains an Item property that is not an object, use
17564         that property
17565         - use the first element of the list if there are any elements in
17566         the list.
17567         
17568 2005-04-17  Jackson Harper  <jackson@ximian.oom>
17569
17570         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
17571         click. This handles offsets for scrolling properly and reduces
17572         memory. Also fixed GetNode to not offset now that TopNode works
17573         properly.
17574         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
17575         
17576 2005-04-17  Jackson Harper  <jackson@ximian.com>
17577
17578         * CursorConverter.cs: Initial implementation.
17579
17580 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17581
17582         * ListControl.cs: work towards complex data binding support on ListControl
17583         * CurrencyManager.cs: work towards complex data binding support on ListControl
17584         * ListBox.cs: work towards complex data binding support on ListControl
17585
17586
17587 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
17588
17589         * GridTableStylesCollection.cs: fixes name and constructor
17590         * DataGridTableStyle.cs: fixes
17591         * DataGridBoolColumn.cs: fixes names and constructors
17592         * DataGrid.cs: define methods and properties. Some init implementations
17593         * DataGridCell.cs: define methods and properties. Some init implementations
17594         * GridTablesFactory.cs: Define methods and properties
17595
17596 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
17597
17598         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
17599         graphics port changes.  We still want the coordinates in global screen
17600         coordinates.
17601
17602 2005-04-14  Jackson Harper  <jackson@ximian.com>
17603
17604         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
17605         check plus minus or checkbox clicks unless those features are enabled.
17606
17607 2005-04-14  Jackson Harper  <jackson@ximian.com>
17608
17609         * TreeView.cs: Add methods for setting the top and bottom visible
17610         nodes. TreeNode::EnsureVisible uses these methods.
17611         * TreeNode.cs: Implement EnsureVisible
17612
17613 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
17614
17615         * Form.cs: Pospone menu assignation if the window has not been created yet
17616         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
17617         size and position
17618
17619 2005-04-12  Jackson Harper  <jackson@ximian.com>
17620
17621         * TreeView.cs: Set the TopNode properly when scrolling
17622         occurs. This has the added benifit of reducing the amount of
17623         walking that needs to be done when drawing. Also removed an old
17624         misleading TODO.
17625         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
17626         
17627 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
17628
17629         * Timer.cs: fixes interval setting when the timer is already enabled
17630         
17631 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
17632
17633         * FolderBrowserDialog.cs: First approach
17634
17635 2005-04-09  Peter Bartok  <pbartok@novell.com>
17636
17637         * FolderBrowserDialog: Added
17638
17639 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
17640
17641         * LinkLabel.cs: move drawing code into the theme
17642         * ThemeWin32Classic.cs: drawing code and painting background bugfix
17643         * Theme.cs: define DrawLinkLabel method
17644
17645 2005-04-05  Jackson Harper  <jackson@ximian.com>
17646
17647         * BindingContext.cs: Use weak references so these bad actors don't
17648         stay alive longer then they need to.
17649
17650 2005-04-05  Jackson Harper  <jackson@ximian.com>
17651
17652         * ListControl.cs: Basic implementation of complex databinding.
17653         * ComboBox.cs:
17654         * ListBox.cs: Add calls to ListControl databinding methods.
17655
17656 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
17657
17658         * FileDialog.cs:
17659           - Don't change PopupButtonState to Normal when the
17660             PopupButton gets pressed several times.
17661           - Renamed ButtonPanel to PopupButtonPanel
17662
17663 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
17664
17665         * ColorDialog.cs: Use cached objects instead of creating them
17666         * LinkLabel.cs: Use cached objects instead of creating them
17667         * Splitter.cs: Use cached objects instead of creating them
17668         * FontDialog.cs: Use cached objects instead of creating them
17669         * PropertyGridView.cs: Use cached objects instead of creating them
17670         * MessageBox.cs: Use cached objects instead of creating them
17671         * FileDialog.cs: Use cached objects instead of creating them
17672         * ThemeWin32Classic.cs: Use cached objects instead of creating them
17673         * TreeView.cs: Use cached objects instead of creating them
17674         
17675 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
17676
17677         * Control.cs: use Equals to compare the font since no == op
17678         * ScrollBar.cs: use Equals to compare the font since no == op
17679
17680 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
17681
17682         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
17683
17684 2005-04-01  Jackson Harper  <jackson@ximian.com>
17685
17686         * Binding.cs: Implement IsBinding.
17687         * BindingManagerBase.cs:
17688         * PropertyManager.cs:
17689         * CurrencyManager.cs: Add IsSuspended property.
17690
17691 2005-04-01  Jackson Harper  <jackson@ximian.com>
17692
17693         * Binding.cs: Had some IsAssignableFrom calls backwards.
17694
17695 2005-04-01  Jackson Harper  <jackson@ximian.com>
17696
17697         * Binding.cs: Handle null data members when pulling data.
17698         * PropertyManager.cs: Handle the data member being a property that
17699         does not exist.
17700
17701 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17702
17703         * DataGridTextBoxColumn.cs: fixes signature
17704         * DataGrid.cs: calls right constructor
17705
17706 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
17707
17708         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
17709         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
17710         * GridTableStylesCollection.cs: implements GridTableStylesCollection
17711         * DataGridTableStyle.cs: implements DataGridTableStyle
17712         * DataGridBoolColumn.cs: implements DataGridBoolColumn
17713         * DataGridTextBox.cs: implements DataGridTextBox
17714         * DataGridColumnStyle.cs: implements DataGridColumnStyle
17715
17716 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
17717
17718         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
17719
17720 2005-03-29  Peter Bartok  <pbartok@novell.com>
17721
17722         * Application.cs:
17723           - Properly implemented CompanyName property
17724           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
17725             returns a path that includes CompanyName, ProductName and
17726             Version (fixes bug #70330)
17727
17728 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
17729
17730         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
17731           fixes bug #72588.
17732
17733 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17734
17735         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
17736         
17737           - Added ReadOnly CheckBox
17738           - Further refactoring: moved some code from Open-/SaveFileDialog
17739             to FileDialog
17740
17741 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
17742
17743         * OpenFileDialog.cs: Fixed CheckFileExists
17744         * FileDialog.cs:
17745           Moved FileView and DirComboBox outside FileDialog class.
17746           They can now be used outside FileDialog
17747
17748 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17749
17750         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
17751         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
17752
17753 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
17754
17755         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17756           - Added missing CreatePrompt property in SaveDialog
17757           - Overall SaveDialog handling should be better now
17758           - Added non standard ShowHiddenFiles property
17759           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
17760           - Added InitialDirectory and RestoreDirectory support
17761
17762 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
17763
17764         * FileDialog.cs: Made dirComboBox usable
17765
17766 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
17767
17768         * FileDialog.cs: Added Filter support (case sensitiv)
17769
17770 2005-03-24  Jackson Harper  <jackson@ximian.com>
17771
17772         * TabControl.cs: Need a couple more pixels for the lines.
17773
17774 2005-03-23  Jackson Harper  <jackson@ximian.com>
17775
17776         * TabControl.cs: Give the tab page focus when it is selected.
17777
17778 2005-03-23  Jackson Harper  <jackson@ximian.com>
17779
17780         * TabControl.cs: Account for the drawing of tabs borders when
17781         invalidating. If the slider was clicked dont do click detection on
17782         the tabs.
17783
17784 2005-03-23  Jackson Harper  <jackson@ximian.com>
17785
17786         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
17787
17788 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
17789
17790         * CategoryGridEntry.cs: Added
17791         * GridItem.cs: Added helper properties
17792         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
17793         * GridEntry.cs: Updated code for collection
17794         * PropertyGrid.cs: Cleaned up some formatting
17795         * PropertyGridView.cs: Added drop down functionality for enums.
17796         * GridItemCollection.cs: Added enumerator logic
17797         * PropertyGridEntry.cs: Added
17798
17799 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17800
17801         * FileDialog.cs:
17802           - Removed unnecessary commented code
17803           - Fixed handling for entering the filename manually in the combobox
17804
17805 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
17806
17807         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
17808
17809 2005-03-18  Peter Bartok  <pbartok@novell.com>
17810
17811         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
17812           them being touching the border
17813
17814 2005-03-18  Peter Bartok  <pbartok@novell.com>
17815
17816         * TextControl.cs: Quick hack to center text better
17817
17818 2005-03-18  Peter Bartok  <pbartok@novell.com>
17819
17820         * ControlPaint.cs:
17821           - Don't throw NotImplemented exceptions, just print a notice once
17822             instead (requested by Miguel). This makes running existing SWF
17823             apps a bit easier
17824         * Control.cs:
17825           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
17826           - Added context menu trigger on right click
17827         * Panel.cs: Trigger invalidate on resize
17828         * StatusBar.cs:
17829           - Removed old double-buffer drawing
17830           - Added ResizeRedraw style to force proper update of statusbar
17831         * ListView.cs:
17832           - Removed debug output
17833         * ThemeWin32Classic.cs:
17834           - Fixed drawing of status bar, now draws Text property if there
17835             are no defined panels
17836
17837 2005-03-18  Jackson Harper  <jackson@ximian.com>
17838
17839         * ImageList.cs: When the image stream is set pull all the images
17840         from it.
17841         * ImageListStreamer.cs: Implement reading image list streams.
17842
17843 2005-03-18  Peter Bartok  <pbartok@novell.com>
17844
17845         * ThemeWin32Classic.cs (DrawPictureBox):
17846           - Fixed calculations for centered drawing
17847           - Fixed drawing for normal mode, not scaling the image on normal
17848
17849 2005-03-18  Peter Bartok  <pbartok@novell.com>
17850
17851         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
17852           textbox
17853         * FileDialog.cs:
17854           - Made Open/Save button the accept button for FileDialog
17855           - Tied the cancel button to the IButtonControl cancel button
17856           - Save/Open now properly builds the pathname
17857           - Now handles user-entered text
17858           - Preventing crash on right-click if no item is selected
17859           - Fixed Text property, now uses contents of textbox
17860           - Fixed SelectedText property, now just returns the text part that
17861             is selected in the text box
17862
17863 2005-03-18  Jackson Harper  <jackson@ximian.com>
17864
17865         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
17866         rect, make sure to de-adjust the interior rect after drawing the
17867         tab text.
17868
17869 2005-03-18  Peter Bartok  <pbartok@novell.com>
17870
17871         * MenuAPI.cs: Remove menu *before* executing selected action to
17872           prevent the menu from 'hanging around'
17873           
17874 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
17875
17876         * XplatUIOSX.cs: Implemented WorkingArea property
17877
17878 2005-03-17  Peter Bartok  <pbartok@novell.com>
17879
17880         * XplatUIX11.cs: Fixed menu coord calculations
17881         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
17882           for calculating offsets
17883
17884 2005-03-17  Peter Bartok  <pbartok@novell.com>
17885
17886         * Hwnd.cs: Do not consider menu presence for default client
17887           rectangle location/size
17888         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
17889           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
17890           translation functions
17891         * FileDialog.cs: Fixed (what I presume is a) typo
17892
17893 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
17894
17895         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
17896           X access (avoids X-Async errors)
17897
17898 2005-03-16  Jackson Harper  <jackson@ximian.com>
17899
17900         * TabControl.cs: Raise the SelectedIndexChanged event.
17901
17902 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
17903
17904         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
17905           - Removed vertical ToolBar and replaced it with a custom panel
17906             (desktop and home button already work)
17907           - Added Help button (some controls get resized or relocated then)
17908           - Draw correct text depending on Open or Save.
17909           - Fixed some typos...
17910
17911 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
17912
17913         * ScrollBar.cs:
17914           - Only change Maximum and Minimum when need it (bug fix)
17915
17916 2005-03-15  Peter Bartok  <pbartok@novell.com>
17917
17918         * Form.cs: Use Handle for icon, to trigger creation if
17919           the window does not yet exist
17920         * Control.cs:
17921           - CanSelect: Slight performance improvement
17922           - Focus(): Preventing possible recursion
17923           - Invalidate(): Removed ControlStyle based clear flag setting
17924           - WM_PAINT: fixed logic for calling OnPaintBackground
17925           - WM_ERASEBKGND: Fixed logic, added call to new driver method
17926             EraseWindowBackground if the control doesn't paint background
17927         * XplatUIWin32.cs:
17928           - Moved EraseWindowBackground() method to internal methods
17929           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
17930             is sent via SendMessage on BeginPaint call on Win32
17931         * XplatUIX11.cs:
17932           - Added EraseWindowBackground() method
17933           - No longer sends WM_ERASEBKGND on .Expose, but on call to
17934             PaintEventStart, which more closely matches Win32 behaviour
17935           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
17936           - Fixed SetFocus() to properly deal with client and whole windows
17937         * Hwnd.cs: Added ErasePending property
17938         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
17939         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
17940
17941 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
17942
17943         * XplatUIOSX.cs:
17944           - Fix hard loop when timers exist.
17945           - Fix bugs with middle and right click for 3 button mice.
17946
17947 2005-03-11  Peter Bartok  <pbartok@novell.com>
17948
17949         * XplatUIX11.cs:
17950           - get_WorkingArea: Need to call X directly, GetWindowPos only
17951             returns cached data now
17952           - Added sanity check to GetWindowPos hwnd usage
17953
17954 2005-03-11  Jackson Harper  <jackson@ximian.com>
17955
17956         * BindingManagerBase.cs: This method isn't used anymore as
17957         PullData now updates the data in the control.
17958
17959 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
17960
17961         * Form.cs: fixes menu drawing on X11
17962         * MenuAPI.cs:  fixes menu drawing on X11
17963
17964 2005-03-11  Peter Bartok  <pbartok@novell.com>
17965
17966         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
17967           from Jonathan Gilbert; should fix bug #73606
17968         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
17969           in Screen coordinates. Thanks, Jordi.
17970         * Form.cs: Added missing attribute
17971
17972 2005-03-11  Peter Bartok  <pbartok@novell.com>
17973
17974         * Form.cs:
17975           - Rudimentary Mdi support
17976           - Removed outdated FormParent code
17977           - Implemented lots of missing properties and methods, still missing
17978             transparency support
17979           - Added missing attributes
17980           - Implemented support for MaximumBounds
17981           - Added firing of various events
17982         * XplatUI.cs: Added SetIcon() method
17983         * XplatUIDriver.cs: Added SetIcon() abstract
17984         * XplatUIOSX.cs: Stubbed out SetIcon() method
17985         * XplatUIX11.cs:
17986           - Implemented SetIcon() support
17987           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
17988           - Switched to unix line endings
17989         * XplatUIWin32.cs:
17990           - Made POINT internal so for can access it as part of MINMAX
17991           - Implemented SetIcon() support
17992           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
17993             native Mdi support again, might have to go managed)
17994         * Control.cs: Now fires the StyleChanged event
17995         * MdiClient.cs: Added; still mostly empty
17996
17997 2005-03-10  Peter Bartok  <pbartok@novell.com>
17998
17999         * SaveFileDialog.cs: Added emtpy file
18000
18001 2005-03-08  Peter Bartok  <pbartok@novell.com>
18002
18003         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
18004           in turn triggers OnCreateContro) when creating a handle for the
18005           first time.
18006         * TextControl.cs: Fixed endless loop in certain cases when
18007           replacing the current selection
18008
18009 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
18010
18011         * ScrollBar.cs:
18012           - Honors NewValue changes in Scroll events allowing apps to change it
18013           - Adds First and Last Scroll events
18014           - Fixes Thumb events
18015
18016 2005-03-07  Peter Bartok  <pbartok@novell.com>
18017
18018         * Hwnd.cs: Added DefaultClientRectangle property
18019         * XplatUI.cs: Now using the X11 driver Where() method, which provides
18020           more detailed debug information
18021         * XplatUIX11.cs:
18022           - Fixed size-change feedback loop, where we would pull an old size
18023             off the queue and mistakenly change our window's size to an
18024             earlier value
18025           - Now compressing ConfigureNotify events, to reduce looping and
18026             redraw issues
18027         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
18028           is called
18029
18030 2005-03-07  Jackson Harper  <jackson@ximian.com>
18031
18032         * Binding.cs: Push data pushes from data -> property. Check if the
18033         property is readonly when attempting to set it.
18034
18035 2005-03-07  Jackson Harper  <jackson@ximian.com>
18036
18037         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
18038         instead of IsSubclassOf. Pulling data now sets the value on the
18039         control.
18040         * PropertyManager.cs:
18041         * CurrencyManager.cs: Just need to pull data when updating now,
18042         because PullData will set the value on the control.
18043
18044 2005-03-04  Jackson Harper  <jackson@ximian.com>
18045
18046         * Binding.cs: Implement data type parsing and converting on pulled
18047         data. TODO: Are there more ways the data can be converted?
18048
18049 2005-03-04  Jackson Harper  <jackson@ximian.com>
18050
18051         * Binding.cs: Support <Property>IsNull checks. Also bind to the
18052         controls Validating method so we can repull the data when the
18053         control loses focus.
18054
18055 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
18056
18057         * ColumnHeader.cs:
18058           - Fixes null string format
18059           
18060         * ListView.cs:
18061           - Adds enum type checks
18062           - Fixes redrawing and recalc need after changing some properties
18063           - Fixes on focus_item set after the event
18064           - Fixes adding columns after the control has been created
18065           
18066         * ThemeWin32Classic.cs:
18067           - Fixes CheckBox focus rectangle
18068           - Fixes ColumnHeader drawing
18069
18070
18071 2005-03-03  Jackson Harper  <jackson@ximian.com>
18072
18073         * Binding.cs: Bind to <Property>Changed events so we can detect
18074         when properties are changed and update the data.
18075
18076 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
18077
18078         * ImageList.cs:
18079           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
18080           - Fixes ImageList constructor with ImageList container
18081           - Fixes image scaling (wrong parameters at DrawImage)
18082
18083 2005-02-02  Jackson Harper  <jackson@ximian.com>
18084
18085         * Binding.cs: Make property searches case-insensitive. Eliminate
18086         some duplicated code.
18087
18088 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
18089
18090         * ComboBox.cs:
18091                 - Handle focus event
18092                 - Fix scrollbar events
18093                 - Discard highlighted item if remove it
18094                 - Fixes SelectedItem with strings
18095
18096 2005-03-01  Peter Bartok  <pbartok@novell.com>
18097
18098         * Control.cs:
18099           - Fixed Visible property, now follows (once again) parent chain
18100             to return false if any control in the chain is visible=false
18101           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
18102           - Fixed several places where is_visible instead of Visible was used
18103           - Implemented FIXME related to focus selection when setting focused
18104             control to be invisible
18105
18106         * XplatUIWin32.cs: Now using proper method to find out if window is
18107           visible. Thanks to Jordi for pointing it out
18108
18109 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
18110
18111         * ComboBox.cs: show/hide scrollbar instead of creating it
18112
18113 2005-02-27  Jackson Harper  <jackson@ximian.com>
18114
18115         * CurrencyManager.cs: Add PositionChanged stuff.
18116
18117 2005-02-27  Peter Bartok  <pbartok@novell.com>
18118
18119         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
18120         * XplatUIOSX.cs: Added GetMenuOrigin() stub
18121         * XplatUIWin32.cs: Implemented GetMenuOrigin()
18122         * XplatUIX11.cs:
18123           - Implemented GetMenuDC()
18124           - Implemented GetMenuOrigin()
18125           - Implemented ReleaseMenuDC()
18126           - Implemented generation of WM_NCPAINT message
18127           - Implemented generation and handling of WM_NCCALCSIZE message
18128         * Form.cs: Added debug helper message for Jordi's menu work
18129         * Hwnd.cs:
18130           - Modified ClientRect property; added setter, fixed getter to handle
18131             setting of ClientRect
18132           - Added MenuOrigin property
18133
18134 2005-02-26  Peter Bartok  <pbartok@novell.com>
18135
18136         * XplatUIX11.cs:
18137           - Destroys the caret if a window that's being destroyed contains it
18138           - Ignores expose events coming from the X11 queue for windows that
18139             already are destroyed
18140           - Now uses the proper variable for handling DestroyNotify, before we
18141             marked the wrong window as destroyed
18142           - Improved/added some debug output
18143
18144 2005-02-26  Peter Bartok  <pbartok@novell.com>
18145
18146         * X11Keyboard.cs: Fixes to work on 64bit systems
18147
18148 2005-02-26  Peter Bartok  <pbartok@novell.com>
18149
18150         * Control.cs:
18151           - Now calling OnHandleDestroyed from DestroyHandle()
18152             instead of Dispose()
18153           - Removed bogus call to controls.Remove() from DestroyHandle()
18154
18155 2005-02-26  Peter Bartok  <pbartok@novell.com>
18156
18157         * Control.cs: Properly destroy child windows when our handle is
18158           destroyed
18159
18160 2005-02-25  Peter Bartok  <pbartok@novell.com>
18161
18162         * XplatUI.cs:
18163           - Added 'DriverDebug' define to allow tracing XplatUI API calls
18164           - Alphabetized Static Methods and Subclasses
18165
18166         * XplatUIX11.cs:
18167           - Added XException class to allow custom handling of X11 exceptions
18168           - Created custom X11 error handler, tied into XException class
18169           - Added support for MONO_XEXCEPTIONS env var to allow the user
18170             to either throw an exception on X errors or continue running
18171             after displaying the error
18172           - Added handling of DestroyNotify message
18173           - Added handler for CreateNotify message (still disabled)
18174           - Improved (tried to at least) Where method to provide file and lineno
18175         * X11Structs.cs:
18176           - Added XErrorHandler delegate
18177           - Added XRequest enumeration (to suppor translation of errors)
18178
18179 2005-02-25  Jackson Harper  <jackson@ximian.com>
18180
18181         * PropertyManager.cs: Implement editing features
18182         * CurrencyManager.cs:
18183         * Binding.cs: First attempt at UpdateIsBinding
18184         * BindingManagerBase.cs: Call UpdateIsBinding before
18185         pushing/pulling data.
18186
18187 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
18188
18189         * MenuAPI.cs: Respect disabled items
18190         * ThemeWin32Classic.cs
18191                 - Caches ImageAttributes creation for DrawImageDisabled
18192                 - Fixes vertical menu line drawing
18193                 - Draws disabled arrows in disable menu items
18194
18195 2005-02-24  Peter Bartok  <pbartok@novell.com>
18196
18197         * Hwnd.cs:
18198           - Added UserData property to allow associating arbitrary objects
18199             with the handle
18200           - Fixed leak; now removing Hwnd references from static windows array
18201         * XplatUIWin32.cs:
18202           - Fixed Graphics leak in PaintEventEnd
18203           - Removed usage of HandleData, switched over to Hwnd class
18204         * HandleData.cs: Removed, obsoleted by Hwnd.cs
18205
18206 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
18207
18208         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
18209         * ScrollBar.cs: Fixes bug
18210         * TrackBar.cs: removes death code, clipping, mimize refreshes,
18211          keyboard navigation enhancements
18212
18213 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
18214
18215         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
18216         * GroupBox.cs: Add control styles
18217         * Label.cs: Add control styles
18218         * UpDownBase.cs: Add control styles
18219         * ListBox.cs: Add control styles
18220         * XplatUIWin32.cs: Fixes wrong parameter order
18221
18222
18223 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
18224
18225         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
18226
18227 2005-02-23  Jackson Harper  <jackson@ximian.com>
18228
18229         * PropertyManager.cs: Implement property binding. This doesn't
18230         seem to work yet though as (I think) there are some bugs in
18231         System.ComponentModel.PropertyDescriptor.
18232         * BindingContext.cs: Use new PropertyManager constructor.
18233
18234 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
18235
18236         * ProgressBar.cs: use clip region in ProgressBar
18237         * ThemeWin32Classic.cs: use clip region in ProgressBar
18238
18239 2004-02-22  Jackson Harper  <jackson@ximian.com>
18240
18241         * BindingsCollection.cs: Remove some debug code.
18242
18243 2005-02-22  Jackson Harper  <jackson@ximian.com>
18244
18245         * BindingContext.cs:
18246         * ControlBindingsCollection.cs:
18247         * CurrencyManager.cs:
18248         * Binding.cs:
18249         * BindingManagerBase.cs: Initial implementation
18250         * BindingsCollection.cs: Add an internal contains method that the
18251         BindingManagerBase uses to ensure bindings aren't added twice to
18252         the collection.
18253         * PropertyManager.cs: Stubbed out.
18254         * Control.cs:
18255         * ContainerControl.cs: Hook up databinding
18256         
18257 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
18258
18259         * XplatUIOSX.cs:
18260           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
18261           Fixed Invalidate/Update chain.
18262           Fixed tons of other minor bugs (this is almost a complete rewrite).
18263
18264 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
18265
18266         * ComboBox.cs: do subcontrol creation when the control is created
18267
18268 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18269
18270         * Label.cs: fixes image drawing (image and imagelist)
18271         * ThemeWin32Classic.cs: cache brushes
18272         
18273 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18274
18275         * Form.cs: Move menu drawing code to Theme class
18276         * ComboBox.cs: Move ComboBox drawing code to Theme class
18277         * MenuItem.cs: Move menu drawing code to Theme class
18278         * MenuAPI.cs: Move menu drawing code to Theme class
18279         * ThemeWin32Classic.cs: New methods
18280         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
18281         * ListBox.cs: Move Listbox drawing code to Theme class
18282         * Theme.cs: New methods
18283
18284 2005-02-20  Peter Bartok  <pbartok@novell.com>
18285
18286         * Control.cs:
18287           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
18288             only process mnemonics on those)
18289           - Fixed event sequence for key handling; first calling
18290             ProcessKeyEventArgs now
18291         * TextBoxBase.cs:
18292           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
18293             for processing non-character keys
18294           - Fixed WM_CHAR to generate proper event sequence before processing
18295         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
18296           generation
18297
18298 2005-02-19  Peter Bartok  <pbartok@novell.com>
18299
18300         * UserControl.cs: Added TextChanged event; added attributes
18301         * SizeGrip.cs: Implemented resizing and optional display of grip
18302         * Form.cs: Fixed attribute
18303         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
18304           Changed meaning of ScrollWindow bool argument; instead of the
18305           clear attribute (which will be true usually anyway), it gives the
18306           option of moving child controls as well.
18307         * XplatUIX11.cs:
18308           - Changed to match new ScrollWindow argument
18309           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
18310             now handles the implicit parent window a WM puts around us
18311         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
18312           to work)
18313         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
18314         * TreeView.cs: Adjusted to new ScrollWindow arguments
18315
18316 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
18317
18318         * Form.cs: Menu integration with non-client area
18319         * MenuItem.cs: Menu integration with non-client area
18320         * MenuAPI.cs: Menu integration with non-client area
18321
18322 2005-02-18  Peter Bartok  <pbartok@novell.com>
18323
18324         * MethodInvoker.cs: Added
18325         * MdiLayout.cs: Added
18326         * SendKeys.cs: Started implementation
18327         * ErrorIconAlignment.cs: Added
18328
18329 2005-02-18  Peter Bartok  <pbartok@novell.com>
18330
18331         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
18332         * Form.cs: Added handling for Menu-related Non-client messages
18333
18334 2005-02-17  Peter Bartok  <pbartok@novell.com>
18335
18336         * UpDownBase.cs: Fixed typo, compilation errors
18337         * DomainUpDown.cs: Fixed attribute value
18338
18339 2005-02-16  Miguel de Icaza  <miguel@novell.com>
18340
18341         * UpDownBase.cs: Attach entry events.
18342         Propagate events.
18343         Add ForeColor property, Focused, InterceptArrowKeys (interception
18344         does not work yet).
18345
18346 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
18347
18348         * Form.cs:
18349                 - Redraw non client are on Setmenu
18350                 - Calc proper menu starting point
18351
18352 2005-02-17  Peter Bartok  <pbartok@novell.com>
18353
18354         * Application.cs: Fixed message_filter check
18355
18356 2005-02-17  Peter Bartok  <pbartok@novell.com>
18357
18358         * Application.cs: Now calls registered message filters
18359         * DockStyle.cs: Fixed attribute
18360         * Form.cs: Fixed attribute
18361         * Menu.cs: Fixed attribute
18362         * ToolTip.cs: Fixed attribute
18363         * TreeNode.cs: Added missing attributes and arranged in regions
18364         * PropertyGrid.cs: Fixed signatures
18365         * TreeNodeCollection.cs: Added attributes
18366         * Splitter.cs: Added missing attributes; arranged into regions
18367         * TabPage.cs: Added missing attributes; arranged into regions
18368         * TextBoxBase.cs: Added missing attributes
18369         * TextBox.cs: Added missing attributes
18370         * ArrangeDirection.cs: Added missing attributes
18371         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
18372         * ToolBarButton.cs: Fixed attributes
18373         * AnchorStyles.cs: Fixed attribute
18374         * TrackBar.cs: Fixed attributes
18375         * TabControl.cs: Added missing attributes and arranged into regions
18376         * ToolBar.cs: Fixed attribute
18377         * StatusBar.cs: Fixed signature, organized into regions and added
18378           attributes
18379         * StatusBarPanel.cs: Fixed attributes
18380         * ContentsResizedEventArgs.cs: Implemented
18381         * ContentsResizedEventHandler.cs: Implemented
18382         * DateBoldEventArgs.cs: Implemented
18383         * DateBoldEventHandler.cs: Implemented
18384         * UpDownEventArgs.cs: Implemented
18385         * UpDownEventHandler.cs: Implemented
18386         
18387 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
18388
18389         * Form.cs: first Menu NC refactoring
18390         * MenuAPI.cs: first Menu NC refactoring
18391         
18392 2005-02-16  Peter Bartok  <pbartok@novell.com>
18393
18394         * ImeMode.cs: Added missing attributes
18395         * Menu.cs: Fixed attribute
18396         * GroupBox.cs: Fixed attribute
18397         * Label.cs: Fixed attribute
18398         * ColorDialog.cs (RunDialog): Removed TODO attribute
18399         * ComboBox.cs: Fixed attributes
18400         * ListControl.cs: Added missing attributes
18401         * PropertyGrid.cs: Fixed attributes
18402         * Control.cs: Fixed attributes
18403         * ListViewItem.cs: Added TypeConverter attribute
18404         * NotifyIcon.cs: Fixed attributes
18405         * ListView.cs: Fixed attributes
18406         * ButtonBase.cs: Fixed attribute
18407         * ImageList.cs: Added missing attributes
18408         * ContainerControl.cs: Fixed signature
18409         * CheckedListBox.cs: Fixed attribute; added missing attributes
18410         * Panel.cs: Fixed attributes
18411         * PropertyTabChangedEventArgs.cs: Added missing attribute
18412         * PropertyValueChangedEventArgs.cs: Added missing attribute
18413         * Binding.cs: Fixed attribute
18414         * ListViewItemConverter: Implemented ListViewSubItemConverter class
18415         * ListBox.cs: Fixed attribute; added missing attributes;
18416         * ScrollableControl.cs: Added missing attributes
18417         * PictureBox.cs: Added missing attributes; implemented missing property
18418         * DateTimePicker.cs: Added missing attributes
18419         * Theme.cs (ToolWindowCaptionHeight): Fixed type
18420         * MonthCalendar.cs: Fixed attributes
18421         * StatusBarPanel.cs: Added missing attributes
18422         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
18423
18424 2005-02-16  Peter Bartok  <pbartok@novell.com>
18425
18426         * TextBoxBase.cs: The previous method to enforce height yet remember
18427           the requested high was less than ideal, this is an attempt to do
18428           it better.
18429         * Control.cs: Added comment about possible problem
18430         * Copyright: Updated format
18431         * GridItemType.cs: Fixed swapped values
18432
18433 2005-02-15  Jackson Harper  <jackson@ximian.com>
18434
18435         * BaseCollection.cs: Use property so we never access an
18436         uninitialized list. Also initialize the list in the property.
18437
18438 2005-02-15  Peter Bartok  <pbartok@novell.com>
18439
18440         * GroupBox.cs (ProcessMnemonic): Implemented
18441         * Label.cs (ProcessMnemonic): Implemented
18442         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
18443           hotkeys
18444
18445 2005-02-15  Peter Bartok  <pbartok@novell.com>
18446
18447         * RadioButton.cs (ProcessMnemonic): Implemented
18448         * CheckBox.cs (ProcessMnemonic): Implemented
18449         * Control.cs:
18450           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
18451             handling
18452           - Added internal method to allow calling ProcessMnemonic from other
18453             controls
18454         * ContainerControl.cs:
18455           - Started support for handling validation chain handling
18456           - Implemented ProcessMnemonic support
18457           - Added Select() call to Active, to make sure the active control
18458             receives focus
18459         * Form.cs: Setting toplevel flag for Forms (this was lost in the
18460           FormParent rewrite)
18461         * ThemeWin32Classic.cs:
18462           - DrawCheckBox(): Fixed stringformat to show hotkeys
18463           - DrawRadioButton(): Fixed stringformat to show hotkeys
18464         * CommonDialog.cs: Removed WndProc override, not needed
18465
18466 2005-02-14  Peter Bartok  <pbartok@novell.com>
18467
18468         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
18469           missed those in the rewrite
18470
18471 2005-02-14  Miguel de Icaza  <miguel@novell.com>
18472
18473         * NumericUpDown.cs (Increment, ToString): Add.
18474         (DecimalPlaces): implement.
18475         
18476         Add attributes.
18477         
18478         * UpDownBase.cs: Add the designer attributes.
18479
18480 2005-02-13  Peter Bartok  <pbartok@novell.com>
18481
18482         * Panel.cs: Removed border_style, now in Control
18483         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
18484           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
18485
18486 2005-02-13  Peter Bartok  <pbartok@novell.com>
18487
18488         * MouseButtons.cs: Added missing attributes
18489         * XplatUIStructs.cs: Added enumeration for title styles
18490         * LeftRightAlignment.cs: Added missing attributes
18491         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
18492           it compatible with Graphics.FromHwnd()
18493         * SelectedGridItemChangedEventArgs.cs: Fixed property type
18494         * Keys.cs: Added missing attributes
18495         * SelectionRange.cs: Added missing attributes
18496         * SelectionRangeConverter.cs: Added
18497         * XplatUI.cs:
18498           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
18499             ReleaseMenuDC methods
18500           - Renamed ReleaseWindow to UngrabWindow
18501           - Added proper startup notice to allow version identification
18502         * Form.cs:
18503           - Added missing attributes
18504           - Removed FormParent concept
18505         * Label.cs: Removed border_style field, now in Control
18506         * RadioButton.cs: Now properly selects RadioButton when focus is
18507           received
18508         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
18509         * Control.cs:
18510           - Added missing attributes
18511           - Added borderstyle handling
18512           - Removed FormParent concept support
18513           - Fixed calls to XplatUI to match changed APIs
18514           - Fixed bug that would case us to use disposed Graphics objects
18515           - Removed unneeded internal methods
18516           - PerformLayout(): Fixed to handle DockStyle.Fill properly
18517           - SelectNextControl(): Fixed to properly check common parents
18518         * TextBoxBase.cs: Removed border_style field (now in Control)
18519         * MessageBox.cs:
18520           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
18521             fixed calculations for form size
18522           - Added support for localized strings and icons
18523           - Improved form size calculations, added border
18524         * ListView.cs: Removed border_style field (now in Control)
18525         * X11Structs.cs: Moved several structs from X11 driver here
18526         * X11Keyboard.cs: Changed debug message
18527         * Application.cs: Removed FormParent concept support
18528         * CommonDialog.cs:
18529           - Resetting end_modal flag
18530           - Removed FormParent concept support
18531         * NativeWindow.cs: Removed FormParent concept support
18532         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
18533           Client area and Non-Client whole window to allow support for WM_NC
18534           messages
18535         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
18536           prevent using it until it supports Hwnd as per Geoff Norton's request
18537         * ToolBar.cs: Fixed drawing, was not doing proper drawing
18538         * PictureBox.cs: Removed border_style field, now in Control
18539         * XplatUIWin32.cs: Added new driver methods
18540
18541 2005-02-12  Peter Bartok  <pbartok@novell.com>
18542
18543         * OpacityConverter.cs: Implemented
18544         * Hwnd.cs: Internal class to support drivers that need to emulate
18545           client area/non-client area window behaviour
18546
18547 2005-02-11  Peter Bartok  <pbartok@novell.com>
18548
18549         * KeysConverter.cs: Implemented
18550
18551 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
18552
18553         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
18554         * LinkLabel: Added missing attributes
18555         * MainMenu.cs: fixes ToString
18556         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
18557         * ListBox.cs: fixes event position
18558         * TrackBar.cs: adds missing attributes and events
18559         
18560 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
18561
18562         * MenuItem.cs: Use SystemInformation and bug fixes
18563         * MenuAPI.cs: Use SystemInformation and bug fixes
18564
18565 2005-02-09  Jackson Harper  <jackson@ximian.com>
18566
18567         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
18568         their keystate otherwise things like VK_MENU get stuck "on".
18569
18570 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
18571
18572         * ListBox.cs: Fixes AddRange bug
18573         
18574 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
18575
18576         * ProgressBar.cs
18577                 - Add missing attributes
18578                 - Add missing method
18579                 
18580         * CheckedListBox.cs: Added missing attributes
18581                 - Add missing attributes
18582                 - Remove extra method
18583         
18584         * ComboBox.cs: Added missing attributes
18585         * VScrollBar.cs: Added missing attributes
18586         * ScrollBar.cs:  Added missing attributes
18587         * ListBox.cs: Fixes signature, add missing consts
18588         * LinkArea.cs:   Added missing attributes
18589         
18590
18591 2005-02-08  Peter Bartok  <pbartok@novell.com>
18592
18593         * Menu.cs: Added missing attributes
18594         * MainMenu.cs: Added missing attributes
18595         * GroupBox.cs: Added missing attributes
18596         * Label.cs: Added missing attributes
18597         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
18598         * ColorDialog.cs:
18599           - Added Instance and Options properties
18600           - Added missing attributes
18601         * Cursor.cs: Made Serializable
18602         * NotifyIcon: Added missing attributes
18603         * MenuItem.cs: Added missing attributes
18604         * TextBoxBase.cs: Implemented AppendText() and Select() methods
18605         * Panel.cs: Added Missing attributes
18606         * MonthCalendar.cs: Fixed CreateParams
18607
18608 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18609         
18610         * LinkLabel.cs:
18611                 - Fixes signature
18612                 - Fixes issues with links
18613                 - Adds the class attributes
18614
18615 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
18616         
18617         * ComboBox.cs:
18618                 - Fixes button when no items available in dropdown
18619                 - Fixes repainting problems
18620                 - Adds the class attributes
18621                 
18622 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18623
18624         * XplatUIOSX.cs: Detect the menu bar and title bar height from
18625         the current theme.  Cache these on startup.
18626
18627 2005-02-07  Jackson Harper  <jackson@ximian.com>
18628
18629         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
18630         the scrollbar buttons when they are depressed.
18631
18632 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18633
18634         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
18635         Get the display size from the main displayid.  We currently dont
18636         support multiple display configurations.
18637
18638 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
18639
18640         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
18641
18642 2005-02-07  Miguel de Icaza  <miguel@novell.com>
18643
18644         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
18645
18646 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
18647
18648         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
18649
18650 2005-02-04  Jackson Harper  <jackson@ximian.com>
18651
18652         * ThemeWin32Classic.cs: Respect the clipping rect when
18653         drawing. Only fill the intersection of clips and rects so there
18654         isn't a lot of large fills.
18655         * ScrollBar.cs: Pass the correct clipping rect to the theme
18656         engine. Remove some debug code.
18657
18658 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
18659         
18660         * DateTimePicker.cs:
18661                 - Fixed crash on DateTime.Parse, use Constructor instead
18662
18663 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18664         
18665         * MenuItem.cs:
18666         * MenuAPI.cs:
18667                 - Owner draw support (MeasureItem and DrawItem)
18668
18669 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
18670         
18671         *  Menu.cs:
18672                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
18673                 - Fixes MenuItems.Add range
18674         * MenuItem.cs:
18675                 - MergeMenu and Clone and CloneMenu functions
18676
18677 2005-02-03  Jackson Harper  <jackson@ximian.com>
18678
18679         * ScrollBar.cs: Make abstract
18680         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
18681         is abstract.
18682
18683 2005-02-03  Jackson Harper  <jackson@ximian.com>
18684
18685         * ScrollBar.cs: First part of my scrollbar fixups. This removes
18686         all the unneeded refreshes and uses invalidates with properly
18687         computed rects.
18688
18689 2005-02-03  Peter Bartok  <pbartok@novell.com>
18690
18691         * ComponentModel.cs: Added
18692         * IDataGridEditingService.cs: Added
18693         * Timer.cs: Added missing attributes
18694         * ToolTip.cs: Added missing attributes
18695
18696 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
18697
18698         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
18699
18700 2005-02-03  Peter Bartok  <pbartok@novell.com>
18701
18702         * ListBox.cs: Added missing attributes
18703
18704 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
18705         
18706         * ListBox.cs:
18707                 - Fixes font height after font change
18708                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
18709                 
18710 2005-02-02  Peter Bartok  <pbartok@novell.com>
18711
18712         * HandleData.cs: Introduced static methods to allow class
18713           to be more self-contained and track it's own HandleData objects
18714         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
18715           HandleData to use new static methods
18716
18717 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
18718
18719         * Combobox.cs:
18720                 - Fixes default size and PreferredHeight
18721                 - Missing events
18722                 - ObjectCollection.Insert implementation
18723                 
18724         * ListControl.cs
18725                 - Fixes signature
18726         * ListBox.cs:
18727                 - Several fixes
18728                 - ObjectCollection.Insert implementation
18729                 - No selection after clean
18730                 - Small fixes
18731
18732 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18733
18734         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
18735
18736 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
18737
18738         * Combobox.cs:
18739                 - Caches ItemHeight calculation for OwnerDrawVariable
18740                 - Handles dropdown properly
18741                 - Fixes several minor bugs
18742
18743 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18744
18745         * ListBox.cs:
18746                 - Fixes 71946 and 71950
18747                 - Fixes changing Multicolumn on the fly
18748                 - Fixes keyboard navigation on Multicolumn listboxes
18749
18750 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18751         
18752         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
18753         crash reporter log.
18754
18755 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18756
18757         * XplatUIOSX.cs: Allow applications to actually exit.
18758
18759 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
18760
18761         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
18762         their parent at creation time rather than lazily later.  Fixes a major
18763         regression we were experiencing.
18764
18765 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
18766
18767         * ThemeWin32Classic.cs: more date time picker painting fixes
18768         * DateTimePicker.cs: more monthcalendar drop down fixes
18769         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
18770
18771 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
18772
18773         * ScrollBar.cs:
18774                 - When moving the thumb going outside the control should stop the moving
18775                 - Adds the firing of missing events
18776                 - Fixes no button show if Size is not specified
18777                 - End / Home keys for keyboard navigation
18778
18779 2005-01-30  Peter Bartok  <pbartok@novell.com>
18780
18781         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
18782           sanity check to prevent theoretical loop
18783         * XplatUIWin32.cs (SetVisible): Removed debug output
18784         * XplatUIX11.cs (SystrayChange): Added sanity check
18785         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
18786         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
18787           behaviour, valid until the X11 client window rewrite is done
18788         * TextBox.cs (ctor): Setting proper default foreground and background
18789           colors
18790
18791 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
18792
18793         * Theme: Added DrawDateTimePicker to interface
18794         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
18795         * DateTimePicker.cs: Created (still needs keys and painting code)
18796         * DateTimePickerFormat.cs: added
18797         * MonthCalendar.cs: fixed CreateParams for popup window mode
18798           
18799 2005-01-29  Peter Bartok  <pbartok@novell.com>
18800
18801         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
18802           this should also the calculations for ligher/darker
18803         * Theme.cs: Fixed defaults for ScrollBar widths/heights
18804
18805 2005-01-29  Peter Bartok  <pbartok@novell.com>
18806
18807         * ArrangeDirection.cs: Added
18808         * ArrangeStartingPositon.cs: Added
18809         * SystemInformation.cs: Implemented
18810         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18811           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
18812           used by SystemInformation class
18813         * X11Strucs.cs: Added XSizeHints structure
18814         * MenuAPI.cs:
18815           - Fixed CreateParams to make sure the menu window is always visible
18816           - TrackPopupMenu: Added check to make sure we don't draw the
18817             menu offscreen
18818
18819 2005-01-29  Peter Bartok  <pbartok@novell.com>
18820
18821         * HandleData.cs: Added method for altering invalid area
18822         * TextBoxBase.cs: Implemented TextLength
18823
18824 2005-01-28  Peter Bartok  <pbartok@novell.com>
18825
18826         * XplatUIX11.cs: Improvement over last patch, not sending
18827           the WM_PAINT directly anymore, instead we scroll any pending
18828           exposed areas and let the system pick out the WM_PAINT later
18829
18830 2005-01-28  Peter Bartok  <pbartok@novell.com>
18831
18832         * SWF.csproj: Deleted, no longer used. Instead,
18833           Managed.Windows.Forms/SWF.csproj should be used
18834         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
18835           directly, to avoid a potential race condition with the next
18836           scroll
18837
18838 2005-01-28  Peter Bartok  <pbartok@novell.com>
18839
18840         * XplatUI.cs: Made class internal
18841
18842 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
18843
18844         * CheckedListBox.cs:
18845                 - Draw focus
18846                 - Fixed Drawing
18847                 - Missing methods and events
18848
18849 2005-01-27  Peter Bartok  <pbartok@novell.com>
18850
18851         * Application.cs (Run): Don't use form if we don't have one
18852
18853 2005-01-27  Peter Bartok  <pbartok@novell.com>
18854
18855         * TextBoxBase.cs (get_Lines): Fixed index off by one error
18856
18857 2005-01-27  Peter Bartok  <pbartok@novell.com>
18858
18859         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
18860         * GridItem.cs: Added; Patch by Jonathan S. Chambers
18861         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
18862         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
18863         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
18864         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
18865         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18866         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18867         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18868         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18869         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
18870         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
18871
18872 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18873
18874         * Combobox.cs:
18875                 - Draw focus on Simple Combobox
18876                 - Fixes drawing issues
18877                 - fixes 71834
18878
18879 2005-01-27  Peter Bartok  <pbartok@novell.com>
18880
18881         * Form.cs:
18882           - Place window in default location, instead of hardcoded 0/0
18883           - Send initial LocationChanged event
18884         * Control.cs:
18885           - UpdateBounds after creation to find out where the WM placed us
18886           - Make sure that if the ParentForm changes location the Form
18887             is notified
18888         * XplatUIX11.cs: XGetGeometry will not return the coords relative
18889             to the root, but to whatever the WM placed around us.
18890             Translate to root coordinates before returning toplevel
18891             coordinates
18892         * XplatUIWin32.cs: Removed debug output
18893         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
18894           flag to GetWindowPos, to allow translation of coordinates on X11
18895
18896 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
18897
18898         * ListBox.cs: connect LostFocus Event
18899
18900 2005-01-27  Peter Bartok  <pbartok@novell.com>
18901
18902         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
18903           XplatUIX11.cs: Extended the Systray API
18904         * Form.cs: Removed debug output
18905         * Application.cs: Fixed focus assignment, always need to call
18906           XplatUI.Activate() since Form.Activate() has rules that may
18907           prevent activation
18908         * NotifyIcon.cs: Should be complete now
18909         * ToolTip.cs: Worked around possible timer bug
18910
18911 2005-01-27  Jackson Harper  <jackson@ximian.com>
18912
18913         * TabControl.cs:
18914         - Only invalidate the effected tabs when the
18915         selected index changes. This reduces drawing and gets rid of some
18916         flicker.
18917         - Only refresh if the tabs need to be shifted, otherwise only
18918         invalidate the slider button.
18919         - On windows the tabs are not filled to right if the slider is
18920         visible.
18921         
18922 2005-01-27  Jackson Harper  <jackson@ximian.com>
18923
18924         * TabControl.cs: Only refresh on mouseup if we are showing the
18925         slider. Also only invalidate the button whose state has changed.
18926
18927 2005-01-26  Peter Bartok  <pbartok@novell.com>
18928
18929         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
18930         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
18931           and SystrayRemove() methods
18932         * XplatUIOSX.cs: Stubbed Systray methods
18933         * XplatUIX11.cs:
18934           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
18935             methods
18936           - Fixed broken XChangeProperty calls (marshalling messed up things)
18937         * X11Structs.cs: Added enums and structs required for Size hinting
18938         * NotifyIcon.cs: Added & implemented
18939
18940 2005-01-26  Jackson Harper  <jackson@ximian.com>
18941
18942         * TabControl.cs: Space vertically layed out tabs properly.
18943
18944 2005-01-26  Peter Bartok  <pbartok@novell.com>
18945
18946         * Form.cs (CreateClientParams): Always set the location to 0,0
18947           since we're a child window.
18948
18949         * Control.cs (SetVisibleCore): Always explicitly setting the location
18950           of a toplevel window, apparently X11 doesn't like to move windows
18951           while they're not mapped.
18952
18953 2005-01-26  Jackson Harper  <jackson@ximian.com>
18954
18955         * TabControl.cs: Implement FillToRight size mode with vertically
18956         rendered tabs.
18957
18958 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18959
18960         * ControlPaint.cs, ThemeWin32Classic.cs
18961                 - Fixes DrawFocusRectangle
18962
18963 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
18964
18965         * MenuAPI.cs:
18966                 - MenuBar tracking only starts when item is first clicked
18967                 - Fixes menu hidding for multiple subitems
18968                 - Unselect item in MenuBar when item Executed
18969                 - Fixes bug 71495
18970
18971 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
18972
18973         * ListControl.cs:
18974                 - IsInputKey for ListBox
18975         * ListBox.cs:
18976                 - Focus item
18977                 - Shift and Control item selection
18978                 - Implement SelectionMode.MultiExtended
18979                 - Fixes RightToLeft
18980         * ComboBox.cs:
18981                 - IsInputKey implemented
18982                 - Do not generate OnTextChangedEdit on internal txt changes
18983                 
18984 2005-01-23  Peter Bartok  <pbartok@novell.com>
18985
18986         * AccessibleObject.cs: Partially implemented Select()
18987         * MonthCalendar.cs: Added missing attributes and events
18988         * Form.cs: Fixed CreateParams behaviour, now controls derived from
18989           form can properly override CreateParams.
18990         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
18991           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
18992           Control performs Invalidate & Update
18993         * NativeWindow (CreateHandle): Added special handling for Form
18994           and Form.FormParent classes to allow overriding of From.CreateParams
18995         * Control.cs:
18996           - ControlNativeWindow: Renamed 'control' variable to more intuitive
18997             name 'owner'
18998           - ControlNativeWindow: Added Owner property
18999           - Removed usage of Refresh() on property changes, changed into
19000             Invalidate(), we need to wait until the queue is processed for
19001             updates, direct calls might cause problems if not all vars for
19002             Paint are initialized
19003           - Added call to UpdateStyles() when creating the window, to set any
19004             styles that CreateWindow might have ignored.
19005           - Added support for Form CreateParent overrides to UpdateStyles()
19006         * MessageBox.cs: Removed no longer needed FormParent override stuff,
19007           CreateParams are now properly overridable
19008         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
19009           CreateParams are now properly overridable
19010
19011 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
19012
19013         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
19014         OnTextBoxChanged.
19015
19016         Capture LostFocus and OnTextBoxChanged.  The later introduces a
19017         recursive invocation that I have not figured out yet.
19018
19019         Reset the timer when not using (it was accumulating).
19020
19021
19022         (OnTextBoxChanged): Set UserEdit to true here to track whether the
19023         user has made changes that require validation.
19024
19025         Reset changing to avoid loops.
19026
19027 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
19028
19029         * NumericUpDown.cs: Display value at startup.
19030
19031         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
19032         ValidateEditText.
19033
19034         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
19035         filled in.  Added some basic parsing of text.
19036
19037         Still missing the OnXXX method overrides, and figuring out the
19038         events that must be emitted.
19039
19040         * UpDownBase.cs: Handle UserEdit on the Text property.
19041         
19042 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
19043
19044         * ComboBox.cs:
19045           - Fixes IntegralHeight
19046           - ToString method
19047
19048 2005-01-21  Jackson Harper  <jackson@ximian.com>
19049
19050         * TabControl.cs: Set the SelectedIndex property when SelectedTab
19051         is set so that the page visibility is updated and the tabs are
19052         sized correctly.
19053
19054 2005-01-21  Jackson Harper  <jackson@ximian.com>
19055
19056         * TabControl.cs: Use cliping rectangle for blitting. Give the
19057         theme the clipping rect so we can do clipping while
19058         drawing. Remove some debug code.
19059
19060 2005-01-21  Jackson Harper  <jackson@ximian.com>
19061
19062         * TabPage.cs: Add a new method so tab pages can force the tab
19063         control to recalculate the tab page sizes.
19064         * TabControl.cs: UpdateOwner needs to make the tab control recalc
19065         sizes.
19066
19067 2005-01-20  Jackson Harper  <jackson@ximian.com>
19068
19069         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
19070
19071 2005-01-20  Jackson Harper  <jackson@ximian.com>
19072
19073         * TreeView.cs: Set the bounds for nodes properly. They were
19074         getting screwed up when checkboxes were not enabled, but images
19075         were.
19076
19077 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
19078
19079         * ListBox.cs:
19080                 - Owner draw support
19081                 - Fixes
19082                 
19083 2005-01-20  Jackson Harper  <jackson@ximian.com>
19084
19085         * XplatUIStructs.cs: More misc keys
19086         * X11Keyboard.cs: Ignore some control keys.
19087
19088 2005-01-20  Jackson Harper  <jackson@ximian.com>
19089
19090         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
19091         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
19092
19093 2005-01-19  Peter Bartok  <pbartok@novell.com>
19094
19095         * Control.cs: Un-selecting the control when it is loosing focus
19096
19097 2005-01-19  Jackson Harper  <jackson@ximian.com>
19098
19099         * TreeView.cs: Hook up to the text controls leave event so we can
19100         end editing when the users clicks outside the text box.
19101         
19102 2005-01-19  Jackson Harper  <jackson@ximian.com>
19103
19104         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
19105         get set in the conversion array.
19106
19107 2005-01-19  Peter Bartok  <pbartok@novell.com>
19108
19109         * Application.cs (ModalRun): Added a call to CreateControl to ensure
19110           focus is properly set
19111         * Button.cs:
19112           - Added missing attributes
19113           - removed styles, those are already set in the base class
19114         * ButtonBase.cs:
19115           - Added missing attributes
19116           - Added clip window styles
19117         * CheckBox.cs: Added missing attributes
19118         * CommonDialog.cs:
19119           - FormParentWindow.CreateParams: Added required clip styles
19120         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
19121           also filters modifier keys
19122         * MessageBox.cs:
19123           - Added assignment of Accept and Cancel button to enable Enter
19124             and Esc keys in MessageBox dialogs
19125           - FormParentWindow.CreateParams: Added required clip styles
19126         * RadioButton.cs: Added missing attributes
19127         * TextControl.cs: No longer draws selection if control does not
19128           have focus
19129         * TextBoxBase.cs:
19130           - Now draws simple rectangle around test area to make it obvious
19131             there's a control. This is a hack until we properly support borders
19132           - A few simple fixes to support selections better, now erases selected
19133             text when typing, and resets selection when using movement keys
19134
19135 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
19136
19137         * UpDownBase.cs: Added some new properties.
19138
19139         * DomainUpDown.cs: Implement a lot to get my test working.
19140
19141 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19142
19143         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
19144
19145 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19146
19147         * OSXStructs (WindowAttributes): Fixed csc complaints
19148
19149 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19150
19151         * XplayUIOSX.cs:
19152           OSXStructs.cs: Initial refactor to move enums and consts into
19153           OSXStructs and use them in the driver for greater readability.
19154
19155 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
19156
19157         * XplatUIOSX.cs: Initial support for Standard Cursors.
19158         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
19159
19160 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
19161
19162         * ComboBox.cs: ability to change style when the ctrl is already
19163         created, missing methods and events, bug fixes, signature fixes
19164
19165 2005-01-19  Peter Bartok  <pbartok@novell.com>
19166
19167         * Cursors.cs (ctor): Added ctor to fix signature
19168
19169 2005-01-18  Peter Bartok  <pbartok@novell.com>
19170
19171         * Button.cs: Implemented DoubleClick event
19172         * ButtonBase.cs:
19173           - Fixed keyboard handling to behave like MS, where the press of
19174             Spacebar is equivalent to a mousedown, and the key release is
19175             equivalent to mouseup. Now a spacebar push will give the same
19176             visual feedback like a mouse click.
19177           - Added missing attributes
19178           - Added ImeModeChanged event
19179           - Added support for generating DoubleClick event for derived classes
19180         * CheckBox.cs:
19181           - Implemented DoubleClick event
19182           - Added missing attributes
19183         * CommonDialog.cs: Added missing attribute
19184         * ContextMenu.cs: Added missing attributes
19185         * RadioButton.cs:
19186           - AutoChecked buttons do not allow to be unselected when clicked
19187             (otherwise we might end up with no selected buttons in a group)
19188           - Added missing attributes
19189           - Implemented DoubleClickEvent
19190         * ThreadExceptionDialog.cs: Enabled TextBox code
19191
19192 2005-01-18  Peter Bartok  <pbartok@novell.com>
19193
19194         * Form.cs: Removed debug output
19195         * Button.cs: Added support for DoubleClick method
19196
19197 2005-01-18  Peter Bartok  <pbartok@novell.com>
19198
19199         * Form.cs:
19200           - Added method to parent window that allows triggering size
19201             calculations when a menu is added/removed
19202           - set_Menu: Cleaned up mess from early days of Form and Control,
19203             now properly triggers a recalc when a menu is added/removed
19204           - Added case to select form itself as focused form if no child
19205             controls exist
19206           - Added PerformLayout call when showing dialog, to ensure properly
19207             placed controls
19208         * Control.cs:
19209           - Select(): Made internal so Form can access it
19210           - Focus(): Only call Xplat layer if required (avoids loop), and sets
19211             status
19212         * Application.cs (Run): Removed hack and calls PerformLayout instead
19213           to trigger calculation when Form becomes visible
19214
19215 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
19216
19217         * ComboBox.cs: fixes for ownerdraw
19218
19219 2005-01-18  Peter Bartok  <pbartok@novell.com>
19220
19221         * TextControl.cs:
19222           - Sentinel is no longer static, each Document gets it's own, this
19223             avoids locking or alternatively overwrite problems when more
19224             than one text control is used simultaneously.
19225           - Switched to use Hilight and HilightText brushes for text selection
19226
19227         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
19228
19229 2005-01-18  Peter Bartok  <pbartok@novell.com>
19230
19231         * Control.cs:
19232           - Hooked up the following events:
19233                 o ControlAdded
19234                 o ControlRemoved
19235                 o HandleDestroyed
19236                 o ImeModeChanged
19237                 o ParentChanged
19238                 o TabStopChanged
19239                 o Invalidated
19240                 o SystemColorsChanged
19241                 o ParentFontChanged
19242                 o Move
19243           - Removed debug output
19244           - Added a call to the current theme's ResetDefaults when a color change
19245             is detected
19246         * Form.cs: Now setting the proper ImeMode
19247         * Theme.cs: Defined a method to force recreation of cached resources
19248           and rereading of system defaults (ResetDefaults())
19249         * ThemeWin32Classic.cs: Added ResetDefaults() stub
19250
19251 2005-01-17  Peter Bartok  <pbartok@novell.com>
19252
19253         * Control.cs: Added missing attributes
19254
19255 2005-01-17  Jackson Harper  <jackson@ximian.com>
19256
19257         * TreeNode.cs: Implement editing. Add missing properties selected
19258         and visible.
19259         * TreeView.cs: Implement node editing. Also some fixes to use
19260         Invalidate (invalid area) instead of Refresh when selecting.
19261
19262 2005-01-17  Peter Bartok  <pbartok@novell.com>
19263
19264         * Control.cs:
19265           - Implemented InvokeGotFocus() method
19266           - Implemented InvokeLostFocus() method
19267           - Implemented InvokePaint() method
19268           - Implemented InvokePaintBackground() method
19269           - Implemented InvokeClick() method
19270           - Implemented FindForm() method
19271           - Implemented RectangleToClient() method
19272           - Implemented ClientToRectangle() method
19273           - Implemented ResetBackColor() method
19274           - Implemented ResetCursor() method
19275           - Implemented ResetFont() method
19276           - Implemented ResteForeColor() method
19277           - Implemented ResetImeMode() method
19278           - Implemented ResetLeftToRight() method
19279           - Implemented ResetText() method
19280           - Implemented Scale() methods
19281           - Implemented ScaleCore() method
19282           - Implemented Update() method
19283           - Removed unused variables
19284           - Stubbed AccessibilityNotifyClients and
19285             ControlAccessibleObject.NotifyClients() methods (dunno what to do
19286             with those yet)
19287           - Now setting proper default for RightToLeft property
19288           - Fixed bug in SetClientSizeCore that would cause windows to get
19289             really big
19290           - Now sending Click/DoubleClick events
19291           - Now selecting controls when left mouse button is clicked on
19292             selectable control
19293         * AccessibleEvents.cs: Added
19294         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
19295         * XplatUIOSX.cs: Stubbed UpdateWindow() method
19296         * XplatUIWin32.cs: Implemented UpdateWindow() method
19297         * XplatUIX11.cs: Implemented UpdateWindow() method
19298         * Form.cs: Removed stray semicolon causing CS0162 warning
19299         * ThemeWin32Classic.cs: Fixed unused variable warnings
19300         * ScrollableControl.cs: Now calls base method for ScaleCore
19301         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
19302           style to avoid interference with internal click handler (which is
19303           different than standard Control click handling)
19304         * RadioButton.cs:
19305           - Now unchecks all sibling radio buttons when control is
19306             selected (Fixes #68756)
19307           - Removed internal tabstop variable, using the one inherited from
19308             Control
19309
19310 2005-01-17  Jackson Harper  <jackson@ximian.com>
19311
19312         * NavigateEventArgs.cs: Fix base type.
19313         * LinkLabel.cs: Sig fix
19314         
19315 2005-01-17  Jackson Harper  <jackson@ximian.com>
19316
19317         * TreeView.cs: Only invalidate the effected nodes bounds when
19318         selecting nodes.
19319
19320 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19321
19322         * XplatUIWin32.cs: fixes Win32 marshaling
19323         * XplatUIX11.cs: fixes method signature
19324
19325 2005-01-17  Peter Bartok  <pbartok@novell.com>
19326
19327         * XplatUIX11.cs: Clean up resources when we no longer need them
19328
19329 2005-01-17  Peter Bartok  <pbartok@novell.com>
19330
19331         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
19332           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
19333           and DestroyCursor() methods.
19334         * Cursor.cs: Partially implemented, now supports standard cursors;
19335           still contains some debug code
19336         * Cursors.cs: Implemented class
19337         * Control.cs:
19338           - WndProc(): Added handling of WM_SETCURSOR message, setting the
19339             appropriate cursor
19340           - Implemented Cursor property
19341           - Replaced break; with return; more straightforwar and possibly
19342             faster
19343           - Now properly setting the result for WM_HELP
19344         * X11Structs.cs: Added CursorFontShape enum
19345         * XplatUIStructs.cs:
19346           - Added StdCursor enum (to support DefineStdCursor() method)
19347           - Added HitTest enum (to support sending WM_SETCURSOR message)
19348         * XplatUIX11.cs:
19349           - Now sends the WM_SETCURSOR message
19350           - Implemented new cursor methods
19351         * XplatUIOSX.cs: Stubbed new cursor methods
19352         * XplatUIWin32.cs:
19353           - Implemented new cursor methods
19354           - Added GetSystemMetrics function and associated enumeration
19355
19356 2005-01-15  Peter Bartok  <pbartok@novell.com>
19357
19358         * Control.cs:
19359           - WndProc(): Now handles EnableNotifyMessage
19360           - SelectNextControl(): Fixed bug where if no child or sibling
19361             controls exist we looped endlessly
19362
19363 2005-01-14  Jackson Harper  <jackson@ximian.com>
19364
19365         * TreeView.cs: Recalculate the tab pages when a new one is added
19366         so that the proper bounding rects are created.
19367
19368 2005-01-14  Jackson Harper  <jackson@ximian.com>
19369
19370         * TreeView.cs: Draw a gray box instead of a grip in the lower
19371         right hand corner when there are both horizontal and vertical
19372         scroll bars.
19373
19374 2005-01-14  Jackson Harper  <jackson@ximian.com>
19375
19376         * Control.cs: When erasing backgrounds use FromHwnd instead of
19377         FromHdc when there is a NULL wparam. This occurs on the X driver.
19378         * XplatUIX11.cs: Set the wparam to NULL.
19379
19380 2005-01-13  Jackson Harper  <jackson@ximian.com>
19381
19382         * PictureBox.cs: Implement missing methods (except ToString, need
19383         to test that on windows) and events. When visibility is changed we
19384         need to redraw the image because the buffers are killed. When size
19385         is changed refresh if the sizemode needs it.
19386
19387 2005-01-13  Peter Bartok  <pbartok@novell.com>
19388
19389         * Control.cs (SelectNextControl): Was using wrong method to select
19390           a control
19391
19392 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19393
19394         * ComboBox.cs: fixes dropstyle
19395
19396 2005-01-13  Peter Bartok  <pbartok@novell.com>
19397
19398         * Form.cs:
19399           - Implemented Select() override
19400           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
19401           - Now sets keyboard focus on startup
19402         * Control.cs (SelectNextControl): Now properly handles directed=true
19403         * TextBoxBase.cs:
19404           - WndProc: Now passes tab key on to base if AcceptTabChar=false
19405           - Added (really bad) focus rectangle (mostly for testing)
19406         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
19407           to enforce redraw on focus changes
19408         * ContainerControl.cs:
19409           - Fixed detection of Shift-Tab key presses
19410           - Fixed traversal with arrow keys
19411         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
19412           gonna keep this or if it's complete yet
19413         
19414 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
19415
19416         * ComboBox.cs: missing properties, fixes
19417
19418 2005-01-13  Peter Bartok  <pbartok@novell.com>
19419
19420         * Panel.cs (ctor): Setting Selectable window style to off
19421         * Splitter.cs (ctor): Setting Selectable window style to off
19422         * GroupBox.cs (ctor): Setting Selectable window style to off
19423         * Label.cs (ctor): Setting Selectable window style to off
19424
19425 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
19426
19427         * UpDownBase.cs (InitTimer): If the timer has been already
19428         created, enable it.
19429
19430         Use a TextBox instead of a Label.
19431
19432 2005-01-12  Jackson Harper  <jackson@ximian.com>
19433
19434         * TreeView.cs: Refresh the tree after sorting the nodes. Always
19435         draw the connecting node lines (when ShowLines is true).
19436         * TreeNode.cs: The nodes index can now be updated. This is used
19437         when a node collection is sorted.
19438         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
19439         insert or an existing unsorted node collection can be sorted.
19440         
19441 2005-01-12  Peter Bartok  <pbartok@novell.com>
19442
19443         * ContainerControl.cs: Implemented ProcessDialogKeys()
19444
19445 2005-01-12  Peter Bartok  <pbartok@novell.com>
19446
19447         * Control.cs:
19448           - Implemented SelectNextControl() method
19449           - Several focus related bug fixes
19450           - Fixed Docking calculations to match MS documentation and
19451             behaviour
19452
19453 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
19454
19455         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
19456         bug fixes
19457
19458 2005-01-12  Peter Bartok  <pbartok@novell.com>
19459
19460         * Control.cs:
19461           - Fixed broken Contains() method
19462           - Implemented GetNextControl() method. Finally. This is the pre-
19463             requisite for focus handling.
19464
19465 2005-01-12  Peter Bartok  <pbartok@novell.com>
19466
19467         * OSXStrucs.cs: Added
19468
19469 2005-01-12  Peter Bartok  <pbartok@novell.com>
19470
19471         * XplatUIWin32.cs:
19472           - Removed PeekMessageFlags
19473           - Implemented SetWindowStyle() method
19474         * XplatUIStructs.cs: Added PeekMessageFlags
19475         * X11Structs: Added missing border_width field to XWindowChanges struct
19476         * XplatUIX11.cs:
19477           - PeekMessage: Now throws exception if flags which are not yet
19478             supported are passed
19479           - Implemented SetWindowStyle() method
19480           - Fixed SetZOrder to handle AfterHwnd properly
19481         * XplatUI.cs: Added SetWindowStyle() method
19482         * XplatUIDriver.cs: Added SetWindowStyle() abstract
19483         * Control.cs:
19484           - Implemented UpdateStyles() method
19485           - Implemented UpdateZOrder() method
19486         * XplatUIOSX.cs: Added SetWindowStyle() stub
19487
19488 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
19489
19490         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
19491         button mouse).
19492
19493
19494 2005-01-11  Jackson Harper  <jackson@ximian.com>
19495
19496         * TreeView.cs: Still need to draw lines to siblings even if out of
19497         the current node is out of the clip.
19498
19499 2005-01-11  Jackson Harper  <jackson@ximian.com>
19500
19501         * TreeView.cs: When setting the hbar/vbar/grip position use
19502         SetBounds so that perform layout is only called once. Also suspend
19503         and resume layout so layout is only done once for all controls.
19504         - Removed some debug fluff
19505         * SizeGrip.cs: Call base implmentation in overriding methods.
19506         - When visibility is changed the drawing buffers are killed so we
19507         need to redraw.
19508
19509 2005-01-11  Jackson Harper  <jackson@ximian.com>
19510
19511         * TreeView.cs: Calculate the open node count while drawing. This
19512         saves us an entire tree traversal for every paint operation. Use
19513         a member var for the open node count so less vars are passed around.
19514
19515 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
19516
19517         * MonthCalendar.cs:
19518         - fixed selection to use mousemove, not mouse polling on timer
19519         * ThemeWin32Classic.cs
19520         - removed redundant unused variable "no_more_content"
19521         
19522 2005-01-11  Peter Bartok  <pbartok@novell.com>
19523
19524         * XplatUIX11.cs (DoEvents): Needs to return when no more events
19525           are pending, so it now calls PeekMessage instead of GetMessage;
19526           implemented a incomplete version of PeekMessage
19527         
19528 2005-01-11  Peter Bartok  <pbartok@novell.com>
19529
19530         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
19531           I18n issues
19532         * TextBoxBase.cs: Added sending of TextChanged event
19533
19534 2005-01-10  Jackson Harper  <jackson@ximian.com>
19535
19536         * TreeView.cs: Try not to draw outside the clipping rectangle on
19537         each node element.
19538
19539 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
19540
19541         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
19542
19543 2005-01-10  Jackson Harper  <jackson@ximian.com>
19544
19545         * TreeView.cs:
19546         - Implement fast scrolling. Now only the newly
19547         exposed nodes are drawn and the old image is moved using the
19548         XplatUI::ScrollWindow method.
19549         - Factor in height of nodes when calculating whether or not the
19550         node is in the clipping rect.
19551
19552 2005-01-10  Jackson Harper  <jackson@ximian.com>
19553
19554         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
19555
19556 2005-01-10  Peter Bartok  <pbartok@novell.com>
19557
19558         * Application.cs: Added temporary hack to resolve all our resize
19559           required issues on startup. This will get fixed properly at
19560           some point in the future
19561
19562 2005-01-10  Jackson Harper  <jackson@ximian.com>
19563
19564         * SizeGrip.cs: New internal class that is used as a sizing
19565         grip control...hence the name.
19566
19567 2005-01-10  Peter Bartok  <pbartok@novell.com>
19568
19569         * Control.cs: Implemented proper TabIndex handling, now assigning
19570           a tabindex when a control is added to a container
19571         * GroupBox.cs (ctor): Now sets the Container style bit, required
19572           for Control.GetNextControl()
19573
19574 2005-01-09  Jackson Harper  <jackson@ximian.com>
19575
19576         * TextBoxBase.cs: Clear window when scrolling (fixes build).
19577
19578 2005-01-09  Peter Bartok <pbartok@novell.com>
19579
19580         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
19581           XplatUIX11.cs: Added ability to control ScrollWindow expose and
19582           an overload for ScrollWindow to allow only scrolling a rectangle
19583
19584 2005-01-09  Peter Bartok <pbartok@novell.com>
19585
19586         * Form.cs:
19587           - Implemented SetDesktopBounds method
19588           - Implemented SetDesktopLocation method
19589
19590 2005-01-08  Jackson Harper  <jackson@ximian.com>
19591
19592         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
19593         the node count has changed, this removes to VScroll::Refresh calls
19594         when drawing.
19595
19596 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
19597
19598         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
19599
19600 2005-01-07  Jackson Harper  <jackson@ximian.com>
19601
19602         * TreeNode.cs: Just update the single node when it is
19603         checked. Don't refresh after toggling, the Expand/Collapse already
19604         handles this.
19605         * TreeView.cs: Respect clipping a little more when drawing. Try
19606         not to redraw things that don't need to be redrawn. Just hide the
19607         scrollbars when they are no longer needed instead of removing
19608         them, so they don't have to be created again and again.
19609         
19610 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
19611
19612         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
19613         coordinates to window space to place the caret properly, FIXED.
19614         Implement GetWindowState & SetWindowState
19615
19616 2005-01-06  Peter Bartok <pbartok@novell.com>
19617
19618         * Form.cs:
19619           - Implemented ClientSize property
19620           - Implemented DesktopBounds property
19621           - Implemented DesktopLocation property
19622           - Implemented IsRestrictedWindow property
19623           - Implemented Size property
19624           - Implemented TopLevel property
19625           - Implemented FormWindowState property
19626         * Control.cs:
19627           - Implemented GetTopLevel() method
19628           - Implemented SetTopLevel() method
19629         * X11Structs.cs (Atom):
19630           - Added AnyPropertyType definition
19631           - Added MapState definiton and updated XWindowAttribute struct
19632         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
19633         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
19634         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
19635         * XplatUIWin32.cs:
19636           - Implemented GetWindowState() and SetWindowState() methods
19637           - Fixed Win32GetWindowLong return type
19638         * XplatUIX11.cs:
19639           - Introduced central function for sending NET_WM messages
19640           - Implemented GetWindowState() and SetWindowState() methods
19641         * TextBoxBase.cs (set_Lines):
19642           - Now uses Foreground color for text added via Text property (Duh!)
19643           - Added code to remember programmatically requested size (fixes
19644             behaviour when Multiline is set after Size)
19645           - Added AutoSize logic
19646
19647 2005-01-06  Jackson Harper  <jackson@ximian.com>
19648
19649         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
19650
19651 2005-01-06  Jackson Harper  <jackson@ximian.com>
19652
19653         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
19654         set to less then 0.
19655
19656 2005-01-06  Jackson Harper  <jackson@ximian.com>
19657
19658         * ScrollableControl.cs: Lazy init the scrollbars.
19659         
19660 2005-01-06  Jackson Harper  <jackson@ximian.com>
19661
19662         * Theme.cs: Speed up getting pens and solid brushes, by using
19663         their ARGB as a hash instead of tostring and not calling Contains.
19664
19665 2005-01-06  Peter Bartok <pbartok@novell.com>
19666
19667         * Form.cs:
19668           - Implemented OnActivated and OnDeactivate event trigger
19669           - Implemented Activate() method
19670           - Fixed ShowDialog() to activate the form that was active before
19671             the dialog was shown
19672         * XplatUIX11.cs:
19673           - Added global active_window var that tracks the currently active
19674             X11 window
19675           - Now always grabs Property changes from the root window to always
19676             catch changes on the active window property
19677           - Added code to PropertyNotify handler to send Active/Inactive
19678             messages when state changes. This puts X11 and Win32 en par on
19679             WM_ACTIVATE notifications (except for double notifications when
19680             the user clicks away from our modal window to another one of our
19681             windows)
19682
19683 2005-01-05  Jackson Harper  <jackson@ximian.com>
19684
19685         * ImageList.cs: Implment ctor
19686
19687 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19688
19689         * XplatUIOSX.cs: Implement Activate/SetTopmost
19690
19691 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19692
19693         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
19694
19695 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
19696
19697         * XplatUIOSX.cs: Implement GetActive/SetFocus.
19698
19699 2005-01-05  Peter Bartok <pbartok@novell.com>
19700
19701         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
19702           XplatUIOSX.cs: Added GetActive method to return the currently
19703           active window for the application (or null, if none is active)
19704         * Form.cs:
19705           - Implemented ActiveForm
19706           - Commented out owner assignment for modal dialogs (causes problems
19707             on Win32, since the owner will be disabled)
19708           - Reworked some Active/Focus handling (still incomplete)
19709         * CommonDialog.cs: Commented out owner assignment for modal dialogs
19710           (causes problems on Win32, since the owner will be disabled)
19711         * IWin32Window: Added ComVisible attribute
19712
19713 2005-01-05  Peter Bartok <pbartok@novell.com>
19714
19715         * ToolTip.cs (WndProc): Enable setting focus now that we have the
19716           required XplatUI functions.
19717
19718 2005-01-05  Peter Bartok <pbartok@novell.com>
19719
19720         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
19721           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
19722           to implement focus and activation handling; still incomplete and
19723           with debug output
19724
19725 2005-01-04  Peter Bartok <pbartok@novell.com>
19726
19727         * TextBoxBase.cs: Changed access level for Document property to
19728           match switch to internal for TextControl
19729
19730 2005-01-04  Peter Bartok <pbartok@novell.com>
19731
19732         * AccessibleObject: Added ComVisible attribute
19733
19734 2005-01-04  Jackson Harper  <jackson@ximian.com>
19735
19736         * X11Keyboard.cs: Remove unneeded var.
19737
19738 2005-01-04  Jackson Harper  <jackson@ximian.com>
19739
19740         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
19741         but PAINT.
19742         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
19743         ClientMessage. This makes apps exit cleanly (more often).
19744         
19745 2005-01-04  Jackson Harper  <jackson@ximian.com>
19746
19747         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
19748         handling focus, return correct colors and fonts,
19749         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
19750         handle selection, horizontal scrolling, and mouse interaction.
19751
19752 2005-01-04  Peter Bartok <pbartok@novell.com>
19753
19754         * ICommandExecutor.cs: Added
19755         * IDataGridColumnStyleEditingNotificationService.cs: Added
19756         * IFeatureSupport.cs: Added
19757         * IFileReaderService.cs: Added
19758         * IDataObject.cs: Added ComVisible attribute
19759         * AmbientProperties.cs: Added
19760         * BaseCollection.cs: Added missing attributes
19761         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
19762         * BaseCollection.cs: Added missing attributes
19763         * Binding.cs: Added TypeConverter attribute
19764         * BindingContext.cs: Added DefaultEvent attribute
19765         * BindingsCollection.cs: Added DefaultEvent attribute
19766         * Button.cs: Added DefaultValue attribute
19767         * DragEventArgs.cs: Added ComVisible attribute
19768         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
19769         * KeyEventArgs.cs: Added ComVisible attribute
19770         * KeyPressEventArgs.cs: Added ComVisible attribute
19771         * MouseEventArgs.cs: Added ComVisible attribute
19772         * NavigateEventArgs.cs: Added
19773         * NavigateEventHandler.cs: Added
19774         * FeatureSupport.cs: Added
19775         * OSFeature.cs: Added
19776         * Theme.cs: Added abstract Version property to support OSFeature
19777         * ThemeWin32Classic.cs: Added Version property to
19778           support OSFeature.Themes
19779         * ProgressBar.cs: Removed OnPaintBackground override, not required since
19780           the proper styles to avoid background drawing are set, also doesn't
19781           match MS signature
19782         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
19783         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
19784         * ScrollEventArgs.cs: Added ComVisible attribute
19785         * SplitterEventArgs.cs: Added ComVisible attribute
19786         * AccessibleSelection.cs: Added Flags attribute
19787         * Appearance.cs: Added ComVisible attribute
19788         * Border3DSide.cs: Added ComVisible attribute
19789         * Border3DStyle.cs: Added ComVisible attribute
19790         * BorderStyle.cs: Added ComVisible attribute
19791         * DragAction.cs: Added ComVisible attribute
19792         * ErrorBlinkStyle.cs: Added
19793         * ScrollEventType.cs: Added ComVisible attribute
19794         * AnchorStyles.cs: Added Editor attribute
19795         * DockStyle.cs: Added Editor attribute
19796         * HorizontalAlignment.cs: Added ComVisible attribute
19797         * HelpEventArgs.cs: Added ComVisible attribute
19798         * PaintEventArgs.cs: Added IDisposable
19799
19800 2005-01-04  Peter Bartok <pbartok@novell.com>
19801
19802         * TextControl.cs: Switched Line, LineTag and Document classes to
19803           internal
19804
19805 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19806
19807         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
19808         Simple mode, fixes, IntegralHeight, etc.
19809
19810 2005-01-04  Peter Bartok <pbartok@novell.com>
19811
19812         * TextBoxBase.cs: Using proper font variable now
19813
19814 2005-01-04  Peter Bartok <pbartok@novell.com>
19815
19816         * Form.cs (ShowDialog): Set parent to owner, if provided
19817         * GroupBox.cs: Removed unused vars
19818         * TextControl.cs:
19819           - Added GetHashCode() for Document and LineTag classes
19820           - Removed unused variables
19821           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
19822             to allow translation between continuous char position and line/pos
19823         * CheckBox.cs: Removed vars that are provided by base class
19824         * RadioButton.cs: Removed vars that are provided by base class, added
19825           new keyword where required
19826         * LinkLabel.cs: Added new keyword where required
19827         * Control.cs (WndProc): Removed unused variable
19828         * TextBoxBase.cs:
19829           - Finished SelectionLength property
19830           - Implemented SelectionStart property
19831           - Implemented Text property
19832           - Removed unused vars
19833         * MessageBox.cs: Added new keyword where required
19834         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
19835           WndProc signature
19836         * MenuAPI.cs: Added new keyword where required
19837         * ButtonBase.cs: Removed vars that are provided by base class, added
19838           new keyword where required
19839         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
19840           argument to double, to allow compiling with csc 2.0 (Atsushi ran
19841           into this)
19842         * Application.cs (Run): Now triggers the ThreadExit event
19843         * CommonDialog.cs: Added new keyword where required; now properly sets
19844           parent (owner) for dialog
19845         * XplatUIX11.cs: Commented out unused vars
19846         * StatusBar.cs: Fixed signature for Text property
19847         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
19848
19849 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
19850
19851         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
19852         TrackBar.cs, MonthCalendar.cs: remove unused vars
19853
19854 2005-01-03  Jackson Harper  <jackson@ximian.com>
19855
19856         * ThemeWin32Classic.cs:
19857         * X11Keyboard.cs: Remove unused vars.
19858
19859 2005-01-03  Peter Bartok  <pbartok@novell.com>
19860
19861         * TextBox.cs:
19862           - set_Text: Tied into TextControl
19863           - set_TextAlignment: Tied into TextControl
19864         * TextControl.cs:
19865           - Added alignment properties and implemented alignment handling
19866             and drawing (still has a bug, not generating proper expose events)
19867           - Added new Line() constructor to allow passing the line alignment
19868           - Fixed selection setting, properly handling end<start now
19869           - Added aligment considerations to RecalculateDocument()
19870         * TextBoxBase.cs:
19871           - Now properly enforces control height for single line controls
19872           - Added support for CharacterCasing
19873           - Added IsInputKey override
19874           - Fixed Keys.Enter logic
19875           - Added SetBoundsCore override
19876           - Fixed mouse selection handling
19877
19878 2005-01-03  Jackson Harper  <jackson@ximian.com>
19879
19880         * TreeView.cs:
19881           - Collapse and uncheck all nodes when CheckBoxes is disabled.
19882           - Checkboxes are always aligned to the bottom of the node,
19883           regardless of item height.
19884           - Use the node bounds to draw the text so we can center it when
19885           the item height is greater then the font height.
19886           - Node::Bounds are only the text part of the node.
19887         * TreeNode.cs: New method to combine collapsing and unchecking all
19888           nodes recursively.
19889
19890 2005-01-02  Jackson Harper  <jackson@ximian.com>
19891
19892         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
19893         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
19894         tree when a check is changed. TODO: Only refresh the checked node.
19895
19896 2004-12-30  Jackson Harper  <jackson@ximian.com>
19897
19898         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
19899         * TreeNode.cs: When collapsing make sure to never collapse the
19900         root node.
19901
19902 2004-12-29  Jackson Harper  <jackson@ximian.com>
19903
19904         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
19905         
19906 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
19907
19908         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
19909
19910 2004-12-28  Peter Bartok  <pbartok@novell.com>
19911
19912         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
19913           not yet assigned
19914
19915 2004-12-28  Peter Bartok  <pbartok@novell.com>
19916
19917         * Control.cs (WndProc): Added WM_HELP handler, now generates
19918           HelpRequested event
19919         * Form.cs: Added HelpButton property and required support code
19920         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
19921
19922 2004-12-28  Peter Bartok  <pbartok@novell.com>
19923
19924         * CommonDialog.cs:
19925           - Made DialogForm.owner variable internal
19926           - Added check to ensure owner form is set before setting
19927             owner properties in CreateParams
19928
19929 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
19930
19931         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
19932           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
19933           GetCursorPos.  Fix major visibility issues.  Rework the windowing
19934           system to support borderless/titleless windows (implements menus).
19935           Fix GetWindowPos.  Implement initial background color support for
19936           views.
19937
19938 2004-12-28  Peter Bartok  <pbartok@novell.com>
19939
19940         * Form.cs (get_CreateParams): Make sure we have an owner before using
19941           the owner variable. Implement proper default if no owner exists
19942
19943 2004-12-28  Peter Bartok  <pbartok@novell.com>
19944
19945         * In preparation for making Managed.Windows.Forms the default build target
19946           for System.Windows.Forms, the following stubbed files were added.
19947           Dialogs are currently being implemented by contributors and are only
19948           short-term place holders.
19949         * ColorDialog.cs: Initial check-in (minmal stub)
19950         * DataGrid.cs: Initial check-in (minimal stub)
19951         * DataGridLineStyle.cs: Initial check-in (minimal stub)
19952         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
19953         * DataGridTableStyle.cs: Initial check-in (minimal stub)
19954         * FontDialog.cs: Initial check-in (minimal stub)
19955         * FileDialog.cs: Initial check-in (minimal stub)
19956         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
19957         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
19958         * OpenFileDialog: Initial check-in (minimal stub)
19959         * IComponentEditorPageSite.cs: Initial check-in
19960         * Splitter.cs: Initial check-in (for Jackson)
19961         * SplitterEventArgs.cs: Initial check-in (for Jackson)
19962         * SplitterEventHandler.cs: Initial check-in (for Jackson)
19963         * TextBox.cs: Initial check-in; still needs some wiring to
19964           TextControl backend
19965         * Form.cs: Implemented ControlBox property
19966         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
19967         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
19968         * TextControl.cs: Added selection functionality; added todo header
19969         * TextBoxBase.cs:
19970           - Implemented Lines property
19971           - Implemented TextHeight property
19972           - Implemented SelectedText property
19973           - Implemented SelectionLength property
19974           - Implemented SelectAll method
19975           - Implemented ToString method
19976           - Removed and cleaned up some debug code
19977           - Implemented (still buggy) mouse text selection
19978
19979 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
19980
19981         * ComboBox.cs: Complete DropDownList implementation, fixes.
19982
19983 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
19984
19985         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
19986         * ComboBoxStyle.cs: ComboBoxStyle enum
19987         * ComboBox.cs: Initial work on ComboBox control
19988
19989 2004-12-21  Peter Bartok  <pbartok@novell.com>
19990
19991         * Control.cs (ctor, CreateParams): Moved setting of is_visible
19992           forward so that anything that creates a window gets the default,
19993           also no longer uses Visible property in CreateParams to avoid
19994           walking up the parent chain and possibly get the wrong visible
19995           status. Fixed IsVisible to no longer walk up to the parent.
19996
19997 2004-12-21  Peter Bartok  <pbartok@novell.com>
19998
19999         * Form.cs (ShowDialog): Unset modality for the proper window
20000  
20001 2004-12-20  Peter Bartok  <pbartok@novell.com>
20002
20003         * CommonDialog.cs: Initial check-in
20004
20005 2004-12-20  Peter Bartok  <pbartok@novell.com>
20006
20007         * Control.cs (Visible): Now uses the parent window instead of the
20008           client area window for the property
20009
20010         * Form.cs
20011           - ShowDialog(): Now uses the proper window for modality
20012           - The default visibility state for the form parent is now false. This
20013             will prevent the user from seeing all the changes to the form and
20014             its controls before the application hits Application.Run()
20015           - Removed some stale commented out code
20016
20017         * NativeWindow.cs:
20018           - Added FindWindow() method to have a method to check for existence
20019             of a window handle
20020           - Added ability to override default exception handling (for example
20021             when debugging with VS.Net; to do this the ExternalExceptionHandler
20022             define must be set
20023           - Removed some useless debug output
20024
20025         * XplatUIX11.cs:
20026           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
20027             not working as expected
20028           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
20029             property to allow switching back to the modal window if focus is
20030             given to another one of our windows (Application Modal)
20031           - Now only sets override_redirect if we create a window
20032             without WS_CAPTION
20033           - Moved EventMask selection before mapping of newly created window
20034             so we can catch the map event as well
20035           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
20036           - Added various Atom related DllImports
20037           - Implemented Exit() method
20038           - .ctor() : No longer shows window if WS_VISIBLE is not defined
20039             in the CreateParams
20040
20041         * MessageBox.cs: Now properly deals with the FormParent window by
20042           providing an override the FormParent CreateParams property to
20043           set as POPUP instead of OVERLAPPED window.
20044
20045 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
20046
20047         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
20048         Minor code cleanup.
20049
20050 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
20051         
20052         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
20053
20054 2004-12-18  Peter Bartok  <pbartok@novell.com>
20055
20056         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
20057           implementing SetModal() method
20058
20059 2004-12-18  Peter Bartok  <pbartok@novell.com>
20060
20061         * X11Structs.cs (XGCValues): Fixed type of function element
20062         * XplatUI.cs: Added ScrollWindow() method
20063         * XplatUIDriver.cs: Added ScrollWindow() abstract
20064         * XplatUIWin32.cs: Implemented ScrollWindow() method
20065         * XplatUIX11.cs: Implemented ScrollWindow() method
20066         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
20067
20068 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20069
20070         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
20071         Some more keyboard support (INCOMPLETE)
20072
20073 2004-12-17  Peter Bartok  <pbartok@novell.com>
20074
20075         * TextControl.cs:
20076         - Added color attribute to line tags.
20077         - Added color argument to all functions dealing with tags
20078         - Added color argument support to various functions
20079         - Fixed miss-calculation of baseline/shift in certain circumstances
20080
20081         * TextBoxBase.cs: Added new color option to test code
20082
20083 2004-12-17  Jackson Harper  <jackson@ximian.com>
20084
20085         * TreeNode.cs:
20086         * MonthCalendar.cs: Signature fixes
20087
20088 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20089
20090         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
20091         keyboard event moved it.  Create a new graphics context for each paint resolves this
20092
20093 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
20094
20095         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
20096         Make caret exist and go blink blink.  Initial keyboard support.
20097         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
20098         works.
20099
20100 2004-12-17  Jackson Harper  <jackson@ximian.com>
20101
20102         * XplatUIStructs.cs: Updated set of virtual keycodes.
20103         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
20104
20105 2004-12-17  Jackson Harper  <jackson@ximian.com>
20106
20107         * XplatUIX11.cs: Prune old keyboard code.
20108
20109 2004-12-17  Jackson Harper  <jackson@ximian.com>
20110
20111         * XplatUIX11.cs: When generating mouse wparams get the modifier
20112         keys from the ModifierKeys property.
20113
20114 2004-12-17  Jackson Harper  <jackson@ximian.com>
20115
20116         * X11Keyboard.cs: Send up/down input when generating
20117         messages. Remove some unused vars.
20118
20119 2004-12-17  Jackson Harper  <jackson@ximian.com>
20120
20121         * TabControl.cs:
20122         * TreeView.cs: get rid of warnings.
20123
20124 2004-12-17  Jackson Harper  <jackson@ximian.com>
20125
20126         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
20127
20128 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
20129
20130         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
20131           CheckedListBox.cs: Implementation
20132
20133 2004-12-17  Peter Bartok  <pbartok@novell.com>
20134
20135         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
20136
20137 2004-12-16  Peter Bartok  <pbartok@novell.com>
20138
20139         * TextControl.cs:
20140           - InsertCharAtCaret(): Fixed start pos fixup
20141           - CaretLine_get: No longer derives the line from the tag, the tag
20142             could be stale if lines in the document have been added or deleted
20143           - RebalanceAfterDelete(): Fixed bug in balancing code
20144           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
20145           - Line.Streamline(): Now can also elminate leading empty tags
20146           - DumpTree(): Added a few more tests and prevented exception on
20147             uninitialized data
20148           - Added Debug section for Combining lines
20149           - Delete(): Now copies all remaining properties of a line
20150           
20151         * TextBoxBase.cs:
20152           - Left mousebutton now sets the caret (and middle button still acts
20153             as formatting tester, which must go away soon)
20154           - Added Debug section for Deleting/Combining lines
20155           - Fixed calculations for UpdateView after Combining lines
20156
20157 2004-12-16  Peter Bartok  <pbartok@novell.com>
20158
20159         * TextControl.cs: Now properly aligns text on a baseline, using the
20160           new XplatUI.GetFontMetrics() method. Simplified several calculations
20161         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
20162           defined
20163
20164 2004-12-16  Peter Bartok  <pbartok@novell.com>
20165
20166         * XplatUI.cs: Added GetFontMetrics() method
20167         * XplatUIDriver.cs: Added GetFontMetrics() abstract
20168         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
20169           into libgdiplus, our private GetFontMetrics function
20170         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
20171         * XplatUIWin32.cs: Implemented GetFontMetrics() method
20172
20173 2004-12-16  Jackson Harper  <jackson@ximain.com>
20174
20175         * XplatUIStruct.cs: Add enum for dead keys
20176         * X11Keyboard.cs: Map and unmap dead keys.
20177
20178 2004-12-16  Jackson Harper  <jackson@ximian.com>
20179
20180         * X11Keyboard.cs: Detect and use the num lock mask.
20181
20182 2004-12-16  Peter Bartok  <pbartok@novell.com>
20183
20184         * Control.cs (CreateGraphics): Added check to make sure the
20185           handle of the window exists before calling Graphics.FromHwnd()
20186
20187 2004-12-16  Peter Bartok  <pbartok@novell.com>
20188
20189         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
20190           contains a lot of code that's not supposed to be there for the
20191           real thing, but required for developing/testing the textbox
20192           backend.
20193
20194 2004-12-16  Peter Bartok  <pbartok@novell.com>
20195
20196         * TextControl.cs:
20197         - Fixed Streamline method
20198         - Added FindTag method to Line
20199         - Added DumpTree method for debugging
20200         - Added DecrementLines() method for deleting lines
20201         - Fixed UpdateView to update the cursor to end-of-line on single-line
20202           updates
20203         - Added PositionCaret() method
20204         - Fixed MoveCaret(LineDown) to move into the last line, too
20205         - Added InsertChar overload
20206         - Fixed InsertChar tag offset calculations
20207         - Added DeleteChar() method
20208         - Added Combine() method for folding lines
20209         - Fixed Delete() method, no longer allocates wasted Line object and
20210           now copies all properties when swapping nodes
20211         - Delete() method now updates document line counter
20212
20213 2004-12-15  Jackson Harper  <jackson@ximian.com>
20214
20215         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
20216         * X11Keyboard.cs: Expose the currently selected modifier keys
20217         through a property.
20218
20219 2004-12-15  Peter Bartok  <pbartok@novell.com>
20220
20221         * TextControl.cs: Initial check-in. Still incomplete
20222
20223 2004-12-15  Jackson Harper  <jackson@ximian.com>
20224
20225         * TreeNode.cs:
20226         * TreeView.cs: Fix build on csc (second time today ;-))
20227
20228 2004-12-15  Jackson Harper  <jackson@ximian.com>
20229
20230         * TreeView.cs: Store the treenodes plus/minus box bounds when it
20231         is calculated and use this for click testing.
20232         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
20233
20234 2004-12-15  Jackson Harper  <jackson@ximian.com>
20235
20236         * TreeView.cs: Pass the nodes image index to the image list when
20237         drawing that image.
20238
20239 2004-12-15  Jackson Harper  <jackson@ximian.com>
20240
20241         * X11Keyboard.cs: Set messages hwnd.
20242         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
20243         post_message calls.
20244
20245 2004-12-15  Jackson Harper  <jackson@ximian.com>
20246
20247         * X11Keyboard.cs: Fix to compile with csc.
20248         
20249 2004-12-15  Jackson Harper  <jackson@ximian.com>
20250
20251         * X11Structs.cs: Add key mask values
20252         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
20253         * X11Keyboard.cs: New file - Extrapolates and interpolates key
20254         down/up foo into WM_CHAR foo
20255         * KeyboardLayouts.cs: Common keyboard layouts
20256         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
20257         post messages into the main queue.
20258
20259 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
20260
20261         * Button.cs: implement ProcessMnemonic
20262         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
20263           brushes everytime
20264         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
20265         * ButtonBase.cs: Show HotkeyPrefix (not the &)
20266
20267 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
20268         
20269         * MonthCalendar.cs: Implemented click-hold for next/previous month
20270           and date selection
20271           
20272 2004-12-11  Peter Bartok  <pbartok@novell.com>
20273
20274         * X11Structs.cs:
20275           - Added XKeyboardState (moved from XplatUIX11.cs)
20276           - Added XCreateGC related enums and structures
20277           - Added GXFunction for XSetFunction
20278
20279         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
20280
20281         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
20282           CaretVisible() calls
20283
20284         * ToolTip.cs: Added code to prevent stealing focus from app windows
20285
20286         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
20287           DestroyCaret, SetCaretPos and CaretVisible)
20288
20289         * XplatUIX11.cs:
20290           - Added implementation for caret functions
20291           - Moved hover variables into a struct, to make it a bit easier
20292             on the eyes and to debug
20293           - Removed XKeyboardState (moved to XplatUIX11.cs)
20294           - Moved Keyboard properties into the properties region
20295
20296         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
20297           call to get a graphics context for our control
20298
20299         * XplatUIOSX.cs: Added empty overrides for the new caret functions
20300
20301         * TreeView.cs: Fixed bug. No matter what color was set it would always
20302           return SystemColors.Window
20303
20304         * XplatUIWin32.cs: Implemented caret overrides
20305
20306 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
20307
20308         * ListBox.cs: fire events, implement missing methods and properties,
20309         sorting.
20310
20311 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
20312
20313         * MonthCalendar.cs: invalidation bug fixing
20314         * ThemeWin32Classic.cs: paint fixing
20315
20316 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
20317
20318         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
20319         prepare the CGContextRef there now.
20320
20321 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
20322
20323         * MonthCalendar.cs:
20324           - optimisationL only invalidate areas that have changed
20325         * ThemeWin32Classic.cs:
20326           - only paint parts that intersect with clip_area
20327
20328 2004-12-09  Peter Bartok  <pbartok@novell.com>
20329
20330         * Application.cs: Undid changes from r37004 which cause problems
20331         on X11
20332
20333 2004-12-09  Ravindra  <rkumar@novell.com>
20334
20335         * ToolBar.cs: Added support for displaying ContextMenu
20336         attached to a button on ToolBar.
20337         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
20338         property.
20339
20340 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20341
20342         * Label.cs: autosize works in text change and removes unnecessary
20343         invalidate
20344
20345 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
20346
20347         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
20348         remove warnings
20349
20350 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
20351
20352         * XplatUIOSX.cs: Added mouse move/click/grab support
20353         Remove some debugging WriteLines not needed anymore.
20354         Add window resizing/positioning.
20355         Fix visibility on reparenting.
20356
20357 2004-12-08  Peter Bartok  <pbartok@novell.com>
20358
20359         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
20360
20361 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
20362
20363         * XplatUIOSX.cs: Initial checkin
20364         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
20365
20366 2004-12-03  Ravindra <rkumar@novell.com>
20367
20368         * ListView.cs: Added some keybindings and fixed scrolling.
20369         ScrollBars listen to ValueChanged event instead of Scroll
20370         Event. This would let us take care of all changes being
20371         done in the scrollbars' values programmatically or manually.
20372         * ListView.cs (CanMultiselect): Added a check for shift key.
20373         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
20374         * ListViewItem.cs (Clone): Fixed. We need to make a copy
20375         of ListViewSubItemCollection as well.
20376
20377 2004-12-06  Peter Bartok <pbartok@novell.com>
20378
20379         * Control.cs (Parent): Added check and exception to prevent
20380         circular parenting
20381
20382 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
20383
20384         * ListBox.cs: implemented clipping, selection single and multiple,
20385         bug fixing
20386
20387 2004-12-03  Ravindra <rkumar@novell.com>
20388
20389         * ListView.cs (ListView_KeyDown):
20390         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
20391         when CTRL key is pressed.
20392         * ListViewItem.cs (Selected): Fixed setting the property.
20393
20394 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20395
20396         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
20397
20398         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
20399         MinimizeBox, ShowInTaskbar, TopMost properties.
20400
20401         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
20402         will be implemented).
20403
20404 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
20405
20406         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
20407
20408         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
20409         tests.
20410         
20411         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
20412         
20413         * TreeView.cs: BackColor is Colors.Window.
20414
20415 2004-12-01  Jackson Harper  <jackson@ximian.com>
20416
20417         * TreeView.cs: When resizing the tree if the user is making it
20418         smaller we don't get expose events, so we need to handle adding
20419         the horizontal scrollbar in the size changed handler as well as
20420         the expose handler.
20421
20422 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
20423
20424         * DrawItemState.cs: fixes wrong enum values
20425
20426 2004-12-01  Jackson Harper  <jackson@ximian.com>
20427
20428         * TreeView.cs: Resize the hbar as well as the vbar on resize.
20429
20430 2004-12-01  Jackson Harper  <jackson@ximian.com>
20431
20432         * NodeLabelEditEventArgs.cs:
20433         * NodeLabelEditEventHandler.cs:
20434         * OpenTreeNodeEnumerator.cs:
20435         * TreeNode.cs:
20436         * TreeNodeCollection.cs:
20437         * TreeView.cs:
20438         * TreeViewAction.cs:
20439         * TreeViewCancelEventArgs.cs:
20440         * TreeViewCancelEventHandler.cs:
20441         * TreeViewEventArgs.cs:
20442         * TreeViewEventHandler.cs: Initial implementation.
20443
20444 2004-12-01  Ravindra <rkumar@novell.com>
20445
20446         * ListView.cs (CalculateListView): Fixed scrolling related
20447         calculations. Also, removed some debug statements from other
20448         places.
20449         * ListViewItem.cs: Changed access to 'selected' instance variable
20450         from private to internal.
20451         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
20452
20453 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
20454
20455         * ThemeWin32Classic.cs: remove cache of brush and pens for
20456         specific controls and use the global system, fixes scrollbutton
20457         bugs (for small sizes, disabled, etc)
20458         
20459         * ScrollBar.cs: does not show the thumb for very small controls
20460         (as MS) and allow smaller buttons that the regular size
20461
20462 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
20463
20464         * UpDownBase.cs: Add abstract methods for the interface.
20465         Add new virtual methods (need to be hooked up to TextEntry when it
20466         exists).
20467         Add override methods for most features.
20468         Computes the size, forces the height of the text entry.
20469
20470         * NumericUpDown.cs: Put here the current testing code.
20471
20472         * Set eol-style property on all files that do not have mixed line
20473         endings, to minimize the future problems.  There are still a few
20474         files with mixed endings, and someone should choose whether they
20475         want to move it or not.
20476
20477 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
20478
20479         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
20480         System.Colors
20481         
20482 2004-11-30  Ravindra <rkumar@novell.com>
20483
20484         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
20485         drawing and replaced use of SystemColors by theme colors.
20486         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
20487         * ListView.cs (ListViewItemCollection.Add): Throw exception when
20488         same ListViewItem is being added more than once.
20489
20490 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
20491
20492         * MonthCalendar.cs:
20493           - ControlStyles love to make the control not flicker
20494           
20495 2004-11-30  Peter Bartok  <pbartok@novell.com>
20496
20497         * CharacterCasing.cs: Added
20498
20499 2004-11-29  Peter Bartok  <pbartok@novell.com>
20500
20501         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20502           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
20503           I am removing these files as they conflict with already completed
20504           work. While it is fantastic to get contributions to MWF, I
20505           respectfully ask that everyone please coordinate their contributions
20506           through mono-winforms-list or #mono-winforms at this time. We're
20507           explicitly avoiding stubbing and don't want controls that don't have
20508           their basic functionality implemented in svn. Please also see
20509           http://www.mono-project.com/contributing/winforms.html
20510
20511
20512 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
20513
20514         * Application.cs (ModalRun): Don't hang after exit.
20515
20516         * Theme.cs: New TreeViewDefaultSize property.
20517
20518         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
20519         with less hardcoded SystemColors constant.
20520         Implemented TreeViewDefaultSize.
20521
20522         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
20523         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
20524
20525
20526 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
20527
20528         * MonthCalendar.cs:
20529           - Fix NextMonthDate and PrevMonthDate click moving calendar
20530
20531 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20532
20533         * MonthCalendar.cs:
20534           - Fix usage of ScrollChange Property when scrolling months
20535
20536 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
20537
20538         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
20539          - Fixes menu destroying
20540          - Support adding and removing items on already created menus
20541
20542 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
20543
20544         * MonthCalendar.cs:
20545           - Re-worked all bolded dates handling to match win32
20546         * ThemeWin32Classic.cs:
20547           - Fixed rendering with bolded dates
20548
20549 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
20550
20551         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
20552         - Horizontal scroolbar
20553         - Multicolumn
20554         - Fixes
20555
20556
20557 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
20558
20559         * MonthCalendar.cs:
20560           - Fix Usage of MaxSelectionCount from SelectionRange
20561           - Fixed Shift + Cursor Selection
20562           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
20563           - Fixed normal cursor selection to be compat with win32
20564           - Fixed Shift + Mouse Click selection
20565
20566 2004-11-24  Peter Bartok <pbartok@novell.com>
20567
20568         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
20569         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
20570         * XplatUIX11.cs:
20571           - CreatedKeyBoardMsg now updates keystate with Alt key
20572           - Added workaround for timer crash to CheckTimers, Jackson will
20573             develop a proper fix and check in later
20574           - Implemented DispatchMessage
20575           - Removed calling the native window proc from GetMessage (call
20576             now moved to DispatchMessage)
20577
20578         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
20579           the keydata (Fixes bug #69831)
20580
20581         * XplatUIWin32.cs:
20582           - (DispatchMessage): Switched to return IntPtr
20583           - Added DllImport for SetFocus
20584
20585 2004-11-24  Ravindra <rkumar@novell.com>
20586
20587         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
20588         background drawing.
20589         * ListViewItem.cs: Fixed various properties, calculations
20590         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
20591         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
20592         and some internal properties. Fixed MouseDown handler and Paint
20593         method.
20594
20595 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20596
20597         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
20598
20599 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20600
20601         * ContainerControl.cs: correct accidental check in of local changes
20602
20603 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
20604
20605         * ThemeWin32Classic.cs:
20606                 - Fixed Drawing Last month in grid (sometimes not showing)
20607         * MonthCalendar.cs:
20608                 - Fixed title width calculation bug (makeing title small)
20609
20610 2004-11-23  Peter Bartok <pbartok@novell.com>
20611
20612         * XplatUIX11.cs:
20613           - Added generation of WM_MOUSEHOVER event
20614           - Added missing assignment of async_method atom
20615           - Fixed WM_ERASEBKGND; now only redraws the exposed area
20616
20617 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20618
20619         * ThemeWin32Classic.cs:
20620                 - Fixed Drawing of today circle when showtodaycircle not set
20621                 - fixed drawing of first and last month in the grid (gay dates)
20622         * MonthCalendar.cs:
20623                 - Fixed Drawing of today circle
20624                 - Fixed drawing of grady dates
20625                 - Fixed HitTest for today link when ShowToday set to false
20626                 - Fixed DefaultSize to obey ShowToday
20627
20628 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
20629
20630         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
20631         * System.Windows.Forms/Theme.cs
20632         * MonthCalendar.cs: added for MonthCalendar
20633         * SelectionRange.cs: added for MonthCalendar
20634         * Day.cs: added for MonthCalendar: added for MonthCalendar
20635         * DateRangeEventArgs.cs: added for MonthCalendar
20636         * DateRangeEventHandler.cs: added for MonthCalendar
20637
20638 2004-11-22  Ravindra <rkumar@novell.com>
20639
20640         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
20641         property.
20642
20643 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
20644
20645         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
20646         event handler.
20647         
20648         * NumericUpDown.cs: Added new implementation.
20649         * UpDownBase.cs: Added new implementation.
20650
20651         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
20652         implementations.
20653         
20654         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
20655         implementations.
20656
20657         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
20658         methods.
20659
20660 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
20661
20662         * Timer.cs  (Dispose): Should call the base dispose when
20663         overriding.
20664
20665 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20666
20667         * ScrollBar.cs: updates thumb position when max, min or increment
20668         is changed
20669
20670 2004-11-21  Ravindra <rkumar@novell.com>
20671
20672         * ListView.cs: Implemented item selection, activation and
20673         column header style. Fixed properties to do a redraw, if
20674         required. Added support for MouseHover, DoubleClick, KeyDown
20675         and KeyUp event handling and some minor fixes.
20676         * ListViewItem.cs: Fixed constructor.
20677         * ThemeWin32Classic.cs: Improved drawing for ListView.
20678
20679 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
20680
20681         * ThemeWin32Classic.cs: initial listbox drawing code
20682         * DrawMode.cs: new enumerator
20683         * ListControl.cs: stubbed class
20684         * ListBox.cs: initial implementation
20685         * Theme.cs: new methods definitions
20686         * SelectionMode.cs: new enumerator
20687
20688 2004-11-17  Peter Bartok  <pbartok@novell.com>
20689
20690         * XplatUIWin32.cs: Added double-click events to the class style
20691         * Control.cs (WndProc):
20692           - Added handling of click-count to MouseDown/ MouseUp events.
20693           - Added handling of middle and right mouse buttons
20694           - Removed old debug code
20695
20696 2004-11-17  Jackson Harper  <jackson@ximian.com>
20697
20698         * XplatUIX11.cs: Use the new Mono.Unix namespace.
20699
20700 2004-11-17  Ravindra <rkumar@novell.com>
20701
20702         * ListView.cs: Added event handling for MouseMove/Up/Down.
20703         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
20704         * ThemeWin32Classic.cs: We need to clear the graphics context and
20705         draw column header in a proper state.
20706
20707
20708 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
20709
20710         *  Menu.cs: fixes signature
20711
20712 2004-11-16  Peter Bartok  <pbartok@novell.com>
20713
20714         * XplatUIX11.cs (GetMessage): Implemented generation of
20715           double click mouse messages
20716
20717 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
20718
20719         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
20720         not by menu
20721
20722 2004-11-11  Peter Bartok  <pbartok@novell.com>
20723
20724         * HandleData.cs: Added Visible property
20725         * XplatUIX11.cs (IsVisible): Now uses Visible property from
20726           HandleData
20727         * XplatUIX11.cs: Removed old debug leftovers
20728         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
20729         * Control.cs (WndProc): Removed old debug leftovers,
20730           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
20731           needed WM_SIZE handling
20732
20733 2004-11-11  Jackson Harper  <jackson@ximian.com>
20734
20735         * OwnerDrawPropertyBag.cs:
20736         * TreeViewImageIndexConverter.cs: Initial implementation
20737
20738 2004-11-10  Jackson Harper  <jackson@ximian.com>
20739
20740         * ThemeWin32Classic.cs:
20741         * TabControl.cs: instead of moving tabs by the slider pos just
20742         start drawing at the tab that is offset by the slider. This way
20743         scrolling always moves by exactly one tab.
20744
20745 2004-11-10  Jackson Harper  <jackson@ximian.com>
20746
20747         * TabControl.cs: You can only scroll left when the slider has
20748         already ben moved right.
20749         
20750 2004-11-10  Jackson Harper  <jackson@ximian.com>
20751
20752         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
20753         the clip area.
20754         
20755 2004-11-10  Jackson Harper  <jackson@ximian.com>
20756
20757         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
20758         clip area.
20759         
20760 2004-11-09  Jackson Harper  <jackson@ximian.com>
20761
20762         * TabControl.cs (CalcXPos): New helper method so we can determine
20763         the proper place to start drawing vertical tabs.
20764         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
20765         
20766 2004-11-09  Jackson Harper  <jackson@ximian.com>
20767
20768         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
20769         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
20770         and Bottom, left and right are illegal values for this and
20771         multiline is enabled when the alignment is set to left or right.
20772         (DrawTab): Each alignment block should draw the text itself now
20773         because Left requires special love. Also add rendering for Left
20774         aligned tabs.
20775         
20776 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
20777
20778         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
20779         does not destroy the windows, removes debugging messages
20780
20781 2004-11-09  jba  <jba-mono@optusnet.com.au>
20782
20783         * ThemeWin32Classic.cs
20784         (DrawButtonBase): Fix verticle text rect clipping in windows
20785         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20786         rendering and incorrect text rect clipping
20787         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
20788         rendering and incorrect text rect clipping
20789         
20790 2004-11-08  Jackson Harper  <jackson@ximian.com>
20791
20792         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
20793         bottom when they are bottom aligned so the bottoms of the tabs get
20794         displayed.
20795         * TabControl.cs (DropRow): Move rows up instead of down when the
20796         tab control is bottom aligned.
20797
20798 2004-11-08 13:59  pbartok
20799
20800         * XplatUIX11.cs:
20801           - Added handling for various window styles
20802           - Added handling for popup windows
20803           - Added SetTopmost handling
20804
20805 2004-11-08 13:55  pbartok
20806
20807         * XplatUIWin32.cs:
20808           - Added argument to SetTopmost method
20809           - Fixed broken ClientToScreen function
20810
20811 2004-11-08 13:53  pbartok
20812
20813         * XplatUIStructs.cs:
20814           - Added missing WS_EX styles
20815
20816 2004-11-08 13:53  pbartok
20817
20818         * XplatUI.cs, XplatUIDriver.cs:
20819           - Added argument to SetTopmost
20820
20821 2004-11-08 13:52  pbartok
20822
20823         * X11Structs.cs:
20824           - Added XSetWindowAttributes structure
20825           - Improved XWindowAttributes structure
20826           - Added SetWindowValuemask enum
20827           - Added window creation arguments enum
20828           - Added gravity enum
20829           - Added Motif hints structure
20830           - Added various Motif flags and enums
20831           - Added PropertyMode enum for property functions
20832
20833 2004-11-08 13:50  pbartok
20834
20835         * Form.cs:
20836           - Fixed arguments for updated SetTopmost method
20837
20838 2004-11-08 13:49  pbartok
20839
20840         * ToolTip.cs:
20841           - Fixed arguments for updated SetTopmost function
20842           - Fixed usage of PointToClient
20843
20844 2004-11-08 13:44  pbartok
20845
20846         * MenuAPI.cs:
20847           - Added Clipping of children and siblings
20848
20849 2004-11-08 13:41  pbartok
20850
20851         * MainMenu.cs:
20852           - Removed SetMenuBarWindow call. We do this in Form.cs
20853
20854 2004-11-08 13:40  jackson
20855
20856         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
20857           scrolling jimmi in the correct location with bottom aligned tabs
20858
20859 2004-11-08 13:36  pbartok
20860
20861         * ContainerControl.cs:
20862           - Implemented BindingContext
20863           - Implemented ParentForm
20864
20865 2004-11-08 12:46  jackson
20866
20867         * TabControl.cs: Put bottom rendered tabs in the right location
20868
20869 2004-11-08 07:15  jordi
20870
20871         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
20872           removes dead code
20873
20874 2004-11-05 17:30  jackson
20875
20876         * TabControl.cs: When selected tabs are expanded make sure they
20877           don't go beyond the edges of the tab control
20878
20879 2004-11-05 14:57  jackson
20880
20881         * TabControl.cs: Reset show_slider so if the control is resized to
20882           a size where it is no longer needed it's not displayed anymore
20883
20884 2004-11-05 13:16  jackson
20885
20886         * TabControl.cs: Make tab pages non visible when added to the
20887           control
20888
20889 2004-11-05 12:42  jackson
20890
20891         * TabControl.cs: Implement SizeMode.FillToRight
20892
20893 2004-11-05 12:16  jackson
20894
20895         * Control.cs: Do not call CreateHandle if the handle is already
20896           created
20897
20898 2004-11-05 11:46  jackson
20899
20900         * TabControl.cs: Remove superflous call to CalcTabRows
20901
20902 2004-11-05 09:07  jackson
20903
20904         * XplatUIX11.cs: Update for Mono.Posix changes
20905
20906 2004-11-05 07:00  ravindra
20907
20908         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
20909           scrolling.
20910
20911 2004-11-04 22:47  jba
20912
20913         * ThemeWin32Classic.cs:
20914           - Fix Button rendering for FlatStyle = Flat or Popup
20915           - Fix RadioButton and CheckBox rendering when Appearance = Button
20916             (normal and flatstyle).
20917           - Correct outer rectangle color when drawing focus rectangle
20918           - Adjust button bounds to be 1 px smaller when focused
20919           - Make button not draw sunken 3d border when pushed (windows compat)
20920           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
20921           - Offset the text in RadioButton and Checkbox when being rendered as
20922           a button.
20923           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
20924           radiobuttons
20925           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
20926           - Fixed disabled text rendering for normally rendered radiobuttons
20927
20928 2004-11-04 10:26  jackson
20929
20930         * TabControl.cs: Recalculate tab rows when resizing
20931
20932 2004-11-04 07:47  jordi
20933
20934         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
20935           collection completion, drawing issues, missing features
20936
20937 2004-11-04 05:03  ravindra
20938
20939         * ScrollBar.cs:
20940                 - We need to recalculate the Thumb area when
20941                 LargeChange/maximum/minimum values are changed.
20942           - We set the 'pos' in UpdatePos() method to minimum, if it's less
20943                 than minimum. This is required to handle the case if large_change is
20944                 more than max, and use LargeChange property instead of large_change
20945                 variable.
20946           - We return max+1 when large_change is more than max, like MS does.
20947
20948 2004-11-04 04:29  ravindra
20949
20950         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
20951                 - Changed default value signatures (prefixed all with ListView).
20952                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
20953                 ListView.
20954           - Fixed calculations for ListViewItem and implemented Clone()
20955           method.
20956
20957 2004-11-04 04:26  ravindra
20958
20959         * Theme.cs, ThemeWin32Classic.cs:
20960                 - Changed default ListView values signatures (prefixed all with
20961                 ListView).
20962           - Fixed default size values for VScrollBar and HScrollBar.
20963                 - Fixed DrawListViewItem method.
20964
20965 2004-11-04 04:05  ravindra
20966
20967         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
20968
20969 2004-11-04 04:04  ravindra
20970
20971         * ImageList.cs: Implemented the missing overload for Draw method.
20972
20973 2004-11-03 19:29  jackson
20974
20975         * TabControl.cs: Handle dropping rows on selection properly
20976
20977 2004-11-03 11:59  jackson
20978
20979         * TabControl.cs: remove debug code
20980
20981 2004-11-03 11:52  jackson
20982
20983         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
20984           the scrolly widgerywoo
20985
20986 2004-11-02 13:52  jackson
20987
20988         * TabControl.cs: Resize the tab pages and tabs when the tab control
20989           is resized
20990
20991 2004-11-02 13:40  jackson
20992
20993         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
20994           selected tab to the bottom
20995
20996 2004-11-02 13:39  jackson
20997
20998         * TabPage.cs: Store the tab pages row
20999
21000 2004-11-02 12:33  jordi
21001
21002         * MenuItem.cs: fixes handle creation
21003
21004 2004-11-02 11:42  jackson
21005
21006         * TabControl.cs: signature fix
21007
21008 2004-11-02 08:56  jackson
21009
21010         * TabControl.cs: Calculate whether the tab is on an edge properly.
21011           Remove top secret debugging code
21012
21013 2004-11-01 19:57  jackson
21014
21015         * TabControl.cs: Add click handling, and proper sizing
21016
21017 2004-11-01 19:47  jackson
21018
21019         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
21020           tab controls
21021
21022 2004-11-01 19:39  jackson
21023
21024         * TabPage.cs: add internal property to store the bounds of a tab
21025           page
21026
21027 2004-10-30 04:23  ravindra
21028
21029         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
21030           values.
21031
21032 2004-10-30 04:21  ravindra
21033
21034         * ListView.cs, ListViewItem.cs: Added support for scrolling and
21035           fixed calculations.
21036
21037 2004-10-30 03:06  pbartok
21038
21039         * XplatUIX11.cs:
21040           - Removed extension of DllImported libs
21041
21042 2004-10-29 09:55  jordi
21043
21044         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
21045           navigation, itemcollection completion, menu fixes
21046
21047 2004-10-27 22:58  pbartok
21048
21049         * XplatUIX11.cs:
21050           - Now throws a nice error message when no X display could be opened
21051
21052 2004-10-26 13:51  jordi
21053
21054         * ListView.cs: removes warning
21055
21056 2004-10-26 03:55  ravindra
21057
21058         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
21059           ThemeWin32Classic.cs: Some formatting for my last checkins.
21060
21061 2004-10-26 03:36  ravindra
21062
21063         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
21064           control and default values.
21065
21066 2004-10-26 03:35  ravindra
21067
21068         * Theme.cs: Added some default values for ListView control.
21069
21070 2004-10-26 03:33  ravindra
21071
21072         * ToolBar.cs: ToolBar should use the user specified button size, if
21073           there is any. Added a size_specified flag for the same.
21074
21075 2004-10-26 03:33  ravindra
21076
21077         * ColumnHeader.cs: Added some internal members and calculations for
21078           ColumnHeader.
21079
21080 2004-10-26 03:32  ravindra
21081
21082         * ListViewItem.cs: Calculations for ListViewItem.
21083
21084 2004-10-26 03:31  ravindra
21085
21086         * ListView.cs: Added some internal members and calculations for
21087           ListView.
21088
21089 2004-10-22 13:31  jordi
21090
21091         * MenuAPI.cs: speedup menus drawing
21092
21093 2004-10-22 13:16  jackson
21094
21095         * XplatUIX11.cs: Make sure to update exposed regions when adding an
21096           expose event
21097
21098 2004-10-22 11:49  jackson
21099
21100         * Control.cs: oops
21101
21102 2004-10-22 11:41  jackson
21103
21104         * Control.cs: Check to see if the window should have its background
21105           repainted by X when drawing.
21106
21107 2004-10-22 11:31  jackson
21108
21109         * XplatUIX11.cs: When invalidating areas only use XClearArea if
21110           clear is true, this way we do not get flicker from X repainting the
21111           background
21112
21113 2004-10-22 11:28  jackson
21114
21115         * XEventQueue.cs: Queue properly
21116
21117 2004-10-21 09:38  jackson
21118
21119         * XEventQueue.cs: Fix access modifier
21120
21121 2004-10-21 09:36  jackson
21122
21123         * XEventQueue.cs: Don't loose messages
21124
21125 2004-10-21 09:22  jackson
21126
21127         * XEventQueue.cs: Don't loose messages
21128
21129 2004-10-20 04:15  jordi
21130
21131         * BootMode.cs: enum need it by SystemInfo
21132
21133 2004-10-19 21:58  pbartok
21134
21135         * XplatUIWin32.cs:
21136           - Small sanity check
21137
21138 2004-10-19 21:56  pbartok
21139
21140         * Form.cs:
21141           - Added private FormParentWindow class which acts as the container
21142             for our form and as the non-client area where menus are drawn
21143           - Added/Moved required tie-ins to Jordi's menus
21144           - Fixed/Implemented the FormStartPosition functionality
21145
21146 2004-10-19 21:52  pbartok
21147
21148         * Control.cs:
21149           - Removed unneeded locals
21150           - Added code to all size and location properties to understand and
21151             deal with the parent container of Form
21152
21153 2004-10-19 21:33  pbartok
21154
21155         * Application.cs:
21156           - Fixed to deal with new Form subclasses for menus
21157
21158 2004-10-19 17:48  jackson
21159
21160         * XEventQueue.cs: commit correct version of file
21161
21162 2004-10-19 16:50  jackson
21163
21164         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
21165
21166 2004-10-19 16:15  jordi
21167
21168         * MenuAPI.cs: MenuBarCalcSize returns the height
21169
21170 2004-10-19 08:31  pbartok
21171
21172         * Control.cs:
21173           - Added missing call to PreProcessMessage before calling OnXXXKey
21174           methods
21175
21176 2004-10-19 00:04  ravindra
21177
21178         * ToolTip.cs: Fixed constructor.
21179
21180 2004-10-18 09:31  jordi
21181
21182         * MenuAPI.cs: menuitems in menubars do not have shortcuts
21183
21184 2004-10-18 09:26  jordi
21185
21186         * MenuItem.cs: fixes MenuItem class signature
21187
21188 2004-10-18 08:56  jordi
21189
21190         * MenuAPI.cs: prevents windows from showing in the taskbar
21191
21192 2004-10-18 00:28  ravindra
21193
21194         * ToolTip.cs: Suppressed a warning message.
21195
21196 2004-10-18 00:27  ravindra
21197
21198         * Control.cs: Default value of visible property must be true.
21199
21200 2004-10-17 23:19  pbartok
21201
21202         * ToolTip.cs:
21203           - Complete implementation
21204
21205 2004-10-17 23:19  pbartok
21206
21207         * XplatUIX11.cs:
21208           - Added EnableWindow method
21209           - Added SetModal stub
21210           - Added generation of WM_ACTIVATE message (still needs testing)
21211           - Added SetTopMost stub
21212           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
21213
21214 2004-10-17 23:17  pbartok
21215
21216         * XplatUIWin32.cs:
21217           - Removed VirtualKeys to XplatUIStructs
21218           - Implemented SetTopMost method
21219           - Implemented EnableWindow method
21220           - Bugfix in ScreenToClient()
21221           - Bugfixes in ClientToScreen()
21222
21223 2004-10-17 22:51  pbartok
21224
21225         * XplatUIStructs.cs:
21226           - Added WS_EX styles to WindowStyles enumeration
21227
21228 2004-10-17 22:50  pbartok
21229
21230         * XplatUI.cs, XplatUIDriver.cs:
21231           - Added method for enabling/disabling windows
21232           - Added method for setting window modality
21233           - Added method for setting topmost window
21234
21235 2004-10-17 22:49  pbartok
21236
21237         * ThemeWin32Classic.cs:
21238           - Added ToolTip drawing code
21239
21240 2004-10-17 22:49  pbartok
21241
21242         * Theme.cs:
21243           - Added ToolTip abstracts
21244
21245 2004-10-17 22:47  pbartok
21246
21247         * Form.cs:
21248           - Fixed Form.ControlCollection to handle owner relations
21249           - Added Owner/OwnedForms handling
21250           - Implemented Z-Ordering for owned forms
21251           - Removed unneeded private overload of ShowDialog
21252           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
21253             so I hope)
21254           - Fixed Close(), had wrong default
21255           - Added firing of OnLoad event
21256           - Added some commented out debug code for Ownership handling
21257
21258 2004-10-17 22:16  pbartok
21259
21260         * Control.cs:
21261           - Fixed/implemented flat list of controls
21262
21263 2004-10-17 22:14  pbartok
21264
21265         * Application.cs:
21266           - Added code to simulate modal dialogs on Win32
21267
21268 2004-10-17 16:11  jordi
21269
21270         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
21271           mouse event
21272
21273 2004-10-17 13:39  jordi
21274
21275         * MenuAPI.cs: menu drawing fixes
21276
21277 2004-10-15 09:10  ravindra
21278
21279         * StructFormat.cs: General Enum.
21280
21281 2004-10-15 09:09  ravindra
21282
21283         * SizeGripStyle.cs: Enum for Form.
21284
21285 2004-10-15 09:08  ravindra
21286
21287         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
21288           in Theme for ListView.
21289
21290 2004-10-15 09:06  ravindra
21291
21292         * ColumnHeader.cs: Flushing some formatting changes.
21293
21294 2004-10-15 09:05  ravindra
21295
21296         * ListViewItem.cs: Implemented GetBounds method and fixed coding
21297           style.
21298
21299 2004-10-15 09:03  ravindra
21300
21301         * ListView.cs: Implemented Paint method and fixed coding style.
21302
21303 2004-10-15 07:34  jordi
21304
21305         * MenuAPI.cs: fix for X11
21306
21307 2004-10-15 07:32  ravindra
21308
21309         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
21310                 - Renamed Paint() method to Draw() for clarity. Also, moved
21311                 DrawImage() to OnPaint().
21312
21313 2004-10-15 07:25  ravindra
21314
21315         * CheckBox.cs, RadioButton.cs:
21316                 - Removed Redraw (), we get it from ButtonBase.
21317                 - Implemented Paint (), to do class specific painting.
21318
21319 2004-10-15 07:16  ravindra
21320
21321         * ButtonBase.cs:
21322                 - Redraw () is not virtual now.
21323                 - Added an internal virtual method Paint (), so that
21324                 derived classes can do their painting on their own.
21325                 - Modified OnPaint () to call Paint ().
21326
21327 2004-10-15 06:43  jordi
21328
21329         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
21330           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
21331
21332 2004-10-15 00:30  ravindra
21333
21334         * MessageBox.cs:
21335                 - MessageBox on windows does not have min/max buttons.
21336                 This change in CreateParams fixes this on Windows. We
21337                 still need to implement this windowstyle behavior in
21338                 our X11 driver.
21339
21340 2004-10-14 05:14  ravindra
21341
21342         * ToolBar.cs:
21343                 - Changed Redraw () to do a Refresh () always.
21344                 - Fixed the MouseMove event handling when mouse is pressed,
21345                 ie drag event handling.
21346                 - Replaced the usage of ToolBarButton.Pressed property to
21347                 ToolBarButton.pressed internal variable.
21348
21349 2004-10-14 05:10  ravindra
21350
21351         * ToolBarButton.cs:
21352                 - Added an internal member 'inside' to handle mouse move
21353                 with mouse pressed ie mouse drag event.
21354                 - Changed 'Pressed' property to return true only when
21355                 'inside' and 'pressed' are both true.
21356                 - Some coding style love.
21357
21358 2004-10-14 00:17  ravindra
21359
21360         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
21361           public method.
21362
21363 2004-10-14 00:15  ravindra
21364
21365         * ButtonBase.cs: Redraw () related improvements.
21366
21367 2004-10-14 00:14  ravindra
21368
21369         * MessageBox.cs: Moved InitFormSize () out of Paint method and
21370           removed unnecessary calls to Button.Show () method.
21371
21372 2004-10-13 17:50  pbartok
21373
21374         * XplatUIX11.cs:
21375           - Formatting fix
21376           - Removed destroying of window until we solve the problem of X
21377             destroying the window before us on shutdown
21378
21379 2004-10-13 16:32  pbartok
21380
21381         * ButtonBase.cs:
21382           - Now Redraws on MouseUp for FlatStyle Flat and Popup
21383
21384 2004-10-13 14:18  pbartok
21385
21386         * XplatUIX11.cs:
21387           - Added code to destroy the X window
21388
21389 2004-10-13 14:18  pbartok
21390
21391         * XplatUIWin32.cs:
21392           - Added code to destroy a window
21393
21394 2004-10-13 14:12  pbartok
21395
21396         * ButtonBase.cs:
21397           - Added the Redraw on Resize that got dropped in the last rev
21398
21399 2004-10-13 09:06  pbartok
21400
21401         * ThemeWin32Classic.cs:
21402           - Path from John BouAntoun:
21403             * Fix check rendering (centre correctly for normal style, offset
21404               correctly for FlatStyle).
21405             * Fix border color usage (use backcolor) for FlatStyle.Popup
21406             * Use checkbox.Capture instead of checkbox.is_pressed when
21407               rendering flatstyle states.
21408
21409 2004-10-12 21:48  pbartok
21410
21411         * ThemeWin32Classic.cs:
21412           - Removed all occurences of SystemColors and replaced them with the
21413             matching theme color
21414
21415 2004-10-12 21:41  pbartok
21416
21417         * ThemeWin32Classic.cs:
21418           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
21419             him using the function for flatstyle drawing
21420           - Changed functions to use the new version of CPDrawBorder3D
21421
21422 2004-10-12 21:15  pbartok
21423
21424         * ControlPaint.cs:
21425           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
21426             match MS documentation. They need to return defined colors if the
21427             passed color matches the configured control color. Thanks to John
21428             BouAntoun for pointing this out.
21429
21430 2004-10-12 20:57  pbartok
21431
21432         * Control.cs:
21433           - Fix from John BouAntoun: Raise ForeColorChanged event when text
21434             color is changed
21435
21436 2004-10-12 20:46  pbartok
21437
21438         * CheckBox.cs:
21439           - Fix from John BouAntoun: Now properly sets the Appearance property
21440
21441 2004-10-12 20:45  pbartok
21442
21443         * ThemeWin32Classic.cs:
21444           - Fixes from John BouAntoun: now handles forecolors and backcolors
21445             for flatstyle rendered controls much better; It also fixes normal
21446             checkbox rendering when pushed or disabled.
21447
21448 2004-10-08 02:50  jordi
21449
21450         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
21451           work
21452
21453 2004-10-07 08:56  jordi
21454
21455         * ThemeWin32Classic.cs: Removes deletion of cached brushes
21456
21457 2004-10-06 03:59  jordi
21458
21459         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
21460           XplatUIWin32.cs: removes warnings from compilation
21461
21462 2004-10-05 12:23  jackson
21463
21464         * RadioButton.cs: Fix ctor
21465
21466 2004-10-05 11:10  pbartok
21467
21468         * MessageBox.cs:
21469           - Partial implementation by Benjamin Dasnois
21470
21471 2004-10-05 10:15  jackson
21472
21473         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
21474           by John BouAntoun
21475
21476 2004-10-05 03:07  ravindra
21477
21478         * ToolBar.cs:
21479                 - Removed a private method, Draw ().
21480                 - Fixed the ButtonDropDown event handling.
21481                 - Fixed MouseMove event handling.
21482
21483 2004-10-05 03:04  ravindra
21484
21485         * ThemeWin32Classic.cs:
21486                 - Added DrawListView method and ListViewDefaultSize property.
21487                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
21488                 - Changed DOS style CRLF to Unix format (dos2unix).
21489
21490 2004-10-05 03:03  ravindra
21491
21492         * Theme.cs:
21493                 - Added DrawListView method and ListViewDefaultSize property.
21494
21495 2004-10-05 02:42  ravindra
21496
21497         * ToolBarButton.cs: Added an internal member dd_pressed to handle
21498           clicks on DropDown arrow.
21499
21500 2004-10-04 22:56  jackson
21501
21502         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
21503           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
21504           Control handle the buffers, derived classes should not have to
21505           CreateBuffers themselves.
21506
21507 2004-10-04 21:20  jackson
21508
21509         * StatusBar.cs: The control handles resizing the buffers now.
21510
21511 2004-10-04 21:18  jackson
21512
21513         * Control.cs: When resizing the buffers should be invalidated. This
21514           should be handled in Control not in derived classes.
21515
21516 2004-10-04 14:45  jackson
21517
21518         * TabPage.cs: oops
21519
21520 2004-10-04 02:14  pbartok
21521
21522         * LeftRightAlignment.cs:
21523           - Initial check-in
21524
21525 2004-10-04 01:09  jordi
21526
21527         * ThemeWin32Classic.cs: fixes right button position causing right
21528           button not showing on horizontal scrollbars
21529
21530 2004-10-02 13:12  pbartok
21531
21532         * XplatUIX11.cs:
21533           - Simplified the Invalidate method by using an X call instead of
21534             generating the expose ourselves
21535           - Added an expose when the window background is changed
21536           - Implemented ClientToScreen method
21537
21538 2004-10-02 13:08  pbartok
21539
21540         * XplatUIWin32.cs:
21541           - Added Win32EnableWindow method (test for implementing modal
21542           dialogs)
21543           - Added ClientToScreen method and imports
21544
21545 2004-10-02 13:07  pbartok
21546
21547         * XplatUI.cs, XplatUIDriver.cs:
21548           - Added ClientToScreen coordinate translation method
21549
21550 2004-10-02 13:06  pbartok
21551
21552         * KeyPressEventArgs.cs:
21553           - Fixed access level for constructor
21554
21555 2004-10-02 13:06  pbartok
21556
21557         * NativeWindow.cs:
21558           - Changed access level for the window_collection hash table
21559
21560 2004-10-02 13:05  pbartok
21561
21562         * Form.cs:
21563           - Added KeyPreview property
21564           - Added Menu property (still incomplete, pending Jordi's menu work)
21565           - Implemented ProcessCmdKey
21566           - Implemented ProcessDialogKey
21567           - Implemented ProcessKeyPreview
21568
21569 2004-10-02 13:02  pbartok
21570
21571         * Control.cs:
21572           - Added private method to get the Control object from the window
21573           handle
21574           - Implemented ContextMenu property
21575           - Implemented PointToScreen
21576           - Implemented PreProcessMessage
21577           - Implemented IsInputChar
21578           - Implemented IsInputKey
21579           - Implemented ProcessCmdKey
21580           - Completed ProcessKeyEventArgs
21581           - Fixed message loop to call the proper chain of functions on key
21582           events
21583           - Implemented ProcessDialogChar
21584           - Implemented ProcessDialogKey
21585           - Implemented ProcessKeyMessage
21586           - Implemented ProcessKeyPreview
21587           - Added RaiseDragEvent stub (MS internal method)
21588           - Added RaiseKeyEvent stub (MS internal method)
21589           - Added RaiseMouseEvent stub (MS Internal method)
21590           - Added RaisePaintEvent stub (MS Internal method)
21591           - Added ResetMouseEventArgs stub (MS Internal method)
21592           - Implemented RtlTranslateAlignment
21593           - Implemented RtlTranslateContent
21594           - Implemented RtlTranslateHorizontal
21595           - Implemented RtlTranslateLeftRight
21596           - Added generation of KeyPress event
21597
21598 2004-10-02 05:57  ravindra
21599
21600         * ListViewItem.cs: Added attributes.
21601
21602 2004-10-02 05:32  ravindra
21603
21604         * ListView.cs: Added attributes.
21605
21606 2004-10-01 11:53  jackson
21607
21608         * Form.cs: Implement the Close method so work on MessageBox can
21609           continue.
21610
21611 2004-09-30 14:06  pbartok
21612
21613         * XplatUIX11.cs:
21614           - Bug fixes
21615
21616 2004-09-30 11:34  jackson
21617
21618         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
21619
21620 2004-09-30 07:26  ravindra
21621
21622         * ListViewItemConverter.cs: Converter for ListViewItem.
21623
21624 2004-09-30 07:26  ravindra
21625
21626         * SortOrder.cs: Enum for ListView control.
21627
21628 2004-09-30 07:25  ravindra
21629
21630         * ColumnHeader.cs: Supporting class for ListView control.
21631
21632 2004-09-30 07:24  ravindra
21633
21634         * ListView.cs, ListViewItem.cs: Initial implementation.
21635
21636 2004-09-30 07:20  ravindra
21637
21638         * ItemActivation.cs: Enum for ListView Control.
21639
21640 2004-09-29 20:29  pbartok
21641
21642         * XplatUIX11.cs:
21643           - Added lookup of pixel value for background color; tries to get a
21644             color 'close' to the requested color, it avoids having to create a
21645             colormap.  Depending on the display this could mean the used color
21646             is slightly off the desired color. Might have to change it to a more
21647             resource intensive colormap approach, but it will work as a
21648           workaround to avoid red screens.
21649
21650 2004-09-29 14:27  jackson
21651
21652         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
21653
21654 2004-09-28 12:44  pbartok
21655
21656         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
21657           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
21658           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
21659           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
21660           TrackBar.cs, VScrollBar.cs:
21661           - Streamlined Theme interfaces:
21662             * Each DrawXXX method for a control now is passed the object for
21663               the control to be drawn in order to allow accessing any state the
21664               theme might require
21665
21666             * ControlPaint methods for the theme now have a CP prefix to avoid
21667               name clashes with the Draw methods for controls
21668
21669             * Every control now retrieves it's DefaultSize from the current
21670             theme
21671
21672 2004-09-28 12:17  jackson
21673
21674         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
21675           drawing
21676
21677 2004-09-24 14:57  jackson
21678
21679         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
21680           Gives us a nice little performance boost.
21681
21682 2004-09-24 12:02  jackson
21683
21684         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
21685           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
21686           Control and supporting classes. Initial checkin
21687
21688 2004-09-23 13:08  jackson
21689
21690         * Form.cs: Temp build fixage
21691
21692 2004-09-23 01:39  ravindra
21693
21694         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
21695           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
21696           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
21697           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
21698           EventHandlers needed by ListView Control.
21699
21700 2004-09-22 14:12  pbartok
21701
21702         * ScrollableControl.cs:
21703           - Implemented DockPadding property
21704           - Implemented AutoScroll property
21705           - Implemented AutoScrollMargin property
21706           - Implemented AutoScrollMinSize property
21707           - Implemented AutoScrollPosition property
21708           - Implemented DisplayRectangle property (still incomplete)
21709           - Implemented CreateParams property
21710           - Implemented HScroll property
21711           - Implemented VScroll property
21712           - Implemented OnVisibleChanged property
21713
21714 2004-09-22 14:09  pbartok
21715
21716         * Form.cs:
21717           - Added Form.ControllCollection class
21718           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
21719             RemoveOwnedForm (still incomplete, missing on-top and common
21720             minimize/maximize behaviour)
21721           - Added StartPosition property (still incomplete, does not use when
21722             creating the form)
21723           - Added ShowDialog() methods (still incomplete, missing forcing the
21724             dialog modal)
21725
21726 2004-09-22 14:05  pbartok
21727
21728         * Application.cs:
21729           - Added message loop for modal dialogs
21730
21731 2004-09-22 14:02  pbartok
21732
21733         * GroupBox.cs:
21734           - Fixed wrong types for events
21735
21736 2004-09-22 14:00  pbartok
21737
21738         * Shortcut.cs, FormWindowState.cs:
21739           - Fixed wrong values
21740
21741 2004-09-22 12:01  jackson
21742
21743         * Control.cs: Text is never null
21744
21745 2004-09-20 22:14  pbartok
21746
21747         * XplatUIWin32.cs:
21748           - Fixed accessibility level for Idle handler
21749
21750 2004-09-20 18:54  jackson
21751
21752         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21753           XplatUIX11.cs: New message loop that uses poll so we don't get a
21754           busy loop
21755
21756 2004-09-17 10:43  pbartok
21757
21758         * ScrollBar.cs:
21759           - Fixed behaviour of arrow buttons. Now properly behaves like
21760             Buttons (and like Microsoft's scrollbar arrow buttons)
21761
21762 2004-09-17 10:14  pbartok
21763
21764         * ScrollBar.cs:
21765           - Added missing release of keyboard/mouse capture
21766
21767 2004-09-17 06:18  jordi
21768
21769         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
21770           Theme.cs: Very early menu support
21771
21772 2004-09-16 17:45  pbartok
21773
21774         * XplatUIWin32.cs:
21775           - Fixed sending a window to the front
21776           - Added overload for SetWindowPos to avoid casting
21777
21778 2004-09-16 17:44  pbartok
21779
21780         * Control.cs:
21781           - Added SendToBack and BringToFront methods
21782
21783 2004-09-16 07:00  ravindra
21784
21785         * Copyright: Added Novell URL.
21786
21787 2004-09-16 07:00  ravindra
21788
21789         * ToolBar.cs: Invalidate should be done before redrawing.
21790
21791 2004-09-15 21:19  ravindra
21792
21793         * ColumnHeaderStyle.cs: Enum for ListView Control.
21794
21795 2004-09-15 21:18  ravindra
21796
21797         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
21798           ListView Control.
21799
21800 2004-09-13 18:26  jackson
21801
21802         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
21803           properly
21804
21805 2004-09-13 18:13  jackson
21806
21807         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
21808           a second thread and post messages into the main threads message
21809           queue. This makes timing much more consistent. Both win2K and XP
21810           have a minimum timer value of 15 milliseconds, so we now do this
21811           too.
21812
21813 2004-09-13 15:18  pbartok
21814
21815         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
21816           XplatUIX11.cs:
21817           - Added Z-Ordering methods
21818
21819 2004-09-13 10:56  pbartok
21820
21821         * Form.cs:
21822           - Fixed #region names
21823           - Moved properties and methods into their proper #regions
21824
21825 2004-09-13 10:51  pbartok
21826
21827         * Form.cs:
21828           - Added Accept and CancelButton properties
21829           - Added ProcessDialogKey() method
21830
21831 2004-09-13 08:18  pbartok
21832
21833         * IWindowTarget.cs:
21834           - Initial check-in
21835
21836 2004-09-10 21:50  pbartok
21837
21838         * Control.cs:
21839           - Added DoDragDrop() [incomplete]
21840           - Properly implemented 'Visible' handling
21841           - Added SetVisibleCore()
21842           - Implemented FindChildAtPoint()
21843           - Implemented GetContainerControl()
21844           - Implemented Hide()
21845
21846 2004-09-10 19:28  pbartok
21847
21848         * Control.cs:
21849           - Moved methods into their appropriate #regions
21850           - Reordered methods within regions alphabetically
21851
21852 2004-09-10 18:57  pbartok
21853
21854         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
21855           - Added method to retrieve text from window
21856
21857 2004-09-10 18:56  pbartok
21858
21859         * Control.cs:
21860           - Moved some internal functions into the internal region
21861           - Implemented FontHeight
21862           - Implemented RenderRightToLeft
21863           - Implemented ResizeRedraw
21864           - Implemented ShowFocusCues
21865           - Implemented ShowKeyboardCues
21866           - Implemented FromChildHandle
21867           - Implemented FromHandle
21868           - Implemented IsMnemonic
21869           - Implemented ReflectMessage
21870           - All public and protected Static Methods are now complete
21871
21872 2004-09-10 16:54  pbartok
21873
21874         * Control.cs:
21875           - Implemented remaining missing public instance properties
21876           - Alphabetized some out of order properties
21877
21878 2004-09-10 05:51  ravindra
21879
21880         * PictureBox.cs: Added a check for null image.
21881
21882 2004-09-10 00:59  jordi
21883
21884         * GroupBox.cs: remove cvs tag
21885
21886 2004-09-09 05:25  ravindra
21887
21888         * ToolBar.cs: Make redraw accessible from ToolBarButton.
21889
21890 2004-09-09 05:23  ravindra
21891
21892         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
21893           parent redraw.
21894
21895 2004-09-09 02:28  pbartok
21896
21897         * ThemeWin32Classic.cs:
21898           - Improve disabled string look
21899
21900 2004-09-09 01:15  jordi
21901
21902         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
21903           args and handler
21904
21905 2004-09-08 23:56  ravindra
21906
21907         * ItemBoundsPortion.cs: It's enum, not a class!
21908
21909 2004-09-08 23:47  ravindra
21910
21911         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
21912           Enums for Form.
21913
21914 2004-09-08 21:13  ravindra
21915
21916         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
21917           ListView control.
21918
21919 2004-09-08 21:03  ravindra
21920
21921         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
21922           avoid crash.
21923
21924 2004-09-08 21:01  ravindra
21925
21926         * ScrollableControl.cs: Removed unreachable code.
21927
21928 2004-09-08 06:45  jordi
21929
21930         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
21931
21932 2004-09-08 01:00  jackson
21933
21934         * XplatUIX11.cs: Only run the timers when updating the message
21935           queue. This effectively gives X messages a higher priority then
21936           timer messages. Timers still need love though
21937
21938 2004-09-07 14:01  jackson
21939
21940         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
21941           this for us and the handle is no longer valid.
21942
21943 2004-09-07 13:59  jackson
21944
21945         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
21946           loop that manages to not crash. TODO: Add poll and cleanup timers
21947
21948 2004-09-07 11:12  jordi
21949
21950         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
21951
21952 2004-09-07 03:40  jordi
21953
21954         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
21955           fixes, methods, multiple links
21956
21957 2004-09-06 06:55  jordi
21958
21959         * Control.cs: Caches ClientRectangle rectangle value
21960
21961 2004-09-05 02:03  jordi
21962
21963         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
21964           certain situations
21965
21966 2004-09-04 11:10  jordi
21967
21968         * Label.cs: Refresh when font changed
21969
21970 2004-09-02 16:24  pbartok
21971
21972         * Control.cs:
21973           - Added sanity check to creation of double buffer bitmap
21974
21975 2004-09-02 16:24  pbartok
21976
21977         * ButtonBase.cs:
21978           - Fixed selection of text color
21979           - Fixed handling of resize event; now properly recreates double
21980             buffering bitmap
21981           - Added missing assignment of TextAlignment
21982           - Added proper default for TextAlignment
21983
21984 2004-09-02 14:26  pbartok
21985
21986         * RadioButton.cs:
21987           - Added missing RadioButton.RadioButtonAccessibleObject class
21988
21989 2004-09-02 14:26  pbartok
21990
21991         * Control.cs:
21992           - Added missing Control.ControlAccessibleObject class
21993           - Started to implement Select()ion mechanisms, still very incomplete
21994
21995 2004-09-02 14:25  pbartok
21996
21997         * AccessibleObject.cs:
21998           - Added missing methods
21999
22000 2004-09-02 14:23  pbartok
22001
22002         * AccessibleNavigation.cs, AccessibleSelection.cs:
22003           - Initial check-in
22004
22005 2004-09-02 10:32  jordi
22006
22007         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
22008           pool for pens, brushes, and hatchbruses
22009
22010 2004-09-01 15:30  jackson
22011
22012         * StatusBar.cs: Fix typo
22013
22014 2004-09-01 14:44  pbartok
22015
22016         * RadioButton.cs:
22017           - Fixed state
22018
22019 2004-09-01 14:39  pbartok
22020
22021         * Button.cs, RadioButton.cs:
22022           - Functional initial check-in
22023
22024 2004-09-01 14:01  pbartok
22025
22026         * CheckBox.cs:
22027           - Added missing default
22028           - Added missing region mark
22029
22030 2004-09-01 09:10  jordi
22031
22032         * Label.cs: fixes method signatures, new methods, events, fixes
22033           autosize
22034
22035 2004-09-01 07:19  jordi
22036
22037         * Control.cs: Init string variables with an empty object
22038
22039 2004-09-01 04:20  jordi
22040
22041         * Control.cs: fires OnFontChanged event
22042
22043 2004-08-31 20:07  pbartok
22044
22045         * ButtonBase.cs:
22046           - Enabled display of strings
22047
22048 2004-08-31 20:05  pbartok
22049
22050         * Form.cs:
22051           - Added (partial) implementation of DialogResult; rest needs to be
22052             implemented when the modal loop code is done
22053
22054 2004-08-31 19:55  pbartok
22055
22056         * CheckBox.cs:
22057           - Fixed to match the removal of the needs_redraw concept
22058
22059 2004-08-31 19:55  pbartok
22060
22061         * ButtonBase.cs:
22062           - Removed the rather odd split between 'needs redraw' and redrawing
22063           - Now handles the events that require regeneration (ambient
22064             properties and size)
22065
22066 2004-08-31 19:41  pbartok
22067
22068         * Control.cs:
22069           - Added firing of BackColorChanged event
22070           - Added TopLevelControl property
22071           - Fixed handling of WM_ERASEBKGRND message
22072
22073 2004-08-31 12:49  pbartok
22074
22075         * ButtonBase.cs:
22076           - Removed debug
22077           - Minor fixes
22078
22079 2004-08-31 12:48  pbartok
22080
22081         * CheckBox.cs:
22082           - Finished (famous last words)
22083
22084 2004-08-31 04:35  jordi
22085
22086         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
22087           scrolling bugs, adds new methods
22088
22089 2004-08-30 14:42  pbartok
22090
22091         * CheckBox.cs:
22092           - Implemented CheckBox drawing code
22093
22094 2004-08-30 14:42  pbartok
22095
22096         * ButtonBase.cs:
22097           - Made Redraw() and CheckRedraw() virtual
22098           - Improved mouse up/down/move logic to properly track buttons
22099
22100 2004-08-30 09:44  pbartok
22101
22102         * CheckBox.cs:
22103           - Updated to fix broken build. Not complete yet.
22104
22105 2004-08-30 09:28  pbartok
22106
22107         * CheckState.cs:
22108           - Initial checkin
22109
22110 2004-08-30 09:17  pbartok
22111
22112         * Appearance.cs:
22113           - Initial check-in
22114
22115 2004-08-27 16:12  ravindra
22116
22117         * ToolBarButton.cs: Added TypeConverter attribute.
22118
22119 2004-08-27 16:07  ravindra
22120
22121         * ImageIndexConverter.cs: Implemented.
22122
22123 2004-08-27 14:17  pbartok
22124
22125         * Control.cs:
22126           - Removed unneeded stack vars
22127           - First attempt to fix sizing issues when layout is suspended
22128
22129 2004-08-25 15:35  jordi
22130
22131         * ScrollBar.cs: more fixes to scrollbar
22132
22133 2004-08-25 14:04  ravindra
22134
22135         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
22136           Added the missing divider code and grip for ToolBar Control.
22137
22138 2004-08-25 13:20  pbartok
22139
22140         * Control.cs:
22141           - Control now properly passes the ambient background color to child
22142             controls
22143
22144 2004-08-25 13:20  jordi
22145
22146         * ScrollBar.cs: small bug fix regarding bar position
22147
22148 2004-08-25 12:33  pbartok
22149
22150         * Timer.cs:
22151           - Now only calls SetTimer or KillTimer if the enabled state has
22152           changed
22153
22154 2004-08-25 12:33  pbartok
22155
22156         * XplatUIWin32.cs:
22157           - Fixed timer handling, now seems to work
22158           - Improved error message for window creation
22159
22160 2004-08-25 12:32  pbartok
22161
22162         * Control.cs:
22163           - Fixed generation of MouseUp message
22164
22165 2004-08-25 12:29  jordi
22166
22167         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
22168           and fixes for progressbar
22169
22170 2004-08-24 18:43  ravindra
22171
22172         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
22173           in ToolBar control.
22174
22175 2004-08-24 17:15  pbartok
22176
22177         * Panel.cs:
22178           - Added #region
22179           - Added missing events
22180           - Alphabetized
22181
22182 2004-08-24 17:14  pbartok
22183
22184         * StatusBar.cs, PictureBox.cs:
22185           - Now uses Control's CreateParams
22186
22187 2004-08-24 16:36  pbartok
22188
22189         * XplatUIX11.cs:
22190           - Fixed background color handling
22191           - Fixed sending of enter/leave events on a grab
22192
22193 2004-08-24 16:35  pbartok
22194
22195         * X11Structs.cs:
22196           - Refined definitions for CrossingEvent
22197
22198 2004-08-24 12:37  jordi
22199
22200         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
22201           formmating, methods signature, and adds missing events
22202
22203 2004-08-24 12:24  jordi
22204
22205         * Control.cs: fire OnEnabledChanged event
22206
22207 2004-08-24 11:17  pbartok
22208
22209         * XplatUIWin32.cs:
22210           - Implemented SetTimer() and KillTimer()
22211
22212 2004-08-24 11:16  pbartok
22213
22214         * XplatUIX11.cs:
22215           - Now uses Remove instead of Add to kill the timer
22216
22217 2004-08-24 10:16  jackson
22218
22219         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
22220           picture boxes in the theme now. Draw picture box borders and obey
22221           sizing modes
22222
22223 2004-08-24 05:49  jackson
22224
22225         * Timer.cs: Remove top secret debugging code
22226
22227 2004-08-24 05:34  jackson
22228
22229         * PictureBox.cs: Temp hack to make picture boxes draw their full
22230           image
22231
22232 2004-08-24 05:29  jackson
22233
22234         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22235           XplatUIX11.cs: Move timers to the driver level. On X they are
22236           queued by the driver and checked on idle.
22237
22238 2004-08-24 01:07  jackson
22239
22240         * XplatUIX11.cs: Use a queue for async messages instead of passing
22241           them as ClientMessages since that was totally broken. Also simply
22242           check for events and return an idle message if none are found. This
22243           gives us an idle handler, and prevents deadlocking when no messages
22244           are in the queue.
22245
22246 2004-08-23 18:19  ravindra
22247
22248         * XplatUIWin32.cs: Removed the unwanted destructor.
22249
22250 2004-08-23 17:27  pbartok
22251
22252         * ButtonBase.cs:
22253           - Finishing touches. Works now, just needs some optimizations.
22254
22255 2004-08-23 16:53  jordi
22256
22257         * ScrollBar.cs: small fix
22258
22259 2004-08-23 16:45  pbartok
22260
22261         * Application.cs:
22262           - Removed debug output
22263           - Simplifications
22264
22265 2004-08-23 16:43  jordi
22266
22267         * ScrollBar.cs: [no log message]
22268
22269 2004-08-23 16:10  pbartok
22270
22271         * Form.cs:
22272           - Fixed handling of WM_CLOSE message
22273           - Removed debug output
22274
22275 2004-08-23 16:09  pbartok
22276
22277         * Application.cs:
22278           - Added handling of Idle event
22279           - Added handling of form closing
22280           - Fixed reporting of MessageLoop property
22281           - Removed some unneeded code, should provide a bit of a speedup
22282
22283 2004-08-23 15:22  pbartok
22284
22285         * Control.cs:
22286           - Added InitLayout() method
22287           - Added code to properly perform layout when Anchor or Dock property
22288             is changed
22289           - Changed 'interpretation' of ResumeLayout. MS seems to have a
22290             LAMESPEC, tried to do it in a way that makes sense
22291
22292 2004-08-23 14:10  jordi
22293
22294         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
22295           properties and methods
22296
22297 2004-08-23 13:55  pbartok
22298
22299         * Control.cs:
22300           - Properly fixed Jordi's last fix
22301           - Now uses Cursor's Position property instead of calling XplatUI
22302           directly
22303
22304 2004-08-23 13:44  jordi
22305
22306         * PaintEventHandler.cs: Adding missing attribute
22307
22308 2004-08-23 13:39  pbartok
22309
22310         * Cursor.cs:
22311           - Implemented Position property
22312
22313 2004-08-23 13:39  pbartok
22314
22315         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22316           - Added method to move mouse cursor
22317
22318 2004-08-23 13:39  pbartok
22319
22320         * XplatUIX11.cs:
22321           - Fixed setting of background color
22322           - Added method to move mouse cursor
22323
22324 2004-08-23 13:16  jordi
22325
22326         * Control.cs: avoids null exception
22327
22328 2004-08-22 17:46  jackson
22329
22330         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
22331           PictureBox
22332
22333 2004-08-22 17:40  jackson
22334
22335         * XplatUIX11.cs: Add some missing locks
22336
22337 2004-08-22 15:10  pbartok
22338
22339         * Control.cs, Form.cs:
22340           - Removed OverlappedWindow style from Control, instead it's default
22341             now is child
22342           - Made form windows OverlappedWindow by default
22343
22344 2004-08-22 13:34  jackson
22345
22346         * ScrollBar.cs: Update the position through the Value property so
22347           the OnValueChanged event is raised.
22348
22349 2004-08-22 12:04  pbartok
22350
22351         * SWF.csproj:
22352           - Added Cursor.cs and UserControl.cs
22353
22354 2004-08-22 12:03  pbartok
22355
22356         * Cursor.cs:
22357           - Started implementation, not usable yet
22358
22359 2004-08-22 12:00  pbartok
22360
22361         * UserControl.cs:
22362           - Implemented UserControl (complete)
22363
22364 2004-08-21 19:20  ravindra
22365
22366         * ToolBar.cs: Correcting the formatting mess of VS.NET.
22367
22368 2004-08-21 18:49  ravindra
22369
22370         * ToolBar.cs: Probably this completes the missing attributes in
22371           toolbar control.
22372
22373 2004-08-21 18:03  ravindra
22374
22375         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
22376           Fixed toolbar control signatures.
22377
22378 2004-08-21 16:32  pbartok
22379
22380         * LinkLabel.cs:
22381           - Signature Fixes
22382
22383 2004-08-21 16:30  pbartok
22384
22385         * Label.cs:
22386           - Signature fixes
22387
22388 2004-08-21 16:19  pbartok
22389
22390         * Control.cs, Label.cs:
22391           - Signature fixes
22392
22393 2004-08-21 15:57  pbartok
22394
22395         * ButtonBase.cs:
22396           - Added loads of debug output for development
22397           - Fixed typo in method name
22398
22399 2004-08-21 15:52  pbartok
22400
22401         * ToolBarButtonClickEventArgs.cs:
22402           - Added missing base class
22403
22404 2004-08-21 14:53  pbartok
22405
22406         * Control.cs:
22407           - Updated to match new GrabWindow signature
22408
22409 2004-08-21 14:51  pbartok
22410
22411         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22412           - Added method to get default display size
22413
22414 2004-08-21 14:23  pbartok
22415
22416         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22417           - Added method to query current grab state
22418           - Added argument to allow confining a grab to a window
22419
22420 2004-08-21 14:22  pbartok
22421
22422         * Keys.cs:
22423           - Added [Flags] attribute so that modifiers can be used in bitwise
22424           ops
22425
22426 2004-08-21 14:21  pbartok
22427
22428         * TrackBar.cs, ScrollBar.cs:
22429           - Replaced direct XplatUI calls with their Control counterpart
22430
22431 2004-08-21 13:32  pbartok
22432
22433         * Control.cs:
22434           - Implemented Created property
22435
22436 2004-08-21 13:28  pbartok
22437
22438         * Control.cs:
22439           - Implemented ContainsFocus
22440
22441 2004-08-21 13:26  pbartok
22442
22443         * Control.cs:
22444           - Implemented CausesValidation
22445
22446 2004-08-21 13:21  pbartok
22447
22448         * Control.cs:
22449           - Implemented CanFocus
22450           - Implemented CanSelect
22451           - Implemented Capture
22452
22453 2004-08-21 12:35  pbartok
22454
22455         * XplatUIWin32.cs:
22456           - Fixed bug with Async message handling
22457           - Implemented getting the ModifierKeys
22458
22459 2004-08-21 12:32  jackson
22460
22461         * AsyncMethodResult.cs: Make sure we have the mutex before we
22462           release it. Fixes BeginInvoke on windows
22463
22464 2004-08-21 11:31  pbartok
22465
22466         * XplatUIWin32.cs, XplatUIX11.cs:
22467           - Drivers now return proper mouse state
22468
22469 2004-08-21 10:54  jackson
22470
22471         * Control.cs: Implement EndInvoke
22472
22473 2004-08-21 10:48  jackson
22474
22475         * Timer.cs: Remove unneeded finalizer
22476
22477 2004-08-20 19:52  ravindra
22478
22479         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
22480           in mouse event handling in the ToolBar control.
22481
22482 2004-08-20 19:50  ravindra
22483
22484         * ImageList.cs: Changed draw method to use the arguments passed in
22485           to draw the image.
22486
22487 2004-08-20 18:58  pbartok
22488
22489         * XplatUIStructs.cs:
22490           - Added private message for async communication
22491
22492 2004-08-20 17:38  ravindra
22493
22494         * Control.cs: Made RightToLeft property virtual and removed a
22495           Console.WriteLine.
22496
22497 2004-08-20 14:39  jordi
22498
22499         * ThemeGtk.cs: use style_attach
22500
22501 2004-08-20 14:39  pbartok
22502
22503         * XplatUIWin32.cs:
22504           - Added jackson's Async code from X11 to Win32
22505
22506 2004-08-20 14:09  pbartok
22507
22508         * SWF.csproj:
22509           - Added all new files
22510
22511 2004-08-20 14:09  pbartok
22512
22513         * Control.cs:
22514           - Added call to set window background color
22515
22516 2004-08-20 14:03  pbartok
22517
22518         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
22519           - Added method for setting the window background
22520
22521 2004-08-20 14:02  pbartok
22522
22523         * XplatUIWin32.cs:
22524           - Added method for setting the background color
22525           - Added handling for erasing the window background
22526
22527 2004-08-20 13:45  jordi
22528
22529         * TrackBar.cs: fixes timer, new properties and methods
22530
22531 2004-08-20 13:34  jackson
22532
22533         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
22534           correct thread
22535
22536 2004-08-20 13:22  jackson
22537
22538         * Timer.cs: Timer Tick events are now handed through Controls Async
22539           mechanism so the callbacks are executed in the same thread as X
22540
22541 2004-08-20 13:19  jackson
22542
22543         * XplatUIDriver.cs: Expose functionality to send async messages
22544           through the driver
22545
22546 2004-08-20 13:18  jackson
22547
22548         * Control.cs: Implement Begininvoke
22549
22550 2004-08-20 13:14  jackson
22551
22552         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
22553           messages through the driver
22554
22555 2004-08-20 13:12  jackson
22556
22557         * XplatUIX11.cs: Lock before all X operations. Also added Async
22558           method functionality through XSendEvent
22559
22560 2004-08-20 13:11  jackson
22561
22562         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
22563           This will screw up on 64 bit systems)
22564
22565 2004-08-20 13:10  jackson
22566
22567         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
22568           Async messages through X/Win32
22569
22570 2004-08-19 19:39  pbartok
22571
22572         * XplatUIX11.cs:
22573           - Updated code to match new HandleData.DeviceContext type
22574
22575 2004-08-19 19:38  pbartok
22576
22577         * HandleData.cs:
22578           - Made DeviceContext a generic object to allow usage from various
22579           drivers
22580           - Added support for queueing Windows messages
22581
22582 2004-08-19 19:37  pbartok
22583
22584         * XplatUIWin32.cs:
22585           - Added generation of MouseEnter, MouseLeave and MouseHover events
22586           - Added cleanup on EndPaint
22587
22588 2004-08-19 19:17  pbartok
22589
22590         * Control.cs:
22591           - Added handling of WM_MOUSEHOVER
22592           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
22593           code
22594
22595 2004-08-19 18:55  jordi
22596
22597         * ThemeGtk.cs: fixes button order
22598
22599 2004-08-19 18:12  jordi
22600
22601         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
22602
22603 2004-08-19 17:09  pbartok
22604
22605         * Control.cs:
22606           - Added Right property
22607           - Added RightToLeft property
22608
22609 2004-08-19 16:27  jordi
22610
22611         * ThemeGtk.cs: experimental GTK theme support
22612
22613 2004-08-19 16:26  jordi
22614
22615         * ITheme.cs, Theme.cs: move themes from an interface to a class
22616
22617 2004-08-19 16:25  jordi
22618
22619         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
22620           theme enhancaments
22621
22622 2004-08-19 16:04  pbartok
22623
22624         * XplatUIX11.cs:
22625           - Added colormap basics
22626           - Added a way to re-initialize with a different display handle
22627           - Fixed setting of the window background color
22628           - Added various X11 imports related to colors and colormaps
22629
22630 2004-08-19 15:51  pbartok
22631
22632         * X11Structs.cs:
22633           - Removed packing hints (Paolo suggested this a while back)
22634           - fixed colormap type
22635           - Added default Atom types
22636           - Added Screen and color structs and enums
22637
22638 2004-08-19 15:39  pbartok
22639
22640         * ImageList.cs:
22641           - Added missing Draw() method
22642           - Added missing RecreateHandle event
22643
22644 2004-08-19 15:30  pbartok
22645
22646         * Form.cs:
22647           - Added handling of WM_CLOSE
22648
22649 2004-08-18 13:16  jordi
22650
22651         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
22652           a table
22653
22654 2004-08-18 09:56  jordi
22655
22656         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
22657
22658 2004-08-17 15:31  ravindra
22659
22660         * SWF.csproj: Updated project.
22661
22662 2004-08-17 15:25  pbartok
22663
22664         * Control.cs:
22665           - Drawing improvement; don't call UpdateBounds if we are not visible
22666             (or have been minimized)
22667
22668 2004-08-17 15:24  pbartok
22669
22670         * XplatUIWin32.cs:
22671           - Finished IsVisible
22672           - Added Win32GetWindowPlacement
22673
22674 2004-08-17 15:08  jackson
22675
22676         * Panel.cs: Initial checkin of the Panel
22677
22678 2004-08-17 14:25  pbartok
22679
22680         * Control.cs:
22681           - Fixed broken handling of default window sizes
22682
22683 2004-08-17 13:29  jackson
22684
22685         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
22686           has a large startup time.
22687
22688 2004-08-17 10:25  jackson
22689
22690         * HandleData.cs: union areas properly
22691
22692 2004-08-17 10:12  jackson
22693
22694         * HandleData.cs: union areas properly
22695
22696 2004-08-16 20:00  ravindra
22697
22698         * ToolBar.cs, ToolBarButton.cs: Added attributes.
22699
22700 2004-08-16 18:48  ravindra
22701
22702         * ToolBar.cs: Added attributes.
22703
22704 2004-08-16 17:17  ravindra
22705
22706         * SWF.csproj: Updated project.
22707
22708 2004-08-16 17:16  jackson
22709
22710         * XplatUIX11.cs: Check for more expose events before sending a
22711           WM_PAINT so they can all be grouped together. This makes dragging a
22712           window across another window redraw in a sane way.
22713
22714 2004-08-16 15:47  pbartok
22715
22716         * Control.cs:
22717           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
22718             support OnMouseEnter/Leave()
22719           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
22720             exposure handling
22721
22722 2004-08-16 15:46  pbartok
22723
22724         * XplatUIStructs.cs, XplatUIX11.cs:
22725           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
22726           OnMouseEnter/Leave()
22727
22728 2004-08-16 15:34  jackson
22729
22730         * XplatUIX11.cs: Group multiple expose events in HandleData, make
22731           sure messages get the message field set to WM_NULL if they are not
22732           handled.
22733
22734 2004-08-16 15:24  jackson
22735
22736         * HandleData.cs: HandleData is used for storing message information
22737           for window handles
22738
22739 2004-08-15 17:23  ravindra
22740
22741         * ColorDepth.cs: Added attribute.
22742
22743 2004-08-15 17:23  ravindra
22744
22745         * SWF.csproj: Updated project for ToolBar Control.
22746
22747 2004-08-15 17:20  ravindra
22748
22749         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
22750           control and also dos2unix format.
22751
22752 2004-08-15 17:13  ravindra
22753
22754         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
22755           ToolBarButtonClickEventArgs.cs,
22756           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
22757           ToolBarTextAlign.cs: First Implementation of ToolBar control.
22758
22759 2004-08-15 15:31  pbartok
22760
22761         * ButtonBase.cs:
22762           - First (mostly) working version
22763
22764 2004-08-13 16:15  pbartok
22765
22766         * Control.cs:
22767           - Fixed Anchor default
22768
22769 2004-08-13 15:43  pbartok
22770
22771         * Control.cs:
22772           - Changed GetCursorPos signature
22773
22774 2004-08-13 15:42  pbartok
22775
22776         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
22777           - Changed signature for GetCursorPos
22778
22779 2004-08-13 15:25  pbartok
22780
22781         * XplatUIX11.cs:
22782           - Cleanup
22783           - Fixed resizing/exposure handling
22784
22785 2004-08-13 15:22  jordi
22786
22787         * ThemeWin32Classic.cs: removes redundant code and fixes issues
22788           with tickposition
22789
22790 2004-08-13 14:55  jordi
22791
22792         * TrackBar.cs: change from wndproc to events
22793
22794 2004-08-13 13:00  jordi
22795
22796         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22797           XplatUIX11.cs: implements PointToClient (ScreenToClient)
22798
22799 2004-08-13 12:53  pbartok
22800
22801         * XplatUIWin32.cs:
22802           - Changed GetWindowPos to also provide client area size
22803           - Fixed broken prototypes for several win32 functions
22804
22805 2004-08-13 12:53  pbartok
22806
22807         * XplatUI.cs, XplatUIDriver.cs:
22808           - Changed GetWindowPos to also provide client area size
22809
22810 2004-08-13 12:52  pbartok
22811
22812         * XplatUIX11.cs:
22813           - Added generation of WM_POSCHANGED
22814           - Changed GetWindowPos to also provide client area size
22815
22816 2004-08-13 12:52  pbartok
22817
22818         * Control.cs:
22819           - Added Dispose() and destructor
22820           - Fixed resizing and bounds calculation
22821           - Fixed Layout
22822           - Added memory savings for invisible windows
22823
22824 2004-08-13 12:46  jordi
22825
22826         * TrackBar.cs: adds timer and grap window
22827
22828 2004-08-13 10:25  jackson
22829
22830         * Timer.cs: SWF Timer
22831
22832 2004-08-12 16:59  pbartok
22833
22834         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22835           - Implemented method to get current mouse position
22836
22837 2004-08-12 14:29  jordi
22838
22839         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
22840           enhancement, fix mouse problems, highli thumb, etc
22841
22842 2004-08-12 13:31  pbartok
22843
22844         * Control.cs:
22845           - Fixed Anchoring bugs
22846
22847 2004-08-12 13:01  jackson
22848
22849         * StatusBar.cs: Don't forget things
22850
22851 2004-08-12 12:54  jackson
22852
22853         * ThemeWin32Classic.cs: Handle owner draw status bars
22854
22855 2004-08-12 12:54  jackson
22856
22857         * StatusBar.cs: Implement missing properties, events, and methods.
22858           Handle mouse clicking
22859
22860 2004-08-12 10:19  jackson
22861
22862         * StatusBarPanelClickEventArgs.cs,
22863           StatusBarPanelClickEventHandler.cs: Classes for handling status
22864           bar panel click events
22865
22866 2004-08-12 10:10  jackson
22867
22868         * Control.cs: Add missing properties
22869
22870 2004-08-12 09:46  pbartok
22871
22872         * BindingsManagerBase.cs:
22873           - Name changed to BindingManagerBase.cs
22874
22875 2004-08-12 09:25  jordi
22876
22877         * ScrollableControl.cs: calls ctrlbase instead of exeception
22878
22879 2004-08-11 16:28  pbartok
22880
22881         * InputLanguageChangingEventArgs.cs:
22882           - Never check in before compiling. Fixes the last check-in
22883
22884 2004-08-11 16:26  pbartok
22885
22886         * InputLanguageChangingEventArgs.cs:
22887           - More signature fixes
22888
22889 2004-08-11 16:20  pbartok
22890
22891         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
22892           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
22893           ImageListStreamer.cs, InputLanguage.cs,
22894           InputLanguageChangedEventArgs.cs,
22895           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
22896           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
22897           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
22898           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22899           - Signature fixes
22900
22901 2004-08-11 16:16  pbartok
22902
22903         * Application.cs:
22904           - Fixed Signature
22905           - Added .Net 1.1 method
22906
22907 2004-08-11 15:25  pbartok
22908
22909         * SWF.csproj:
22910           - Fixed BindingManagerBase.cs filename
22911
22912 2004-08-11 15:22  pbartok
22913
22914         * BindingManagerBase.cs:
22915           - Was checked in with wrong filename
22916
22917 2004-08-11 14:50  pbartok
22918
22919         * SWF.csproj:
22920           - Updated
22921
22922 2004-08-11 13:41  jordi
22923
22924         * XplatUIWin32.cs: Fixes ClientRect
22925
22926 2004-08-11 13:19  pbartok
22927
22928         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
22929           XplatUIX11.cs:
22930           - We had SetWindowPos and MoveWindow to set window positions and
22931             size, removed MoveWindow. We have GetWindowPos, so it made sense to
22932             keep SetWindowPos as matching counterpart
22933           - Added some X11 sanity checking
22934
22935 2004-08-11 12:59  pbartok
22936
22937         * Control.cs:
22938           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
22939             (It seems that SetBounds is just a front for SetBoundsCore and
22940              SetBoundsCore updates the underlying window system and
22941              UpdateBounds is responsible for updating the variables associated
22942              with the Control and sending the events)
22943           - Major cleanup of Size handling; we now have two sizes, client_size
22944             and bounds. Bounds defines the window with decorations, client_size
22945             without them.
22946
22947 2004-08-11 12:55  pbartok
22948
22949         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
22950           - Added method to calculate difference between decorated window and
22951             raw client area
22952
22953 2004-08-11 12:54  pbartok
22954
22955         * Label.cs:
22956           - Forcing redraw on resize
22957
22958 2004-08-11 11:43  pbartok
22959
22960         * ImageList.cs:
22961           - Removed disposing of the actual images when the list is disposed
22962
22963 2004-08-11 09:13  pbartok
22964
22965         * Control.cs:
22966           - Now properly reparents windows
22967
22968 2004-08-11 08:37  pbartok
22969
22970         * Control.cs:
22971           - Duh!
22972
22973 2004-08-11 07:47  pbartok
22974
22975         * Control.cs:
22976           - Rewrote the collection stuff. Might not be as fast now, not
22977             keeping the number of children around and accessible directly, but
22978             it's more straightforward
22979
22980 2004-08-11 07:44  pbartok
22981
22982         * AccessibleObject.cs:
22983           - Fixed to match ControlCollection rewrite
22984
22985 2004-08-11 07:43  pbartok
22986
22987         * ImageList.cs:
22988           - Added missing creation of the collection list
22989
22990 2004-08-10 20:08  jackson
22991
22992         * StatusBar.cs: Get the paint message from WndProc
22993
22994 2004-08-10 19:31  jackson
22995
22996         * ThemeWin32Classic.cs: Create Brushes as little as possible
22997
22998 2004-08-10 19:20  jackson
22999
23000         * UICues.cs: Add Flags attribute
23001
23002 2004-08-10 19:19  jackson
23003
23004         * StatusBarPanel.cs: Signature cleanup
23005
23006 2004-08-10 19:10  jackson
23007
23008         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
23009           Initial implementation of status bar item drawing
23010
23011 2004-08-10 17:27  jordi
23012
23013         * TrackBar.cs: add missing methods, properties, and restructure to
23014           hide extra ones
23015
23016 2004-08-10 16:24  jackson
23017
23018         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
23019           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
23020           attribute
23021
23022 2004-08-10 13:21  jordi
23023
23024         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
23025           enhancements and standarize on win colors defaults
23026
23027 2004-08-10 12:52  jackson
23028
23029         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
23030           ThemeWin32Classic.cs: Implement DrawItem functionality
23031
23032 2004-08-10 12:47  jordi
23033
23034         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
23035
23036 2004-08-10 12:32  jordi
23037
23038         * Control.cs: throw ontextchange event
23039
23040 2004-08-10 11:43  pbartok
23041
23042         * Control.cs:
23043           - Added more to the still unfinished Dock/Anchor layout code
23044
23045 2004-08-10 11:39  pbartok
23046
23047         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
23048           - Added GetWindowPos method
23049
23050 2004-08-10 11:36  pbartok
23051
23052         * XplatUIWin32.cs:
23053           - Implemented several methods
23054
23055 2004-08-10 09:47  jackson
23056
23057         * TrackBar.cs: Allow control to handle buffering
23058
23059 2004-08-10 09:41  jackson
23060
23061         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
23062
23063 2004-08-10 09:24  jackson
23064
23065         * Label.cs, LinkLabel.cs: Let Control handle buffering.
23066
23067 2004-08-10 09:09  jackson
23068
23069         * StatusBar.cs: Let Control handle all the buffering.
23070
23071 2004-08-10 09:08  jackson
23072
23073         * Control.cs: Control will now handle the buffering code, so each
23074           control does not have to implement this.
23075
23076 2004-08-10 08:34  jackson
23077
23078         * XplatUIDriver.cs: Use default colors from the theme
23079
23080 2004-08-09 17:12  pbartok
23081
23082         * ImageList.cs:
23083           - Fixed several bugs Ravindra pointed out
23084
23085 2004-08-09 16:11  pbartok
23086
23087         * Control.cs:
23088           - Added incomplete dock layout code
23089           - Added support for mouse wheel
23090
23091 2004-08-09 16:09  pbartok
23092
23093         * XplatUIX11.cs:
23094           - Added handling for middle and right mousebutton
23095           - Added handling for mouse wheel
23096           - Added handling for key state and mouse state and position
23097           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
23098           messages
23099
23100 2004-08-09 15:40  jackson
23101
23102         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
23103           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
23104           checkin
23105
23106 2004-08-09 15:37  jackson
23107
23108         * StatusBar.cs: Initial implementation of StatusBar
23109
23110 2004-08-09 15:36  jackson
23111
23112         * ITheme.cs: Add support for drawing status bar and getting status
23113           bar item sizes
23114
23115 2004-08-09 15:35  pbartok
23116
23117         * MouseButtons.cs:
23118           - Fixed values
23119
23120 2004-08-09 15:34  jackson
23121
23122         * ThemeWin32Classic.cs: Add support for drawing status bar and get
23123           status bar item sizes
23124
23125 2004-08-09 15:21  jackson
23126
23127         * ThemeWin32Classic.cs: Use known colors for default control
23128           colours
23129
23130 2004-08-09 15:12  jackson
23131
23132         * ThemeWin32Classic.cs: Make the default font static, it is static
23133           in control so this doesn't change functionality and creating fonts
23134           is sloooooow.
23135
23136 2004-08-09 14:56  pbartok
23137
23138         * X11Structs.cs:
23139           - Added GrabMode enum
23140
23141 2004-08-09 14:55  pbartok
23142
23143         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23144           - Removed Run method, was only required for initial development
23145
23146 2004-08-09 14:51  pbartok
23147
23148         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
23149           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
23150           capture
23151
23152 2004-08-09 13:48  pbartok
23153
23154         * XplatUIX11.cs:
23155           - Fixed default sizing for child windows
23156
23157 2004-08-09 12:56  pbartok
23158
23159         * XplatUIX11.cs:
23160           - Added generation of WM_DESTROY message
23161           - Added handling of window manager induced shutdown
23162
23163 2004-08-09 11:31  jackson
23164
23165         * ThemeWin32Classic.cs: New names for control properties
23166
23167 2004-08-09 11:25  jackson
23168
23169         * Control.cs: Use new color names
23170
23171 2004-08-09 11:02  jackson
23172
23173         * XplatUI.cs: Get default window properties from the theme
23174
23175 2004-08-09 11:01  jackson
23176
23177         * ITheme.cs: The theme engine now controls default window
23178           properties
23179
23180 2004-08-09 11:00  jackson
23181
23182         * ThemeWin32Classic.cs: Add default window color properties
23183
23184 2004-08-09 10:17  jackson
23185
23186         * ThemeWin32Classic.cs: Use correct default back color
23187
23188 2004-08-09 10:05  jackson
23189
23190         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
23191           the theme now.
23192
23193 2004-08-09 09:56  jackson
23194
23195         * XplatUI.cs: Remove defaults, these are handled by the theme now.
23196
23197 2004-08-09 09:54  jackson
23198
23199         * Control.cs: Get default properties from the theme.
23200
23201 2004-08-09 09:53  jackson
23202
23203         * ITheme.cs: Themes now handle default control properties
23204
23205 2004-08-09 09:53  jackson
23206
23207         * ThemeWin32Classic.cs: Themes now handle default control
23208           properties so coloring will be consistent
23209
23210 2004-08-08 16:54  jordi
23211
23212         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
23213
23214 2004-08-08 15:08  jordi
23215
23216         * XplatUIX11.cs: fixes keyboard crash
23217
23218 2004-08-08 13:47  jordi
23219
23220         * Label.cs: add cvs header info
23221
23222 2004-08-08 12:09  jackson
23223
23224         * ThemeWin32Classic.cs: Add pen_buttonface
23225
23226 2004-08-08 11:52  jordi
23227
23228         * Label.cs, LinkLabel.cs: [no log message]
23229
23230 2004-08-08 11:34  jordi
23231
23232         * ThemeWin32Classic.cs: Use Windows Standard Colours
23233
23234 2004-08-07 17:32  jordi
23235
23236         * TrackBar.cs: throw exceptions of invalid enums values
23237
23238 2004-08-07 17:31  jordi
23239
23240         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
23241           draw method name
23242
23243 2004-08-07 16:56  jackson
23244
23245         * HorizontalAlignment.cs: Initial checkin
23246
23247 2004-08-07 13:16  jordi
23248
23249         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
23250           methods
23251
23252 2004-08-07 13:05  jordi
23253
23254         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
23255           GetSysColor defines
23256
23257 2004-08-06 18:01  pbartok
23258
23259         * ThemeWin32Classic.cs:
23260           - Fixed some rounding issues with float/int
23261
23262 2004-08-06 18:00  jackson
23263
23264         * DockStyle.cs, AnchorStyles.cs:
23265
23266                   Add flags and serializable attributes.
23267
23268 2004-08-06 17:46  pbartok
23269
23270         * XplatUIX11.cs:
23271           - Implemented GetParent
23272
23273 2004-08-06 17:18  pbartok
23274
23275         * TrackBar.cs:
23276           - Fixed some rounding issues with float/int
23277
23278 2004-08-06 17:17  pbartok
23279
23280         * X11Structs.cs, XplatUIX11.cs:
23281           - Fixed Refresh and Invalidate
23282
23283 2004-08-06 15:30  pbartok
23284
23285         * Control.cs, X11Structs.cs, XplatUIX11.cs:
23286           - Fixed recursive loop when resizing
23287           - Improved/fixed redrawing on expose messages
23288
23289 2004-08-06 09:53  jordi
23290
23291         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
23292           keyboard navigation
23293
23294 2004-08-06 08:02  pbartok
23295
23296         * X11Structs.cs, XplatUIX11.cs:
23297           - Fixed reparenting
23298           - Fixed window border creation
23299
23300 2004-08-05 15:38  pbartok
23301
23302         * XplatUIX11.cs:
23303           - Attempted fix for reparenting problems
23304
23305 2004-08-04 15:14  pbartok
23306
23307         * Control.cs:
23308           - Fixed Invalidation bug (calculated wrong client area)
23309           - Added ClientSize setter
23310
23311 2004-08-04 15:13  pbartok
23312
23313         * Form.cs:
23314           - Added AutoScale properties
23315
23316 2004-08-04 15:13  pbartok
23317
23318         * SWF.csproj:
23319           - Added latest files
23320
23321 2004-08-04 14:11  pbartok
23322
23323         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
23324           XplatUIX11.cs:
23325           - Added Invalidate handling
23326
23327 2004-08-03 17:09  jordi
23328
23329         * XplatUIDriver.cs: fixes spelling mistake
23330
23331 2004-07-27 09:53  jordi
23332
23333         * TrackBar.cs: fixes trackbar events, def classname, methods
23334           signature
23335
23336 2004-07-27 09:29  jordi
23337
23338         * ScrollBar.cs: fixes scrollbar events
23339
23340 2004-07-27 04:38  jordi
23341
23342         * Control.cs: changes to be able to run winforms samples
23343
23344 2004-07-26 11:42  jordi
23345
23346         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
23347           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
23348
23349 2004-07-26 05:41  jordi
23350
23351         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
23352           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
23353           implementation
23354
23355 2004-07-22 09:22  jordi
23356
23357         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
23358           check link overlapping, implement events, and fixes
23359
23360 2004-07-21 10:28  jordi
23361
23362         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
23363
23364 2004-07-21 10:19  jordi
23365
23366         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
23367           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
23368           LinkLabelLinkClickedEventArgs.cs,
23369           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
23370           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
23371           implementation
23372
23373 2004-07-19 13:09  jordi
23374
23375         * Control.cs, Label.cs: label control re-written: added missing
23376           functionlity, events, and properties
23377
23378 2004-07-19 10:49  jordi
23379
23380         * Control.cs: fixes SetBounds logic
23381
23382 2004-07-19 01:29  jordi
23383
23384         * Control.cs: Call RefreshWindow only if the window has created
23385
23386 2004-07-15 14:05  pbartok
23387
23388         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
23389           - Implemented ImageList and ImageList.ImageCollection classes
23390           - Added ColorDepth enumeration
23391           - Updated SWF VS.Net project
23392
23393 2004-07-15 11:06  jordi
23394
23395         * XplatUIStructs.cs: added MsgButons enum
23396
23397 2004-07-15 11:03  jordi
23398
23399         * Control.cs: added basic mouse handeling events
23400
23401 2004-07-15 03:38  jordi
23402
23403         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
23404           Vertical TrackBar control implementation
23405
23406 2004-07-13 09:33  jordi
23407
23408         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
23409
23410 2004-07-13 09:31  jordi
23411
23412         * Control.cs, Form.cs: commit: new properties and fixes form size
23413           problems
23414
23415 2004-07-09 14:13  miguel
23416
23417         * ProgressBar.cs: Spelling
23418
23419 2004-07-09 11:25  pbartok
23420
23421         * ProgressBar.cs:
23422           - Removed usage of Rectangle for drawing. Miguel pointed out it's
23423           faster
23424
23425 2004-07-09 11:17  miguel
23426
23427         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
23428
23429                 * ProgressBar.cs: Fixed spelling for `block'
23430
23431                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
23432                 style guidelines.
23433
23434                 Avoid using the += on rect.X, that exposed a bug in the compiler.
23435
23436 2004-07-08 23:21  pbartok
23437
23438         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
23439           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
23440           BaseCollection.cs, Binding.cs, BindingContext.cs,
23441           BindingMemberInfo.cs, BindingsCollection.cs,
23442           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
23443           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
23444           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
23445           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
23446           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
23447           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
23448           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
23449           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
23450           FrameStyle.cs, GiveFeedbackEventArgs.cs,
23451           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
23452           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
23453           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
23454           InputLanguageChangedEventArgs.cs,
23455           InputLanguageChangedEventHandler.cs,
23456           InputLanguageChangingEventArgs.cs,
23457           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
23458           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
23459           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
23460           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
23461           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
23462           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
23463           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
23464           QueryAccessibilityHelpEventArgs.cs,
23465           QueryAccessibilityHelpEventHandler.cs,
23466           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
23467           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
23468           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
23469           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
23470           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
23471           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
23472           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
23473           XplatUIX11.cs, lang.cs:
23474           - Initial check-in
23475