2006-10-13 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-10-13  Chris Toshok  <toshok@ximian.com>
2
3         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
4         zombie after we do the recursive call, so we actually do call
5         SendMessage on the children controls.
6         (GetMessage): if we find a pending paint event for a zombie hwnd,
7         remove the hwnd from the paint queue, or else it will always be
8         there (and we'll effectively loop infinitely)
9
10 2006-10-13  Mike Kestner  <mkestner@novell.com>
11
12         * MenuItem.cs : add Selected format under keynav too.
13         Fixes #79528.
14
15 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
16
17         * PropertyGrid.cs: Fixed some NRE's and small difference between our
18         implementation and that of MS.
19
20 2006-10-13  Chris Toshok  <toshok@ximian.com>
21
22         * Control.cs (OnInvalidated) only futz with the invalid_region if
23         the control is double buffered.  this fixes the apparent hang in
24         the ListView unit tests.  Someone needs to make the
25         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
26
27 2006-10-13  Chris Toshok  <toshok@ximian.com>
28
29         * PropertyGridView.cs:
30
31         - do a little refactoring so that only one place calls
32         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
33         else call that.  Also make it Refresh, since there are redraw bugs
34         otherwise (we should take a look at that...)
35
36         - do a little more refactoring work to share the body of code
37         involved with the drop down.  it was duplicated in the code
38         dealing with the listbox handling and in the code dealing with the
39         UITypeEditors.
40
41         - add a Capture to the dropdown form's control once it's
42         displayed, and add a MouseDown handler that checks to make sure
43         the position is inside the control.  If it's not, close the
44         dropdown.  This fixes #78190.
45
46         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
47         if the value is different than the initial value.
48         
49 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
50
51         * Control.cs: see #78650
52         - Fixed GetNextControl for several cases:
53                 - Changed FindFlatForward to return 
54                 correct sibling control when more than one
55                 control has same TabIndex as the currently 
56                 focused one.
57                 - Changed FindFlatBackward to loop children
58                 from last to first and apply same logic as in
59                 FindFlatForward
60                 - Changed FindControlForward to search for
61                 children when control is not a container
62                 but has children, or search for siblings if
63                 control is a container...
64                 - Changed FindControlBackward   to continue
65                 searching for child controls when hitting 
66                 Panel-like parents
67                 
68         - Fixed Focus method to update ActiveControl
69         (FocusTest.FocusSetsActive failure)
70         
71         * TabControl.cs:
72         - Focus rectangle now refreshes when gaining
73         or losing focus
74         - Removed grab for Tab key on IsInputKey that 
75         was keeping tab navigation from working (#78650)
76
77 2006-10-13  Chris Toshok  <toshok@ximian.com>
78
79         * PropertyGridView.cs:
80         - Rewrite SetPropertyValue to loop over SelectedGridItem's
81         SelectedObjects.
82
83         - Deal with GridItem.Value == null a few places.
84
85         * PropertyGrid.cs: 
86         - replace the PopulateGridItemCollection with a pair of methods
87         which compute the intersection of all the properties in the
88         SelectedObjects array.  Fixes #79615.
89
90         - Throw ArgumentException from set_SelectedObjects if there's a
91         null in the array.
92
93         - Add GetTarget method which can be used to traverse up the
94         GridItem.Parent chain.  It depends on the assumption that
95         selected_objects for different GridEntries are always in the same
96         order (a safe assumption).  Use this method and loop over all the
97         selected objects in the entry when calling RemoveValueChanged and
98         AddValueChanged.
99         
100         * GridEntry.cs: Make this handle multiple selected objects.
101         .Value returns null if not all the selected objects share the same
102         value.
103
104 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
105         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
106           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
107           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
108           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
109           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
110         add additional functionality.
111
112 2006-10-12  Mike Kestner  <mkestner@novell.com>
113
114         * ErrorProvider.cs : new ToolTipWindow ctor sig.
115         * HelpProvider.cs : new ToolTipWindow ctor sig.
116         * ToolTip.cs : remove ToolTip param from Window sig since it is
117         not used.
118         * ToolBar.cs : add tooltip support.  Fixes #79565.
119
120 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
121
122         * ComboBox.cs: move the events in set_SelectedIndex to 
123         after the call to HighlightIndex in order to avoid 
124         possible recursion and subsequent problems with the call
125         to HighlightIndex and include a range check in 
126         set_HighlightIndex. Fixes #79588
127         
128 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
129
130         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
131         to ui thread's settings instead of sunday. 
132         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
133
134 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
135
136         * DateTimePicker.cs
137         * MonthCalendar.cs
138         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
139         and implement missing functionality (selecting different parts 
140         of the date and edit them individually with the keyboard).
141         
142 2006-10-11  Chris Toshok  <toshok@ximian.com>
143
144         * Control.cs (OnInvalidated): fix NRE relating to last change.
145
146 2006-10-11  Chris Toshok  <toshok@ximian.com>
147
148         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
149         atoms in _NET_WM_STATE here if the window is maximized.  We need
150         to do this because we're *replacing* the existing _NET_WM_STATE
151         property, so those atoms will be lost otherwise, and any further
152         call to GetWindowState will return Normal for a window which is
153         actually maximized.  Fixes #79338.
154
155 2006-10-11  Jackson Harper  <jackson@ximian.com>
156
157         * TextControl.cs: Special case for setting selection end to
158         selection start, we basically kill the anchor.
159         - some todo comments.
160
161 2006-10-11  Chris Toshok  <toshok@ximian.com>
162
163         * Control.cs: switch to using an "invalid_region" to track which
164         parts of the image buffer need updating.  This is more code than
165         the simple fix from r66532.  That version just attempted to always
166         fill the entire buffer on redraw, which turns out to be
167         inefficient when invalidating small rectangles.  This version
168         simply adds the invalid rectangle to the invalid region.  When we
169         get any WM_PAINT message we see if it can be filled using the
170         image buffer, and if it can't (if the paint event's clip rectangle
171         is visible in the invalid region) we first fill the image buffer.
172         So, the image buffer is still a cache, we just fill it lazily.
173
174         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
175         need it any longer.
176
177 2006-10-11  Chris Toshok  <toshok@ximian.com>
178
179         * XplatUIX11.cs (SetWindowPos): we need to update both position as
180         well as size after calling XMoveResizeWindow.  This keeps us from
181         ignoring future SetWindowPos calls.  Fixes the disappearing
182         DateTimePicker in the ToolBarDockExample from bug #72499.
183
184 2006-10-11  Chris Toshok  <toshok@ximian.com>
185
186         * TextBoxBase.cs: reorder things a bit when it comes to
187         resizing-causing-recalculation.  we were recalculating the
188         document when our position was changed, which shouldn't happen.
189         We only care about size changes.  Clear up some more redundant
190         recalculation calls while I'm at it.  This makes the toolbar dock
191         example snappy when you're just dragging toolbars around (since it
192         causes a relayout whenever you move one.)
193
194 2006-10-11  Chris Toshok  <toshok@ximian.com>
195
196         * ToolBarButton.cs (get_Rectangle): this only returns
197         Rectangle.Empty if Visible == false, or Parent == null.
198         Parent.Visible doesn't matter.
199
200 2006-10-10  Chris Toshok  <toshok@ximian.com>
201
202         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
203         by .net 1.1, so switch to an internal method instead.
204
205 2006-10-10  Chris Toshok  <toshok@ximian.com>
206
207         * Control.cs (WM_PAINT): when a control is double buffered we draw
208         initially to the ImageBuffer and then copy from there.  But when a
209         parent control which has child controls is double buffered, the
210         initial drawing doesn't encompass the entire ClientRectangle of
211         the parent control, so we end up with uninitialized bits (this is
212         easily seen by dragging the top toolbar in
213         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
214         manually set the ClipRectangle of the paint_event (only the one we
215         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
216         of the nastiness in bug #72499.
217
218         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
219         which we use in Control.cs's WM_PAINT handling.
220
221 2006-10-10  Jackson Harper  <jackson@ximian.com>
222
223         * TextBoxBase.cs: Finish off the autoscrolling stuff.
224
225 2006-10-10  Chris Toshok  <toshok@ximian.com>
226
227         * Cursor.cs: Apply a slightly different patch to the one suggested
228         in #79609.
229
230 2006-10-10  Jackson Harper  <jackson@ximian.com>
231
232         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
233         not the parent form.
234         * TextControl.cs: use difference in old line count vs new count to
235         calculate how many lines were added, this takes into account soft
236         line breaks properly.
237
238 2006-10-10  Chris Toshok  <toshok@ximian.com>
239
240         * LinkLabel.cs: don't call MeasureCharacterRanges against a
241         rectangle located at 0,0 and the size of the text.  Use
242         ClientRectangle instead.  This fixes rendering of non-left aligned
243         link labels.
244
245 2006-10-10  Jackson Harper  <jackson@ximian.com>
246
247         * TextBoxBase.cs: When we set the selection start position the
248         caret.
249         * TextControl.cs: Need to update the caret when we decrement it to
250         zero.
251         - Make sure that the selection_visible flag gets reset to false if
252         the selection isn't visible.  Before this you could get it set to
253         visible by changing the selection start, then changing the end to
254         equal the start.
255
256 2006-10-09  Jackson Harper  <jackson@ximian.com>
257
258         * TreeView.cs: Don't update scrollbars when we aren't visible.
259         * TreeNodeCollection.cs: Only need to update scrollbars if being
260         added to an expanded visible node or the root node.
261
262 2006-10-09  Chris Toshok  <toshok@ximian.com>
263
264         * XplatUIX11.cs (SendMessage): fix NRE.
265
266 2006-10-09  Jackson Harper  <jackson@ximian.com>
267
268         * TextBoxBase.cs: Implement horizontal autoscrolling.
269         * TextControl.cs: Add a movement types that allows moving forward
270         and backwards without wrapping.
271
272 2006-10-09  Mike Kestner  <mkestner@novell.com>
273
274         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
275         with focus "expansion" of labels.  Fixes #79532 and then some.
276         * ThemeWin32Classic.cs : add LineLimit to ListView label format
277         when wrapping.
278
279 2006-10-09  Jackson Harper  <jackson@ximian.com>
280
281         * TextBoxBase.cs: Set the default max values to MaxValue since
282         we use the scrollbar for autoscrolling and the default value is
283         100.  If we don't do this the caret won't keep up with typing
284         after about 18 characters.
285         * TextControl.cs: Make sure the selection is offset by the
286         viewport x.  This fixes selection when using auto scrolling.
287
288 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
289         
290         * Form.cs: The active control should be selected after the 
291         OnLoad so that any child control initialization that affects
292         the selection is done. Fixes #79406
293
294 2006-10-06  Chris Toshok  <toshok@ximian.com>
295
296         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
297         to have no evil effects.
298
299         - Stop selecting StructureNotifyMask on non-toplevel windows.
300
301           The only way children should be resized is by using the SWF api,
302           and we already send WM_WINDOWPOSCHANGED messages in those cases.
303           Toplevel windows can be interacted with via the window manager,
304           and so we keep the input mask there.
305
306           The other event StructureNotifyMask gives us (that we care
307           about) is DestroyNotify.  The code is already structured such
308           that it assumes we won't be getting a DestroyNotify event for
309           the window we pass to XDestroyWindow (which is what
310           StructureNotifyMask is supposed to guarantee.)  So, that code
311           shouldn't be affected by this either.
312
313         - Stop selecting VisibilityChangeMask altogether.
314
315           We weren't doing anything with the resulting events anyway.
316         
317         This vastly reduces the number of X requests and events we see
318         when resizing/laying out a large ui.
319
320 2006-10-06  Chris Toshok  <toshok@ximian.com>
321
322         * ScrollableControl.cs (DisplayRectangle): we need to take into
323         account the DockPadding regardless of whether or not auto_scroll
324         == true.  rework this slightly to this effect, and fix bug #79606,
325         and part of #72499 (you can now see the drag handles and drag
326         toolbars around).
327
328 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
329
330         * ListViewItem.cs: Collections of selected and checked items are now
331         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
332         we mark the collection "dirty".
333         * ListView.cs: Marked collections readonly. Modified UpdateSelection
334         to only clear SelectedItems when a new item is selected and MultiSelect
335         is enabled. CheckedItems and SelectedItems now subscribe to Changed
336         event of ListViewItemCollection, and mark its list dirty whenever
337         that event is fire. This allows us to return selected/checked items 
338         in the same order as they are in the Items collection. This matches
339         the MS behavior.
340
341 2006-10-06  Chris Toshok  <toshok@ximian.com>
342
343         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
344         right mouse clicks.  Fixes bug #79593.
345
346 2006-10-06  Chris Toshok  <toshok@ximian.com>
347
348         * Splitter.cs: doh, fix splitters that don't want to cancel the
349         movement when you drag them.  Also, impose the limits on the
350         values we send to the SplitterMovingEvent.  Fixes #79598.
351
352 2006-10-06  Jackson Harper  <jackson@ximian.com>
353
354         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
355         since we use this for auto scrolling also.
356
357 2006-10-05  Chris Toshok  <toshok@ximian.com>
358
359         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
360         beginning to think that most datagrid column types don't need this
361         method.  Fixes bug #79392.
362
363 2006-10-05  Chris Toshok  <toshok@ximian.com>
364
365         * DataGrid.cs: move back to a more lazy scheme for creating the
366         CurrencyManager, so we aren't updating it every time you set
367         either DataSource or DataMember.  Also, don't call
368         RecreateDataGridRows if the currency manager hasn't changed.
369
370 2006-10-05  Chris Toshok  <toshok@ximian.com>
371
372         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
373         emitted, SelectedIndex should already be updated.  Fixes bug
374         #78929.
375
376 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
377
378         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
379           ToolStripTextBox.cs: Initial commit.
380         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
381
382 2006-10-05  Jackson Harper  <jackson@ximian.com>
383
384         * TabControl.cs: We need to invalidate the tab control area when
385         new ones are added (duh).
386
387 2006-10-03  Chris Toshok  <toshok@ximian.com>
388
389         * Form.cs (ProcessDialogKey): if the focused control is in this
390         form and is a button, call its PerformClick method here.  Fixes
391         #79534.
392
393 2006-10-04  Jackson Harper  <jackson@ximian.com>
394
395         * TabPage.cs: Ignore setting of Visible, and add an internal
396         method for setting the controls visibility.  TabPage's Visible
397         property is a little strange on MS, this seems to make us
398         compatible, and fixes cases where people set all the tab pages to
399         visible.
400         * TabControl.cs: Use the new internal setting on tab pages
401         visibility.
402
403 2006-10-03  Mike Kestner  <mkestner@novell.com>
404
405         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
406
407 2006-10-03  Mike Kestner  <mkestner@novell.com>
408
409         * ListView.cs : use is_visible instead of Visible to check if 
410         scrollbars should be placed/sized.  Also some max_wrap_width
411         love for LargeIcon view.  [Fixes #79533]
412
413 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
414
415         * TextControl.cs :
416           Make set_TextAlign() do actually update the align. Fixed #78403.
417
418 2006-10-03  Chris Toshok  <toshok@ximian.com>
419
420         * DataGrid.cs: fix a crash when switching datasources if the
421         vertical scrollbar is at someplace other than Value = 0.  Also,
422         reduce the number of recalculation passes we do in SetDataSource
423         from 2 to 1.
424
425 2006-10-03  Jackson Harper  <jackson@ximian.com>
426
427         * TextBoxBase.cs: Move the if value the same bail check up, we
428         don't want to empty the document if it is already empty, this
429         seems to severly mess up the caret.  TODO: I should probably fix
430         the empty statement to update teh caret somehow.
431
432 2006-10-03  Chris Toshok  <toshok@ximian.com>
433
434         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
435         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
436         reflection, an internal row type, properties on said type, etc.)
437         will work with our datagrid.  Fixes #79531.
438
439 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
440
441         * FileDialog.cs: Don't crash if a path is not accessible
442           (System.UnauthorizedAccessException). Fixes #79569.
443         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
444           a ':' too. Return unknown icon for those paths/files.
445
446 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
447
448         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
449         GetContainerControl returns null.
450
451 2006-10-02  Chris Toshok  <toshok@ximian.com>
452
453         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
454         call to XGetWindowAttributes instead of "handle".  fixes an X
455         error using notifyicon after the NotifyIconWindow to Form base
456         class switch.
457
458 2006-10-02  Chris Toshok  <toshok@ximian.com>
459
460         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
461         server grab and looping we need to do to get down to the most
462         deeply nested child window.
463         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
464         QueryPointer again after the WarpPointer so we can generate a
465         proper (fake) MotionNotify event to be enqueued in the destination
466         window's queue.
467         (GetCursorPos): call QueryPointer.
468
469         Fixes #79556.
470
471 2006-10-02  Jackson Harper  <jackson@ximian.com>
472
473         * NotifyIcon.cs: Derive the notify icon from a form, so things
474         like FindForm work on it.
475         - Swallow the WM_CONTEXTMENU message, since that is generated on
476         mouse down, and context menu is a mouse up kinda guy.  I believe
477         the correct fix here is probably to make the notify icon entirely
478         NC area, but this seems to work fine for anyone not manipulating
479         WndProc.
480
481 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
482
483         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
484           ToolStripItemCollection.cs, ToolStripLabel.cs,
485           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
486           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
487           Initial implementation.
488         * TextRenderer.cs: Provide padding to MeasureText.
489
490 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
491
492         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
493         of ButtonBaseAccessibleObject. Fix bug #79552.
494
495 2006-10-02  Jackson Harper  <jackson@ximian.com>
496
497         * MdiWindowManager.cs: When maximizing use the containers client
498         rect, not it's bounds, so nc area is accounted correctly.
499         - Use the parent form's size for the menu position, since the
500         client isn't always the full form size.
501
502 2006-10-01  Chris Toshok  <toshok@ximian.com>
503
504         * ScrollableControl.cs: make sure neither right_edge or
505         bottom_edge are < 0, since they're used as LargeChange for the
506         horiz/vert scrollbars respectively.  Fixes #79539.
507
508 2006-10-01  Chris Toshok  <toshok@ximian.com>
509
510         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
511         the xplatuix11 code can cause us to destroy/recreate our handle.
512
513         * XplatUIX11.cs
514         (SystrayAdd):
515         - this code can be invoked many times for the same Hwnd.  Make
516           sure we only destroy the client window once (the first time this
517           method is called).  This fixes bug #79544.
518         - Remove the call to the improperly bound XSync.  why we had two
519           bindings to this, I will never know, but this call resulted in
520           events being discarded from the queue(!).
521         - correct a misunderstanding of _XEMBED_INFO - the second atom is
522           not our current state but the state we wish to be in.  So, 0 if
523           we don't want to be mapped.  Change it to 1.
524         (SystrayRemove): The XEMBED spec makes mention of the fact that
525         gtk doesn't support the reparent of client windows away from the
526         embedder.  Looking at gtksocket-x11.c seems to agree with this.
527         The only avenue we have for removing systray icons is to destroy
528         them.  We don't want the handle to go away for good, though, so
529         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
530         #79545.
531         
532 2006-10-01  Chris Toshok  <toshok@ximian.com>
533
534         * Form.cs (WndProc): inline the native_enabled variable usage into
535         the cases in which it's used.  Fixes #79536.
536
537 2006-09-29  Mike Kestner  <mkestner@novell.com>
538
539         * ListView.cs : toggle the selection state for ctrl clicks in 
540         multiselect mode. [Fixes #79417]
541
542 2006-09-29  Mike Kestner  <mkestner@novell.com>
543
544         * ListView.cs : kill CanMultiSelect and refactor the selection
545         code to support multiselection in the absence of mod keys. Steal
546         arrow/home/end keys by overriding InternalPreProcessMessage to
547         restore regressed keynav behavior.
548         [Fixes #79416]
549
550 2006-09-29  Jackson Harper  <jackson@ximian.com>
551
552         * MdiClient.cs: Repaint the titlebars when the active window is
553         changed.
554
555 2006-09-29  Chris Toshok  <toshok@ximian.com>
556
557         * Application.cs: when entering a runloop with a modal, make sure
558         the hwnd is enabled.  Fixes #79480.
559
560 2006-09-29  Chris Toshok  <toshok@ximian.com>
561
562         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
563         when ListManager.CanAddRows == false, bump us back one.
564
565         * DataGridColumnStyle.cs (ParentReadOnly): remove the
566         listmanager.CanAddRows check.  This makes ArrayLists uneditable
567         using a datagrid, which is not right.
568         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
569         is an IEditable, but call property_descriptor.SetValue regardless.
570         fixes #79435.
571
572 2006-09-29  Chris Toshok  <toshok@ximian.com>
573
574         * DataGridBoolColumn.cs: we need to test equality in the face of
575         possible null values (as is the case with the default NullValue).
576         This patch keeps us from crashing in that case.
577
578 2006-09-29  Jackson Harper  <jackson@ximian.com>
579
580         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
581         here, since it will get called for every node collection in the
582         tree. This is now done in the treeview once the sorting is
583         finished.
584         * TreeView.cs: Recalculate the visible order, and update the
585         scrollbars after sorting, set the top nope to the root so that the
586         recalc actually works.
587
588 2006-09-29  Chris Toshok  <toshok@ximian.com>
589
590         * LinkLabel.cs: more handling of the default link collection in
591         the face of LinkArea manipulation.  The default link collection
592         contains 1 element (start=0,length=-1).  If the user sets LinkArea
593         to anything and the links collection is the default, clear it.
594         Then only add the link if its nonempty.  Fixes #79518.
595
596 2006-09-29  Chris Toshok  <toshok@ximian.com>
597
598         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
599         piece correctly when we hit a '\n'.  Fixes #79517.
600
601 2006-09-29  Chris Toshok  <toshok@ximian.com>
602
603         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
604         change the binding of gdk_init_check to take two IntPtr's, and
605         pass IntPtr.Zero for both of them.  Fixes #79520.
606
607 2006-09-29  Mike Kestner  <mkestner@novell.com>
608
609         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
610         [Fixes #78779]
611
612 2006-09-28  Jackson Harper  <jackson@ximian.com>
613
614         * XplatUIX11.cs: When translating NC messages make sure we go from
615         whole window to screen, not client window to screen.
616         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
617         method doesn't exist
618         - Skip over controls that aren't forms when arranging.
619
620 2006-09-28  Jackson Harper  <jackson@ximian.com>
621
622         * XplatUIWin32.cs: Clip the rect to the parent window.
623         * XplatUIStructs.cs: Add clipping modes struct.
624         * InternalWindowManager.cs: New private method that factors title
625         bar heights in when calculating the pos of an NC mouse message.
626         - Use SendMessage to force a paint when the form's size is changed
627         instead of painting the decorations immediately.
628         - Don't let the NC button click messages get to DefWndProc,
629         because they will attempt to handle windowing themself, and this
630         messes up z-order (it will put them in front of the scrollbars).
631         * XplatUIX11.cs: Make sure that we don't reset window managers if
632         we already have one (ie the window is an MDI window).
633
634 2006-09-28  Chris Toshok  <toshok@ximian.com>
635
636         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
637         menu code really needs going over.
638
639 2006-09-27  Chris Toshok  <toshok@ximian.com>
640
641         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
642         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
643         window is maximizable.  So, we need to make sure that even if we
644         clear the border/wm frame of those functions, they're still
645         available (basically, we remove the decoration without removing
646         the function).  Half the fix for #79338.
647
648 2006-09-27  Chris Toshok  <toshok@ximian.com>
649
650         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
651         Fixes bug #79515.
652
653 2006-09-27  Chris Toshok  <toshok@ximian.com>
654
655         * Splitter.cs: reorder things a bit so that we don't actually
656         draw/move the splitter until after calling OnSplitterMoving.  This
657         lets users cancel/disallow the movement by explicitly setting
658         event.SplitX/SplitY.  Fixes #79372.
659
660 2006-09-27  Jackson Harper  <jackson@ximian.com>
661
662         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
663         because it is most likely on a window being destroyed, and that
664         will give us an X11 error.
665
666 2006-09-27  Chris Toshok  <toshok@ximian.com>
667
668         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
669         the dropdown button now toggles between showing and hiding the
670         dropdown.  Also, get rid of dropdown_form_showing and just use
671         dropdown_form.Visible.  We still don't do a grab, but I'll leave
672         that part to someone who has handled Capture-fu before.
673
674 2006-09-27  Chris Toshok  <toshok@ximian.com>
675
676         * DataGrid.cs: return false if alt isn't pressed when '0' is
677         pressed.  this keeps the '0' key from being swallowed, and fixes
678         bug #79350.
679
680 2006-09-27  Chris Toshok  <toshok@ximian.com>
681
682         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
683         Calling Refresh (in response to a scrollbar event) screws up the
684         scrollbar painting.  Fixes bug #78923.
685
686 2006-09-27  Chris Toshok  <toshok@ximian.com>
687
688         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
689         then insert into hashtable" blocks threadsafe.
690
691 2006-09-27  Chris Toshok  <toshok@ximian.com>
692
693         * MessageBox.cs (CreateParams): the styles should be |'ed with our
694         baseclass's, since otherwise the
695         ControlBox/MinimizeBox/MaximizeBox assignments above have no
696         effect.  This gets the close button back in messageboxes.
697
698 2006-09-27  Chris Toshok  <toshok@ximian.com>
699
700         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
701         flag, not just != 0.  this makes flags that are actually multiple
702         bits (like WS_CAPTION) work.  fixes bug #79508.
703
704 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
705
706         * PageSetupDialog.cs: add support for getting and settings the 
707         paper size, source and orientation.
708
709 2006-09-26  Chris Toshok  <toshok@ximian.com>
710
711         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
712         and caption == "", we need to remove the resize handles as well as
713         the title bar.
714
715         * Control.cs (set_Text): turns out that setting Text on a form
716         should change the WM styles on the window, since if ControlBox ==
717         false, the only way to get a window border is to have a non-""
718         Text property.  check winforms/forms/text.cs for an example.  so,
719         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
720         update both window styles and title.  This fixes a lot of dialogs
721         (including the preferences dialog in MonoCalendar.)
722
723 2006-09-26  Chris Toshok  <toshok@ximian.com>
724
725         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
726         control isn't a Form), call Win32ShowWindow to hide the window,
727         but don't update the control Visible property.  When we reparent
728         back to a parent control, call SetVisible in order for the
729         window's visibility to be reinstated.
730
731         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
732         the FosterParent.
733
734         * Control.cs (ControlCollection.Remove): remove that value.Hide()
735         call for good, since it breaks MonoCalendar (and other things I'm
736         sure.) Also, set all_controls to null *after* the owner calls,
737         which end up regenerating it.
738         (ChangeParent): allow new_parent to be == null, passing
739         IntPtr.Zero down to XplatUI.
740
741         this fixes #79294 the right way.
742
743 2006-09-26  Mike Kestner  <mkestner@novell.com>
744
745         * GridEntry.cs : internal SetParent method.
746         * PropertyGrid.cs : attach to property changed on the proper
747         target if we have a hierarchical grid with subobjects. Setup
748         GridItem.Parent for hierarchical items.
749         * PropertyGridView.cs : Set value on the correct target for
750         hierarchical grids. [Fixes #78903]
751
752 2006-09-26  Chris Toshok  <toshok@ximian.com>
753
754         * Control.cs (ChildNeedsRecreating): this should return true if
755         either we're being recreated and the child is in our list, or our
756         parent is waiting for our recreation.
757
758 2006-09-26  Chris Toshok  <toshok@ximian.com>
759
760         * Control.cs (ControlCollection.Remove): reinstate the
761         value.Hide() call as suggested in bug #79294.
762
763 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
764
765         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
766         coordinates (versus a relative move).
767
768 2006-09-26  Chris Toshok  <toshok@ximian.com>
769
770         * Control.cs: rework child recreation a little bit.  It turns out
771         that we race between the DestroyNotify the WM_DESTROY message.  If
772         the parent gets its DestroyNotify before the child gets the
773         WM_DESTROY message, the child ends up not recreating (since the
774         parent finishes its recreation on DestroyNotify, and the child
775         checks ParentIsRecreating.)
776
777         So, instead we store off a list of all the child controls which
778         need to be recreated when the parent control starts to recreate
779         itself.  Then, when child controls get their WM_DESTROY message we
780         check to see if they're in the parent's pending recreation list,
781         and if so, we recreate.  This removes all dependency on ordering
782         from the code and fixes the initial MonoCalendar upgrade dialog.
783         
784 2006-09-26  Jackson Harper  <jackson@ximian.com>
785
786         * TextControl.cs: Use the Line to get the length of the line,
787         since soft line breaks can change the end line.
788
789 2006-09-26  Chris Toshok  <toshok@ximian.com>
790
791         * Control.cs (ControlCollection.AddImplicit): don't add the
792         control again if it's already in one of our lists.  This keeps us
793         from adding controls over and over again for comboboxes when their
794         handle gets recreated (as the combobox adds implicit controls in
795         OnHandleCreated).  Fixes the X11 errors in bug #79480.
796
797 2006-09-26  Jackson Harper  <jackson@ximian.com>
798
799         * TextControl.cs: When deleting characters make sure that any
800         orphaned zero lengthed tags get deleted.
801         - Fix ToString for zero lengthed tags.
802
803 2006-09-25  Jackson Harper  <jackson@ximian.com>
804
805         * TextControl.cs: When getting a tag at the location there can be
806         multiple tags at the same spot, these are 0-lengthed tags that
807         appear when extra formatting has been stuck in a location.  We
808         need to pull out the last of these 0 lengthed tags.
809
810 2006-09-25  Jackson Harper  <jackson@ximian.com>
811
812         * TextControl.cs: Fix print out in debug method.
813         * TextBoxBase.cs: When text is set bail if we are setting to the
814         previous value.
815         
816 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
817
818         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
819           It is now possible to change the selected index in a FontXXXListBox
820           with the up and down arrow keys from the FontXXXTextBoxes.
821           Also, send the FontXXXTextBox mouse wheel event to the corresponding
822           FontXXXListBoxes to match ms.
823
824 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
825
826         * SystemInformation.cs: Return a clone of the theme's MenuFont because
827         anyone can dispose it, anytime. All other properties returns enums, 
828         structs or basic types so they don't need such tricks.
829
830 2006-09-22  Jackson Harper  <jackson@ximian.com>
831
832         * XplatUI.cs:
833         * XplatUIWin32.cs:
834         * Clipboard.cs:
835         * DataFormats.cs:
836         * XplatUIOSX.cs:
837         * XplatUIDriver.cs: Update interface to add a primary selection
838         flag, so the driver can use the primary selection buffer if
839         needed.
840         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
841
842         * RichTextBox.cs: We need to supply the data object to paste now
843         (so we can choose to supply CLIPBOARD or PRIMARY).
844         * TextBoxBase.cs: Supply data object to paste (see above).
845         - Middle click uses the primary selection data object.
846         
847 2006-09-21  Chris Toshok  <toshok@ximian.com>
848
849         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
850         of SetWMStyles.  It's still a rat's nest and is largely
851         order-dependent which I dislike immensely.  This also fixes the X
852         button disappearing from toplevel forms.
853
854 2006-09-21  Mike Kestner <mkestner@novell.com>
855
856         * ListBox.cs: move Jordi's click/dblclick raising code to the
857         mouse up handler.
858
859 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
860
861         * ListBox.cs: Fixes 79450
862
863 2006-09-21  Mike Kestner <mkestner@novell.com>
864
865         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
866         to deal with people updating the TreeNodeCollection after the tree
867         is disposed.  "Fixes" 79330.
868
869 2006-09-20  Jackson Harper <jackson@ximian.com>
870
871         * TextControl.cs: Push the cursor record onto the undo stack
872         before the delete action. This fixes 78651.
873
874 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
875
876         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
877         CreateParams. Fixes 79329.
878
879 2006-09-19  Chris Toshok  <toshok@ximian.com>
880
881         * XplatUIX11.cs: a couple of blanket code massage passes to clean
882         things up a bit.  First, get rid of the NetAtoms array (and the NA
883         enum), and just embed the atoms as static fields.  Also, add a
884         couple of functions (StyleSet and ExStyleSet) to clean up all the
885         bitmask testing of styles.
886
887         * X11Structs.cs: remove the NA enum, not needed anymore.
888         
889 2006-09-19  Chris Toshok  <toshok@ximian.com>
890
891         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
892         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
893         added cleanup to get MessageBox titles appearing again, which were
894         broken by my earlier fix for caption-less/ControlBox-less windows.
895
896 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
897
898         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
899           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
900           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
901           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
902           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
903           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
904           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
905           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
906           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
907           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
908           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
909             Inital import.
910         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
911           ToolStripButton.cs: Stubs needed for above.
912         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
913
914 2006-09-15  Chris Toshok  <toshok@ximian.com>
915
916         * XplatUIX11.cs:
917         - make the MessageQueues hashtable Synchronized.
918         
919         - SendMessage: if the Hwnd is owned by a different thread, use the
920         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
921         thread.  Fixes bug #79201.
922
923 2006-09-15  Chris Toshok  <toshok@ximian.com>
924
925         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
926         ControlBox == false, we disallow maximize/minimize/close.  If the
927         form Caption is "" we also disallow move (and get rid of the Title
928         decoration).  Unfortunately, regardless of how things are set,
929         we're stuck with the Title and WM menu.
930
931 2006-09-15  Chris Toshok  <toshok@ximian.com>
932
933         * Application.cs: add locking around the static message_filters
934         ArrayList, part of #79196.
935
936 2006-09-15  Chris Toshok  <toshok@ximian.com>
937
938         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
939         Form.ControlBox == false, the window has no titlebar nor resize
940         handles.  fixes bug #79368.
941
942 2006-09-15  Chris Toshok  <toshok@ximian.com>
943
944         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
945         >= 0.  Fixes bug #79370.
946
947 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
948         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
949         * Control.cs:
950             Add properties: LayoutEngine, Margin, DefaultMargin.
951             Add method: GetPreferredSize.
952             Move layout logic from PerformLayout to layout engines. 
953
954 2006-09-13  Chris Toshok  <toshok@ximian.com>
955
956         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
957         fix for #79326 broke #78718, so this change addresses that.
958
959         - in SendWMDestroyMessages remove the call to
960         CleanupCachedWindows, since we might be recreating the control and
961         need to maintain the references to right Hwnd handles.  Also, set
962         the zombie flag to true for each of the children in the hierarchy
963         instead of calling hwnd.Dispose.  This will cause GetMessage to
964         ignore all events for the window except for DestroyNotify.
965
966         - In GetMessage, ignore messages except for DestroyNotify for
967         zombie hwnds.
968         
969         * Control.cs: revert the is_recreating fix from the last
970         ChangeLog.  It's definitely "right", but it breaks switching from
971         an MDI form to a non-MDI form.  Will need to revisit that.
972
973         * Hwnd.cs: add a zombie flag, which means "the
974         client_window/whole_window handles are invalid, but we're waiting
975         for the DestroyNotify event to come in for them".  Set the flag to
976         false explicitly if setting WholeWindow/ClientWindow, and also
977         when Disposing.
978         
979 2006-09-13  Chris Toshok  <toshok@ximian.com>
980
981         * XplatUIX11.cs: rework window destruction slightly.
982
983         - when destroying the windows associated with a control, we don't
984         need 2 separate XDestroyWindow calls.  Just the one for the
985         whole_window (or for client_window if whole_window is somehow
986         IntPtr.Zero -- can this happen?) is enough.
987
988         - reworked SendWMDestroyMessages slightly, so we always dispose
989         the child control hwnd's after sending the messages.
990         
991         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
992         the two places it was used (one was even using hwnd.Handle and the
993         other hwnd.client_window.  ugh), adding another call in
994         SendWMDestroyMessages.  We need this new call because now the
995         DestroyNotify events in the queue will be ignored for the child
996         controls (as their hwnd's were disposed, and the window id's
997         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
998
999         - this fixes bug #79326.
1000
1001 2006-09-13  Chris Toshok  <toshok@ximian.com>
1002
1003         * Control.cs: don't always set is_recreating to false at the end
1004         of RecreateHandle, since sometimes we're not done (and won't be
1005         until WndProc handles the WM_DESTROY message).  Also, set
1006         is_recreating to false in the WM_DESTROY handling code.  Part of
1007         the fix for bug #79326.
1008
1009 2006-09-13  Miguel de Icaza  <miguel@novell.com>
1010
1011         * X11DesktopColors.cs: Start the droppage of debugging messages.
1012
1013         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
1014
1015 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
1016
1017         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
1018
1019 2006-09-12  Chris Toshok  <toshok@ximian.com>
1020
1021         * DataGrid.cs (get_ListManager): if the list_manager is null, try
1022         to create it using SetDataSource.  Fixes bug #79151.
1023
1024 2006-09-11  Chris Toshok  <toshok@ximian.com>
1025
1026         * XEventQueue.cs: add a DispatchIdle property.
1027
1028         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
1029         either the queue is null, or the queue has DispatchIdle set to
1030         true.
1031         (DoEvents): set queue.DispatchIdle to false around the
1032         peek/translate/dispatch message loop in this method.  This keeps
1033         Application.Doevents from emitting idle events.  Part of the fix
1034         for #78823.
1035
1036 2006-09-11  Chris Toshok  <toshok@ximian.com>
1037
1038         * DataGrid.cs (set_DataSource): make this work for both the
1039         winforms/datagrid test and ReportBuilder.  It seems as though when
1040         we've created a ListManager (or maybe it's if we have a
1041         BindingContext?), when we set the DataSource it clears the
1042         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
1043         #79333.
1044
1045 2006-09-11  Chris Toshok  <toshok@ximian.com>
1046
1047         * XplatUIX11.cs: deal with queue being null, which happens in all
1048         the Clipboard functions.  Fixes one of the two problems mentioned
1049         in #78612.
1050
1051 2006-09-11  Chris Toshok  <toshok@ximian.com>
1052
1053         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
1054         button on various spots (including outside the menu) works closer
1055         to MS, and doesn't crash.  Fixes #79343.
1056
1057 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
1058
1059         * ListView.cs: Do not initialize item_sorter in init. To match MS,
1060         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
1061         and the internal comparer is set. When a new ListViewItemSorter is set,
1062         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
1063         was specified. No further processing is necessary if SortOrder is set
1064         to it's current value. If Sorting is modified to None, and View is
1065         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
1066         (either custom or our internal ItemComparer) to null, on 1.0 profile
1067         only set item_sorter to null if its our internal IComparer. If Sorting
1068         is modified to Ascending or Descending, then use our internal IComparer
1069         if none is set, and if the current IComparer is our internal one then:
1070         on 2.0 profile always replace it with one for new Sorting, and on 1.0
1071         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
1072         Enum.IsDefined to verify whether a valid View value is specified in
1073         its setter. Automatically sort listview items when listview is
1074         created. In Sort, do nothing if ListView is not yet created, or if
1075         no item_sorter is set (no Sorting was set, Sorting was explicitly set
1076         to None or ListViewItemSorter was set to null). Added Sort overload
1077         taking a bool to indicate whether the ListView should be redrawn when
1078         items are sorted (we use this in ListViewItemCollection to avoid double
1079         redraws). Modified our internal IComparer to take the sort order into
1080         account. In Add and AddRange methods of ListViewItemCollection, also
1081         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
1082         view), but use overload with noredraw option to avoid double redraw.
1083         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
1084         true when View is Tile, and do the same when attempting to set View to
1085         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
1086         for selected/checked indices, as it involves overhead when sorting is
1087         done while these collections are not used all that often. Instead
1088         we'll build the indices on demand. Modified IList implementation of
1089         CheckedIndexCollection to use public methods if object is int.
1090         Modified CheckedListViewItemCollection to hide checked items if
1091         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
1092         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
1093         IList implementation in SelectedIndexCollection to use public methods
1094         if object is int. Modified SelectedListViewItemCollection to hide
1095         selected items if listview is not yet created.
1096         * ListViewItem.cs: CheckedIndices list no longer needs to be
1097         maintained separately (see ListView changes). Also clone font, fixes
1098         test failure.
1099
1100 2006-09-11  Mike Kestner  <mkestner@novell.com>
1101
1102         * ComboBox.cs: if we are updating the contents of the currently
1103         selected index, refresh the control or the textbox selection.
1104         [Fixes #79066]
1105
1106 2006-09-11  Mike Kestner  <mkestner@novell.com>
1107
1108         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
1109         the 'specified' logic has been moved there.  This seems like a bug 
1110         in Control.cs, since our current SetBoundsCore completely ignores 
1111         the specified parameter.  Peter's commit seems to indicate that is 
1112         the way the MS control implementation works.  [Fixes #79325]
1113
1114 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
1115
1116         * XplatUI.cs: Set default_class_name to be composed
1117         of current domain id. This allows MWF to be loaded in multiple
1118         domains on Win32.
1119
1120 2006-09-09  Miguel de Icaza  <miguel@novell.com>
1121
1122         * X11Keyboard.cs: If we are unable to obtain the input method, do
1123         not call CreateXic to create the input context.   Should fix
1124         #78944/79276.
1125
1126 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
1127
1128         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
1129           Simplified gnome support by adding more pinvokes to get the
1130           icon for a file or mime type.
1131
1132 2006-09-08  Jackson Harper  <jackson@ximian.com>
1133
1134         * MenuAPI.cs: Deslect popup context menu items before closing the
1135         window, so that you don't see the previously selected item
1136         selected when you reopen the menu.
1137         * TextControl.cs: Update the cursor position even if we don't have
1138         focus.  This fixes typing in things like the ComboBox.  I'm not
1139         totally sure we should always set the visibility if we don't have
1140         focus, but couldn't find any corner cases where the cursor showed
1141         up when it shouldn't.
1142
1143 2006-09-08  Chris Toshok  <toshok@ximian.com>
1144
1145         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
1146         our arrays are length 256.  & 0xff before indexing.  Fixes the
1147         crash in bug #78077.
1148         
1149 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1150
1151         * ThemeWin32Classic.cs: 
1152         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
1153         is true. Handle that check box too.
1154
1155 2006-09-07  Chris Toshok  <toshok@ximian.com>
1156
1157         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
1158         79244.
1159
1160 2006-09-07  Chris Toshok  <toshok@ximian.com>
1161
1162         * Control.cs: in set_BackColor only do the work if
1163         background_color != value.
1164
1165         * XplatUIX11.cs: move the clearing of invalid areas (both client
1166         and nc) to the same block of code where we set (nc_)expose_pending
1167         to false.  That is, move it from PaintEventEnd to PaintEventStart,
1168         so things that cause invalidates from within OnPaint will trigger
1169         another call to OnPaint.  Fixes bug #79262.
1170
1171 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
1172
1173         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
1174         * FileDialog.cs: Fix typo
1175
1176 2006-09-07  Jackson Harper  <jackson@ximian.com>
1177
1178         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
1179         for tab pages if they have any.
1180
1181 2006-09-06  Mike Kestner  <mkestner@novell.com>
1182
1183         * Splitter.cs: use the "current" rect when finishing drag handle
1184         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
1185
1186 2006-09-06  Mike Kestner  <mkestner@novell.com>
1187
1188         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
1189         support offset splitters. [Fixes #79298]
1190
1191 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
1192
1193         * Mime.cs: Fixed a bug that could override the global mime type
1194           result.
1195
1196 2006-09-05  Jackson Harper  <jackson@ximian.com>
1197
1198         * TabControl.cs: Better calculation method for setting the slider
1199         pos. Prevents crashes on really wide tabs.
1200         - Draw Image on tab pages if an image list is used.
1201
1202 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1203
1204         * MonthCalendar.cs: When Font changes, the Size should be
1205         updated to fit the new font's space requirements.
1206
1207 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
1208
1209         * ListBox.cs: If the items are cleared with Items.Clear set
1210           top_index to 0.
1211
1212 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1213
1214         * MonthCalendar.cs: Handle arrow keys as input keys. Also
1215         fire DateChanged event instead of DateSelected event when
1216         the date was changed by keyboard interaction.
1217
1218 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1219
1220         * DateTimePicker.cs: Handle DateChanged for the associated
1221         month_calendar control, and set month_calendar.Font from 
1222         OnFontChanged method, as well as resize the height of the
1223         control when needed. Make PreferredHeight proportional.
1224
1225 2006-09-01  Chris Toshok  <toshok@ximian.com>
1226
1227         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
1228         properties.
1229
1230         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
1231
1232 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
1233
1234         * FileDialog.cs: Set ClientSize instead of window size, to allow space
1235           for decorations (Fixes #79219)
1236
1237 2006-09-01  Mike Kestner  <mkestner@novell.com>
1238
1239         * ComboBox.cs: first stab at sorting plus some selection handling
1240         fixes to bring us more in line with MS behavior.  Also switches back
1241         to index based selection.  Alternative patches for index-based 
1242         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
1243         and latency@gmx.de on bug 78848.  I assume they were similar to this
1244         code I've had simmering in my tree forever.
1245         [Fixes #78848]
1246
1247 2006-09-01  Chris Toshok  <toshok@ximian.com>
1248
1249         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
1250         when setting list position guard against ending up with a -1 index
1251         (the other part of the fix for #78812).  Should probably make sure
1252         we don't need the analogous fix in the ItemDeleted case.
1253
1254         * DataGrid.cs:
1255         - in SetDataSource, work around the fact that the way
1256         OnBindingContextChanged is invoked will cause us to re-enter this
1257         method.  I'll remove the hack once I investigate
1258         OnBindingContextChanged.
1259
1260         - fix the logic in set_DataSource and set_DataMember (basically
1261         what to do if the other of the two is null.)
1262         
1263         - in OnListManagerItemChanged, we need to take into account the
1264         edit row when deciding whether or not to call RecreateDataGridRows
1265         (part of the fix for #78812).
1266
1267 2006-09-01  Jackson Harper  <jackson@ximian.com>
1268
1269         * Splitter.cs: Don't do anything if there is no control to affect
1270         (prevents us from crashing in weird tet cases).
1271         * TreeView.cs: Bounding box for the mouse movement reverting
1272         focus/selection back to previously selected node.  This matches
1273         MS, and makes the tree a lot more useable.
1274         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
1275         use clipping so they are not drawn.  This fixes when the control
1276         is set to have a transparent background, or if it was over an
1277         image.
1278
1279 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
1280
1281         * MimeIcon.cs: Improved handling for reading default icons when
1282           using gnome (2.16 made it necessary). Check and read svg icons
1283           first, then 48x48 and then 32x32 icons.
1284
1285 2006-08-31  Chris Toshok  <toshok@ximian.com>
1286
1287         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
1288         visible.
1289
1290         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
1291         ProcessKeyPreview.  Fixes part of #77806.
1292
1293         * DataGrid.cs: big patch.
1294
1295         - revert the queueing up of DataSource/DataMember if inside
1296         BeginInit/EndInit calls.  That's not the way the datagrid achieves
1297         its delayed databinding.  Instead, call SetDataSource in
1298         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
1299         #78811.
1300
1301         - Also, it wasn't mentioned in #78811, but the test case exhibits
1302         behavior that was lacking in our datagrid implementation - Columns
1303         that have mapping names that don't exist in the datasource's
1304         properties aren't shown.  Yuck.  To fix this I added the bound
1305         field to the column style, and basically any calculation to figure
1306         out anything about columns uses a loop to find the bound columns.
1307         still need to investigate if I can cache an array of the bound
1308         columns or if the indices must be the same.
1309
1310         - When setting CurrentCell, we no longer abort if the cell being
1311         edited was in the add row.  This fixes the other part of #77806.
1312
1313         - The new code also fixes #78807.
1314         
1315         * ThemeWin32Classic.cs: perpetrate the same disgusting
1316         column.bound field hack, and only render bound fields.
1317
1318 2006-08-31  Chris Toshok  <toshok@ximian.com>
1319
1320         * DataGridColumnStyle.cs: add bound field.  this field is true if
1321         the datasource has a property corresponding to the mapping name.
1322
1323         * DataGridTableStyle.cs: set the bound field on the column styles
1324         depending on whether or not we have a column for that property.
1325
1326 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
1327
1328         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
1329           splitter control (fixes #79228)
1330
1331 2006-08-31  Chris Toshok  <toshok@ximian.com>
1332
1333         * DataGridColumnStyle.cs: we need to delay the assignment of
1334         property descriptor until the last possible moment due to the lazy
1335         databinding stuff in the datagrid.  Also, fix the exceptions
1336         thrown by CheckValidDataSource to match MS.
1337
1338 2006-08-31  Jackson Harper  <jackson@ximian.com>
1339
1340         * Form.cs: When activated select the active control, if there is
1341         no active control, we select the first control.
1342         * XplatUIX11.cs: If there is no focus control when we get a
1343         FocusIn event, find the toplevel form and activate it.  This
1344         occurs when you popup a window, it becomes the focus window, then
1345         you close that window, giving focus back to the main window.
1346
1347 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1348
1349         * MonthCalendar.cs: 
1350         * ThemeWin32Classic.cs: Cache Font in bold style, as well
1351         as StringFormat with Center alignments in MonthCalendar,
1352         instead of creating new ones when drawing the control. 
1353         Also, draw the month name in bold style.
1354
1355 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
1356
1357         * Control.cs:
1358           - PerformLayout(): It would seem MS performs the fill even if the 
1359             control is not visible (part of #79218 fix)
1360           - ResetBackColor(): Use the setter to reset the color, to allow
1361             overriders to catch the change.
1362         * Form.cs:
1363           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
1364           - CreateHandle(): dito (part of $79218 fix)
1365           - Don't set an icon if we have a dialog
1366         * ScrollableControl.cs:
1367           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
1368           - ScrollIntoView(): No need to scroll if control is already visible
1369             (resolves fixme and fixes #79218)
1370
1371 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1372
1373         * MonthCalendar.cs: Change proportions in SingleMonthSize
1374         to match the aspect of the original control.
1375
1376 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
1377
1378         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
1379           get updated when they get maximized.
1380
1381 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
1382
1383         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
1384
1385 2006-08-29  Chris Toshok  <toshok@ximian.com>
1386
1387         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
1388
1389 2006-08-29  Jackson Harper  <jackson@ximian.com>
1390
1391         * TreeView.cs: Need to track selected node and highlighted node,
1392         they aren't always the same thing, when the mouse is down on a
1393         node it is hilighted, but not selected yet.
1394         - Do the HideSelection stuff right
1395         - Need to focus on rbutton mouse down. And redraw selection when
1396         right click is mouse upped.
1397
1398 2006-08-29  Mike Kestner  <mkestner@novell.com>
1399
1400         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
1401         when SubItems.Count < Columns.Count.  [Fixes #79167]
1402
1403 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
1404
1405         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
1406
1407 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
1408
1409         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
1410           from X. Only send based on ConfigureNotify if we don't have the
1411           correct location in hwnd (if the window manager moved us)
1412
1413 2006-08-28  Mike Kestner  <mkestner@novell.com>
1414
1415         * ListView.cs: remove a TODO. 
1416         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
1417         [Fixes ListView part of #79166]
1418
1419 2006-08-28  Mike Kestner  <mkestner@novell.com>
1420
1421         * ListView.cs: move wheel handler to parent since it is focused
1422         instead of the item_control now.  [Fixes #79177]
1423
1424 2006-08-28  Mike Kestner  <mkestner@novell.com>
1425
1426         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
1427         when the control is focused. [Fixes #79171]
1428
1429 2006-08-28  Mike Kestner  <mkestner@novell.com>
1430
1431         * ListView.cs: size the item and header controls for empty and
1432         unscrollable views.
1433         * ThemeWin32Classic.cs: draw disabled backgrounds.
1434         [Fixes #79187]
1435
1436 2006-08-28  Chris Toshok  <toshok@ximian.com>
1437
1438         * Form.cs: remove unused "active_form" static field.
1439
1440         * Hwnd.cs: lock around accesses to static windows collection.
1441
1442         * Application.cs: lock threads in Exit ().
1443
1444 2006-08-28  Chris Toshok  <toshok@ximian.com>
1445
1446         * NativeWindow.cs: lock around accesses to window_collection.
1447         
1448 2006-08-28  Chris Toshok  <toshok@ximian.com>
1449
1450         * Control.cs: err, fix this the right way, by locking on controls
1451         when using it.  not by making it synchronized.
1452
1453 2006-08-28  Chris Toshok  <toshok@ximian.com>
1454
1455         * Control.cs: make the static "controls" field synchronized, as it
1456         gets updated from multiple threads.
1457
1458 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1459
1460         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
1461           Prevent other threads from exiting when calling thread sets quit state.
1462         * XEventQueue.cs: Added PostQuitState property
1463
1464 2006-08-27  Chris Toshok  <toshok@ximian.com>
1465
1466         * AsyncMethodData.cs: add a slot for the window handle.
1467
1468         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
1469         window (the destination control's window, not the foster window).
1470
1471         * Control.cs (BeginInvokeInternal): store the window's handle in
1472         the AsyncMethodData.
1473         
1474
1475 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1476
1477         * XplatUIX11.cs:
1478           - PostQuitMessage: Removed resetting S.D display handle, we might have
1479             another loop started after calling PostQuitMessage (Fixes #79119)
1480           - Created destructor to reset S.D handle
1481
1482 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
1483
1484         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
1485
1486 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1487
1488         * TextControl.cs (Insert): Update the caret position even if we don't
1489           have a handle yet, just don't call the driver in that case.
1490         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
1491           to the end of the new selection text (Fixes #79184)
1492
1493 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1494
1495         * Form.cs (Activate): Only activate if the handle is created)
1496         * Control.c:
1497           - Mark window as invisible when it's disposed
1498           - Check if window handle is created when setting window visible, 
1499             instead of relying just on the is_created variable
1500           - Check if object is disposed when creating the control (Fixes #79155)
1501
1502 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1503
1504         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
1505           when allowing layout again. Otherwise we re-generate the anchoring 
1506           distance to the border again and actually alter what the user wanted
1507           This is ugly, it'd be better if we used DisplayRectangle instead of
1508           ClientRectangle for Control.UpdateDistances, but that causes us to
1509           have other problems (initial anchoring positons would be wrong)
1510           (Fixes #78835)
1511
1512 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1513
1514         * Control.cs:
1515           - The size and location setters shouldn't go directly to 
1516             SetBoundsCore, but to SetBounds, which triggers layout on the
1517             parent, then calls SetBoundsCore. (Related to fix for #78835)
1518           - SetBounds: Moved actual location update code into this function
1519             from SetBoundsCore, to match MS. Added call to PerformLayout if
1520             we have a parent (to trigger resizing of anchored parents if the 
1521             child size has changed (see testcase for #78835) 
1522         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
1523           new control code
1524         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
1525
1526 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1527
1528         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
1529           System.Drawing when a toplevel window gets closed; there might
1530           be other toplevel windows belonging to the same app (Fixes #78052)
1531
1532 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
1533
1534         * FileDialog.cs: After reading FileDialog settings from mwf_config
1535           use Desktop prefix only if a real folder doesn't exist anymore.
1536         * FontDialog.cs: Added char sets.
1537           It is now possible to select the font, size or style with the
1538           textboxes.
1539
1540 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
1541
1542         * PrintPreviewDialog.cs: Use assembly name constants.
1543
1544 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1545
1546         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
1547           scrollbar from whacking it's buttons)
1548
1549 2006-08-24  Chris Toshok  <toshok@ximian.com>
1550
1551         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
1552         in this patch (aggregating setting Left/Top/Width/Height to
1553         setting Bounds on the scrollbars), but the crux of the fix is in
1554         Recalculate, where we scroll by the remaining scroll_position if
1555         we're hiding a scrollbar.  The 2*$5 reward in the comment is
1556         serious.
1557
1558 2006-08-24  Jackson Harper  <jackson@ximian.com>
1559
1560         * MdiClient.cs:
1561         * MdiWindowManager.cs: If the form is made a non-mdi window we
1562         need to remove the form closed event so that closing forms works
1563         correctly.
1564
1565 2006-08-24  Jackson Harper  <jackson@ximian.com>
1566
1567         * Control.cs: Make IsRecreating internal so that the driver can
1568         check it
1569         - Temporarily remove the Hide when controls are removed, its
1570         making a whole bunch of things not work because visibility isn't
1571         getting reset elsewhere correctly
1572         * Form.cs: Need to do a full handle recreation when the mdi parent
1573         is set.
1574         * XplatUIX11.cs: If we are recreating handles don't dispose the
1575         HWNDs.  What was happening is the handles were being recreated in
1576         SendWMDestroyMessages, but then flow continued on in that method
1577         and destroyed the new handles.
1578
1579 2006-08-23  Jackson Harper  <jackson@ximian.com>
1580
1581         * Form.cs: MdiClient is always at the back of the bus
1582         * Control.cs: When the order of items in the collection is changed
1583         we need to reset the all_controls array
1584         - do the same sorta setup thats done when adding a control when a
1585         control is set on the collection.
1586
1587 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1588
1589         * TextBoxBase.cs (get_Text): Return an empty array if our document
1590           is empty (fixes #79052)
1591
1592 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1593
1594         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
1595           on WM_SYSCHAR messages (fixes #79053)
1596
1597 2006-08-23  Chris Toshok  <toshok@ximian.com>
1598
1599         * DataGrid.cs: fix flickering when scrolling vertically.
1600
1601 2006-08-23  Chris Toshok  <toshok@ximian.com>
1602
1603         * DataGrid.cs (EndEdit): only invalidate the row header when we
1604         need to.
1605
1606 2006-08-23  Chris Toshok  <toshok@ximian.com>
1607
1608         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
1609         methods.  fixes the flicker when scrolling around.
1610
1611 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1612
1613         * FileDialog.cs: Making sure the control is created before we get a 
1614           chance to use it with BeginInvoke (Fixes #79096)
1615
1616 2006-08-23  Chris Toshok  <toshok@ximian.com>
1617
1618         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
1619         width to use when painting the rows.
1620
1621 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1622
1623         * TextBoxBase.cs:
1624           - Throw ArgumentException if a negative value is passed to SelectionLength
1625           - Update the selection end if start is moved. end needs to be always
1626             after start. (Fixes #79095)
1627           - Track selection length; MS keeps the selection length even if start
1628             is changed; reset on all other operations affection selection
1629
1630 2006-08-22  Jackson Harper  <jackson@ximian.com>
1631
1632         * TreeView.cs: Make sure both scrollbars get displayed and sized
1633         correctly when the other bar is visible.
1634         - Use the original clip rectangle for checking if the area between
1635         the two scrollbars is visible, not the viewport adjusted clipping
1636         rectangle.
1637
1638 2006-08-22  Jackson Harper  <jackson@ximian.com>
1639
1640         * Binding.cs: We don't use IsBinding because it requires the
1641         control to be created, which really shouldn't be necessary just to
1642         set a property on the control.
1643
1644 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1645
1646         * ComboBox.cs: Some CB.ObjectCollection methods must throw
1647         ArgumentNullReferenceException when the argument is null.
1648
1649 2006-08-21  Jackson Harper  <jackson@ximian.com>
1650
1651         * Timer.cs: Track the thread that the timer is started in (NOT
1652         CREATED), this way messages for it will only be triggered on its
1653         queue.
1654         * XEventQueue.cs: Track the timers here, this makes timers per
1655         thread, like MS.
1656         * XplatUIX11.cs: The timers are moved to the XEventQueue.
1657
1658 2006-08-19  Chris Toshok  <toshok@ximian.com>
1659
1660         * XplatUIX11.cs: after further communication with pdb, we get the
1661         best of both worlds.  SetZOrder working for un-Mapped windows, and
1662         no X errors for un-mapped windows.
1663
1664 2006-08-19  Chris Toshok  <toshok@ximian.com>
1665
1666         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
1667         as it was causing pdn toolbars to not have the correct stacking.
1668
1669 2006-08-18  Mike Kestner  <mkestner@novell.com> 
1670
1671         * ListView.cs : guard against negative ClientArea.Width in scrollbar
1672         calculation.  Not sure why control should ever be setting a negative
1673         width though.  Fixes #78931.
1674
1675 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1676
1677         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
1678         null items in ObjectCollection class.
1679         * ListBox.cs.: Likewise.
1680
1681 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
1682
1683         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
1684           as the base method in ThemeWin32Classic should work fine.
1685           Fixed bug #78607.
1686
1687 2006-08-18  Jackson Harper  <jackson@ximian.com>
1688
1689         * Binding.cs: When validating if the value entered doesn't convert
1690         properly reset to the old value.
1691         * RadioButton.cs: Don't fire click when we get focus.
1692
1693 2006-08-18  Jackson Harper  <jackson@ximian.com>
1694
1695         * FileDialog.cs: Paint the selection on the directory combobox the
1696         same way as on MS. 
1697
1698 2006-08-17  Jackson Harper  <jackson@ximian.com>
1699
1700         * ErrorProvider.cs: Don't allow the error control to be selected.
1701         * Control.cs: Don't send the SetFocus messages, the control
1702         activation will do this, and if we do it blindly here validation
1703         does not work.
1704
1705 2006-08-17  Jackson Harper  <jackson@ximian.com>
1706
1707         * Control.cs:
1708         * ContainerControl.cs: Make validation events fire in the correct
1709         order.  TODO: For some reason the first validation event is not
1710         getting fired.
1711
1712 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1713
1714         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
1715
1716 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1717
1718         * ComboBox.cs : implement scroll wheel support for popped-down
1719         state. Fixes #78945. 
1720
1721 2006-08-17  Jackson Harper  <jackson@ximian.com>
1722
1723         * TreeView.cs: Specify treeview actions (old patch that didn't get
1724         committed for some reason).
1725         - Don't let the mouse wheel scroll us too far.  Just want to make
1726         the bottom node visible, not scroll it all the ways to the top.
1727
1728 2006-08-17  Jackson Harper  <jackson@ximian.com>
1729
1730         * XplatUIX11.cs: Mouse wheel events go to the focused window.
1731
1732 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1733
1734         * ComboBox.cs : don't do mouseover selection in simple mode.
1735
1736 2006-08-16  Jackson Harper  <jackson@ximian.com>
1737
1738         * Form.cs: Fire the closing events for all the mdi child windows
1739         when a window is closed.  If the cancel args are set to true, the
1740         main window still gets the event fired, but it doesn't not close.
1741         * MdiWindowManager.cs: Do this closing cleanup in a Closed
1742         handler, instead of when the button is clicked, so cancelling the
1743         close works correctly.
1744         * ComboBox.cs: Send the mouse down to the scrollbar.
1745
1746 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1747
1748         * ListBox.cs: When passing 'null' to SelectedItem,
1749         set SelectedIndex to -1, to unselect items. This is the
1750         observed behaviour in .Net.
1751
1752 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
1753
1754         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
1755           MS flags saying there won't be any. (fixes #78800)
1756         * Control.cs (HandleClick): Made virtual
1757
1758 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
1759
1760         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
1761           cultures. Fixed bug #78399.
1762
1763 2006-08-16  Jackson Harper  <jackson@ximian.com>
1764
1765         * Form.cs: Use the MdiClients MdiChildren property to access
1766         MdiChildren instead of creating the array from the child controls.
1767         * MdiClient.cs: Maintain a separate array of the mdi children, so
1768         that insertion order is maintained when the Z-order is changed.
1769
1770 2006-08-16  Mike Kestner  <mkestner@novell.com> 
1771
1772         * ListView.cs : add an ItemComparer and default to it for sorting.
1773         Fixes #79076, but sorting needs a complete overhaul to be compat with
1774         MS.
1775
1776 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
1777
1778         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
1779
1780 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1781
1782         * Hwnd.cs (Mapped): Properly traverse the tree
1783
1784 2006-08-15  Chris Toshok  <toshok@ximian.com>
1785
1786         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
1787         pass manager.Current.GetType() to ParseData.  It has to be the
1788         property type.  So, hold off doing the ParseData until we're in
1789         SetPropertyValue where we know the type.  This fixes the crash in
1790         #78821 but the textbox is still empty.
1791
1792 2006-08-15  Chris Toshok  <toshok@ximian.com>
1793
1794         * DataGrid.cs:
1795         - when we're scrolling, only call Edit() again if the
1796         current cell is still unobscured. Fixes bug #78927.
1797         - when handling mousedown on a cell, ensure the cell is visible
1798         before calling Edit.
1799         - remove the properties from DataGridRow, and remove the
1800         DataGridParentRow class altogether.
1801         
1802
1803 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1804
1805         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
1806           fire OnTextChanged by ourselves. There's no point calling base,
1807           we don't set the base value anywhere else. Fixes #78773.
1808
1809 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1810
1811         * ListBox.cs: Call CollectionChanged when modifying
1812         an item from Items indexer, to update the actual items
1813         in the list box.
1814
1815 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1816
1817         * PrintDialog.cs: Small fixes for focus and a pair of checks,
1818         to match .Net behaviour.
1819
1820 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1821
1822         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
1823
1824 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
1825
1826         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
1827
1828 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1829
1830         * MessageBox.cs: Prevent potential NRE exception.
1831         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
1832
1833 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
1834
1835         * MessageBox.cs: Calculate the owner of a messagebox, also make
1836           it topmost. Fixes #78753
1837
1838 2006-08-14  Chris Toshok  <toshok@ximian.com>
1839
1840         * XplatUIX11.cs: A couple of fixes so that metacity will let us
1841         programmatically move windows.  first, set the PPosition hint as
1842         well as the USPosition hint.  Second include some code from pdb
1843         that sets the window type to NORMAL when we set the transient for
1844         hint.  This is because, in the absence of a window type, metacity
1845         thinks any window with TransientFor set is a dialog, and refuses
1846         to let us move it programmatically.  fascists.
1847
1848 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
1849
1850         * XplatUIX11.cs: When setting normal hints, take into consideration
1851           an different hints previously set so we don't delete them (fixes #78866)
1852
1853 2006-08-12  Chris Toshok  <toshok@ximian.com>
1854
1855         * ToolBarButton.cs: make Layout return a boolean, if something to
1856         do with the button's layout changed.
1857
1858         * ToolBar.cs:
1859         - add another parameter to Redraw, @force, which all existing
1860           calls set to true.
1861         - make the Layout function return a boolean which is true if the
1862           layout has actually changed.  Redraw now uses this (and @force)
1863           to determine when to invalidate.  At present the only place
1864           where @force can be false is the call from OnResize, when
1865           background_image == null.  So, resizing a toolbar when the
1866           layout doesn't change results in no drawing.
1867
1868 2006-08-12  Chris Toshok  <toshok@ximian.com>
1869
1870         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
1871         the VScrollBar and HScrollbar reversed.  oops.
1872
1873         * DataGrid.cs: fix the logic that assigns sizes to the implicit
1874         scrollbars.  we were assigning them twice (once in
1875         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
1876         therefore causing two scrollbar resizes (and redraws?) to happen
1877         per grid resize.
1878
1879 2006-08-12  Chris Toshok  <toshok@ximian.com>
1880
1881         * ToolBarButton.cs: redraw the entire button if the theme tells us
1882         to.
1883
1884         * Theme.cs: add ToolBarInvalidateEntireButton.
1885
1886         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
1887         buttons, just the border.
1888
1889         * ThemeNice.cs: redraw the entire toolbar button since we need to
1890         draw the highlight image.
1891
1892         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
1893         we need to redraw the entire button (not just the border).
1894
1895 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
1896
1897         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
1898           for vertical bars. Fixes the mismatches shown by #78513
1899
1900 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
1901
1902         * FileDialog.cs: If a saved/remembered path doesn't exist
1903           anymore, fall back to "Desktop".
1904
1905 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
1906
1907         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
1908           parent. It's apparently legal to not have one
1909         * XplatUIX11.cs:
1910           - SetZOrder: Don't try to set Z-Order on an unmapped window
1911           - CreateWindow: 0,0 are legal coordinates for a window. don't move
1912             it unless the coordinates are negative
1913
1914 2006-08-10  Mike Kestner  <mkestner@novell.com>
1915
1916         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
1917         when setting to null per msdn docs.  Fixes #78854.
1918
1919 2006-08-10  Chris Toshok  <toshok@ximian.com>
1920
1921         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
1922         flickering by setting a clip rectangle on the Graphics when we
1923         need to redraw just a particular menuitem.  Also, rename "OnClick"
1924         to "OnMouseDown" to reflect what it actually is.
1925         
1926         * Form.cs: track the OnMouseDown change.
1927
1928 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
1929
1930         * CommonDialog.cs: Properly inherit the CreateParams from the form
1931           and only change what we need. Fixes #78865
1932
1933 2006-08-10  Chris Toshok  <toshok@ximian.com>
1934
1935         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
1936         flickering in flat mode (and most of the flickering in general) by
1937         only invalidating the button border (and not the entire rectangle)
1938         when the state changes.  A couple of cases still flicker:
1939         ToggleButtons, and the dropdown arrow case when the user mouse
1940         ups.
1941
1942 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
1943
1944         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
1945           for german keyboards. Numlock state shouldn't affect the behaviour
1946           of the Del key. Fixes bug #78291.
1947
1948 2006-08-10  Chris Toshok  <toshok@ximian.com>
1949
1950         * ListControl.cs: remove the items.Clear line from BindDataItems,
1951         as this is the first thing done by both subclasses in their
1952         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
1953         passed -1, refresh the list.  This gets databinding working when
1954         the datasource is set on the list before the datasource is
1955         populated (as in wf-apps/ReportBuilder.)
1956
1957         * ComboBox.cs: remove the argument to BindDataItems.  This call
1958         should really go away, and be initiated by the ListControl code.
1959
1960         * ListBox.cs: same.
1961
1962 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
1963
1964         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
1965           if no data is in the document when the control is displayed
1966
1967 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
1968
1969         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
1970           yes (fixes #78806)
1971         * TextControl.cs: 
1972           - PositionCaret: Allow positioning of caret but don't call methods 
1973             requiring a handle if the window isn't created yet
1974           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
1975           - owner_HandleCreated: Don't position the caret, just update it's 
1976             location. User might have already set a different position
1977
1978 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
1979
1980         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
1981           windows. Screws up the returned coordinates for child windows. 
1982           Fixes #78825. I'm hoping this doesn't break something, since the
1983           code was explicitly put in 8 months ago, but no bug was attached.
1984           Menus still seem to work properly.
1985
1986 2006-08-08  Chris Toshok  <toshok@ximian.com>
1987
1988         * DataGrid.cs: make BeginInit/EndInit actually do what they're
1989         supposed to do - delay data binding until the EndInit call.  Also,
1990         make the table style collection's CollectionChangeAction.Refresh
1991         work properly.
1992
1993         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
1994         (with action = Refresh) when a consituent table's MappingName is
1995         changed.
1996
1997 2006-08-08  Chris Toshok  <toshok@ximian.com>
1998
1999         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
2000         Invalidate, since changing the text can change the size of the all
2001         toolbar buttons.
2002
2003 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2004
2005         * Form.cs (AddOwnedForm): Still need to add the form to our listif
2006           we don't have it yet
2007
2008 2006-08-08  Chris Toshok  <toshok@ximian.com>
2009
2010         * PrintControllerWithStatusDialog.cs: don't .Close() the status
2011         dialog, as this causes X errors later on, since we actually
2012         destroy the window.  Instead, .Hide() it.
2013
2014 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2015
2016         * ComboBox.cs: Added focus reflection for popup window
2017         * XplatUIX11.cs: 
2018           - Removed transient setting for non-app windows for now, not sure it
2019             was needed
2020           - Fixed logic checking if we have captions when deciding 
2021             override_redirect, WS_CAPTION is two bits and a 0 check was not
2022             sufficient
2023           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
2024             complicated
2025         * Form.cs: 
2026           - AddOwnedForm: Don't just add the form to the list, call the property
2027             to ensure the driver is informed about the ownership as well
2028           - CreateHandle: Set the TopMost status in the driver if we have an owner
2029         * XplatUI.cs: Fixed debug statement
2030
2031 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
2032         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2033           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
2034           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
2035           TrackBarRenderer.cs: Make constructor private.
2036         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
2037         * ProfessionalColorTable.cs: Make properties virtual.
2038
2039 2006-08-06  Duncan Mak  <duncan@novell.com>
2040
2041         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
2042         is not changing.
2043
2044 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2045         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2046           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
2047           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
2048           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
2049           Initial import of new 2.0 classes.
2050
2051 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2052         * Application.cs: Add 2.0 VisualStyles properties.
2053
2054 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2055         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
2056           XplatUIX11.cs: Create property to allow access to existing private
2057           variable "themes_enabled"
2058
2059 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2060
2061         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
2062         file size, as otherwise our class libraries fail using windows. Fixes
2063         bug #78759.
2064
2065 2006-08-04  Jackson Harper  <jackson@ximian.com>
2066
2067         * Form.cs:
2068         * XplatUIX11.cs: Move the toolwindow window manager creation into
2069         the X11 driver, this way on win32 we can let windows create/handle
2070         the toolwindows.
2071
2072 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2073
2074         * PrintDialog.cs: Remove some redundant checks, add some others,
2075         clean some code, and move the focus to the text boxes when the
2076         values are incorrect.
2077
2078 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
2079
2080         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
2081
2082 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2083
2084         * NumericUpDown.cs: Setting the Minimum and Maximum is now
2085           handled correctly. Fixes bug #79001.
2086
2087 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2088
2089         * PrintDialog.cs: The "Copies" numeric up down must have
2090         set the Minimum property to 1; only if the value is bigger
2091         than 1, activate "Collate" check box. This is the behaviour of .Net.
2092         Also modify the Document elements only if it is not null.
2093
2094 2006-08-03  Jackson Harper  <jackson@ximian.com>
2095
2096         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
2097         length. (We have a larger array then actual node count).
2098                 
2099 2006-08-03  Jackson Harper  <jackson@ximian.com>
2100
2101         * ComboBox.cs: Don't show selection by default.
2102         - The SelectAll isn't needed here, since the focus code should do
2103         that
2104         - DDL style lists to manual selection drawing, so when they
2105         get/lose focus they have to invalidate.
2106
2107 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
2108
2109         * TextBoxBase.cs: Don't always show all selections by default.
2110
2111 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
2112         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
2113           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
2114           Fixed various typos.
2115
2116 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2117
2118         * Control.cs: Removing the controls in a ControlCollection with
2119           Clear now hides the controls as expected. Fixes bug #78804. 
2120
2121 2006-08-03  Jackson Harper  <jackson@ximian.com>
2122
2123         * Control.cs: Revert previous focus patch, it breaks reflector.
2124
2125 2006-08-03  Jackson Harper  <jackson@ximian.com>
2126
2127         * ComboBox.cs: Cleanup selection and focus with the combobox.
2128         This also eliminates some duplicated keyboard code, since now
2129         everything is handled by the main class.
2130         - Make list selection work on mouse up instead of down, to match
2131         MS.
2132
2133 2006-08-02  Jackson Harper  <jackson@ximian.com>
2134
2135         * Control.cs: Setting focus needs to go through the whole
2136         selection mechanism.
2137
2138 2006-08-02  Chris Toshok  <toshok@ximian.com>
2139
2140         * PrintPreviewDialog.cs: change MinimumSize to use
2141         base.MinimumSize so it works.
2142
2143 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
2144
2145         * TextControl.cs:
2146           - UpdateCaret: Added sanity check in case caret isn't defined yet
2147           - Line.Delete: Now updating selection and caret markers if we're
2148             transfering a node (Properly fixes #78323)
2149           - SetSelectionEnd: Added sanity check
2150         * TextBoxBase.cs: Removed broken attempt to fix #78323
2151
2152 2006-08-01  Chris Toshok  <toshok@ximian.com>
2153
2154         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
2155         Close() call is handled in Form, not here.
2156
2157 2006-08-01  Chris Toshok  <toshok@ximian.com>
2158
2159         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
2160         layout/rendering.
2161
2162         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
2163         for sizes < 100% zoom.  The code now aggressively attempts to keep
2164         from calling document.Print (), and tries not to use the scaling
2165         g.DrawImage whenever possible (it still does if you scale to >
2166         100%, since usually that involves huge images).
2167
2168         * PrintPreviewControl.cs: hook up the close button.
2169
2170 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
2171         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
2172           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
2173           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
2174           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
2175           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
2176           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
2177           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
2178           Removed [Serializable] for 2.0 Event Handlers.
2179
2180 2006-07-31  Jackson Harper  <jackson@ximian.com>
2181
2182         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
2183         * TextControl.cs: Uncomment out the body of this method.
2184
2185 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
2186
2187         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
2188           standard cursors.
2189
2190 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2191
2192         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
2193           that embed TextBox and need selections visible even if textbox is not
2194           focused to enforce that behaviour.
2195         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
2196           selection drawing
2197
2198 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2199
2200         * TextControl.cs:
2201           - Added new SetSelectionStart/SetSelectionEnd overloads
2202           - Fixed viewport width assignment to be accurate
2203           - Adjusted alignment line shift calculations to allow cursor on right
2204             aligned lines to be always visible at the right border (like MS)
2205         * TextBoxBase.cs:
2206           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
2207           - TextBoxBase_SizeChanged: recalculating canvas on size changes
2208           - CalculateScrollBars: Use ViewPort size instead of window size, to
2209             properly consider space occupied by the border and scrollbars 
2210             (Fixes #78661)
2211           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
2212             calculations; no longer leaves artifacts
2213           - CaretMoved: Adjusted window scrolling to match MS and fixed several
2214             calculation bugs (Still missing right/center align calculations)
2215
2216 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
2217
2218         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
2219           use of both scroll rect and clip rect, as they do the same.
2220
2221 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2222
2223         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
2224           in the event handler (fixes #78912)
2225
2226 2006-07-31  Chris Toshok  <toshok@ximian.com>
2227
2228         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
2229         grid.ListManager.Count, since grid.ListManager might be null.
2230         This of course begs the question "why are we drawing rows for a
2231         grid with no list manager (and therefor no rows)?"  Fixes the
2232         crash in bug #78929.
2233
2234 2006-07-31  Chris Toshok  <toshok@ximian.com>
2235
2236         * RelatedPropertyManager.cs: Don't always chain up to the parent
2237         ctor.  instead, call SetDataSource if the parent's position is !=
2238         -1.  Fixes the crash in #78822.
2239
2240 2006-07-31  Chris Toshok  <toshok@ximian.com>
2241
2242         * DataGrid.cs (get_ListManager): use field instead of property
2243         accessors for datasource and datamember.
2244         (RowsCount): make internal again.
2245         (OnMouseDown): end edits before resizing columns/rows.
2246         (OnMouseUp): restart edits after resizing columns/rows.
2247
2248 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
2249
2250         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
2251           This fixes the situation where the last set cursor is displayed
2252           whenever the mouse is over scrollbars.
2253
2254 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2255
2256         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
2257         Document properties, as well as initial values.
2258
2259 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
2260
2261         * XplatUIWin32.cs (SetBorderStyle): Setting both border
2262           and ClientEdge results in a 3-pixel border, which is
2263           wrong.
2264
2265 2006-07-28  Jackson Harper  <jackson@ximian.com>
2266
2267         * TreeNodeCollection.cs: Fix the clear method.
2268         - Fix the Shrink also
2269
2270 2006-07-27  Jackson Harper  <jackson@ximian.com>
2271
2272         * TreeView.cs: Make sure the visible order is computed when we
2273         attempt to size the scrollbars (for trees that mess with the
2274         scrolling when they shouldn't.
2275         - Make sure to give the scrollbars valid values.
2276
2277 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2278
2279         * XplatUIX11.cs: Move motion compression code to where it
2280           has less performance impact
2281
2282 2006-07-26  Jackson Harper  <jackson@ximian.com>
2283
2284         * UpDownBase.cs: When the control is selected make the child
2285         controls non selectable, so that a click on them won't do a
2286         focus/unfocus cycle.
2287         - Don't give focus to the text box when the spinner is selected.
2288         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
2289
2290 2006-07-26  Chris Toshok  <toshok@ximian.com>
2291
2292         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
2293         satisfied with this solution.  If the bitmaps are small, we should
2294         just cache them in the PrintPreviewDialog and draw them here.
2295         Also, the layout is broken for the 2-up and 3-up cases.
2296
2297         * Theme.cs: add PrintPReviewControlPaint.
2298
2299         * PrintPreviewDialog.cs: first pass implementation.
2300
2301         * PrintPreviewControl.cs: first pass implementation.  No
2302         scrollbars yet.
2303
2304         * PrintDialog.cs: only validate fields if that particular portion
2305         of the UI is enabled.  Also, set the document's controller to a
2306         PrintControllerWithStatusDialog wrapping the document's print
2307         controller.
2308
2309         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
2310         bring up a SaveFileDialog (i hope we don't want to match the
2311         behavior of the crappy windows file entry) and set the
2312         PrinterSettings.PrintFileName accordingly.
2313
2314 2006-07-26  Jackson Harper  <jackson@ximian.com>
2315
2316         * ContainerControl.cs: Add a field that disables auto selecting
2317         the next control in a container when the container is activated.
2318         * UpDownBase.cs: Don't select the text box when the up down is
2319         selected.
2320
2321 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2322
2323         * XEventQueue.cs: Added methods for peeking (used for compression
2324           of successive events)
2325         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
2326           mouse move events (fixes #78732)
2327
2328 2006-07-25  Jackson Harper  <jackson@ximian.com>
2329
2330         * UpDownBase.cs: Use an internal class for the textbox so that we
2331         can control focus.  the updown control should always have focus,
2332         if either the text area or the buttons are clicked.
2333         - Send the key messages to the textbox, since it never actually
2334         has focus
2335         - Activate and decativate the textbox caret.
2336
2337 2006-07-24  Jackson Harper  <jackson@ximian.com>
2338
2339         * Control.cs: Use the directed select when selecting a control,
2340         this way the container controls override will get called and the
2341         whole ActiveControl chain will get triggered.  TODO: probably need
2342         to make sure this gets done everywhere instead of the old
2343         Select(Control).
2344         * ContainerControl.cs: Implement the directed Select method to
2345         find and activate the correct child control.    
2346         
2347 2006-07-22  Mike Kestner  <mkestner@novell.com>
2348
2349         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
2350         menu handling code so that clicks without a grab work too.
2351         [Fixes #78914]
2352
2353 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
2354
2355         * FileDialog.cs: Enable the BackButton when dirstack has one element.
2356           Added some small optimizations.
2357
2358 2006-07-21  Matt Hargett  <matt@use.net>
2359
2360         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
2361
2362 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
2363
2364         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
2365           tests pass and match MS in some strange border cases.
2366
2367 2006-07-21  Chris Toshok  <toshok@ximian.com>
2368
2369         * ThemeWin32Classic.cs: handle drawing of the relation links and
2370         parent row buttons.
2371
2372         * Theme.cs: change args to DataGridPaintParentRow.
2373
2374         * DataGrid.cs: Don't use controls for the relation links and
2375         parent buttons, so we have to handle all their interactions in
2376         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
2377         when we're navigating through child tables, so we can reinstate
2378         selection, expanded state, current cell, etc.
2379
2380 2006-07-20  Chris Toshok  <toshok@ximian.com>
2381
2382         * ToolBar.cs: When we redraw a button, for whatever reason,
2383         there's no reason to redraw the entire toolbar.  Also, don't call
2384         Control.Refresh from within Redraw, as it's much heavier than
2385         Invalidate (which is really what we want).
2386
2387 2006-07-20  Chris Toshok  <toshok@ximian.com>
2388
2389         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
2390         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
2391         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
2392         traces from within a debug IBindingList datasource
2393         (in mono/winforms/datagrid) for *days*, I've finally gotten things
2394         to work in a similar fashion.
2395
2396 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2397
2398         * ListBox.cs: Don't call Sort () when setting 
2399         the Sorted property to false (avoid an unnecessary sort).
2400
2401 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2402
2403         * ListControl.cs: DataSource should throw an ArgumentException
2404         instead of a normal exception when the argument is not of the 
2405         correct type.
2406
2407 2006-07-20  Mike Kestner  <mkestner@novell.com>
2408
2409         * Control.cs: add InternalPreProcessMessage to allow us to steal
2410         key events before MWF gets its paws on them.  Adapted from a
2411         suggestion by eno.
2412         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
2413         up/down/left/right navigation. Override the new internal control
2414         method to steal the events since they never make it to WndProc.
2415         * ToolBarButton.cs: don't worry about pushed when setting hilight
2416         since the drawing code prefers pushed to hilight. Invalidate on 
2417         Hilight changes. Fixes #78547 and #78525.
2418
2419 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2420
2421         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
2422           the canvas size. Fixes #78868
2423
2424 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
2425
2426         * Splitter.cs: Track requested split position until first layout
2427           is performed. Fixes #78871
2428
2429 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2430
2431         * Application.cs: Removed code that forces 1.x for the version
2432           number if the version started with 0. Not sure why that code was
2433           there and I couldn't find any bugs that indicated we needed it.
2434           Fixes #78869
2435
2436 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
2437
2438         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
2439           ResetDefaults(), just write some output to the console until it's
2440           implemented. Fixes bug #78907 for now. Eliminated two warnings.
2441
2442 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
2443
2444         * PropertyGridView.cs: set StartPosition of drop down forms
2445         so they appear in correct initial spot.  Fixes #78190.
2446
2447 2006-07-19  Mike Kestner  <mkestner@novell.com>
2448
2449         * ThemeWin32Classic.cs: use parent background color when drawing
2450         flat toolbars.  Restructure the conditionals to make sure non-flat
2451         non-Divider toolbars are filled too.  Fixes #78837.
2452
2453 2006-07-19  Mike Kestner  <mkestner@novell.com>
2454
2455         * ListBox.cs: Sort on collection changes even if the handle
2456         isn't created yet.  Fixes #78813.
2457
2458 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2459
2460         * ListControl.cs: DisplayMember should never be null,
2461         and now we assign String.Empty when null is passed to it (this
2462         is the .Net way).
2463
2464 2006-07-17  Mike Kestner  <mkestner@novell.com>
2465
2466         * ListViewItem.cs: restructure Font and subitem Font handling 
2467         to hold a specific font and refer back to owner on null.
2468         Fixes #78761.
2469
2470 2006-07-17  Mike Kestner  <mkestner@novell.com>
2471
2472         * ToolBar.cs: bandaid for side-effect of previous patch which was
2473         discarding explicit heights for non-AutoSize toolbars.  Need to
2474         extend my format tester to deal with AutoSize=false. Fixes #78864.
2475
2476 2006-07-15  Jackson Harper  <jackson@ximian.com>
2477
2478         * LabelEditTextBox.cs:
2479         * TreeView.cs: Use a new LabelEdit class for node editing, this
2480         class automatically 'closes' itself when it gets the enter key or
2481         loses focus.
2482         - Use the client rectangle when setting the trees scrollbars, so
2483         border style is taken into account.
2484         
2485 2006-07-14  Jackson Harper  <jackson@ximian.com>
2486
2487         * TreeNode.cs:
2488         * TreeView.cs: Make the editing work similar to MSs, firing the
2489         events correctly and ending edits correctly.
2490
2491 2006-07-14  Mike Kestner  <mkestner@novell.com>
2492
2493         * ToolBarButton.cs:
2494         * ToolBar.cs: layout restructuring and redraw enhancements to support
2495         formatting changes gracefully, like setting TextAlign, ImageList, 
2496         ButtonSize, and Appearance.  Handles explicit button sizing quirks
2497         of the MS controls.  Things like flat toolbars ignoring button size
2498         but becoming constant sized at the largest button's size.  Normal
2499         toolbars with an image set cannot be shrunk smaller than the image,
2500         but text can be clipped/ignored.
2501         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
2502         is zero.  Seems like DrawString should be smart enough to not put
2503         anything on screen though. Also trim labels and ellipsize at the char
2504         boundary, not word.
2505         Fixes #78711 and #78483.
2506
2507 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2508
2509         * FolderBrowserDialog.cs: Disable "New Folder" button and
2510           "New Folder" contextmenu menuitem if a folder like "My Computer"
2511           is selected.
2512
2513 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2514
2515         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
2516         * FolderBrowserDialog.cs:
2517           - Use MWFConfig to store and read size and position settings
2518           - Added code to create a new folder (button or context menu).
2519             Use TreeView labeledit to change the name of the new folder.
2520
2521 2006-07-14  Jackson Harper  <jackson@ximian.com>
2522
2523         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
2524         when the tree is scrolled we end editing.
2525
2526 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2527
2528         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
2529           Down arrows
2530
2531 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
2532
2533         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
2534         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
2535         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
2536         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
2537         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
2538         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
2539         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
2540         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
2541         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
2542         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
2543         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
2544         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
2545         ListViewItemSelectionChangedEventHandler.cs,
2546         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
2547         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
2548         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
2549         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
2550         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
2551         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
2552         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
2553         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
2554         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
2555         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
2556         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
2557         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
2558         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
2559         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
2560         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
2561         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
2562         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
2563         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
2564         WebBrowserNavigatingEventHandler.cs, 
2565         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
2566
2567 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
2568
2569         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
2570         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
2571         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
2572         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
2573         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
2574         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
2575         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
2576         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
2577         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
2578         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
2579         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
2580         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
2581         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
2582         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
2583         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
2584         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
2585         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
2586         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
2587         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
2588         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
2589         ListViewItemStates.cs, MaskFormat.cs: Added
2590
2591 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
2592
2593         * PropertyGridView.cs: Fix keyboard navigation of drop down.
2594         Patch from eno for bug 78558.
2595         
2596 2006-07-13  Jackson Harper  <jackson@ximian.com>
2597
2598         * TreeView.cs: When an edit is finished make sure that the
2599         selected node is visible.
2600         - When setting the top/bottom use the scrollbars is_visible, so
2601         everything will be set correctly even if the tree isn't visible
2602         yet.
2603
2604 2006-07-13  Jackson Harper  <jackson@ximian.com>
2605
2606         * ComboBox.cs: Revert the item->index part of my previous patch.
2607         * TreeView.cs: Use LostFocus instead of Leave for detecting when
2608         the edit box has lost focus (duh).
2609         - Just make the edit box not visible when we get return, that will
2610         take the focus, which will call EndEdit
2611         * TreeNode.cs When we start editing, notify the treeview.
2612
2613 2006-07-12  Jackson Harper  <jackson@ximian.com>
2614
2615         * ComboBox.cs: Clear out old items before setting the item list.
2616         This prevents databound controls from having their items added
2617         twice.
2618         - Switch the combobox to use indices whereever possible instead of
2619         using Item's.  This allows usto navigate through lists that have
2620         more then one item with the same string value (ie a, b, b, a).
2621         - Scroll the listboxes scrollbar when a non visible item is
2622         highlighted
2623         - Allow keypress to cycle through all the possible values. For
2624         example if you have b1, b2, b3 and hold down the B key all the
2625         values will be cycled through.
2626         
2627 2006-07-12  Jackson Harper  <jackson@ximian.com>
2628
2629         * TextBoxBase.cs:
2630         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
2631         this using the internal methods.
2632         * Control.cs: Add OnGotFocusInternal.  A new method that allows
2633         controls to "override" OnGotFocus and change focus behavior if
2634         needed.
2635         - Same thing for LostFocus
2636         * ComboBox.cs: Pass off focus to the text control properly.
2637
2638 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
2639
2640         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
2641         * FolderBrowserDialog.cs: Almost a complete rewrite.
2642           - Better support for Environment.Specialfolders
2643           - Added support for MWFVFS
2644           - Made setting SelectedPath work
2645
2646 2006-07-12  Jackson Harper  <jackson@ximian.com>
2647
2648         * Control.cs: Optimze getting all the controls.
2649
2650 2006-07-11  Jackson Harper  <jackson@ximian.com>
2651
2652         * ContainerControl.cs: Override SETFOCUS in the container control,
2653         so that it is not selected on mouse click.
2654
2655 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
2656
2657         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
2658           Hopefully we will have a better way once all of focus is complete.
2659
2660 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
2661
2662         * ThemeWin32Classic.cs: Commented out some debug code and fixed
2663           a compile error with csc.
2664
2665 2006-07-11  Jackson Harper  <jackson@ximian.com>
2666
2667         * Control.cs: When hiding a control only select the next control
2668         if the current control was focused.
2669         - Don't handle enter/leave when setting/killing focus, this is
2670         done by the container control.
2671         - Remove is_selected, it's not needed anymore.
2672         - Add utility methods for selecting a child control, and for
2673         firing the Enter/Leave events.
2674         * ContainerControl.cs: When a control is activated fire the
2675         enter/leave events.
2676         - Don't wrap when processing the tab key, so that focus can be
2677         moved outside of the container.
2678         - Use the correct active control
2679
2680 2006-07-11  Jackson Harper  <jackson@ximian.com>
2681
2682         * ComboBox.cs: Remove some debug code that was blinding me.
2683         * UpDownBase.cs: These controls actually aren't implicit, they are
2684         visible to the user.
2685
2686 2006-07-10  Chris Toshok  <toshok@ximian.com>
2687
2688         * DataGrid.cs: move back to the is_adding boolean field.  god i
2689         hate this is_editing/is_adding/is_changing stuff.
2690
2691 2006-07-10  Chris Toshok  <toshok@ximian.com>
2692
2693         * DataGridTableStyle.cs: just check if the property type is bool.
2694         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
2695         Don't use CanRenderType.
2696
2697         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
2698         if our text == NullText.  Remove CanRenderType.
2699
2700         * DataGridBoolColumn.cs: nuke CanRenderType.
2701
2702         * DataGrid.cs: reenable some code to end the current edit inside
2703         of set_CurrentCell.  This fixes the other 1.1.16 regression.
2704         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
2705         Also, remove the visible_row_count arg from CalcRowHeaders, since
2706         we don't need to worry about the actual height of the area.
2707
2708 2006-07-10  Chris Toshok  <toshok@ximian.com>
2709
2710         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
2711         mode, just return.
2712
2713         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
2714         the real sense of the IsInEditOrNavigateMode property (true =
2715         navigate, false = edit).  Also, update OnKeyPress to reflect this.
2716
2717         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
2718         column style exists, we still need to set its property descriptor
2719         to match up with our list manager.
2720
2721 2006-07-10  Chris Toshok  <toshok@ximian.com>
2722
2723         * ThemeWin32Classic.cs: implement the new row/header painting
2724         approach.  The parent row painting will likely go away and
2725         replaced with label controls, but the rest seems to work ok (and
2726         efficiently).
2727
2728         * Theme.cs: change the way we draw datagrid rows.  we don't draw
2729         the row headers as a block now.  Instead we draw them in the
2730         normal draw-row loop.  Add some calls for drawing parent rows and
2731         relation rows.
2732
2733         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
2734         a default table style.  Set the defaults from ThemeEngine.Current,
2735         not SystemColors.  Fix lots of misc issues with property setters.
2736
2737         * DataGrid.cs: move loads of style information out of this class
2738         as it's being duplicated with DataGridTableStyle.  keep track of a
2739         special DataGridTableStyle for the properties we used to mirror
2740         here.  Switch all the style properties to access this table style
2741         instead of instance fields of this class.  Also add a internal
2742         class to represent parent rows (more needs to be stored here, like
2743         the selection state from the parent table, as well as the
2744         expansion state.)  Also, for datasources with relations, do the
2745         right thing for collapse/expand, and add support for the
2746         navigation/parent row buttons.
2747
2748         Lastly, fix the crash in the 1.1.16 build.
2749
2750         * GridTableStylesCollection.cs: make the explicit interface
2751         implementations call the class's methods as opposed to duplicating
2752         them.
2753
2754         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
2755         0 so the text doesn't jump around when we move the cursor.
2756
2757 2006-07-10  Jackson Harper  <jackson@ximian.com>
2758
2759         * TextBoxBase.cs:
2760         * ListBox.cs: Match MS's ToString (this makes debugging focus
2761         stuff infinitely easier).
2762
2763 2006-07-10  Jackson Harper  <jackson@ximian.com>
2764
2765         * Control.cs (SelectNextControl): When checking the control's
2766         parent use this instead of ctrl.parent so that null can be passed
2767         to SelectNextControl. (I have unit tests for this).
2768         - Remove unused var.
2769
2770 2006-07-10  Chris Toshok  <toshok@ximian.com>
2771
2772         * CurrencyManager.cs: correct one regression, the removal of the
2773         finalType field.  Also, add a MonoTODO on CanAddRows, implement
2774         Refresh() correctly, and fix some event emission in
2775         ListChangedHandler.
2776
2777 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
2778
2779         * FileDialog.cs: Don't use brackets for new folders if they exist
2780           under *nix. Instead use -(number of existing folders +1).
2781
2782 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
2783
2784         * FileDialog.cs:
2785           - Fixed really nasty bug #78771
2786           - Don't block the whole GUI when reading directories with a lot of
2787             entries. Use an other thread instead and call BeginInvoke to
2788             update the ListView in MWFFileView
2789
2790 2006-07-07  Chris Toshok  <toshok@ximian.com>
2791
2792         * Control.cs (Dispose): release any Capture when disposing.
2793
2794 2006-07-07  Chris Toshok  <toshok@ximian.com>
2795
2796         * LinkLabel.cs (Select): if we chain up to the parent, set
2797         focused_index to -1 so we'll search for the first available link
2798         the next time the user tabs into us.  Also, if the direction is
2799         backward and focused_index == -1, start the search from the last
2800         element.
2801
2802 2006-07-07  Chris Toshok  <toshok@ximian.com>
2803
2804         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
2805         is beyond the end of the text, don't do anything.
2806         (CreateLinkPieces): set our ControlStyles.Selectable based on
2807         whether or not we have any links.
2808         (Link.Invalidate): use a loop instead of foreach.
2809         (Link.set_Start): null out owner.sorted_links so it'll be
2810         recreated by CreateLinkPieces.
2811
2812 2006-07-06  Chris Toshok  <toshok@ximian.com>
2813
2814         * LinkLabel.cs: revert the SetStyle change.
2815
2816 2006-07-06  Chris Toshok  <toshok@ximian.com>
2817
2818         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
2819         (OnEnableChanged): s/Refresh/Invalidate
2820         (OnGotFocus): if we have a focused index already, refocus it (so
2821         if we mouse out/in to the window it'll focus the right link).
2822         (OnKeyDown): move the tab handling out of here.
2823         (OnLostFocus): don't set focused_index to -1, so we can refocus it
2824         when we lose focus.
2825         (OnMouseDown): don't Capture here - Control handles it.  Also,
2826         focus the active link.
2827         (OnMouseUp): don't deal with Capture.
2828         (OnPaintBackgroundInternal): remove.
2829         (OnTextAlignChanged): CreateLinkPieces before calling the
2830         superclass's method.
2831         (OnTextChanged): call CreateLinkPieces before calling superclass's
2832         method.
2833         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
2834         move around.
2835         (Select): implement this, moving the selection between different
2836         links, and call parent.SelectNextControl if we don't have another
2837         link to focus in the given direction.
2838         (CreateLinkPieces): call Invalidate instead of Refresh.
2839         
2840 2006-07-06  Chris Toshok  <toshok@ximian.com>
2841
2842         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
2843         new LinkLabel internals.
2844
2845         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
2846         over pieces looking for active/focused/etc links.  also, deal with
2847         runs of text (and links) with embedded \n's in them, and use
2848         MeasureCharacterRanges instead of MeasureString to figure out the
2849         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
2850         two-step.
2851
2852 2006-07-04  Jackson Harper  <jackson@ximian.com>
2853
2854         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
2855         XKB or key auto repeat, do it manually.  Without key auto repeat,
2856         when a key is held down we get key press, key release, key press,
2857         key release, ... with auto repeat we get key press, key press, key
2858         press ..., and then a release when the key is actually released.
2859
2860 2006-07-03  Jackson Harper  <jackson@ximian.com>
2861
2862         * TabControl.cs:
2863         * ThemeWin32Classic.cs: Tabs do not obey normal background color
2864         rules, they are always control color regardless of the background
2865         color.
2866
2867 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
2868
2869         * FileDialog.cs: Added internal class MWFConfig.
2870           Removed Registry support and replaced it with support for the new
2871           MWFConfig class. See MWFConfig comments for more information.
2872
2873 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
2874
2875         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
2876           rectangle. Added some patches from eno from bug #78490 and fixed
2877           the arrow position for small up and down CPDrawScrollButtons.
2878
2879 2006-06-30  Jackson Harper  <jackson@ximian.com>
2880
2881         * InternalWindowManager.cs: Remove some debug code.
2882         * Form.cs: When an MdiParent is set to null, the window is
2883         "detatched" and becomes a normal window.
2884         * MdiClient.cs: Don't bring the new child form to the front until
2885         it is activated (setting it as active does this), this makes the
2886         previously active forms titlebar get redrawn as inactive.
2887
2888 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
2889
2890         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
2891           with later controls
2892
2893 2006-06-29  Mike Kestner  <mkestner@novell.com>
2894
2895         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
2896         arrow in keynav state.  Fixes #78682.
2897
2898 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
2899
2900         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
2901           order (fixes #78393)
2902
2903 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
2904
2905         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
2906           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
2907           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
2908           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
2909           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
2910           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
2911           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
2912           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
2913           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
2914           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
2915           enumerations (FlagsAttribute, SerializableAttribute, added/removed
2916           values)
2917
2918 2006-06-28  Mike Kestner  <mkestner@novell.com>
2919
2920         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
2921
2922 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
2923
2924         * PropertyGrid.cs,
2925           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
2926           item lines from other area (It also makes BackColor consistent and
2927           compatible with .NET). Fixed bug #78564.
2928
2929 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
2930
2931         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
2932         Patch from Eno for #78555.
2933
2934 2006-06-27  Chris Toshok  <toshok@ximian.com>
2935
2936         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
2937
2938         * DataGridColumnStyle.cs: same.
2939
2940         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
2941         
2942         * DataGridDrawingLogic.cs: nuke.
2943
2944 2006-06-27  Chris Toshok  <toshok@ximian.com>
2945
2946         * DataGridTableStyle.cs: clean up the constructors, and build the
2947         list of child relations for this table.  I have no idea if this is
2948         where we should be doing it (it probably isn't), but since we're
2949         already iterating over the properties..
2950
2951         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
2952         struct and array for keeping track of row information, similar to
2953         what's shown in a hack on
2954         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
2955
2956         * Theme.cs: be consistent about the naming of DataGrid methods,
2957         prefering ColumnWidths and RowHeights over columnsWidths and
2958         RowsHeights.
2959
2960         * ThemeWin32Classic.cs: same, and also add support for variable
2961         sized rows (and the +/- expansion icons for related rows).
2962
2963 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
2964
2965         * TextBoxBase.cs: Applied Eno's patch from #78660
2966
2967 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
2968
2969         * Form.cs (ScaleCore): We don't want to scale our form if it's
2970           state is minimized or maximized, but we still need to scale our
2971           child windows. Also, added try/finally block to ensure layout
2972           gets reset (Fixes #78697)
2973
2974 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
2975
2976         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
2977
2978 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
2979
2980         * Form.cs: Fixed c+p error and added check to resize form if minimum
2981           size is bigger than current size (Fixes #78709)
2982
2983 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
2984
2985         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
2986
2987 2006-06-26  Mike Kestner  <mkestner@novell.com>
2988
2989         * ComboBox.cs: only do Keypress handling in the combo when there  
2990         are items in the collection. Fixes #78710.
2991
2992 2006-06-26  Chris Toshok  <toshok@ximian.com>
2993
2994         * Binding.cs: make this work bi-directionally.  also, clear up
2995         other mixups between Push/Pull Data (e.g. we're supposed to pull
2996         data when validating).
2997
2998         * BindingManagerBase.cs: trim some fully qualified collection
2999         types.
3000
3001         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
3002
3003 2006-06-23  Chris Toshok  <toshok@ximian.com>
3004
3005         * PropertyManager.cs: It appears (according to the unit tests)
3006         that PropertyManager doesn't use
3007         PropertyDescriptor.AddValueChanged to track propery value changes
3008         in its datasource, but uses the same scheme as Binding, where it
3009         looks for a <Property>Changed event and binds to it.
3010
3011         Also, according to the docs, IsSuspended always returns false for
3012         a property manager with a non-null datasource.
3013
3014 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
3015
3016         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
3017           need to update the actual DialogResult. (Fixes #78613)
3018
3019 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
3020
3021         * Form.cs (ShowDialog): Release any captures before running the
3022           new message pump (fixes #78680)
3023
3024 2006-06-22  Mike Kestner  <mkestner@novell.com>
3025
3026         * ListView.cs: Layout column widths properly in details mode even 
3027         if HeaderStyle.None is set.  Fixes #78691.
3028
3029 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
3030
3031         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
3032
3033 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
3034
3035         * Control.cs (ContainsFocus): Using new driver method to get focused
3036           window, instead of trying to use internal tracking var, which can
3037           recursion issues (Fixes #78685)
3038         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
3039           XplatUIWin32.cs: Added GetFocus method to return focused window
3040
3041 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3042
3043         * ColorDialog.cs: when the mouse button is pressed inside the color
3044         matrix, don't let the cursor move out of it until the button is
3045         released, which is the behavior on windows. Changed 'colours' by
3046         'colors' to use the same word consistently.
3047
3048 2006-06-21  Chris Toshok  <toshok@ximian.com>
3049
3050         * DataGrid.cs: add in some basic navigation stuff (navigating to a
3051         child relation and back, using a stack).  Also, remove
3052         GetDataSource and the code that calls it - it's not needed.  Also,
3053         track CurrencyManager.ListName's removal.
3054
3055 2006-06-21  Chris Toshok  <toshok@ximian.com>
3056
3057         * CurrencyManager.cs: push some of the original type checking from
3058         BindingContext.CreateBindingManager to here, and remove some of
3059         the finalType stuff.  Need more tests to make sure I've got the
3060         ListName part right, and we might need more in SetDataSource.
3061
3062         * PropertyManager.cs: add a ctor that takes just the datasource,
3063         and no property name.  Make SetDataSource work with a null
3064         property_name, and make Current return the data_source if the
3065         property descriptor is null.  this makes 'string foo = "hi";
3066         BindingContext[foo].Current' return "hi" as it should.
3067
3068         * RelatedCurrencyManager.cs: make this code more generic - there's
3069         no reason the parent manager has to be CurrencyManager, and
3070         there's no reason to pass the DataRelation.  It suffices to use a
3071         BindingManagerBase and PropetyDescriptor.
3072
3073         * RelatedPropertyManager.cs: make a similar change here.
3074         
3075         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
3076         flower I knew it could be.
3077
3078 2006-06-20  Chris Toshok  <toshok@ximian.com>
3079
3080         * PropertyManager.cs: the PropertyChangedHandler is invoked when
3081         data in the source has changed and we need to update the control,
3082         so s/PullData/PushData.
3083
3084         * CurrencyManager.cs: Refresh is meant to update the control from
3085         data in the datasource.  So, s/PullData/PushData.
3086
3087         * BindingContext.cs: add more ugliness (we weren't handling the
3088         case where data_source = DataTable and data_member = column_name).
3089
3090         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
3091         from the perspective of the datasource.  PullData pulls from the
3092         control, PushData pushes to the control.
3093
3094 2006-06-20  Chris Toshok  <toshok@ximian.com>
3095
3096         * BindingContext.cs: rewrite the CreateBindingManager code to
3097         handle navigation paths more or less properly.  This could
3098         definitely stand some more work, in particular to push the
3099         recursion up to the toplevel.  But that relies on fixes in other
3100         places (System.Data comes to mind).
3101
3102         Also, move to a flat hashtable (and encode the twolevel nature of
3103         the dictionary into the hash key).  This lets us implement the
3104         IEnumerable.GetEnumerator method.
3105
3106         * RelatedCurrencyManager.cs: new class.  Update our view based on
3107         our relation and our parent CurrencyManager's position.
3108
3109         * CurrencyManager.cs: split out some logic from the ctor into
3110         SetView, so it can be called from the new RelatedCurrencyManager
3111         subclass.
3112
3113         * RelatedPropertyManager.cs: new class.  Update our datasource
3114         based on the position of our parent CurrencyManager.
3115
3116         * PropertyManager.cs: split out some logic from the ctor into
3117         SetDataSource, so it can be called from the new RelatedDataSource
3118         subclass.  Also, make the Current getter return the value
3119         of the PropertyDescriptor, not the data_source.
3120
3121         * Binding.cs: no need to duplicate the string splitting code here.
3122
3123 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3124
3125         * Control.cs:
3126           - set_Enabled: OnEnabledChanged is not called if the inherited state 
3127             of the control is not altered, even though  we might be changing the
3128             internal state of the control (#78458)
3129           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
3130             OnEnabledChanged, to allow easy altering of any child window state
3131           - OnEnabledChanged: Added code to enable/disable driver window state
3132           - OnParentEnabledChanged: Instead of firing the event, call 
3133             OnEnabledChanged, which will fire the event and also a) set driver
3134             window state and pass the enabled state to any grandchildren (#78458)
3135
3136 2006-06-19  Jackson Harper  <jackson@ximian.com>
3137
3138         * InternalWindowManager.cs: We don't set the cursor explicitly
3139         thats done via the response to NCHITTESTs.
3140         - Don't need to adjust for titlebar heights anymore, the
3141         coordinates are coming in the correct coordinates now (see peters
3142         last patch).
3143
3144
3145 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3146
3147         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
3148           being translated relative to whole window, instead of client window.
3149           That caused broken offsets on mouseclick (and caused gas for our
3150           InternalWindowManager)
3151
3152 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3153
3154         * TextControl.cs:
3155           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
3156           - Undo(): Added replay of cursor move on DeleteChars action; added
3157             calling Undo() again if a recorded cursor move is invalid (to
3158             ensure that some action is performed on Undo)
3159         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
3160
3161 2006-06-16  Jackson Harper  <jackson@ximian.com>
3162
3163         * MdiClient.cs: Instead of just sizing maximized windows when
3164         there is a resize we also have to adjust the Y of minimized
3165         windows, so they stay pinned to the bottom of the mdi container.
3166         - Eliminate separate tracking of the active control, we can just
3167         get this from the controls collection.
3168         - Paint the decorations for the newly activated titlebar so we get
3169         a pretty blue bar.
3170         * InternalWindowManager.cs:
3171         * ThemeWin32Classic.cs: Minimized windows get all three buttons
3172         even if they are a tool window.
3173         
3174 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3175
3176         * TextControl.cs (Undo): Handle non-existent cursor locations in the
3177           undo buffer, these can happen when text was deleted and the cursor
3178           was recorded first. Since we will also have a recorded cursor
3179           after the delete this is not an issue. (Fixes #78651)
3180
3181 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
3182
3183         * AccessibleObject.cs: Remove dependence on Control.is_selected;
3184           instead properly track control states internally (allows us to
3185           remove is_selected from Control)
3186
3187 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3188
3189         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
3190         whose width is not a multiple of 8.
3191
3192 2006-06-13  Jackson Harper  <jackson@ximian.com>
3193
3194         * MdiClient.cs:  Only maximize the next child if the current one
3195         is maximized.
3196
3197 2006-06-13  Chris Toshok  <toshok@ximian.com>
3198
3199         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
3200         modified.  Also, guard against grid or grid_drawing being null in
3201         Invalidate.
3202
3203         * DataGrid.cs: Reformat tons of getters/setters.  In the
3204         DataMember setter, just call SetNewDataSource instead of
3205         duplicating some of its functionality.  In SetNewDataSource, don't
3206         check ListManager for null, since the property getter creates the
3207         object if needed.
3208
3209         * DataGridTableStyle.cs: don't set TableStyle or call
3210         SetDataGridInternal on the column here, it's done in
3211         GridColumnStylesCollection.Add.
3212
3213         * GridColumnStylesCollection.cs: fix all the explicit interface
3214         implementations to just call our methods.  Nuke AddInternal() and
3215         move the body of it to Add().  Also, add a call to
3216         column.SetDataGridInternal to Add().
3217
3218         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
3219         base()+duplicate code.  Also, use the Format property instead of
3220         format to generate an Invalidate ala MS.  Lastly, create the
3221         textbox here, unconditionally.
3222         (set_Format): call Invalidate.
3223         (get_TextBox): no need to call EnsureTextBox.
3224         (Commit): remove the message box.
3225         (Edit) remove the call to EnsureTextBox.
3226         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
3227         (EnterNullValue): no need to check textbox for null.
3228         (HideEditBox): no need to check textbox for null.
3229         (SetDataGridInColumn): add the textbox to the grid's controls.
3230         (EnsureTextBox): nuke.
3231         
3232 2006-06-13  Jackson Harper  <jackson@ximian.com>
3233
3234         * MdiWindowManager.cs: Hook up to the maximized menus paint event
3235         and redraw the buttons when needed. Unhook when the window is
3236         unmaximized.
3237         * MainMenu.cs: Add an internal Paint event, the mdi window manager
3238         needs this so that it can redraw its buttons when the menu is
3239         repainted.
3240         * InternalWindowManager.cs:
3241         * Form.cs: The method order has changed for DrawMaximizedButtons,
3242         so that it can be a PaintEventHandler.
3243         
3244 2006-06-13  Jackson Harper  <jackson@ximian.com>
3245
3246         * MdiClient.cs: When we close a maximized mdi window, the next mdi
3247         window is activated and maximized, even if it wasn't before.
3248         - When  a new window is activated repaint the decorations of the
3249         old one, so that it no longer has the Active "look" (the blue
3250         titlebar).
3251         * InternalWindowManager.cs: Open up CreateButtons to base classes
3252         so they can recreate the buttons on state changes.
3253         - If a window is maximized give it all three buttons
3254         * MdiWindowManager.cs: Create the titlebar buttons when the state
3255         is changed, this is needed because a toolwindow will not have all
3256         three buttons until it is maximized.
3257
3258 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
3259
3260         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
3261           Fixed bug #78609.
3262
3263 2006-06-12  Jackson Harper  <jackson@ximian.com>
3264
3265         * KeysConverter.cs: Make sure we handle the Ctrl special case
3266         if its the only key.
3267         
3268 2006-06-12  Jackson Harper  <jackson@ximian.com>
3269
3270         * Theme.cs: Add a method to get the size of a managed window
3271         toolbar button.
3272         * InternalWindowManager.cs: Remove the ButtonSize property, this
3273         should be retrieved from the theme.
3274         * MdiWindowManager.cs: Get the button size from the theme
3275         * ThemeWin32Classic.cs: Make the method to get the managed window
3276         titlebar button size public.
3277         - Handle the different button sizes of maximized toolwindows
3278         (should match any maximized window).
3279         - Get the titlebar height from the theme, not the WM (which gets
3280         it from the theme).
3281
3282 2006-06-12  Jackson Harper  <jackson@ximian.com>
3283
3284         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
3285         event down to the mdi window manager.
3286         - Expose some extra stuff to base classes
3287         - Make sure to end the Capture on an NC Mouse up, so that we can
3288         get double clicks properly, and the sizing doens't stick.
3289         - When doing PointToClient contain it in the workable desktop
3290         area, this prevents windows from changing size when the cursor is
3291         pulled outside of the working area while sizing.
3292         * MdiWindowManager.cs: When we get a double click maximize the
3293         window.
3294         - Reset the cursor after handling mode changes.
3295
3296 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
3297
3298         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
3299           current desktop, instead of just assuming a 0, 0 origin. This
3300           is needed for our internal window manager, to know the top
3301           margin of the desktop
3302
3303 2006-06-12  Chris Toshok  <toshok@ximian.com>
3304
3305         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
3306         we need this to get rid of the selected background in the bool
3307         column.
3308         (CancelEditing): move the ConcedeFocus call to above the Abort
3309         call.  Also, set is_changing to false and invalidate the row
3310         header if we were changing before.
3311         (ProcessKeyPreviewInternal): remove, since noone outside this
3312         class calls it anymore.  Roll the code into ProcessKeyPreview.
3313         (EndEdit): remove the internal version.
3314         (InvalidateCurrentRowHeader): make private.
3315
3316         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
3317         Keys.Escape handling (and with it the last call to
3318         DataGrid.EndEdit from outside the class.)
3319
3320
3321 2006-06-12  Chris Toshok  <toshok@ximian.com>
3322
3323         * DataGridTextBox.cs (.ctor): isedit defaults to false.
3324         (OnKeyPress): set isedit to true.
3325         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
3326         already handled by the grid.
3327
3328         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
3329         right.  ugh.
3330         (set_DataSource): SetDataSource always returns true, so stop
3331         putting it in an if statement.
3332         (EndEdit): get rid of some {}'s
3333         (ProcessGridKey): return true in case Keys.Escape.
3334         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
3335         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
3336         PositionChanged, stopped connecting to CurrentChanged.
3337         (GetDataSource): simplify this a bunch.
3338         (SetDataSource): change return type from bool to void.
3339         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
3340         to this, and make sure we don't set ListManager.Position inside
3341         set_CurrentCell.
3342         (OnListManagerItemChanged): if we're passed an actual index,
3343         redraw that row.
3344
3345         * CurrencyManager.cs (set_Position): don't call PullData here.
3346
3347 2006-06-09  Jackson Harper  <jackson@ximian.com>
3348
3349         * TreeNode.cs:  Recalculate the visible order before doing the
3350         Expand/Collapse Below calls, because those calls generate an
3351         expose.
3352         - Reduce calls to the TreeView property, which is mildly expensive
3353         by using a local var.
3354         * Form.cs: Layout the MDI child windows when creating the parent
3355         form.
3356         - Don't use the internal constructor anymore
3357         * MdiClient.cs: use the parent form width/height (if available)
3358         when laying out the child windows, we do this because the
3359         mdiclient isn't docked yet when the initial layout is done.
3360         - Don't need an internal constructor anymore.
3361
3362 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3363
3364         * FileDialog.cs: handle access errors when trying to create a folder
3365         or changing to a directory. No need to initialize out parameters.
3366
3367 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3368
3369         * FileDialog.cs: Append a number when creating a new folder if the
3370           folder already exists (use parenthesis instead of square brackets)
3371
3372 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3373
3374         * FileDialog.cs:
3375           - Disabled registry support for windows and added better registry
3376             error checking for other systems (need to investigate why it
3377             works perfectly on my system)
3378           - If a folder already exist show an error MessageBox instead of
3379             trying to create an indexed name.
3380           - Fixed a non intentional typo.
3381
3382 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3383
3384         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
3385
3386 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3387
3388         * FileDialog.cs: When creating a new folder don't crash if the
3389           folder already exists.
3390
3391 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3392
3393         * FileDialog.cs: Allmost a complete rewrite.
3394           - added a "virtual" file system that handles the differences
3395             between unix and windows file systems (especially the directory
3396             structure). Moved most of the directory and file handling code
3397             into the vfs.
3398             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
3399             UnixFileSystem and FSEntry.
3400           - Recently used folder/directory, size, location and used file names
3401             (file name ComboBox) are now stored in the registry and get read
3402             before the dialog shows up (fixes part 6 of bug #78446).
3403           - Creation of new folders/directories is now possible (context menu
3404             or ToolBar). Added TextEntryDialog for this that fills in the gap
3405             until ListView.LabelEdit works.
3406           - Fixed cursor handling (bug #78527) and focus handling for
3407             PopupButtonPanel
3408           - Various "Search in" ComboBox enhancements. The content of the
3409             dropdown listbox now almost matches ms.
3410           - Changed the behaviour when the user switches to SpecialFolder
3411             Recent to show the ListView in View.Details.
3412           - Beside using the ToolBar to change the View property of the
3413             file ListView it is now possible to use the context menu too.
3414
3415 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3416
3417         * ComboBox.cs: Don't create a new ObjectCollection when an item
3418           gets inserted. Just insert the item in the existing object_items
3419           ArrayList.
3420
3421 2006-06-08  Jackson Harper  <jackson@ximian.com>
3422
3423         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
3424         that the treeview and root node checks are done also, this fixes a
3425         regression i caused in the unit tests.
3426
3427 2006-06-07  Wade Berrier <wberrier@novell.com> 
3428
3429         * RichTextBox.cs: More ISO8859-1 -> unicode
3430
3431 2006-06-07  Mike Kestner  <mkestner@novell.com>
3432
3433         * ComboBox.cs : use items to hold highlight/selection so that
3434         collection insertions don't require synchronization.
3435
3436 2006-06-07  Jackson Harper  <jackson@ximian.com>
3437
3438         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
3439         routine.  We now always keep the sized edge at the cursor instead
3440         of computing movement and adjusting rects.  There is one buglet
3441         with this method though when the cursor is moved over area that
3442         the window can not expand too (such as the toolbars on the desktop).
3443
3444 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3445
3446         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
3447         here. Fixes crash on startup in AlbumSurfer.
3448
3449 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
3450
3451         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
3452           values
3453
3454 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3455
3456         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
3457         statement to avoid calling XNextEvent which will block if another thread
3458         took the event that we were expecting. Fixes bug #78605.
3459
3460 2006-06-07  Mike Kestner  <mkestner@novell.com>
3461
3462         * ListView.cs : isolated checkbox clicking from the selection logic.
3463         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
3464
3465 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3466
3467         * Form.cs: Check that the value passed to Form.DialogResult
3468         is a valid enum value.
3469
3470 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3471
3472         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
3473         Computer'. Clicking it in the network view goes to 'My Computer'.
3474         Added CIFS filesystem type. Display the mount point of filesystems.
3475         Avoid duplicate mount points (happens for me with CIFS);
3476
3477 2006-06-06  Jackson Harper  <jackson@ximian.com>
3478
3479         * InternalWindowManager.cs: Draw the maximized windows buttons
3480         when resizing.
3481
3482 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3483
3484         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
3485         all other dialogs. Fixes bug #78585.
3486
3487 2006-06-06  Mike Kestner  <mkestner@novell.com>
3488
3489         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
3490         Only invalidate checkbox on checkstate changes to avoid flicker.
3491         * ListBox.cs : avoid unselect/select when clicking selected item.
3492         avoid reselection flicker for already multiselected items.
3493         Fixes #78382.
3494
3495 2006-06-06  Jackson Harper  <jackson@ximian.com>
3496
3497         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
3498         the parent form so that the menu is removed if needed.
3499
3500 2006-06-06  Mike Kestner  <mkestner@novell.com>
3501
3502         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
3503         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
3504
3505 2006-06-06  Mike Kestner  <mkestner@novell.com>
3506
3507         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
3508
3509
3510 2006-06-06  Jackson Harper  <jackson@ximian.com>
3511
3512         * Control.cs: Use the property (instead of the field) to get the
3513         default cursor so it is instantiated correctly.
3514         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
3515         resizes so we need to manually repaint the window decorations here.
3516         - Set the titlebar button locations as soon as they are created,
3517         otherwise they are not set correctly on win32.
3518         
3519 2006-06-06  Chris Toshok  <toshok@ximian.com>
3520
3521         * CurrencyManager.cs (set_Position): call PullData before
3522         OnCurrentChanged.
3523         (AddNew): after calling IBindingList.AddNew, update our
3524         listposition, and call OnCurrentChanged/OnPositionChanged (without
3525         calling PullData).
3526         (OnCurrentChanged): remove the call to PullData from here.
3527         (OnItemChanged): remove the call to PushData from here.
3528         (OnPositionChanged): change the test from == null to != null to
3529         match the other methods.
3530         (ListChangedHandler): the grossest part of the patch.  Implement
3531         this such that it passes the unit tests in CurrencyManagerTest and
3532         the output more or less matches that of MS's implementation.
3533  
3534 2006-06-06  Mike Kestner  <mkestner@novell.com>
3535
3536         * ListView.cs : only update check state on single click.
3537         * ThemeWin32Classic.cs : fix focus drawing for details view without
3538         fullrowselect.  Fixes #78454.
3539         * XplatUIX11.cs : fix for double click emission.
3540
3541 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3542
3543         * PropertyGridView.cs : Applied Atsushi's patch to fix
3544         font dialog bug  (#78197).
3545
3546 2006-06-05  Jackson Harper  <jackson@ximian.com>
3547
3548         * TreeNode.cs: Compute the next node for expanding/collapsing
3549         correctly. We now factor in nodes without a NextNode
3550         correctly. (Fixes somes cases in nunit-gui).
3551         * InternalWindowManager.cs: Set the bounds when updating the
3552         virtual position of a tool window.
3553         
3554 2006-06-05  Chris Toshok  <toshok@ximian.com>
3555
3556         * DataGrid.cs: rename cached_currencymgr to list_manager.
3557         (set_CurrentCell): move SetCurrentCell code here, and clean it up
3558         some.
3559         (CurrentRow, CurrentColumn): single accessors so we can make the
3560         cursor movement code a lot easier to understand.
3561         (CurrentRowIndex): implement this in terms of CurrentRow.
3562         (BeginEdit): clean this up a bit.
3563         (CancelEditing): sort out the is_editing/is_changing/is_adding
3564         stuff a little.
3565         (EndEdit): minor changes.
3566         (OnKeyDown): add a comment about a (most likely) unnecessary
3567         check.
3568         (OnMouseDown): cancel editing when we click on a row header.  And
3569         use the CurrentRow setter, not CurrentCell.
3570         (ProcessDialogKey): directly call ProcessGridKey.
3571         (UpdateSelectionAfterCursorMove): factor out this common block of
3572         code (it's used everywhere that we move the cursor by updating row
3573         or column).
3574         (ProcessGridKey): pretty substantial overhaul.  Use the
3575         CurrentRow/CurrentColumn properties to make the code a lot more
3576         readable.  Only use the CurrentCell property when we have to
3577         modify both row and column at once.  Tab behavior is still broken,
3578         and Delete is untested.
3579         (Select): if we have no selected rows, set selection_start to
3580         @row.
3581         (EditCurrentCell): rename EditCell this.  It was only ever invoked
3582         with CurrentCell as the arg, so drop the arg and rename it.
3583
3584         * DataGridColumnStyle.cs: clean up the constructors a little, and
3585         drop CommonConstructor().
3586
3587         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
3588         actually get notified when the user hits it.
3589         (ProcessKeyMessage): *substantially* simplify this method.
3590         There's no reason (that I can see) for the textbox to be making
3591         calls into the datagrid at all.  Remove all of them but the ones
3592         for Enter handling.  those will take some more work.
3593
3594         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
3595         calling HideEditBox.
3596         (HideEditBox): if we have an active textbox, render it invisible
3597         without causing a re-layout of the datagrid.
3598
3599 2006-06-05  Mike Kestner  <mkestner@novell.com>
3600
3601         * ListView.cs : fix NRE crasher when focuseditem is cleared by
3602         collection changes by resetting it to Items[0].  Fixes #78587.
3603
3604 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3605
3606         * MessageBox.cs: if the height of the text is larger than the icon_size,
3607         use that. Fixes bug #78575.
3608
3609 2006-06-05  Jackson Harper  <jackson@ximian.com>
3610
3611         * TreeView.cs: Fix line drawing when scrolling.  To do this each
3612         node is basically responsible for drawing its entire horizontal
3613         area.  When drawing a node it draws its parent node lines if
3614         needed.
3615         - Adjust the clip area to the viewport rectangle
3616         - Fix Left/Right key handling to match MS. (It expand/collapses
3617         and moves to parents/first child but does not move selection to
3618         sibling nodes).
3619         - Fix SetTop to work with new bound calculation code
3620         - When scrollbars are no longer needed we need to reset scrolling
3621         vars and recalculate the visible order so the redraw is correct
3622         * TreeNode.cs: We can't expand/collapse nodes with no children.
3623
3624 2006-06-03  John Luke  <john.luke@gmail.com> 
3625
3626         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
3627         so the colors work without dev packages
3628         
3629 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
3630
3631         * Control.cs 
3632           - Select: Implemented to just use activate. Seems to match MS 
3633             behaviour closest. Documented to only do actual control walking 
3634             based on it's parameters if in a container control so I moved 
3635             the code there.
3636           - Removed selection check logic from our internal Select() method
3637         * ContainerControl.cs:
3638           - Select: Moved selection logic from Control here, since MS documents
3639             that containers obey the bool arguments. No longer calling base
3640
3641 2006-06-02  Jackson Harper  <jackson@ximian.com>
3642
3643         * TreeView.cs: If the selected node isn't changed when we get
3644         focus update the previously selected node so that we see the
3645         selection box.
3646
3647 2006-06-02  Mike Kestner  <mkestner@novell.com>
3648
3649         * ComboBox.cs: restructure grab and general mouse event handling.
3650         Make the composite control raise mouse events like it was a single
3651         control for leaves/enters/motion/up/down events.  fix dropdown list
3652         coordinate mangling and refactor it into the scrollbar subclass to
3653         reduce code duplication.  Fixes #78282 #78361 and #78457.
3654
3655 2006-06-02  Mike Kestner  <mkestner@novell.com>
3656
3657         * ScrollBar.cs: remove Capture setting/clearing, as it happens
3658         automatically in the Control.WndProc.
3659
3660 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3661
3662         * FileDialog.cs: fix crash when running SharpChess, which sets the
3663         FilterIndex to 2 with only one Filter.
3664
3665 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3666
3667         * ToolBar.cs: add SizeSpecified property.
3668         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
3669         try to figure out our real size, otherwise fallback to what the
3670         container says.
3671
3672 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
3673
3674         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
3675         * Control.cs (WndProc): MS always calls the DefWndProc to pass
3676           up the event
3677
3678 2006-06-01  Mike Kestner  <mkestner@novell.com>
3679
3680         * ListView.cs: revamp the focus management in ListView.  It still
3681         causes churn of LostFocus/GotFocus emissions on clicks, but it's
3682         better than not handling focus at all.  Will revisit when pdb feels
3683         the general focus handling is solid.  Fixes #78526.
3684
3685 2006-06-01  Jackson Harper  <jackson@ximian.com>
3686
3687         * TreeView.cs: Set the default border style in the constructor.
3688         - Move painting to use OnPaintInternal instead of capturing
3689         WM_PAINT, this is the correct way of doing things
3690         - UpdateBelow shouldn't invalidate the scrollbar area
3691         - Cap the top on update below in case the node was above the top
3692         of the viewport rectangle.
3693         - ExpandBelow and Collapse below need to obey Begin/End Update.
3694         * TreeNode.cs: Make is_expanded internal so the treenode
3695         collection can change it without firing the whole event chain.
3696         * TreeNodeCollection.cs: When clearing all the child nodes make
3697         sure to recalc the visible order.
3698         - Improve algo for remove the top node
3699
3700 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
3701
3702         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
3703           SendMessage directly calling window procedures, which in turn might
3704           call SetFocus()
3705
3706 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
3707
3708         * Control.cs: Don't handle WM_SETFOCUS if the same window already
3709           has focus (works around X11 sending a FocusIn after our SetFocus)
3710         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
3711
3712 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
3713
3714         * Mime.cs: Fix for the NET_2_0 build.
3715           NameValueCollection needs StringComparer now.
3716
3717 2006-05-31  Chris Toshok  <toshok@ximian.com>
3718
3719         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
3720         return (via an out parameter) the starting X of the column.
3721         (UpdateVisibleColumn): track change to FromPixelToColumn.
3722         (HitTest): add a ColumnResize case here.
3723         (DrawResizeLine): new function, probably poorly named.
3724
3725         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
3726         only need to keep one reference.
3727         (set_ListManager): same.
3728         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
3729         Also, add support for HitTestType.ColumnResize.
3730         (OnMouseMove): add column resize behavior here, and change the
3731         cursor to the correct one as we move around the datagrid.
3732         (OnMouseUp): terminate the column resize if we're resizing.
3733         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
3734         for the current cell.
3735         (ConnectListManagerEvents): use cached_currencymgr.
3736         (DisconnectListManagerEvents): fill this in, using
3737         cached_currencymgr.
3738         (SetCurrentCell): remove cached_currencymgr_events handling.
3739         (SetDataMember): only call DisconnectListManagerEvents if
3740         cached_currencymgr is != null.
3741         (SetDataSource): same.
3742         (OnListManagerCurrentChanged): cached_currencymgr_events ->
3743         cached_currencymgr.
3744
3745 2006-05-31  Jackson Harper  <jackson@ximian.com>
3746
3747         * BindingManagerBase.cs: Remove somedebug code that creeped into
3748         SVN.
3749         * TreeNode.cs: We get the indent level dynamically right now, so
3750         don't track it as a member.
3751         * TreeNodeCollection.cs: Make sure all nodes added to the list
3752         have parents, treeviews/topnodes setup properly.
3753         - Don't attempt to track indent level.
3754
3755 2006-05-30  Jackson Harper  <jackson@ximian.com>
3756
3757         * BindingContext.cs: Create the currency manager tables here.
3758         This allows us to more easily create null tables (when bad data
3759         members are used), and more easily create related currency
3760         managers.
3761         * CurrencyManager.cs: All the table creation stuff is done by the
3762         binding context now.
3763         - Current should throw an exception if listposition is -1.
3764         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
3765         been bound yet.
3766
3767 2006-05-30  Mike Kestner  <mkestner@novell.com>
3768
3769         * ListView.cs: allow reexpansion of zero-width column headers.
3770         Fixes #78528.
3771
3772 2006-05-28  Chris Toshok  <toshok@ximian.com>
3773
3774         * CurrencyManager.cs (get_Current): after the late binding
3775         listposition = -1 fix, we need to guard against it here and return
3776         null, otherwise we raise an exception (which is swallowed
3777         elsewhere, and breaks datagrid databinding.)
3778
3779 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
3780
3781         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
3782           than WM_SYSKEY, don't throw if get something unexpected (#78507)
3783
3784 2006-05-26  Jackson Harper  <jackson@ximian.com>
3785
3786         * ControlPaint.cs:
3787         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
3788         values, it's faster and it's all we care about (we don't care if
3789         the names aren't equal).
3790         * KeyboardLayouts.cs: Eliminate some dead code.
3791         - Lazy init things
3792         * X11Keyboard.cs: Lazy init keyboard detection.
3793         - Cleanup access modifiers a little.
3794
3795 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
3796
3797         * XplatUIX11.cs: Once again, attempting to get layout just right.
3798
3799 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
3800
3801         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
3802           the sizes of each link section, that will result in sizes that
3803           match DrawString's layout (Fixes #78391)
3804
3805 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
3806
3807         * FileDialog.cs: If AddExtension property is true autocomplete the
3808           extensions in SaveFileDialog correctly. Fixes bug #78453.
3809           Set MyNetwork and MyComputer to "C:\" for windows. This should
3810           fix part 8 of bug #78446 for now.
3811
3812 2006-05-26  Chris Toshok  <toshok@ximian.com>
3813
3814         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
3815         invalidate the current row header if we need to, but presumably
3816         we'll invalidate the row corrsponding to the bounds or
3817         editingControl.
3818         (GridHScrolled): switch back to this method, as it's part of the
3819         public api.  *sigh*.
3820         (GridVScrolled): same.
3821         (OnMouseWheel): hack up something that more or less works.  Call
3822         GridHScrolled/GridVScrolled directly, instead of duplicating much
3823         of their code here.
3824         (EnsureCellVisibility): reinstate a bunch of this code, since we
3825         can't just set the scrollbar Value and expect to do all the work
3826         in the ValueChanged handler.  Also, Call Update() after scrolling
3827         in one direction so the other XplatX11.ScrollWindow call has the
3828         proper stuff in the proper places.
3829         (EditCell): set is_editing to true before calling .Edit.
3830
3831         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
3832         don't bother comparing first.
3833         (OnKeyPress): call grid.ColumnStartedEditing before calling
3834         base.OnKeyPress.  this will set is_changing and invalidate the row
3835         header if necessary.
3836         (ProcessKeyMessage): for WM_CHAR messages, call
3837         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
3838         and WM_KEYDOWN.
3839         
3840         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
3841         it's done in the DataGrid.
3842         (NextState): call grid.ColumnStartedEditing, which takes care of
3843         invalidating the row header (and setting is_changing).
3844
3845         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
3846         here.  it's done in the DataGrid.
3847
3848 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3849
3850         * Control.cs: allow changing the cursor when the mouse position is
3851         out of bounds but Capture is set.
3852         * LinkLabel.cs: handle the case when the mouse button is pressed on the
3853         linklabel but released somewhere else.
3854
3855 2006-05-25  Jackson Harper  <jackson@ximian.com>
3856
3857         * TreeView.cs: When we get focus if there is no selected node make
3858         it the top node
3859         - Remove some uneeded setup code from Draw.
3860         * TreeNodeCollection.cs: If the tree doesn't have a top node when
3861         a new node is inserted make the new node the top.
3862         * XplatUIX11.cs:
3863         * Timer.cs: Use Utc time so that no local time zone stuff needs to
3864         be used (should be faster).
3865         
3866 2006-05-25  Chris Toshok  <toshok@ximian.com>
3867
3868         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
3869         problem with the last commit.
3870
3871 2006-05-25  Chris Toshok  <toshok@ximian.com>
3872
3873         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
3874         need the invalidate call here, while scrolling right-to-left via
3875         the left arrow key (i.e. moving the editing cell while scrolling).
3876
3877         * DataGrid.cs (.ctor): remove the initialization of
3878         ctrl_pressed/shift_pressed.  We no longer track them using key
3879         up/down handlers, but by using Control.ModifierKeys.  Also, switch
3880         to using ValueChanged handlers on the scrollbars instead of
3881         Scrolled event handlers.  This simplifies a bunch of the scrolling
3882         code.
3883         (GridHValueChanged): rename from GridHScrolled, and change it to
3884         work with the new event args.
3885         (GridVValueChanged): same.
3886         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
3887         (OnMouseWheel): actually scroll the datagrid.  Don't change the
3888         selected cell.
3889         (ProcessGridKey): correct all the keyboard navigation stuff I
3890         could find.  Ctrl up/down/left/right/home/end work now.
3891         (EnsureCellVisibility): correct method name spelling.  Also,
3892         simplify this a touch by not explicitly calling the
3893         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
3894         scrollbar value.
3895         (OnKeyUpDG): no need for this method now.
3896         
3897 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3898
3899         * LinkLabel.cs: display the OverrideCursor when hovering the label.
3900         Fixes bug #78392.
3901
3902 2006-05-25  Chris Toshok  <toshok@ximian.com>
3903
3904         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
3905         r61019.
3906
3907 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
3908
3909         * Application.cs: Moved setting of is_modal and closing to before
3910           we create the control, to allow the event handlers called as a
3911           result of creation affect closing. Also removed Gonzalo's previous
3912           change to setting DialogResult, the behaviour has been moved to 
3913           Form.ShowDialog()
3914         * Form.cs: 
3915           - ShowDialog(): Removed explicit creation of the form, let RunLoop
3916             handle it instead
3917           - ShowDialog(): If no dialog result is set, we need to return Cancel
3918           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
3919             the close is cancelled
3920
3921 2006-05-25  Jackson Harper  <jackson@ximian.com>
3922
3923         * StatusBar.cs: We only need to update the sizes of the other
3924         panels when we have auto size contents.  Also we are only updating
3925         the contents of the panel, not the borders, so compensate for the
3926         border width (TODO: get this width from the theme somehow).
3927         * TreeView.cs: Scrollable is true by default
3928         - Use invalidate instead of refresh where needed
3929         - Factor the scrollable value into scrollbar updating
3930         - Update the scrollbars if the Scrollable property is altered
3931         - Update the selected node if its ImageIndex is changed
3932         - Handle null nodes in UpdateNode (mainly so we don't have to
3933         check if selected is null when updating it
3934         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
3935         are factored into the visible count
3936         - Use VisibleCount for clarity in the code
3937         - When the font is changed we need to recurse through all the
3938         nodes and invalidate their sizes
3939         
3940 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3941
3942         * Application.cs: set the DialogResult to fixed when the main form is
3943         hidden or destroyed while being modal.
3944
3945 2006-05-25  Miguel de Icaza  <miguel@novell.com>
3946
3947         * Theme.cs: Use Tangoified messagebox icons. 
3948
3949         (GetSizedResourceImage): Also cope with width = 0 and do not
3950         trigger a warning in that case (0 means "give me your icon from
3951         the resouce, no special size needed).
3952
3953 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
3954
3955         * Application.cs: Leave runloop if the the main modal form is 
3956           hidden (fixes #78484)
3957
3958 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
3959
3960         * BindingContext.cs : reject null datasource in Contains() and
3961           Item[].
3962         * CurrencyManager.cs : check data_member validity when data_source
3963           is dataset. When it is late binding, the initial position is -1.
3964
3965 2006-05-24  Jackson Harper  <jackson@ximian.com>
3966
3967         * TreeNodeCollection.cs: Dont't recalculate the visible order on
3968         inserted nodes that aren't visible.  This changes the
3969         max_visible_order which confuses scrollbar settings.
3970         - Use the enumerator to get the prev node instead of duplicating
3971         code.
3972         * TreeView.cs: Use new method for setting scrollbar values
3973         - Don't set the bounds every time the scrollbar is updated
3974         - When updating below the root node use an invalidate instead of a
3975         refresh to prevent the child controls (scrollbars) from being
3976         refreshed. (UpdateBelow still needs to be reworked anyways).
3977         - Reenable SetBottom now that visible orders are set correctly,
3978         added some debug code incase we ever get bad values there again.
3979         - Set the scrollbar max to 2 less then the max value, this
3980         compensates for the max value being one above the node count, and
3981         for scrollbars adding one extra "notch".
3982         - When drawing image nodes if there is an imagelist we draw the
3983         first image in the list if the supplied image index is out of the
3984         image list's bounds.
3985         
3986 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
3987
3988         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
3989           we receive a size change from the WM (Fixes #78503)
3990
3991 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
3992
3993         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
3994           rectangle (Fixes #78501)
3995
3996 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
3997
3998         * ButtonBase.cs: 
3999           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
4000             as a bitfield.
4001           - Fixed MouseMove to no longer switch pressed state unless the left
4002             mouse button is pressed. Atsushi provided the original patch (#78485)
4003           
4004 2006-05-24  Jackson Harper  <jackson@ximian.com>
4005
4006         * ScrollBar.cs: New internal methods that allow us to change a
4007         couple values on the scrollbar (the most common case is maximum
4008         and large change) without getting multiple invalidates.
4009
4010 2006-05-24  Chris Toshok  <toshok@ximian.com>
4011
4012         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
4013         (Edit): save off the original state in oldState, and set
4014         grid.is_editing to true.
4015         (OnKeyDown): abort editing if escape is pressed.  also, call
4016         NextState if space is pressed.
4017         (OnMouseDown): call NextState.
4018         (NextState): factor out shared code from OnKeyDown and OnMouseDown
4019         here.  Also, only invalidate the row header once (on the initial
4020         is_changing switch) to save on redraws.
4021
4022 2006-05-24  Chris Toshok  <toshok@ximian.com>
4023
4024         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
4025         if the value in the cell is different than it was before.  This
4026         keeps us from triggering a layout when we move around a datarid
4027         with a highlighted cell.
4028         (Edit): suspend layout when creating/positining the text box, and
4029         resume passing false so we don't ever actually re-layout.
4030         (ReleaseHostedControl): same.
4031         (EnsureTextBox): reformat slightly, and set WordWrap to false.
4032
4033         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
4034         control-key sequences should go to the datagrid - remove that
4035         lock.  Also, modify the conditions under which we move between
4036         cells when moving the cursor within a cell, and remove the "this"
4037         and "base" from field accesses.  We weren't even consistent, given
4038         they all were in the base class.
4039
4040 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
4041
4042         * Binding.cs : (.ctor)
4043           An obvious NRE fix for BindingTest.CtorNullTest().
4044
4045 2006-05-23  Chris Toshok  <toshok@ximian.com>
4046
4047         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
4048         them between lines.  This fixes some quirks editing cells in the
4049         datagrid.
4050
4051 2006-05-23  Jackson Harper  <jackson@ximian.com>
4052
4053         * TreeView.cs: Use begin/end update when doing expand/collapse all
4054         so that we don't get flicker on the scrollbar.
4055
4056 2006-05-23  Jackson Harper  <jackson@ximian.com>
4057
4058         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
4059         treenode calculations to be independant of the painting code. To
4060         do this nodes track a visible order which is calculated by the
4061         treeview.
4062         - Call new methods for expanding/collapsing nodes.  These methods
4063         use scrollwindow so we don't have to update everything below the
4064         node.
4065         * TreeView.cs: Refactored drawing and scrolling code.  We don't
4066         need to update nodes when drawing anymore or calculate scrollbar
4067         stuff.
4068         - Added new methods for expanding/collapsing nodes. These methods
4069         use ScrollWindow so as to not have to redraw all the nodes below.
4070         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
4071         we add/remove nodes or sort.
4072         - Handle removing the selected and the top node properly.
4073
4074 2006-05-23  Chris Toshok  <toshok@ximian.com>
4075
4076         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
4077         maybe this should actually happen in the datagrid code?
4078         (EndEdit): no need to invalidate anything, given that
4079         ReleaseHostedControl causes the datagrid to relayout, which
4080         invalidates everything anyway.
4081
4082         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
4083         in SetCurrentCell).
4084         (set_SelectionBackColor): call InvalidateSelection instead of
4085         Refresh.
4086         (set_SelectionForeColor): same.
4087         (BeginEdit): Flesh this out a bit.
4088         (CancelEditing): only do any of this if we're editing/adding.
4089         (EndEdit): same.
4090         (OnMouseDown): there's no need to cancel editing here, it's done
4091         in SetCurrentCell.
4092         (SetCurrentCell): only invalidate the current row header if it's a
4093         different row than the new one.
4094         (ShiftSelection): fix this to work like MS does.
4095         (ResetSelection): factor out the invalidation of selected_rows to
4096         InvalidateSelection.
4097         (SetDataSource): cancel any editing that's going on.
4098
4099         * DataGridColumnStyle.cs
4100         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
4101         call the non-interface version.
4102
4103         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
4104         header rectangle with the clip rectangle so we don't redraw the
4105         entire header for just a small area.  Gets rid of the last flicker
4106         when horizontally scrolling.
4107         (DataGridPaintRow): same.
4108
4109 2006-05-23  Mike Kestner  <mkestner@novell.com>
4110
4111         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
4112         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
4113         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
4114         Critical bug report.
4115
4116 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4117
4118         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
4119           and this fixes #78493
4120
4121 2006-05-23  Miguel de Icaza  <miguel@novell.com>
4122
4123         * Theme.cs (GetSizedResourceImage): Scale images if the proper
4124         size is not found.  
4125         
4126         * FileDialog.cs: Do not change the background for the side bar as
4127         it wont work nicely with the theme, and also reduces the artifacts
4128         in rendering the icons (which I want to fix too).
4129
4130         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
4131         resources, not resgen resources. 
4132
4133         (PlatformDefaultHandler): Pull images using the new API.
4134
4135 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4136
4137         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
4138           a reference to the hwnd and will not remove it unless there are
4139           no pending exposures (fixes #78341)
4140         * XplatUI.cs: Improved debug
4141
4142 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
4143
4144         * MenuAPI.cs : don't handle OnClick event when it was not the left
4145           button. Fixed bug #78487.
4146
4147 2006-05-23  Mike Kestner  <mkestner@novell.com>
4148
4149         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
4150         prefer submenus to the top menu for item lookup, to avoid popping down
4151         top-row items.
4152
4153 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
4154
4155         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
4156           Graphics.FillRectangle as the visual results are really bad (even
4157           on win). We now draw perfect arrows (and perfect shadows when the
4158           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
4159           Pen.DashPattern to draw the dots of each line.
4160
4161 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
4162
4163         * FileDialog.cs: Update the filename combobox when navigating through
4164           the ListView with the cursor keys. Fixes part 7 of bug #78446.
4165
4166 2006-05-22  Mike Kestner  <mkestner@novell.com>
4167
4168         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
4169         Fixes #78463.
4170
4171 2006-05-22  Mike Kestner  <mkestner@novell.com>
4172
4173         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
4174         requests. Fix a misspelled parameter and a copy paste exception error
4175         in Select.
4176
4177 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
4178
4179         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
4180           to get the same width/height (5/13) on X11 as the default font has on
4181           win32. This means that our DefaultFont emSize is smaller than the 
4182           the MS SWF equivalent (even thought the width/height stays the same)
4183
4184 2006-05-20  Jackson Harper  <jackson@ximian.com>
4185
4186         * MdiClient.cs:
4187         * MdiWindowManager.cs:
4188         * InternalWindowManager.cs: Make sure to use the border width from
4189         the theme.
4190
4191 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
4192
4193         * PrintDialog.cs: Implements printer details
4194
4195 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
4196
4197         * FileDialog.cs: Added focus handling for PopupButtonPanel.
4198           Fixes part 1 and 2 of bug #78446
4199
4200 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
4201
4202         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
4203           instead of sticking to the first ever calculated value
4204
4205 2006-05-19  Mike Kestner  <mkestner@novell.com>
4206
4207         * ComboBox.cs: fix mouse motion selection to use MousePosition and
4208         PointToClient, since Capture is set. Fixes #78344.
4209
4210 2006-05-19  Mike Kestner  <mkestner@novell.com>
4211
4212         * ListView.cs: match MS behavior in Details view where items are not
4213         drawn if Columns.Count == 0. 
4214         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
4215         Use a separate pen to draw the check, since changing the width affects
4216         the box as well.  Fixes #78454.
4217
4218 2006-05-18  Miguel de Icaza  <miguel@novell.com>
4219
4220         * ListView.cs: ArgumentOutOfRangeException, single versions of the
4221         exception should throw the name of the invalid argument.
4222
4223         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
4224         there are no files listed. 
4225
4226 2006-05-18  Jackson Harper  <jackson@ximian.com>
4227
4228         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
4229         up.
4230
4231 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4232
4233         * Control.cs: Brought back our old UpdateZOrder method as a private
4234           function and switched our calls from UpdateZOrder to the new one.
4235           This fixes the Paint.Net canvas disappearing bug.
4236
4237 2006-05-18  Jackson Harper  <jackson@ximian.com>
4238
4239         * Theme.cs:
4240         * ThemeWin32Classic.cs:
4241         * InternalWindowManager.cs: Move the drawing into the theme,
4242         expose everything the theme should need from the window manager.
4243
4244 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4245
4246         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
4247           from the call to NativeWindow to avoid walking up the parent chain
4248           further than needed (speeds up setting cursors and avoids setting
4249           the wrong cursor if a parent has another cursor defined)
4250         * Cursor.cs: When loading an icon as cursor, MS uses the center of
4251           the icon as hotspot, not what's contained as hotspot in the icon
4252           file. This fixes the perceived drawing offset seen with Paint.Net
4253         
4254 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4255
4256         * XplatUIX11.cs: 
4257           - Store the calculated rectangle in Hwnd object and use it when 
4258             setting the client size
4259           - Force Toolwindows to always be type Dock, to ensure they're on top
4260
4261 2006-05-18  Mike Kestner  <mkestner@novell.com>
4262
4263         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
4264         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
4265         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
4266         Substantial refactoring to remove confusing nested classes. Coding
4267         standard and Get+Set->property refactorings.  Shift to index based
4268         highlighting in ComboListBox instead of constantly using IndexOf and
4269         Items[]. Add invalidations on resize for DropDownList to fix ugliness
4270         in FileDialog growth.  Draw borders manually since Simple mode needs
4271         to look like two independent controls.  Make listbox border
4272         conditional to DropDownStyle.  Improved OwnerDraw support.
4273
4274 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
4275
4276         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
4277         Don't set the disposed graphics to null, so we can throw the "right"
4278         exception if the graphics is reused later (added a flag to avoid 
4279         double disposing). Some behaviours are different under 2.0 and are
4280         filled under bug #78448.
4281
4282 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4283
4284         * Control.cs: When double-buffering is enabled, we need to reset
4285           our graphics context between paint calls. Otherwise, any 
4286           transformations and other alterations on the context will 
4287           become cumulative (#77734)
4288
4289 2006-05-18  Mike Kestner  <mkestner@novell.com>
4290
4291         * ListView.cs: do focused item selection like MS on clicks. 
4292         Rework focus handling for ItemControl so LostFocus invalidates as
4293         well.
4294         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
4295         the ListView ItemControl has focus.
4296
4297 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
4298
4299         * XplatUIX11.cs: If client_window ends up being width or height zero
4300           due to border settings, move it off window inside whole_window (#78433)
4301
4302 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4303
4304         * Mime.cs: Shrink the mime file cache correctly.
4305
4306 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4307
4308         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
4309
4310 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4311
4312         * XplatUIX11.cs (AddExpose): More sanity checks
4313
4314 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4315
4316         * XplatUIX11.cs:
4317           - AddExpose: Don't add expose ranges outside the size of our
4318             window
4319           - Cast opacity values to Int32 to avoid crashes with certain
4320             values
4321           - Added disabled code paths that protect against illegal cross-
4322             thread painting (Developers.exe)
4323
4324 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4325
4326         * ProgressBar.cs: Invalidate the control when it's resized
4327           since block size is based on control size. (#78388)
4328
4329 2006-05-16  Miguel de Icaza  <miguel@novell.com>
4330
4331         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
4332         of setting the incoming argument to the "reset" value, we set the
4333         this.datamember to string.empty (before we were invalidating the
4334         incoming data).   
4335
4336         Fixes 78420
4337
4338 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4339
4340         * Form.cs: Only apply transparency settings after the form
4341           is created. (Fixes #77800)
4342
4343 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4344
4345         * ApplicationContext.cs: Grab the HandleDestroyed event so
4346           we know when to fire OnMainFormClosed 
4347
4348 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4349
4350         * Application.cs: Introduced sub-class to allow tracking of
4351           threads and centralized triggering of the event mess for
4352           ThreadExit, AppExit, etc..  (#76156)
4353
4354 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
4355
4356         * MimeIcon.cs:
4357           - Do not return a null icon index value for a mime subclass.
4358             Instead try the main mime type class too.
4359           - Seems that some newer distributions don't have a link to some
4360             gnome default icons anymore. So check the default gnome dir too.
4361           
4362
4363 2006-05-16  Jackson Harper  <jackson@ximian.com>
4364
4365         * MdiClient.cs: Don't paint the parent background image if we have
4366         our own background image.
4367
4368 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4369
4370         * Control.cs:
4371           - PerformLayout: Do not shrink space filled by DockStyle.Fill
4372             controls, all filled controls are supposed to overlap (#78080)
4373           - UpdateZOrder is supposed to update the control's z-order in the
4374             parent's z-order chain. Fixed to behave like that
4375           - BringToFront: Removed obsolete code
4376           - SendToBack: Simplyfied
4377           - SetChildIndex: Trigger layout calculations when Z-order changes
4378             since layout is done by z-order
4379
4380 2006-05-16  Chris Toshok  <toshok@ximian.com>
4381
4382         [ fixes bug #78410 ]
4383         * DataGrid.cs (set_AlternatingBackColor): use
4384         grid_drawing.InvalidateCells instead of Refresh().
4385         (set_BackColor): call grid_drawing.InvalidateCells.
4386         (set_BackgroundColor): use Invalidate instead of Refresh.
4387
4388         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
4389         invalidate the cell area.
4390
4391 2006-05-15  Chris Toshok  <toshok@ximian.com>
4392
4393         [ fixes bug #78011 ]
4394         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
4395         on to DataGridPaintRow.
4396         (DataGridPaintRow): take a clip argument, and only draw the cells
4397         which intersect it.  same with the not_usedarea.
4398
4399         * Theme.cs (DataGridPaintRow) add @clip parameter.
4400
4401         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
4402         XplatUI.ScrollWindow.
4403         (ScrollToRow): same.
4404
4405         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
4406         with last column which was causing a gray swath to appear with the
4407         XplatUI.ScrollWindow code.
4408
4409 2006-05-15  Chris Toshok  <toshok@ximian.com>
4410
4411         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
4412         use XplatUI.ScrollWindow.
4413         (VerticalScrollEvent): use XplatUI.ScrollWindow.
4414
4415 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
4416
4417         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
4418
4419 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4420
4421         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
4422           file since there are no equivalent X11 cursors
4423
4424 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4425
4426         * MonthCalendar.cs : DateTimePicker should reflect selected date
4427           on mouse*up*, not mouse*down*. Fixed originally reported part of
4428           bug #76474.
4429
4430 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4431
4432         * TabControl.cs : When argument index is equal or more than tab
4433           count, just ignore. Fixed bug #78395.
4434
4435 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4436
4437         * Control.cs: Dispose all child controls when control is diposed (#78394)
4438
4439 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4440
4441         * ColorDialog.cs: Finally it is possible to select the color with
4442           the text boxes
4443
4444 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4445
4446         * PrintDialog.cs: Fix typo
4447
4448 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4449
4450         * PrintDialog.cs: PrintDialog is not resizable
4451         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
4452           color. Made some ToolBar drawing methods protected virtual.
4453
4454 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
4455
4456         * PrintDialog.cs: Implementation of the PrintDialog
4457
4458 2006-05-12  Chris Toshok  <toshok@ximian.com>
4459
4460         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
4461         thumb, instead use MoveThumb.  This has the side effect of making
4462         most of the other thumb moving machinery use MoveThumb as well.
4463         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
4464         need to actually invalidate the rectangle where the new thumb will
4465         go.
4466         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
4467         We force an Update() after, so it's not as fast as it could be,
4468         but at least there's zero flicker and no droppings.
4469         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
4470         (UpdateThumbPos): add another argument (dirty), which says whether
4471         or not to calculate/add dirty regions which we later invalidate.
4472         For cases where we know we're going to use MoveThumb, we pass
4473         false for this.  Otherwise, pass true.
4474
4475 2006-05-12  Jackson Harper  <jackson@ximian.com>
4476
4477         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
4478         the status bar.
4479         
4480 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
4481
4482         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
4483           and GetClipRegion methods and UserClipWontExposeParent property.
4484         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
4485           overriding UserClipWontExposeParent property, setting to false, since
4486           Win32 handles the required expose messages to draw our clipped parent
4487           areas internally
4488         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
4489           PaintEventStart to set the user clip region if set.
4490         * Control.cs: 
4491           - Now internally tracking the Region for the control since we need to
4492             store it if the handle is not yet created and only set it when it
4493             becomes created. Before setting the region forced handle creation
4494           - Added code to draw the parents underneath a user-clipped region
4495         * Hwnd.cs: Added UserClip property
4496
4497 2006-05-12  Chris Toshok  <toshok@ximian.com>
4498
4499         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
4500         (set_Maximum): same.
4501         (set_Minimum): same.
4502         (set_SmallChange): same.
4503         (OnMouseUpSB): remove the call to refresh when releasing the
4504         thumb.  We shouldn't need it.
4505         
4506 2006-05-12  Miguel de Icaza  <miguel@novell.com>
4507
4508         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
4509         AutoSize set to None, we do not need to relayout everything, we
4510         just need to invalidate the current region.
4511
4512         (Draw): Do not draw the entire ClientArea, just redraw the
4513         clip area being passed.
4514
4515         * MdiClient.cs: Make MdiClient constructor with the Form argument
4516         internal. 
4517
4518 2006-05-12  Jackson Harper  <jackson@ximian.com>
4519
4520         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
4521         parents background image,  but strangely not their own.
4522         - (DrawStatusBarPanel): Take into account horizontal alignment
4523         when drawing the strings and icons.
4524
4525 2006-05-12  Mike Kestner  <mkestner@novell.com>
4526
4527         * ListBox.cs: avoid invalidations for focus when the collection is
4528         empty. 
4529
4530 2006-05-12  Chris Toshok  <toshok@ximian.com>
4531
4532         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
4533         invalidate the entire thumb area.  Call InvalidateDirty which
4534         limits the redraw to the thumb itself and surrounding pixels.
4535
4536         * XplatUIX11.cs (ScrollWindow): optimize copying.
4537         
4538 2006-05-12  Chris Toshok  <toshok@ximian.com>
4539
4540         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
4541         Figure out the positioning/layout in a single pass instead of
4542         multiple recursive invocations.  Speeds up the initial display of
4543         the data grid.  Also, make many things private that were
4544         originally public but unused outside this class.
4545
4546 2006-05-11  Jackson Harper  <jackson@ximian.com>
4547
4548         * MdiClient.cs: Improved layout code.
4549
4550 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
4551
4552         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
4553           not SelectedObject.
4554
4555 2006-05-11  Chris Toshok  <toshok@ximian.com>
4556
4557         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
4558         union of that will always be {0,0,width,height}.
4559
4560 2006-05-11  Jackson Harper  <jackson@ximian.com>
4561
4562         * Form.cs: Match MS's DefaultSize for forms (they must have
4563         changed the size in sp2).
4564
4565 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4566
4567         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
4568
4569 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4570
4571         * TextControl.cs : Fixed bug #78109. This incorrect position
4572           comparison caused crash on automatic line split.
4573         * TextBoxBase.cs : reduce duplicate code.
4574
4575 2006-05-10  Jackson Harper  <jackson@ximian.com>
4576
4577         * MdiClient.cs: Active form is only sent to the back when using
4578         the Next form functionality, when a form is clicked the current
4579         active shouldn't be sent to the back.
4580         - Layout the mdi windows when the container is first made visible.
4581         * Form.cs: Give the MdiClient a ref to the containing form when we
4582         create it.
4583         
4584 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4585
4586         * LinkLabel.cs : link_font could be uninitialized, so populate one
4587           before actual use. Fixed bug #78340.
4588
4589 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4590
4591         * XplatUIX11.cs : clipboard format native value is IntPtr.
4592           Fixed bug #78283.
4593
4594 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4595
4596         * Control.cs: 
4597           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
4598             which is passed up the parent chain by DefWndProc
4599           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
4600             to DefWndProc (#77956)
4601         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
4602
4603 2006-05-10  Jackson Harper  <jackson@ximian.com>
4604
4605         * MdiClient.cs: We need to remove the controls from the mdi
4606         collection, when we close the window.
4607         * MdiWindowManager.cs: Special handling of closing mdi windows.
4608         * InternalWindowManager.cs: Make the close method virtual so the
4609         mdi window manager can handle it specially.
4610
4611 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
4612
4613         * DataGrid.cs:
4614           - Recalculate grid when the data source has changed
4615           - Matches styles provided by user from all data sources types
4616         * DataGridTableStyle.cs: For columns that provided by the user set the
4617         with the preferred value is there was unassigned.
4618         * CurrencyManager.cs: throw OnItemChanged event
4619
4620 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
4621
4622         * PictureBox.cs: Don't animate until handle is created. Start animation
4623           when handle is created.
4624
4625 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4626
4627         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
4628           current codebase.
4629         * XEventQueue.cs: We don't need to provide the extra info
4630
4631 2006-05-10  Jackson Harper  <jackson@ximian.com>
4632
4633         * MdiClient.cs: If the mdi clients parent form has a background
4634         image set, we draw that background image for the mdi area's
4635         background.
4636
4637 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4638
4639         * TextBoxBase.cs: Set IBeam cursor (#78347)
4640
4641 2006-05-10  Mike Kestner  <mkestner@novell.com>
4642
4643         * ToolBar.cs: fix some text padding issues with ButtonSize
4644         calculation. Update the default size to match MS documentation.
4645         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
4646         button size. Fixes #78296.
4647
4648 2006-05-10  Mike Kestner  <mkestner@novell.com>
4649
4650         * ListBox.cs: use is_visible for scrollbar positioning in case the
4651         control isn't on screen yet.  Fix off by one with Right vs Width
4652         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
4653         
4654 2006-05-10  Jackson Harper  <jackson@ximian.com>
4655
4656         * X11Dnd.cs: Drop to a control with another control on top of it.
4657         * ToolBar.cs: Work on a copy of the buttons list, so that it can
4658         be modified in click handlers. TODO: Look for similar problems in
4659         other controls.
4660
4661 2006-05-09  Jackson Harper  <jackson@ximian.com>
4662
4663         * Form.cs: Window managers need the old window state when setting
4664         window state now.
4665         * InternalWindowManager.cs: Allow the base mdi window manager to
4666         handle more of the MDI only stuff (like maximize buttons).
4667         * MdiWindowManager.cs: Fix some snafus in changing the window
4668         state.  Add all the menu functionality, for both popup and
4669         maximized menus.
4670         * MdiClient.cs: When a new form is selected the currently
4671         activated form is sent to the back, this matches MS.
4672         - Implement a new method to activate the next mdi child window.
4673
4674 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
4675
4676         * Control.cs: 
4677           - Added new InternalCapture method to allow controls to prevent
4678             the capture behaviour on the click handlers
4679           - Switched to use InternalCapture
4680         * ComboBox.cs:
4681           - Using InternalCapture to prevent mouse captures from being released
4682             on mouse button release (Fixes #78100)
4683         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
4684           returns Form borders if a caption is present. (Fixes #78310)
4685
4686 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
4687
4688         * TreeNode.cs: Changed serialization .ctor to not require every field
4689           to be present. (#78265)
4690         * OwnerDrawPropertyBag.cs: Added serialization .ctor
4691
4692 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
4693
4694         * MimeIcon.cs: for is faster than foreach for strings.
4695
4696 2006-05-05  Mike Kestner  <mkestner@novell.com>
4697
4698         * CheckedListBox.cs: update check handling code to not use selected.
4699         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
4700         behavior for visual feedback, motion response, shift/ctrl handling,
4701         and properly deal with all 4 selection modes. Updates to bounds
4702         handling logic.  Add scroll wheel support. [Fixes #77842]
4703
4704 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
4705
4706         * ListView.cs:
4707           - Moved adding of Implicit controls into .ctor. That way, subsequent
4708             creation of the controls will not cause them to think they are 
4709             toplevel windows (fixes #78200 header problem)
4710           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
4711           - Switched visibility setting of header control to use internal field
4712             to avoid triggering handle creation
4713           - Now checking if handle is created before causing a refresh when items
4714             are added (This makes us now match handle creation time with MS)
4715         * Splitter.cs: Removed loading of private splitter cursor, switched to
4716           Cursors version now that that is loading the right ones
4717         * Cursors.cs: Load proper splitter cursors from resources
4718         * Cursor.cs: Added second method of loading resource cursors for the 
4719           VS.Net users amongst us
4720
4721 2006-05-05  Mike Kestner  <mkestner@novell.com>
4722
4723         * ListView.cs: give header_control a minimum size based on the
4724         ListView size.
4725
4726 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
4727
4728         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
4729           window seems to do that with metacity, so set that type. (#78120)
4730
4731 2006-05-05  Mike Kestner  <mkestner@novell.com>
4732
4733         * ListViewItem.cs: fix Details mode checkbox layout bug.
4734         * ThemeWin32Classic.cs: draw a ListView column header for unused space
4735         at the end of the header, if it exists. [Fixes for #78200]
4736
4737 2006-05-04  Jackson Harper  <jackson@ximian.com>
4738
4739         * MdiClient.cs: Add a helper property to get the container form.
4740         * MdiWindowManager.cs: We have to make sure to use the menu origin
4741         when drawing the icons and buttons, this fixes maximized window
4742         icons/buttons on win32.
4743         * InternalWindowManager.cs: Reset the restore captions when a
4744         window goes from Maximized to Minimized and vice versa. Move the
4745         DrawMaximizedButtons into the MdiWindowManager source, tool
4746         windows can't be maximized. NOTE: This could use a little
4747         refactoring if time ever permits.
4748         
4749 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
4750
4751         * TextBox.cs: Add MWFCategoryAttributes
4752         * TextBoxBase.cs: Add MWFCategoryAttributes
4753         * Form.cs: Add MWFCategoryAttributes
4754
4755 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
4756
4757         * Control.cs: Add MWFCategoryAttributes
4758         * ScrollableControl.cs: Add MWFCategoryAttributes
4759
4760 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
4761
4762         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
4763           Divider is true. Fix a little glitch in PropertyToolBar
4764           drawing code
4765
4766 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
4767
4768         * Control.cs:
4769           - Dispose: Call base.Dispose, this causes the disposed event
4770             to be fired (and probably other, more important stuff)
4771           - SetVisibleCore: Set is_visible to true after creating the
4772             window so that the window still gets created invisible (if
4773             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
4774             to generate a WM_ACTIVE message
4775         * Form.cs: Call Dispose when we want to destroy the window, instead of
4776           just destroying the handle (Dispose will do that for us)
4777         * XplatUIX11.cs:
4778           - RootWindow also needs a queue, so we can properly process the
4779             property change events from RootWindow (like Activate)
4780           - Generatic synthetic WM_ACTIVE message when the active window is
4781             being destroyed
4782
4783 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
4784
4785         * LinkLabel.cs: Trigger a recalc of our label dimensions when
4786           bounds are changed
4787
4788 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
4789
4790         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
4791           for determining width and height (image might not be assigned if
4792           we're drawing an imagelist)
4793
4794 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
4795
4796         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
4797         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
4798           height from system
4799         * Theme.cs: No longer returns hardcoded menu height, instead calls
4800           new driver method
4801         * Form.cs (OnLoad): Scaling happens before triggering Load events 
4802           on MS (# 78257)
4803
4804 2006-05-01  Mike Kestner  <mkestner@novell.com>
4805
4806         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
4807
4808 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
4809
4810         * TextBoxBase.cs: Removed Fixme
4811         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
4812
4813 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
4814
4815         * XplatUIX11.cs:
4816           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
4817             the rectangle relative to the parent, considering borders. We
4818             don't really want that.
4819           - ScrollWindow: Fixed warning to be more understandable
4820         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
4821           scrollbars and scroll only the visible area
4822         * RichTextBox.cs: Removed debug output
4823
4824 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4825
4826         * NumericUpDown.cs (Text): Just use base
4827         * UpDownBase.cs: Ensure txtView is created before using it
4828
4829 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
4830
4831         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
4832           casting to IntPtr to avoid 64bit overflow errors
4833
4834 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4835
4836         * Control.cs:
4837           - AllowDrop: Don't force handle creation.
4838           - CreateHandle: Added call to tell driver if we're allowed to drop
4839
4840 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
4841
4842         * FileDialog.cs: Remember the last directory not only for the
4843           current instance but also for new FileDialog instances.
4844
4845 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
4846         
4847         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
4848           broke sending async messages
4849
4850 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4851
4852         * XplatUIX11.cs:
4853           - ScrollWindow: Fixed method. We finally generate expose events again
4854             for scrolled areas. This was causing 'garbage' when scrolling
4855             textbox and other controls that used ScrollWindow
4856           - Switched from using the regular queue for paint events to the MS 
4857             model of 'generating' paint events when the queue is empty.
4858             We use the new XQueueEvent.Paint subclass to store which windows
4859             need painting.
4860           - AddExpose now takes the x/y/width/height of the exposed area
4861             and inserts the window into the paint queue if not already there
4862           - InvalidateWholeWindow: Switched to use new AddExpose method
4863           - UpdateMessageQueue: Added which queue to monitor for paint events
4864           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
4865             the unlikely case nothing above handles it. We reset the expose
4866             pending states to get them off the queue.
4867           - GetMessage: Now pulls a paint event if no other events are in the
4868             queue
4869           - Invalidate: Switched to new AddExpose method
4870           - PeekMessage: Updated to understand pending paint events
4871           - UpdateWindow: Fixed logic bug. We were only updating if the window
4872             didn't need updating. Also switched to sending WM_PAINT directly,
4873             like MS does.
4874         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
4875           and random access Remove(). The random access is needed to handle
4876           UpdateWindow() where a WM_PAINT is sent directly without accessing
4877           the queue.
4878         * ScrollBar.cs: Added Update() calls to cause immediate updates to
4879           allow for better feedback when scrolling. Scrollbars are small and
4880           the immediate update should make it 'feel' more responsive without
4881           slowing things down. ScrollBar still needs it's invaliate logic
4882           updated to not always invalidate the whole bar on certain changes.
4883
4884 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4885
4886         * Control.cs:
4887         (BackColor): if the control does not support a transparent background,
4888         return the default backcolor when the parent backcolor is transparent.
4889
4890 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
4891
4892         * Application.cs: Updated to new StartLoop/GetMessage API
4893         * RichTextBox.cs: Provide some output on RTF parsing errors
4894         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
4895           new queue_id argument to GetMessage and PeekMessage to allow faster
4896           handling of per-thread queues in drivers.
4897         * Hwnd.cs: Added Queue tracking and property
4898         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
4899         * XEventQueue.cs: Added thread trackingA
4900         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
4901         * XplatUIX11.cs:
4902           - Implemented new per-thread queue
4903           - GetMessage: Fixed return/break behaviour on several cases. We were
4904             returning stale messages in some cases, instead of just processing
4905             the next message
4906
4907 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
4908
4909         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
4910
4911 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
4912
4913         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
4914           fixed off-by-one comparisons between Width/Height and Right/Bottom.
4915
4916 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
4917
4918         * PropertyGridView.cs: Fix drop down width.
4919
4920 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
4921
4922         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
4923           a mess in DrawToolBar, so I removed one of them.
4924
4925 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
4926
4927         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
4928           needed (clip). Otherwise we get artifacts.
4929
4930 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
4931
4932         * FixedSizeTextBox.cs: Added constructor to allow specifying which
4933           dimension is fixed
4934         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
4935           and switched FixedSizeTextBox to only be fixed vertical (#78116)
4936         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
4937           if it matches the scale base font (avoids unneeded scaling)
4938
4939 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
4940
4941         * X11DesktopColors.cs: One gtk_init_check should be enough
4942
4943 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
4944
4945         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
4946           match MS behaviour
4947
4948 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
4949
4950         * TextBoxBase.cs: 
4951           - Generate OnTextChanged for Backspace even if we're only deleting
4952             the current selection
4953           - When setting the Text property, only select all text if the
4954             control does not have focus when it is being set. Otherwise
4955             just place the cursor at the beginning of the control
4956
4957 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
4958
4959         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
4960           Added a little helper to draw PropertyGrid ToolBar with a different
4961           border and a different BackColor.
4962         * PropertyGrid.cs: Some background parts didn't get painted with the
4963           correct background color. Added a class that helps us to draw the
4964           correct border for PropertyGridView and a class that helps us to
4965           draw ToolBars with a different backcolor
4966         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
4967
4968 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
4969
4970         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
4971         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
4972
4973 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
4974
4975         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
4976           into the palette entries. Also, since we're working on a copy
4977           we needed to copy the palette back onto the bitmap.
4978         * Cursor.cs: Same fix as XplatUIWin32.cs.
4979
4980 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
4981
4982         * ImageListStreamer.cs: Need to read the var (or we're off)
4983
4984 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
4985
4986         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
4987           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
4988           TextBoxBase.cs: Unused var fixes
4989         * AxHost.cs: Small 2.0 fix
4990         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
4991           as it seems that is what at least Metacity expects. This will make
4992           icons show up on 64bit platforms. We still have some 64bit size
4993           issues, though, since the startup app window size still won't match.
4994
4995 2006-04-25  Mike Kestner  <mkestner@novell.com>
4996
4997         * *.cs: cleanup newly reported exception var unused warnings.
4998
4999 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5000
5001         * ThemeWin32Classic.cs: Button image alignment now matches exactly
5002           ms
5003
5004 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5005
5006         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
5007           image. The image position is always the same, no matter if the
5008           button is pressed or not.
5009
5010 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5011
5012         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
5013           selection and set the correct filename for SaveFileDialog.
5014           Patch by Emery Conrad.
5015
5016 2006-04-24  Mike Kestner  <mkestner@novell.com>
5017
5018         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
5019         check for item.X outside the ClientRect instead of item.Y. Fixes
5020         #78151.
5021
5022 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5023
5024         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
5025         trust that value blindly and do some sanity check. Fixes bug #77814.
5026
5027 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5028
5029         * ImageListStreamer.cs: save the mask as a 1bpp image.
5030
5031 2006-04-21  Mike Kestner  <mkestner@novell.com>
5032
5033         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
5034         pass Checked and Indeterminate to the Theme Engine. Improve
5035         encapsulation with ListBox.
5036         * ListBox.cs: Keep a StringFormat instead of calculating it every item
5037         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
5038         nested types.  Move all CheckState functionality to CheckedListBox.
5039         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
5040         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
5041         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
5042         single base list. Fix scrollbar sizing and placement to mirror MS.
5043         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
5044         used.
5045         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
5046         for CheckedListBox by using new DrawItemState info.  Center the
5047         checkboxes on the items. Use new StringFormat property.
5048
5049 2006-04-18  Jackson Harper  <jackson@ximian.com>
5050
5051         * Form.cs: MdiChildren don't do default locations the same way as
5052         regular forms.  This prevents a crash when trying to position the
5053         mdi windows.
5054
5055 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
5056
5057         * PropertyGridTextBox.cs: Formatting, copyright
5058         * PropertiesTab.cs: Formatting
5059         * PropertyGrid.cs: Formatting
5060         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
5061           click toggling of values
5062           
5063 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
5064
5065         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
5066         * Control.cs (.ctor): verify_thread_handle is static, don't reset
5067           every time a control is created
5068         * Application.cs: Removed obsolete EnableRTLMirroring method
5069
5070 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
5071
5072         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
5073         SelectedIndex to -1. Fixes bug #78121.
5074
5075 2006-04-17  Jackson Harper  <jackson@ximian.com>
5076
5077         * Binding.cs: Handle null values for Current and BindingContext.
5078         This occurs when binding is a little delayed.
5079         * CurrencyManager.cs: return null for Current when there are no
5080         items in the list.
5081         - Hookup to the listchanged event on the DataView and update
5082         bindings when the list is changed.  This fixes late binding of
5083         controls.
5084
5085 2006-04-17  Jackson Harper  <jackson@ximian.com>
5086
5087         * X11Dnd.cs:
5088         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
5089         Ringenbach.
5090
5091 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
5092
5093         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
5094           place
5095         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
5096           with the correct ButtonState
5097
5098 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
5099
5100         * XplatUIX11.cs: Improved distinguishing between window types to
5101           tell the WM a type closer to what the app wants (Fixes #78107)
5102
5103 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5104
5105         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
5106           GrabHandle
5107
5108 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5109
5110         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
5111           drawing code to reflect the size grip changes
5112
5113 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5114
5115         * ImageListStreamer.cs: fix handling of the mask that follows the main
5116         bitmap when deserializing and serialize it properly. The generated mask
5117         should better be a 1bpp image, but I'll do that later.
5118
5119 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5120
5121         * FileDialog.cs: Show something in the DirComboBox on *nix if the
5122           path doesn't fit into some of our Current.Places
5123
5124 2006-04-13  Jackson Harper  <jackson@ximian.com>
5125
5126         * ComboBox.cs: Use borders instead of drawing our own decorations,
5127         try to obey correct rules for heights.
5128         * Theme.cs:
5129         * ThemeNice.cs:
5130         * ThemeClearLooks.cs:
5131         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
5132         this is now handled by borders.
5133         - Remove unused DrawListBoxDecorationSize method.
5134         
5135 2006-04-13  Mike Kestner  <mkestner@novell.com>
5136
5137         * MenuAPI.cs: null guarding for the disbled click check fixes crash
5138         reported by Alex.
5139
5140 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5141
5142         * ThemeWin32Classic.cs: 
5143           - Fixed CPDrawStringDisabled
5144           - Corrected drawing of disabled menu items
5145           - Fixed drawing of disabled radio buttons (bug #78095)
5146           - Draw check in a disabled CheckBox with color ControlDark 
5147
5148 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5149
5150         * Form.cs: Use the provided width when calculating the menu size;
5151           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
5152           and ClientSize.Width won't be updated yet
5153         * Application.cs: Use Visible instead of Show() to make form visible,
5154           this way we create the handle later and menusize is considered
5155
5156 2006-04-12  Mike Kestner  <mkestner@novell.com>
5157
5158         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
5159         reporting.
5160
5161 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5162
5163         * TextBox.cs: Implemented context menu
5164
5165 2006-04-12  Mike Kestner  <mkestner@novell.com>
5166
5167         * ListView.cs: implement box selection. fixes #77838.
5168         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
5169
5170 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5171
5172         * XplatUIX11.cs: Added setting of window type when transient window
5173           is created (metacity would move it otherwise)
5174         * X11Structs.cs: Added WINDOW_TYPE atoms
5175         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
5176           background (the control is Opaque but still wants transparent
5177           backgrounds)
5178
5179 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5180
5181         * Control.cs: Added OnPaintBackgroundInternal to allow controls
5182           that set Opaque but don't mean it (like all ButtonBase-derived
5183           controls) to still draw their background
5184         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
5185           the background
5186
5187 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5188
5189         * Control.cs (PaintControlBackground): Set the graphics object
5190           on our PaintEvent to null to prevent it from being disposed
5191           when the PaintEvent gets disposed
5192
5193 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
5194
5195         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
5196         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
5197
5198 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5199
5200         * Control.cs: 
5201           - Added transparency check to BackColor property. Transparent
5202             backgrounds are only allowed if the control styles permit it
5203           - Added recursive painting of parent control background and
5204             foreground if a control with a transparent backcolor is drawn
5205             (Thanks to Tim Ringenback for providing his 'hack' as a base
5206              for this patch) Fixes #77985 and #78026.
5207           - Added Opaque style check before calling OnPaintBackground, no
5208             need to draw the background if the control is opaque
5209           - Removed ControlAccessibleObject owner variable (inherited from
5210             base, no need to define again)
5211           - Added some documentation links explaining the drawing events
5212             and styles
5213
5214 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5215
5216         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
5217           that the affected control is the located at the left border of our
5218           parent (Fixes #77936)
5219
5220 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5221
5222         * TextBoxBase.cs: When rendering disabled or readonly controls,
5223           draw the background with 'Control' instead of 'Window' color as
5224           long as the user hasn't specifically set a color
5225
5226 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5227
5228         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
5229           since that won't be updated if the user types text (only if it's
5230           programatically set)
5231
5232 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5233
5234         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
5235           layout changes do to app-triggered resizes will have the proper
5236           display rectangle for layout
5237
5238 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
5239
5240         * ThemeWin32Classic.cs:
5241           - Make use of the SystemBrushes and SystemPens wherever possible
5242           - Corrected some highlight colors
5243           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
5244             drawing
5245         * Theme.cs: Added Empty field to CPColor struct
5246
5247 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5248
5249         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
5250           is displayed when calculating the display rectangle. Thanks to Mike
5251           for teaching me the err of my ways.
5252
5253 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
5254
5255         * ScrollableControl.cs:
5256           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
5257             (instead of 0,0) and we now return the real width/height instead of
5258             just the clientrectangle, adjusted for padding. The rectangle is
5259             now cached and created by the new CalculateDisplayRectangle method.
5260           - Created new CalculateDisplayRectange method, which basically does
5261             what get_DisplayRectangle() did originally, but now using the 
5262             right edge instead of DisplayRectangle to determine the size of
5263             our scrollbars
5264           - get_Canvas(): Fixed it to properly calculate canvas for 
5265             right/bottom controls which seem to be placed to the right/bottom
5266             of any controls that have a fixed location
5267           - Removed TODO that's taken care of
5268           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
5269             and SetDisplayRectLocation according to new MSDN2 docs
5270           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
5271             event when that is called, this is added for compatibility
5272           - ScrollControlIntoView(): Implemented.
5273           - Switched scrollbars to be implicit, they shouldn't be selectable
5274         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
5275           call it when the active control is set/changed
5276         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
5277         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
5278           implicit_control variable (used for native Win32 message generation)
5279         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
5280           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
5281         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
5282         * XplatUIStructs.cs: Added ScrollBarCommands enum
5283
5284 2006-04-10  Jackson Harper  <jackson@ximian.com>
5285
5286         * ButtonBase.cs:
5287         * CheckedListBox.cs:
5288         * ComboBox.cs:
5289         * DataGrid.cs:
5290         * DataGridView.cs:
5291         * Form.cs:
5292         * GroupBox.cs:
5293         * ListBox.cs:
5294         * PrintPreviewControl.cs:
5295         * ProgressBar.cs:
5296         * PropertyGrid.cs:
5297         * Splitter.cs:
5298         * StatusBar.cs:
5299         * TrackBar.cs:
5300         * UpDownBase.cs: Fixup base event overrides.
5301         
5302 2006-04-06  Mike Kestner  <mkestner@novell.com>
5303
5304         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
5305         all user-initiated value changes to min <= value <= max-thumbsz+1.
5306         (set_Value): check for vert/horiz when calculating new thumb position.
5307         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
5308         like MS does.
5309         (OnMouseMoveSB): refactor the thumb dragging code and refine
5310         invalidation logic to reduce flicker.
5311         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
5312         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
5313         (UpdateThumbPosition): small code readability cleanup
5314
5315 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
5316
5317         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
5318           different
5319
5320 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5321
5322         * ThemeNice.cs: Use a better graphics effect when a button is pressed
5323
5324 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5325
5326         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
5327         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
5328           This dramatically reduces the number of Pen.Dispose calls. 
5329           Where possible call ResPool methods only once instead of calling it
5330           over and over again (for example for the same color).
5331
5332 2006-04-06  Mike Kestner  <mkestner@novell.com>
5333
5334         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
5335         Also remove an unused private field on the collection. Fixes #77972.
5336
5337 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5338
5339         * ThemeNice.cs: Added ToolBar drawing code
5340
5341 2006-04-06  Mike Kestner  <mkestner@novell.com>
5342
5343         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
5344         I'm assuming that means we need to look up the toplevel for the
5345         provided control. Fixes the crash trace in #77911 but exposes another
5346         crash in some strange reflection usage in NDocGui.
5347
5348 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5349
5350         * ThemeNice.cs: Gave it a little silver touch and added Images
5351           method
5352         * FontDialog.cs: FontDialog is not resizable
5353         * FileDialg.cs: Added SizeGripStyle.Show
5354
5355 2006-04-05  Jackson Harper  <jackson@ximian.com>
5356
5357         * KeyboardLayouts.cs: Remove warning.
5358
5359 2006-04-05  Jackson Harper  <jackson@ximian.com>
5360
5361         * Control.cs: Enable OnPaintInternal so we can use it for drawing
5362         all of our controls instead of Paint +=.
5363         * ListBox.cs:
5364         * ListView.cs:
5365         * MenuAPI.cs:
5366         * MessageBox.cs:
5367         * NotifyIcon.cs:
5368         * ProgressBar.cs:
5369         * ScrollBar.cs:
5370         * Splitter.cs:
5371         * StatusBar.cs:
5372         * TabControl.cs:
5373         * TextBoxBase.cs:
5374         * ToolBar.cs:
5375         * TrackBar.cs:
5376         * UpDownBase.cs:
5377         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
5378         use OnPaintInternal. Remove Width/Height and Visible checks in
5379         paint handler, this is done at a higher level now.
5380         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
5381         * PaintEventArgs.cs: Add a handled flag so controls that don't
5382         want anymore painting after OnPaintInternal can make sure OnPaint
5383         isn't called.
5384
5385 2006-04-05  Mike Kestner  <mkestner@novell.com>
5386
5387         * Form.cs: fix the menu WndProc hacks to respect the native enabled
5388         state of the form, so that we don't process events when Modal dialogs
5389         are up. Fixes #77922.
5390
5391 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
5392
5393         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
5394           checking is done.
5395
5396 2006-04-05  Mike Kestner  <mkestner@novell.com>
5397
5398         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
5399
5400 2006-04-05  Mike Kestner  <mkestner@novell.com>
5401
5402         * ListView.cs (HeaderMouseMove): null guarding for the over column
5403         when setting up the drag_to_index.  Fixes #78015.
5404
5405 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
5406
5407         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
5408           in the taskbar. Transient windows seem to accomplish that.
5409
5410 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
5411
5412         * Form.cs:
5413           - Re-enabled CreateParams.X/Y code for FormStartPosition
5414           - Added code for manual placement when creating the Control
5415           - Incomplete patch to treat MDI forms differently when
5416             setting the ClientSizeCore. (Still need to figure out handling
5417             x/y coords there)
5418         * XplatUIX11.cs:
5419           - When we're explicitly setting the X/Y position of a non-Child
5420             window, let the WM know. Metacity really wants this.
5421
5422 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5423
5424         * ThemeNice.cs: Added CPDrawButton
5425
5426 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5427
5428         * ThemeNice.cs: Changed the color for focused buttons and activated
5429           the arrows for small scroll buttons.
5430
5431 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5432
5433         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
5434           anymore. Changed some method modifiers to protected (virtual)
5435         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
5436           changes
5437         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
5438           Updated drawing of menus, buttons and progressbars; added
5439           CPDrawBorder3D 
5440
5441 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5442
5443         * ImageListStreamer.cs: implemented serialization/deserialization
5444         of the images.
5445
5446 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
5447
5448         * ThemeWin32Classic.cs:
5449           - Removed all the DrawFrameControl stuff; CPDrawButton,
5450             CPDrawCheckBox and CPDrawRadioButton are now handled directly
5451             inside the methods
5452           - Updated and corrected the drawing code of CPDrawButton,
5453             CPDrawCheckBox and CPDrawRadioButton to better match ms
5454           - Updated theme checkbox and radiobutton code to use the CP*
5455             methods
5456
5457 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5458
5459         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
5460           bug is fixed
5461
5462 2006-03-31  Jackson Harper  <jackson@ximian.com>
5463
5464         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
5465         sometimes.
5466         * UpDownBase.cs: Don't CreateGraphics manually, use a
5467         Refresh. Ideally we would invalidate the correct areas here.
5468
5469 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5470
5471         * XplatUIX11.cs: 
5472           - We now track the mapping state of windows. If a window (or 
5473             one of it's parents) is not mapped we no longer permit
5474             WM_PAINT messages to be generated since we'd otherwise get 
5475             lots of BadMatch X errors. Jackson did all the work figuring
5476             out the problem.
5477           - Destroying the caret if the window it's contained in is 
5478             destroyed. Can't use regular DestroyCaret method since it
5479             might fall into a drawing function (trying to remove the
5480             caret) and with that generate new BadMatch errors. Again,
5481             Jackson tracked this down.
5482           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
5483             make sure we send the messages to all windows. (The old code
5484             would send the WM_DESTROY to the window, and then all child
5485             windows would be 'gone' because the WM_DESTROY handle lookup
5486             would no longer find the destroyed window)
5487         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
5488         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
5489
5490 2006-03-31  Jackson Harper  <jackson@ximian.com>
5491
5492         * ScrollableControl.cs: Dont recalc if we are not visible.
5493
5494 2006-03-31  Mike Kestner  <mkestner@novell.com>
5495
5496         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
5497         the visibility branch.
5498
5499 2006-03-31  Jackson Harper  <jackson@ximian.com>
5500
5501         * ScrollBar.cs: Cap values when incrementing/decrementing.
5502
5503 2006-03-31  Mike Kestner  <mkestner@novell.com>
5504
5505         * MenuAPI.cs: setup menu.tracker for popup/context menus.
5506         * ToolTip.cs: guard against timer expirations with no active control.
5507         Not sure why it happened.
5508
5509 2006-03-31  Mike Kestner  <mkestner@novell.com>
5510
5511         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
5512         text.
5513         * ToolTip.cs: Position the tooltip based on where the cursor is at
5514         popup time, not at MouseEnter time.  Add a Down state so that we don't
5515         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
5516         positioning offset. Lookup DisplaySize at positioning time, since it
5517         can theoretically change during invocation.
5518         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
5519         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
5520
5521 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5522
5523         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
5524           Fixes behaviour when the Text property of the box is String.Empty
5525
5526 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
5527
5528         * XplatUIX11.cs: Only send mouseleave for our client windows, not
5529           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
5530           a window)
5531
5532 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5533
5534         * FileDialog.cs: Visual enhancement for the popup buttons in 
5535           PopupButtonPanel
5536
5537 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5538
5539         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
5540           code
5541
5542 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
5543
5544         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
5545           highlighted menu items to match ms
5546
5547 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
5548
5549         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
5550
5551 2006-03-30  Mike Kestner  <mkestner@novell.com>
5552
5553         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
5554         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
5555         go active to account for HotLight to Selected transition.
5556         * MenuItem.cs: add internal Selected prop. Fill out the Status
5557         property by calculating it from item info. Add HotLight,
5558         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
5559
5560 2006-03-30  Mike Kestner  <mkestner@novell.com>
5561
5562         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
5563
5564 2006-03-29  Jackson Harper  <jackson@ximian.com>
5565
5566         * Form.cs: Implement TODO.
5567
5568 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
5569
5570         * PrintPreviewDialog.cs: Implemented missing methods and events; still
5571           missing proper dialog setup in the constructor
5572
5573 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
5574
5575         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
5576         * Control.cs:
5577           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
5578           - Fixed ResetBindings and removed TODO
5579           - Added check for cross-thread calls to get_Handle()
5580           - Added Marshaller attribute for set_Font to satisfy class status
5581         * FontDialog.cs: Removed TODOs that seemed implemented
5582         * UpDownBase.cs: Removed unneeded TODO and Fixme
5583         * MessageBox.cs: Implemented support for Default button and removed TODO
5584         * FileDialog.cs: Removed obsolete TODO
5585         * DomainUpDown.cs: Removed obsolete TODO
5586         * ButtonBase.cs: Removed obsolete TODO
5587         * XplatUIWin32.cs: Removed obsolete TODO
5588         * Form.cs:
5589           - Removed obsolete TODO
5590           - Calling CheckAcceptButton when the acceptbutton is changed to allow
5591             internal status updates
5592           - Making sure the active control is selected when the control is created
5593         * CurrencyManager.cs: Removed obsolete TODO
5594
5595 2006-03-29  Mike Kestner  <mkestner@novell.com>
5596
5597         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
5598         of PrintPreviewDialog and RichTextBox.
5599
5600 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5601
5602         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
5603           DarkDark, Light and LightLight colors for a specific color
5604         * ThemeWin32Classic.cs:
5605           - Use Button drawing code to draw RadioButtons and CheckBoxes with
5606             Appearance = Button 
5607           - Make use of the new ResPool helper CPColor
5608           - Draw ProgressBar and StatusBar with correct 3D borders
5609
5610 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5611
5612         * ColorDialog.cs: Return selected color. Fixes bug #77940.
5613
5614 2006-03-28  Mike Kestner  <mkestner@novell.com>
5615
5616         * ListView.cs: fix Icon layout to plan for scrollbar widths when
5617         calculating col/row counts.
5618
5619 2006-03-28  Mike Kestner  <mkestner@novell.com>
5620
5621         * ColumnHeader.cs:
5622         * ListView.cs:
5623         * ListViewItem.cs:
5624         * Menu.cs: 
5625         switch to explicit interface method implementation for some methods
5626         corcompare identifies as inconsistent with MS.
5627
5628 2006-03-28  Mike Kestner  <mkestner@novell.com>
5629
5630         * MainMenu.cs: 
5631         * Menu.cs:
5632         add a few missing methods from the class status output.
5633
5634 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
5635
5636         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
5637           correct.
5638
5639 2006-03-28  Mike Kestner  <mkestner@novell.com>
5640
5641         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
5642
5643 2006-03-27  Mike Kestner  <mkestner@novell.com>
5644
5645         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
5646         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
5647
5648 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
5649
5650         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
5651
5652 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5653
5654         * ThemeWin32Classic.cs:
5655           - GroupBox: Inserted a little gap between the text and the lines
5656             on the right side
5657           - Made the code in CPDrawBorder3D more readable
5658           - Corrected the drawing location of the up and down arrows in 
5659             CPDrawScrollButton
5660
5661 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5662
5663         * ControlPaint.cs: Corrected line widths in DrawBorder for
5664           ButtonBorderStyle Inset and Outset
5665
5666 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5667
5668         * ThemeWin32Classic.cs:
5669           - Rewrote the totally broken CPDrawBorder3D method. That was
5670             one of the main problems for the terrific ThemeWin32Classic
5671             look
5672           - Updated and corrected Button drawing
5673           - Correct the dimensions of the SizeGrip to match ms ones
5674           - Removed a small drawing glitch in DrawComboBoxEditDecorations
5675         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
5676           Border3DStyle.Sunken to match ms.
5677
5678 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5679
5680         * ThemeWin32Classic.cs: First small part of the "de-uglify
5681           ThemeWin32Classic" effort, SizeGrip
5682
5683 2006-03-24  Jackson Harper  <jackson@ximian.com>
5684
5685         * XplatUIX11.cs: Give a max idle time of one second, this matches
5686         MS and forces an Idle event every second when there are no other
5687         events in the queue.
5688
5689 2006-03-24  Mike Kestner  <mkestner@novell.com>
5690
5691         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
5692         * ListView.Item.cs: fix layout issues with null image lists and images
5693         smaller than checkbox size.
5694         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
5695         mode like MS does.  It's weird, but consistent.  ;-)
5696         Fixes #77890.
5697
5698 2006-03-24  Mike Kestner  <mkestner@novell.com>
5699
5700         * ListView.cs: Scroll wheel support for the item control.  Fixes
5701         #77839.
5702
5703 2006-03-23  Jackson Harper  <jackson@ximian.com>
5704
5705         * ScrollableControl.cs: Special case negative sized areas, not
5706         zero.
5707         * MonthCalendar.cs: Save the rect of the clicked date so we can
5708         use it for invalidation.
5709         - Try to cut down on the number of invalidates
5710         - Invalidate the rect the mouse is over and was over when moving
5711         the mouse, so we get the focus box following the cursor.
5712
5713 2006-03-23  Mike Kestner  <mkestner@novell.com>
5714
5715         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
5716         focus rectangle drawing. Fixes #77835.
5717
5718 2006-03-23  Mike Kestner  <mkestner@novell.com>
5719
5720         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
5721         the if and else if and reverting back to the original == check on the
5722         None conditional.
5723
5724 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
5725
5726         * FontDialog.cs: Update the example panel if the selected index of
5727           the fontListBox changes.
5728
5729 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
5730
5731         * FileDialog.cs: Make FileDialog remember which directory it was in
5732           last in the same execution.
5733
5734 2006-03-22  Mike Kestner  <mkestner@novell.com>
5735
5736         * FileDialog.cs: make the DropDownMenu on the toolbar display
5737         RadioChecks since they are mutually exclusive and that's what MS does.
5738
5739 2006-03-22  Mike Kestner  <mkestner@novell.com>
5740
5741         * Theme.cs: add Color param to CPDrawMenuGlyph.
5742         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
5743         checks and radio marks and arrows are visible on highlighted items.
5744         * ControlPaint.cs: update to use new Theme signature.
5745
5746 2006-03-22  Mike Kestner  <mkestner@novell.com>
5747
5748         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
5749         is active. Fixes #77870.
5750
5751 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
5752
5753         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
5754           to be focused/selected after startup
5755
5756 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
5757
5758         * ColorDialog.cs: 
5759           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
5760             CustomColors and ShowHelp properties
5761           - Some internal rewrites to get better results when using the
5762             ColorMatrix
5763
5764 2006-03-22  Mike Kestner  <mkestner@novell.com>
5765
5766         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
5767         HoverSelection.  Fixes #77836.
5768
5769 2006-03-22  Mike Kestner  <mkestner@novell.com>
5770
5771         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
5772         ToggleButtons.  (De)Sensitize the Back button around a stack count of
5773         1, not 0.  Update ButtonSize based on a pixel count of the win32
5774         control.  Adjust the toolbar size/location for new button size.
5775
5776 2006-03-22  Jackson Harper  <jackson@ximian.com>
5777
5778         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
5779         true.
5780         * ScrollBar.cs: When doing increments and decrements we need to
5781         set the Value property so that ValueChanged gets raised. A
5782         possible optimization here would be to make an internal SetValue
5783         that doesn't invalidate immediately.
5784         * ToolTip.cs: Tooltips get added to their container (when
5785         supplied) so they get disposed when the container is disposed.
5786         - Don't create tooltips for String.Empty. This prevents all these
5787         little 2-3 pixel windows from showing up when running nunit-gui
5788         and driving me mad.
5789         * Form.cs: Don't set topmost when setting the owner if the handles
5790         haven't been created yet.  The topmost set will happen when the
5791         handles are created.
5792
5793 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
5794
5795         * XplatUIX11.cs:
5796           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
5797           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
5798             visible (to allow them to recalculate their sizes)
5799
5800 2006-03-21  Mike Kestner  <mkestner@novell.com>
5801
5802         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
5803         methods. Removed a ton of redundant code.  Still not really happy with
5804         the border rendering, but I think that's mainly because of the
5805         ControlDarkDark being black instead of a dark grey. Depending on how 
5806         close we want to be, we might want to revisit those color choices.
5807         Among the new features added during the refactor were DropDownArrow
5808         pressed rendering, Disabled image rendering.  Proper flat appearance
5809         boundary rendering.  Removed the Divider and Wrapping dividers since I
5810         can't figure out any combination of themes and conditions to make the
5811         MS control draw a horizontal line on a toolbar despite what the
5812         Divider property docs indicate.
5813         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
5814         conditions and incorrect layout.  Updated to coding standard.
5815         * ToolBarButton.cs: refactored layout and positioning code from
5816         ToolBar to here.  Invalidate wherever possible instead of forcing
5817         redraws of the whole toolbar. 
5818         (Known remaining issues: explicit ButtonSize smaller than provided
5819         images.)
5820
5821 2006-03-21  Mike Kestner  <mkestner@novell.com>
5822
5823         * ContextMenu.cs (Show): use the position parameter instead of just
5824         showing at the MousePosition.
5825
5826 2006-03-21  Jackson Harper  <jackson@ximian.com>
5827
5828         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
5829         control handle this.
5830         * TreeNodeCollection.cs: If we are clearing the root node we need
5831         to reset top_node so calcs can still happen.
5832         * ThemeWin32Classic.cs: This is a Flags so we need to check
5833         properly.
5834         
5835 2006-03-21  Jackson Harper  <jackson@ximian.com>
5836
5837         * DataGrid.cs: Create columns when the binding context has been
5838         changed.
5839         * X11Structs.cs: Keysyms are uints.
5840         - Add size to fix build.
5841
5842 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
5843
5844         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
5845           XplatUIOSX.cs: 
5846           - Added ResetMouseHover method to allow controls to retrigger
5847             hovering if they need it more than once
5848           - Implemented MouseHoverTime and MouseHoverSize properties
5849         * Timer.cs: Start() must reset the interval
5850         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
5851           properties
5852
5853 2006-03-21  Jackson Harper  <jackson@ximian.com>
5854
5855         * X11Keyboard.cs: improved layout detection. Move the nonchar
5856         tables into this file.
5857         * KeyboardLayouts.cs: Move the tables into resource files.
5858
5859 2006-03-21  Mike Kestner  <mkestner@novell.com>
5860
5861         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
5862
5863 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
5864
5865         * Mime.cs: Various speed optimizations. Looking up mime types
5866           is now 2 times faster than before
5867
5868 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
5869
5870         * CreateParams.cs: Added internal menu field
5871         * Control.cs: 
5872           - Switched call order for UpdateBounds; now we always call
5873             the one that also takes ClientSize, and we're calculating the 
5874             client size via driver method in the others. The previous
5875             method of tracking client size by difference wasn't working
5876             for forms where even the starting client size wouldn't match
5877             the overall form size (due to borders) (Part of fix for #77729)
5878           - CreateParams(): Do not use parent.Handle unless the handle is
5879             already created. Causes havoc with Nexxia and throws off our
5880             creation of controls
5881         * XplatUIX11.cs:
5882           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
5883           - Switched handling of ConfigureNotify over to new PerformNCCalc 
5884             method (consolidates code)
5885           - Changed RequestNCRecalc to use new PerformNCCalc method
5886           - Added calls to RequestNCRecalc when menus and borders are changed
5887             to allow app to set NC size. (Part of fix for #77729) This matches
5888             when MS send a WM_NCRECALC on Win32 windows.
5889           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
5890             (Part of fix for #77729). This matches what MS does, they also
5891             send that message when the form is made visible.
5892           - XException.GetMessage: Improved usability of X errors by including
5893             a translation of the window into Hwnd and Control class
5894           - Improved debug info for window creation, reparenting and destruction
5895           - Created helper method WindowIsMapped() [Currently not used]
5896         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
5897         * Form.cs:
5898           - CreateParams: Now setting our menu on the new internal menu field
5899           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
5900             avoid calculating the same property twice
5901         * Hwnd.cs:
5902           - Improved usability of ToString() for debugging purposes
5903           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
5904             determine the height of the menu, instead of just the font. This
5905             required to also create a graphics context and to keep a bmp 
5906             around (for performance reasons)
5907
5908 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
5909
5910         * MenuAPI.cs: Added OnMouseUp method
5911         * Form.cs:
5912           - Now remembering the requested client size, avoids size errors
5913           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
5914             instead of base if the menu is active. This is required due to
5915             control now capturing and releasing on down/up and it would
5916             prematurely release our menu capture
5917
5918 2006-03-17  Jackson Harper  <jackson@ximian.com>
5919
5920         * KeyboardLayouts.cs: Add the czech layouts.
5921
5922 2006-03-16  Jackson Harper  <jackson@ximian.com>
5923
5924         * Control.cs: Use the viewport space when sizing not the controls
5925         client size, so things like ScrollableControl that effect the
5926         viewport size (when scrollbars are added) are computed correctly.
5927         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
5928         of ManagerEntrys.
5929         - Handle creating BindingManagers for null data sources.
5930         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
5931         source, otherwise when rows are added they are added to the 'fake'
5932         datasource and we will crash when trying to set the position in
5933         those rows.
5934         - Use Implicit scrollbars on the datagrid so they arent
5935         selectable.
5936         
5937 2006-03-16  Jackson Harper  <jackson@ximian.com>
5938
5939         * Binding.cs:
5940         * InternalWindowManager.cs:
5941         * MdiWindowManager.cs:
5942         * X11Keyboard.cs: I really want Mike to love me again (fix
5943         compiler warnings).
5944
5945 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
5946
5947         * DataGrid.cs:
5948           - OnMouseDown: Switch to editing mode when clicking on the cell
5949                          even if we're clicking on the cell that's currently 
5950                          selected
5951           - ProcessGridKey: Left/Right now wrap like MS.Net does
5952           - ProcessGridKey: Tab now knows to add a new row when tab is
5953                             pressed in the cell of the last column of the 
5954                             last row
5955           - ProcessGridKey: Enter now adds another row  if pressed in the last
5956                             row and selectes the new row, same column cell
5957           - ProcessGridKey: Home/End navigate columns, not rows, like 
5958                             originally implemented
5959           - Broke ProcessKeyPreview code out into an extra Internal method
5960             so it can be called from the edit code
5961         * DataGridTextBox.cs (ProcessKeyMessage):
5962           - Switched to accept Tab keypresses
5963           - Added F2 handling to allow jumping to the end of the edited cell
5964           - Added logic to allow moving caret left/right inside edited cell
5965             and making the edited cell jump when the caret hits cell borders
5966           - Tab and Enter are now passed to the datagrid after being handled
5967         * TextBoxBase.cs:
5968           - Removed capture code now that Control handles it
5969           - set_SelectionStart now ensures caret is visible
5970
5971 2006-03-16  Jackson Harper  <jackson@ximian.com>
5972
5973         * TrackBar.cs: Debackwards the increment/decrement for handling
5974         mouse clicks on the bar with vertical trackbars.
5975         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
5976         bottom to match MS.
5977
5978 2006-03-16  Mike Kestner  <mkestner@novell.com>
5979
5980         * ListView.cs: make shift/ctrl keyboard and mouse selection 
5981         consistent with the MS control. Fix a bug in
5982         SelectedListViewItemCollection.Clear that was pissing me off for the
5983         better part of a day because the collection was being altered
5984         underneath us as we walked the list.
5985
5986 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
5987
5988         * Control.cs: Not sure how we could miss this so long, but it seems
5989           that MS.Net has Capture set all the way from before calling 
5990           OnMouseDown through sending the mouse events until after
5991           OnMouseUp. This will fix DataGrid's selection being set to end
5992           at the location of the MouseUp.
5993
5994 2006-03-15  Jackson Harper  <jackson@ximian.com>
5995
5996         * BindingContext.cs: Check the binding after its added so that it
5997           can initialize the binding managers and hookup to events.
5998         * Binding.cs: Data members seem to sometimes include rows/cols in
5999           the format Row.Column we now take this into account.
6000           - Hookup to the position changed event so we can update the
6001           control when the position has changed in the data set.
6002         * CurrencyManager.cs: Take into account the row/col naming
6003           convention when creating dataset tables.
6004         * BindingContext.cs: Using a newer better way of storing
6005           datasource/datamember pairs.  Hopefully this better matches MS for
6006           looking up binding managers.
6007
6008
6009 2006-03-15  Jackson Harper  <jackson@ximian.com>
6010
6011         * BindingContext.cs: The currency manager needs the data member
6012         name, if the member is a data set we use the name to find the
6013         correct table.
6014         * CurrencyManager.cs: When creating the list prefer an IList over
6015         an IListSource.
6016         - Attempt to create a DataTable from a DataSet (TODO: might need
6017         some better error checking here, although MS doesn't seem to have much)
6018         - If we have a DataTable create a view and use it as our list.
6019
6020 2006-03-15  Mike Kestner  <mkestner@novell.com>
6021
6022         * ListView.cs: keep a matrix of the icon mode layout to facilitate
6023         keyboard navigation. Support Up/Down/Left/Right selection correctly
6024         for all 4 View modes.
6025         * ListViewItem.cs: add internal row/col fields for icon layouts.
6026
6027 2006-03-15  Jackson Harper  <jackson@ximian.com>
6028
6029         * TabControl.cs: Redraw the tabs when we resize so their newly
6030         calculated sizes are drawn on screen.
6031         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
6032         composite characters.
6033         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
6034         - filter events so that composite characters can be created
6035         patches by peter
6036         * X11Structs.cs: Add XIMProperties enum.
6037
6038 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6039
6040         * Control.cs (BringToFront, SendToBack): Don't use window or handle
6041           unless it's created
6042
6043 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6044
6045         * Control.cs (PerformLayout): We don't need to consider visiblity
6046           for anchoring, only for docking. This fixes 'whacky' alignment
6047           in listbox and other controls that use implicit scrollbars after
6048           the previous PerformLayout patch
6049         * ListBox.cs: Switched to use implicit scrollbars
6050           
6051 2006-03-14  Mike Kestner  <mkestner@novell.com>
6052
6053         * ToolBar.cs: 
6054         * VScrollBar.cs:
6055         - chain up the "new event" overrides to base and use
6056         OnEvent to raise them.  Part of fix for bug #76509.
6057
6058 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
6059
6060         * FileDialog.cs: Do not select an item in the parent directory
6061           on backspace
6062
6063 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6064
6065         * Control.cs (PerformLayout): It would seem that we considered
6066           invisible windows for our layout. Not quite the right thing
6067           to do. Now we don't any longer, thereby fixing bug #76889.
6068
6069 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6070
6071         * Control.cs (CanFocus): I goofed. A control can have focus 
6072           even though it's not selectable. Made it match MS docs.
6073
6074 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6075
6076         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
6077           center by default (fixes #76895)
6078         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
6079           all uses of Border3DSides.All with the explicit ORd together
6080           Left|Right|Top|Bottom because I assume that nobody was aware 
6081           that All also implies a center fill. Most places I checked had
6082           a fill right above.
6083         * ProgressBarStyle.cs: Added
6084
6085 2006-03-13  Mike Kestner  <mkestner@novell.com>
6086
6087         * ListView.cs: fix breakage in drag shadow header positioning 
6088         from Peter's csc compilation fix.
6089
6090 2006-03-13  Mike Kestner  <mkestner@novell.com>
6091
6092         * ListView.cs: fix NRE produced by backspacing twice in a focused
6093         FileDialog.
6094
6095 2006-03-13  Mike Kestner  <mkestner@novell.com>
6096
6097         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
6098
6099 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6100
6101         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
6102           be changed
6103         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
6104           the allowed size before making programmatic size changes
6105
6106 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
6107
6108         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
6109           set, metacity is broken and will still use the emty sizes in 
6110           the struct. (Fix for #77089)
6111
6112 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6113
6114         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
6115           WindowExStyles and marked both enums as Flags
6116         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
6117           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
6118           to match WindowStyles split
6119         * XplatUIX11.cs:
6120           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
6121           - Updated to match WindowStyles split
6122         * XplatUIWin32.cs:
6123           - Fixed FosterParent creation, was using ExStyle on the Style field
6124             (This should help with Popup focus issues)
6125           - Updated to match WindowStyles split
6126
6127 2006-03-13  Jackson Harper  <jackson@ximian.com>
6128
6129         * MdiWindowManager.cs: Use the system menu height. Fixes some
6130         strange sizing issues.
6131
6132 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6133
6134         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
6135         * TextBoxBase.cs:
6136           - Scroll to caret after inserting text (#77672)
6137           - Make scroll range one pixel higher, fixes off-by-one error (and
6138             makes underlines visible on the last line)
6139
6140 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
6141
6142         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
6143           the keyboard state from being stuck with keys in 'pressed' state when
6144           focus is switched away via keyboard
6145         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
6146           reset the keyboard if no X11 KeyUp events are expected to come
6147         * X11Structs.cs: Switched type of Visible to bool to match driver
6148
6149 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6150
6151         * TextControl.cs:
6152           - Switched caret to be just 1 pixel wide, matches MS and looks less
6153             clunky
6154           - Moved caret display 1 pixel down from the top of the control
6155             to improve view
6156           - InsertCharAtCharet: Update the selection start if moving the caret
6157             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
6158           - No longer always creating the caret when the caret methods are
6159             called. Only the actual ShowCaret/HideCaret will do that now
6160           - Only setting caret visible if the owner control has focus
6161           - UpdateView: Added invalidation-shortcut logic for center and right 
6162             aligned text. Previously we'd update all according to the left
6163             logic which caused drawing errors. Also fixed height of invalidated
6164             areas, now properly invalidating the whole area (was off-by-one)
6165           - owner_HandleCreated: Always generate the document when the
6166             handle is created; this ensures that 
6167         * TextBoxBase.cs:
6168           - Fixed situation where caret would disappear under the right
6169             window border, also improved scrolling behaviour on left-
6170             aligned textboxes
6171           - Fixed right-aligned textboxes to have a border to the
6172             right instead of the caret being under the right border
6173         * XplatUIX11.cs:
6174           - Switched from 'nested' to simple visible/not visible tracking 
6175             for caret (part of fix for #77671)
6176           - No longer passing through translated FocusIn/FocusOut messages
6177             since we were notifying too often and the wrong windows. Instead
6178             we just notify our focussed window of receiving or loosing focus
6179         * XplatUIWin32.cs: Switched from 'nested' show/hide 
6180           counting for caret to simple visible yes/no behaviour (part of 
6181           fix for #77671)
6182
6183 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6184
6185         * Mime.cs: Remove debug code...
6186
6187 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6188
6189         * MimeGenerated.cs: Removed
6190         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
6191           and subclasses) from /usr/(local/)share/mime and
6192           $HOME/.local/share/mime.
6193
6194 2006-03-10  Jackson Harper  <jackson@ximian.com>
6195
6196         * MdiWindowManager.cs: Recalc the NC area when a window is
6197         maximized/restored so that the menu area is drawn on forms that
6198         don't have a menu.
6199
6200 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6201
6202         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6203           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
6204           us to force a WM_NCCALCRESIZE message being sent. This is needed
6205           for MDI maximizing.
6206
6207 2006-03-10  Jackson Harper  <jackson@ximian.com>
6208
6209         * Form.cs: We need to use the ActiveMenu when calculating menu
6210         height.
6211         - Fix nullref when the window manager hasn't been created yet.
6212         * Control.cs: Fix nullref when we try to bring a control to the
6213         front that has no parent.
6214         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
6215         height.
6216         - Add a dummy item to the maximized menu so it always has the
6217         correct height. Otherwise when there are no menus we don't get our
6218         icon and buttons.
6219         
6220
6221 2006-03-10  Jackson Harper  <jackson@ximian.com>
6222
6223         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
6224         stuff.
6225         * Form.cs: Make the window_state internal so the window managers
6226         can track it.
6227         - When an MDI child is maximized let its window manager create the
6228         main menu (so it can add its icon).
6229         - Notify the window managers of state changes
6230         - Let the window manager paint its buttons and handle button
6231         clicks on the menu when it is maximized.
6232         * InternalWindowManager.cs: Move the prev_bounds into the mdi
6233         window manager, since tool windows don't use it, only mdi windows.
6234         - Tell the main form that we don't want it to handle NCPAINT
6235         itself to avoid extra painting.
6236         - Handle clicks on a maximized windows menu.
6237         - Handle window state changes
6238         - Handle minimize/maximize clicks correctly by setting the window state.
6239         * MdiWindowManager.cs: Add an icon menu that (the menu you get
6240         when clicking on the forms icon).
6241         - New method to create a forms maximized menu. This is its normal
6242         menu + an icon.
6243         - Handle window state changes.
6244         - Handle sizing of maximized windows.  Maximized windows are just
6245         drawn bigger then the parent visible area. All controls are still
6246         there, they are just outside the visible area (this matches windows).
6247         * MdiClient.cs: No scrollbars when a child window is maximized.
6248         - Let the children windows figure out how big they should be when
6249         sizing maximized windows.
6250         - Implement a version of ArrangeIconicWindows somewhat similar to
6251         Windows version.  There are some little differences, but I don't
6252         think any app will rely on the layout of minimized mdi windows.
6253
6254 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6255
6256         * Padding.cs: Several fixes to allow compiling with csc 2.0
6257
6258 2006-03-09  Jackson Harper  <jackson@ximian.com>
6259
6260         * Menu.cs:
6261         * MenuItem.cs: Cheap hack so we can add items to the list without
6262         the events being raised.  This allows adding mdi items during
6263         drawing. TODO: Should probably find a better time to add the items.
6264
6265 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6266
6267         * ThemeWin32Classic.cs:
6268           - CheckBox_DrawText: Added logic to not wrap if not enough space
6269             is available (Fix for bug #77727)
6270           - RadioButton_DrawText: Added logic not to wrap if not enough
6271             space is available (Fix for bug #77727). Also removed some
6272             duplicate code, DrawString always drawing the regular text
6273             before hitting the if statement.
6274
6275 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
6276
6277         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
6278
6279 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6280
6281         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
6282         * ContainerControl.cs: Partial implementation of some 2.0 scaling
6283           methods. Moved the new 2.0 properties into alphabetical order with
6284           other properties and added MonoTODO tags
6285
6286 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6287
6288         * AutoScaleMode.cs: Added. Fix build.
6289
6290 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6291
6292         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6293           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
6294           and was requiring premature handle creation for calls from above
6295         * Form.cs, Control.cs: Removed handle arguments from calls to
6296           CalculateClientRect()
6297
6298 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6299
6300         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
6301           drag_column.column_rect is MarshalByRef and can't be used that way
6302
6303 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6304
6305         * AxHost.cs: Added deserialization constructor for 
6306           AxHost+State (fixes 77743)
6307
6308 2006-03-09  Mike Kestner  <mkestner@novell.com>
6309
6310         * ListView.cs: 
6311         - Added column drag reordering for details view.
6312         - fixed behavior when mouse is dragged off column and
6313         AllowColumnReorder is false.
6314         * ColumnHeader.cs: clone the format too in Clone.
6315         * Theme.cs: add DrawListViewHeaderDragDetails method.
6316         * ThemeWin32Classic.cs:
6317         - impl new method for drawing drag column shadows and targets.
6318         - support column offset for details mode in DrawListViewItem.
6319
6320 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6321
6322         * TextControl.cs: Reset the char_count when the document is cleared
6323           (Fixes bug reported on mono-winforms mailing list)
6324
6325 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6326
6327         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
6328           of calling base we simply process the key ourselves, since both
6329           DefWindowProc and the handled method would set m.Result. 
6330           (Fixes #77732)
6331
6332 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6333
6334         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
6335           method also moves the window; instead implemented a copy of
6336           Control.ScaleCore (Part of fix for #77456)
6337         * TextBoxBase.cs: 
6338           - Created new CreateGraphicsInternal method to allow providing
6339             a graphics context when no handle is created without triggering
6340             handle creation. (Part of fix for #77456)
6341           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6342         * TextControl.cs: 
6343           - Switched Constructor to require TextBoxBase instead of Control (to
6344             allow uncast access to CreateGraphicsInternal)
6345           - Safeguarded use of owner.Handle property. No longer accessing it
6346             unless the handle is already created.
6347           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6348           - Now triggering a recalc when owning control becomes visible
6349         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
6350           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
6351           premature handle creation (Part of fix for #77456)
6352         * Control.cs:
6353           - We now only destroy our double-buffering buffers when the
6354             control is resized or disposed, but not when visibility
6355             changes. (The code even re-created them twice every time)
6356           - Now requiring a redraw of the buffer on visibility changes
6357             (fixes bug 77654 part 2)
6358           - Not passing OnParentVisibleChanged up unless the control
6359             is visible
6360           - CanFocus: Fixed to match MS documentation
6361           - Focus: Fixed to return actual focus state and to check if
6362             setting focus is legal before setting it
6363
6364 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
6365
6366         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
6367           when to draw focus rectangle by looking at parent focus and
6368           selected state instead. This fixes TabPages on Linux sometimes
6369           having none or multiple focus rectangles.
6370         * XplatUIX11.cs (SetFocus): 
6371           - Don't set the focus if the same window already has focus
6372           - Use SendMessage instead of PostMessage (like it's Win32
6373             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
6374             to match MS behaviour
6375         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
6376           are not selectable.
6377
6378 2006-03-07  Jackson Harper  <jackson@ximian.com>
6379
6380         * PictureBox.cs: Revert line I accidently committed last week.
6381
6382 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6383
6384         * Control.cs: 
6385           - Added new IsRecreating and ParentIsRecreating properties to
6386             allow testing if RecreateHandle has been called on ourselves
6387             or one of our parents
6388           - WndProc(WM_DESTROY): If our control handle is being recreated
6389             we immediately need to create the handle when receiving the
6390             destroy, that way our child windows find a valid parent handle
6391             when they themselves are being recreated upon WM_DESTROY receipt
6392             (fix for bug #77654 part 1)
6393         * XplatUIX11.cs:
6394           - DestroyWindow: WM_DESTROY must be sent to our own window before
6395             notifying any child windows. MS documents that child windows
6396             are still valid when WM_DESTROY is received. (Control now relies on
6397             this behaviour)
6398           - Added some fine-grain debug options
6399
6400 2006-03-06  Jackson Harper  <jackson@ximian.com>
6401
6402         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
6403         box and base calculations off this.
6404         * MdiChildContext.cs:
6405         * MdiWindowManager.cs: Don't need to ensure scrollbars here
6406         anymore.
6407         
6408 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
6409
6410         * Splitter.cs: In situations where the affected control is added
6411           to the parent's control list after the splitter, we would not
6412           populate affected. Now we try populating it on mousedown, if
6413           it's not already set, and force it to be re-set whenever our
6414           parent changes.
6415
6416 2006-03-03  Matt Hargett  <matt@use.net>
6417
6418         * Control.cs: implement Control.Padding
6419         * Padding.cs: -Padding.All returns -1 when constructing with the
6420         implicit default ctor
6421         -Padding.ToString() matches MS.NET
6422         * ContainerControl.cs: implement
6423         ContainerControl.AutoScaleDimensions
6424         * ListControl.cs: implement ListControl.FormattingEnabled
6425         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
6426         * ButtonBase.cs:
6427         * TabPage.cs: Implement UseVisualStyleBackColor.
6428         * PictureBox.cs: Implement PictureBox.InitialImage.
6429
6430 2006-03-03  Mike Kestner  <mkestner@novell.com>
6431
6432         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
6433         event declarations to proxy to base event.
6434         * ListViewItem.cs: update to use ItemControl.
6435         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
6436         * ThemeWin32Classic.cs: update to new ListView theme API and fix
6437         column header label rendering for 0 width columns.
6438
6439 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
6440
6441         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
6442           that causes the control to be created. Fixes #77476.
6443
6444 2006-03-02  Jackson Harper  <jackson@ximian.com>
6445
6446         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
6447         expose_pending.
6448
6449 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
6450
6451         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
6452           passed in for the EventArgs (fixes #77690)
6453
6454 2006-03-01  Jackson Harper  <jackson@ximian.com>
6455
6456         * ScrollBar.cs: Refresh afterbeing resized.
6457
6458 2006-02-28  Mike Kestner  <mkestner@novell.com>
6459
6460         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
6461         Clean up a tracker compile warning.
6462         * MenuItem.cs: add internal PerformPopup method.
6463         [Fixes #77457]
6464
6465 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6466
6467         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
6468           implicit expose) when the text is set to null
6469
6470 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
6471
6472         * RichTextBox.cs (FlushText): When newline is true, we always
6473           need to split the line, even if no text is on it and we may
6474           never eat newlines. (Fixes #77669)
6475
6476 2006-02-28  Mike Kestner  <mkestner@novell.com>
6477
6478         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
6479         and set Selected instead.
6480         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
6481         collections.
6482
6483 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6484
6485         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
6486
6487 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
6488
6489         * FontDialog.cs:
6490           - Got rid of the panel. All controls are now directly added to
6491             the dialog form
6492           - It is now possible to set a font with the Font property
6493           - MinSize and MaxSize property do now what they should
6494           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
6495           - Searching and selecting a font with the font textbox works now,
6496             the same applies to the style and size textbox
6497           - Draw the correct 3D border in the example panel
6498           - Fixed a little mem leak (unused fonts didn't get disposed)
6499           - Many other internal updates/rewrites...
6500           - Fix typo
6501
6502 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6503
6504         * TextControl.cs: 
6505           - InsertRTFFromStream: Added 'number of characters inserted' argument
6506           - set_SelectedRTF: Now using the number of characters to calculate
6507             the new location for the selection and cursor (x/y cannot be used
6508             due to potentially already wrapped text)
6509
6510 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
6511
6512         * TextControl.cs: Added property and implemented means to allow 
6513           disabling recalculation of a document (can be used to speed up
6514           multiple inserts and is needed to make RTF inserts predictable, see
6515           bug #77659)
6516         * RichTextBox.cs: Using the new NoRecalc property of Document to
6517           keep x/y insert locations predictable. Also makes it faster inserting
6518           large chunks of RTF
6519
6520 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6521
6522         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
6523           it's easier for a child control to handle the other messages without
6524           having to duplicate the special functionality
6525         * TextBoxBase.cs
6526           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
6527             code to handle processing the key ourselves, in order to get 
6528             access to the result of KeyEventArgs.Handled. We now only call 
6529             ProcessKey if they key hasn't been handled already. Fixes #77526.
6530           - set_Text: If null or empty string is given, just clear the 
6531             document. Fixes part of #77526
6532
6533 2006-02-27  Jackson Harper  <jackson@ximian.com>
6534
6535         * SizeGrip.cs: Paint the background color before painting the grip
6536         so things look right.
6537         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
6538
6539 2006-02-27  Mike Kestner  <mkestner@novell.com>
6540
6541         * ListView.cs:
6542           - Restructure layout and invalidation model to remove a ton of
6543           flicker from the control and speed up performance in general.
6544           - Add manual column resize, flickers like crazy, but I already have
6545           some ideas on how I'll fix that. (#76822)
6546           - Merge the three Icon-based views into a single layout method.
6547           - Move item selection interaction logic from the item since 
6548           interaction with the collections is more appropriate to the view.
6549           - Deselection on non-item clicks.
6550         * ListViewItem.cs:
6551           - Encapsulate most of the layout. Add some internal props to trigger
6552           layout.  Move to a model where Items invalidate themselves instead
6553           of just invalidating the whole control every time something changes.
6554           - Invalidate on Text/Caption changes.
6555           - switch to an offset based layout model to avoid having to absolute
6556           position every element on item moves.
6557           - correct checkbox layout to conform to MS layout.
6558         * ThemeWin32Classic.cs:
6559           - refactor some column header drawing code.
6560           - fix string justification for column headers (#76821)
6561           - make SmallIcon labels top justified for compat with MS impl.
6562         * ThemeClearlooks.cs:
6563           - adjust to new ListViewItem internal checkbox bounds api.
6564
6565 2006-02-27  Jackson Harper  <jackson@ximian.com>
6566
6567         * Control.cs:  Change where implicit controls fall in the zorder.
6568         They are now on top of all children.
6569         - Synced AddImplicit code with Add
6570         - Removed unused enumerator.
6571         * SizeGrip.cs: Remove the TODO as its been TODONE.
6572
6573 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
6574
6575         * TextControl.cs(Insert): Combine the last lines unless the insertion
6576           string ends with \n\n, otherwise we leave one line too many (Fixes
6577           something I noticed with the testapp for #77526; the bug itself was
6578           already fixed in the previous checkin)
6579
6580 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
6581
6582         * RichTextBox.cs:
6583           - SelectionColor and SelectionFont methods no longer set absolute
6584             styles. Instead, the keep font or color respectively (This 
6585             resolves a long-standing FIXME in the code)
6586           - When flushing RTF text, the insert code now considers text trailing
6587             behind the insertion point (Fixes the bug where when replacing
6588             the selected text via SelectedRTF the remainder of the line behind 
6589             the selection would stay on the first insertion line)
6590         * TextBoxBase.cs:
6591           - AppendText now updates the selection points after inserting text
6592           - AppendText now ensures that the last tag (sometimes 0-length) of
6593             the document is used for the style information (Fixes part of 
6594             bug #77220)
6595         * TextControl.cs:
6596           - Created new FontDefiniton class to allow describing partial style
6597             changes
6598           - StreamLine() now takes a lines argument, to allow it to decide
6599             whether an encountered zero-length tag is the last in the document
6600             (which must be kept to not loose the font/color contained in it,
6601             for later appends)
6602           - Created Combine() and Split() methods for Marker structs, to 
6603             support marker updates due to reformatted documents (soft line
6604             wraps)
6605           - Implemented Document.CaretTag setter
6606           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
6607             of the last line (Not the cause, but also exposed by bug #77220)
6608           - Added LineTag argument to InsertString method, to allow callers
6609             to force a certain tag to be used (required to force use of the
6610             trailing zero-length tag of a document)
6611           - Now updating markers in Combine(), to avoid stale tag markers
6612           - Added some method descriptions to aid maintenance
6613           - Implemented new FormatText concept, allowing additive/subtractive
6614             formatting by only specifying the components that are to be 
6615             changed. This was needed for resolving the RTB.SelectedColor/
6616             RTB.SelectedFont fixmes
6617           - Added Break() support method to allow breaking up linetags (used
6618             for partial formatting)
6619           - Added GenerateTextFormat() method. It is used for partial 
6620             formatting and allows to generate a full font/color from given
6621             attributes and an existing tag.
6622
6623 2006-02-26  Jackson Harper  <jackson@ximian.com>
6624
6625         * XplatUIX11.cs:  Use the correct caption height.
6626         - Translate hittest coordinates to screen coords to match MS.
6627         * XplatUIWin32.cs: When we create MDI windows we need to reset
6628         some of the style flags, so we get a nice blank window, and can
6629         draw all the decorations ourselves.
6630         - Set a clipping rectangle on the non client paint event, the
6631         window manager drawing code needs one.
6632         * Form.cs: The window manager needs to know when the window state
6633         has been updated.
6634         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
6635         don't need to factor in border and title sizes in these
6636         methods. TODO: Remove the args and fix the call points.
6637         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
6638         properly.
6639         - Let the driver set the cursors.
6640         - Improve active window handling
6641         - Correct sizes for title bars and buttons.
6642         - Match MS drawing better
6643         * MdiWindowManager.cs: We don't need to handle border style
6644         updates specially anymore.
6645         - Check for scrollbars when windows are done moving
6646         - Handle Active properly.
6647         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
6648         correctly. I am spewing the exception though, so we don't hide the
6649         bugs.
6650         
6651 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
6652
6653         * DataGridViewRowPostPaintEventArgs.cs,
6654           DataGridViewCellPaintingEventArgs.cs,
6655           DataGridViewRowCollection.cs,
6656           DataGridViewRowPrePaintEventArgs.cs,
6657           DataGridViewCell.cs: Clear a few warnings and implement a few
6658           exceptions that should be thrown.
6659
6660 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6661
6662         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
6663           'inheriting' our parent's (non-default) cursor. (Part of
6664            the fix for #77479)
6665
6666 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
6667
6668         * XplatUIX11.cs: Fixed cast to make csc happy
6669
6670 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6671
6672         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
6673           it's for the client area (part of fix for #77479 and needed
6674           for MDI window cursor handling)
6675         * XplatUIX11.cs
6676           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
6677             the appropriate default cursors and also passing the message
6678             up the parent chain 
6679           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
6680             for non-client areas
6681
6682 2006-02-15  Jackson Harper  <jackson@ximian.com>
6683
6684         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
6685         is a real MDI window
6686
6687 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
6688
6689         * X11DesktopColors.cs: Instead of checking the desktop session
6690           string for "KDE" check if it starts with "KDE"
6691
6692 2006-02-10  Jackson Harper  <jackson@ximian.com>
6693
6694         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
6695         systems).
6696
6697 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
6698
6699         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
6700           errors
6701         * ColorDialog.cs:
6702           - Got rid of the panel. All controls are now directly added to
6703             the dialog form
6704           - Changed to mono coding style
6705
6706 2006-02-10  Jackson Harper  <jackson@ximian.com>
6707
6708         * InternalWindowManager.cs: We don't need the set visibility to
6709         false hack anymore now that peter has written beautiful shutdown
6710         code.
6711
6712 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
6713
6714         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
6715           where already explicitly destroyed
6716
6717 2006-02-10  Jackson Harper  <jackson@ximian.com>
6718
6719         * MdiClient.cs: Handle the case where windows are too high or to
6720         the left and we need scrollbars.
6721
6722 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
6723
6724         * MimeIcon.cs: Added some icons
6725         * FileDialog.cs:
6726           - Fixed bug #77477
6727           - Got rid of the panel. All controls are now directly added to
6728             the dialog form
6729           - Changed to mono coding style
6730           - On Linux "My Computer" and "My Network" will now show some
6731             more usefull information. A new class, MasterMount, gathers
6732             this information from /proc/mount. Updated MWFFileView to make
6733             use of this information
6734           - Fixed a bug that caused FileDialog to crash when
6735             ".recently_used" file had a zero size
6736           - FilterIndex does now what it should
6737           - Some Refactoring
6738         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
6739             FileDialog changes
6740
6741 2006-02-09  Jackson Harper  <jackson@ximian.com>
6742
6743         * ComboBox.cs: Don't touch if null.
6744
6745 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
6746
6747         * Cursor.cs: 64bit safeness fix
6748         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
6749
6750 2006-02-09  Jackson Harper  <jackson@ximian.com>
6751
6752         * Form.cs: If a form is made into an MDI form update the styles so
6753         all the props can get set correctly.
6754         - Kill the mdi_container when we dont need it anymore.
6755         * InternalWindowManager.cs: Add missing NOT
6756
6757 2006-02-08  Jackson Harper  <jackson@ximian.com>
6758
6759         * InternalWindowManager.cs: Respek clipping when drawing MDi
6760         decorations.
6761
6762 2006-02-08  Jackson Harper  <jackson@ximian.com>
6763
6764         * Hwnd.cs: Add bits to track non client expose events.
6765         * XplatUIX11.cs: Track non client expose events on the hwnd. This
6766         gives us a proper invalid rect and will allow for some nice
6767         optimizations with NC client drawing
6768         - MDI windows are children windows, so move their style handling
6769         into the child window block.
6770         * InternalWindowManager.cs: Remove a state reset that was
6771         getting invoked at the wrong time. Fixes managed windows getting
6772         into a 'stuck' captured state.
6773
6774 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
6775
6776         * TextControl.cs (Document.ctor): Now initializing 
6777           selection_anchor. Fixes #77493
6778
6779 2006-02-07  Jackson Harper  <jackson@ximian.com>
6780
6781         * TrackBar.cs: The increment/decrements were backwards.
6782
6783 2006-02-07  Mike Kestner  <mkestner@novell.com>
6784
6785         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
6786         to the instance itself.
6787
6788 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
6789
6790         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
6791           on ulongs and pointers, the size differs between 32bit and 64bit
6792           systems. 
6793
6794 2006-02-07  Mike Kestner  <mkestner@novell.com>
6795
6796         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
6797         for 64 bit platforms to work around a metacity bug. 
6798
6799 2006-02-07  Jackson Harper  <jackson@ximian.com>
6800
6801         * TrackBar.cs: Process the input keys we need, and hookup to
6802         KeyDown instead of using WndProc, so we get key messages.
6803
6804 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
6805
6806         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
6807           machine we're on. 
6808         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
6809           we need to translate the XdndVersion atoms array before sending it
6810
6811 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
6812
6813         * XplatUIX11.cs: 
6814           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
6815             number of bits for the property, not the number of bytes. The
6816             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
6817             but would not crash since it specified 8 bits instead of 4 bits)
6818           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
6819             defined as XID -> long in the C headers)
6820           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
6821             references since those are now IntPtr to begin with
6822           - Switched all Atom.XXX 'int' casts to IntPtr casts
6823           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
6824           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
6825           - Added XChangeActivePointerGrab DllImport (for X11DnD)
6826         * X11Structs.cs:
6827           - Changed 'int' type for Atoms in XEvent structures to IntPtr
6828           - Changed atom in HoverStruct to be IntPtr
6829         * X11DnD.cs:
6830           - Removed local DllImports, switched code to use those from XplatUIX11
6831           - Removed/fixed casts related to the switch of Atom to be a IntPtr
6832
6833 2006-02-06  Mike Kestner  <mkestner@novell.com>
6834
6835         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
6836         method signatures in the import region.  There may still be some
6837         lingering struct marshaling issues, as I didn't drill down into those.
6838         Yet.
6839
6840 2006-02-06  Jackson Harper  <jackson@ximian.com>
6841
6842         * ComboBox.cs: Dont manually set the top_item, this is computed
6843         when the scrollbar position is set.
6844
6845 2006-02-06  Mike Kestner  <mkestner@novell.com>
6846
6847         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
6848         startup crashes on amd64.  There's other fixes needed.  All pinvoke
6849         usage of Atom needs to be mapped to IntPtr for example.  And there are
6850         likely other int/long issues to be addressed.
6851
6852 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
6853
6854         * FileDialog.cs: One more...
6855
6856 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6857
6858         * FileDialog.cs: Next try
6859
6860 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6861
6862         * FileDialog.cs: First part of fix for #77464
6863
6864 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6865
6866         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
6867           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
6868           AcceptButton border drawing.
6869
6870 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
6871
6872         * Form.cs: Moved positioning of form after auto scaling is applied,
6873           otherwise it would possibly use wrong form size.
6874
6875 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
6876
6877         * Control.cs (RecreateHandle): No need to re-create any child
6878           controls, the child windows will get destroyed automatically by
6879           the windowing system or driver, and re-created when the handle
6880           is being accessed the first time. Fixes #77456
6881         * Form.cs: No longer setting the form to closing if the handle is 
6882           being recreated. This seems like the right thing to do, don't
6883           have a bug or testcase for this, though.
6884
6885 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
6886
6887         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
6888           controls to avoid unwanted side effects
6889
6890 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
6891
6892         * Control.cs: 
6893           - ScaleCore needs to scale the bounds, not the ClientSize of the 
6894             control. Fixes #77416.
6895           - DefaultSize is 0,0 for control
6896         * TextBoxBase.cs: 
6897           - DefaultSize is 100, 20
6898           - SetBoundsCore: Now enforcing the height, no matter if the provided
6899             height is more or less than the preferred one, as long as AutoSize
6900             is on
6901         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
6902
6903 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
6904
6905         * Control.cs:
6906           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
6907             call unless both performLayout is true *and* we have a pending
6908             layout change
6909           - ResumeLayout: MS does not completely nest Suspend and Resume,
6910             they bottom out at 0, fixed our code to match that.
6911           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
6912             SetBoundsCore, we were updating even when we shouldn't. This fixes
6913             swf-anchors mis-anchoring when resizing the app fast and lots.
6914           - UpdateDistances: Now only setting the left and top distance if 
6915             we have a parent and are not suspended, this is based on
6916             a suggestion by Don Edvaldson in bug #77355.
6917           - OnVisibleChanged: Fixed logic when to create the control. We may
6918             not create the control if we have no parent or if it's not visible;
6919             switched to using Visible property instead of is_visible field 
6920             since the property also considers parent states. This fixes a bug
6921             when starting Paint.Net
6922
6923 2006-02-02  Jackson Harper  <jackson@ximian.com>
6924
6925         * Form.cs: If the forms handle hasn't been created yet don't call
6926         into xplatui to make it top most, just set the topmost flag on the
6927         form in CreateParams
6928         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
6929
6930 2006-02-01  Jackson Harper  <jackson@ximian.com>
6931
6932         * ScrollableControl.cs: Refactored the Recalculate method a
6933         little, this wasn't handling all the variants of bottom and right
6934         bars needed to be added and added/removed based on their
6935         counterparts being added/removed (which changes the drawable
6936         size). Also we special case client widths and heights of 0 and
6937         don't add the scrollbar for those.
6938
6939 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
6940
6941         * XplatUIX11.cs: 
6942           - Added method to get AbsoluteGeometry(); currently unused, but might
6943             be used in the future, if we try again to figure out toplevel
6944             coordinates with some more crappy window managers
6945           - Added FrameExtents() method to retrieve the WM set decoration size
6946           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
6947             to deal with at least KDE, FVWM and metacity (Fixes #77092)
6948         * Hwnd.cs: 
6949           - Added whacky_wm tracking var for metacity
6950           - Added logic to have default menu height if the actual menu height
6951             has not yet been calculated (part of fix for #77426)
6952         * Form.cs: Keep track whether client size has been set and re-set 
6953           it if a menu is added/removed afterwards (Fixes #77426)
6954
6955 2006-01-31  Jackson Harper  <jackson@ximian.com>
6956
6957         * Control.cs: When a new Site is set on the component attempt to
6958         pull the AmbientProperties from it.
6959
6960 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
6961
6962         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
6963           in the background of the owning form. Fixes #77332
6964
6965 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
6966
6967         * MimeIcon.cs: Fix for #77409
6968
6969 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
6970
6971         * XplatUIX11GTK.cs: Initial import
6972
6973 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
6974
6975         * FixedSizeTextBox: fixes class signature
6976
6977 2006-01-30  Jackson Harper  <jackson@ximian.com>
6978
6979         * FixedSizeTextBox.cs: New internal class that represents a
6980         textBox that will not be scaled.
6981         * TreeView.cs:
6982         * ComboBox.cs:
6983         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
6984         standard TextBox.
6985                 
6986 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
6987
6988         * XplatUIX11.cs: Retrieve default screen number instead of
6989           assuming 0. Attempted fix for #77318
6990
6991 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
6992
6993         * XplatUIWin32.cs: 
6994           - GetWindowPos: When a window is parented by FosterParent, use 
6995             the desktop instead of FosterParent as the base to get coordinates
6996           - CreateWindow: Don't make FosterParent the parent window for Popups
6997             if we don't want a taskbar entry, Popups automatically don't get one
6998         * Hwnd.cs: Need to call remove to actually remove the key from the
6999           hash table
7000
7001 2006-01-30  Mike Kestner  <mkestner@novell.com>
7002
7003         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
7004
7005 2006-01-30  Jackson Harper  <jackson@ximian.com>
7006
7007         * TreeView.cs:
7008         * TreeNode.cs: Raise events no matter how the treenode is
7009         checked. Patch by Don Edvalson.
7010
7011 2006-01-30  Jackson Harper  <jackson@ximian.com>
7012
7013         * TreeNode.cs: Signature fix.
7014
7015 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
7016
7017         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
7018
7019 2006-01-20  Mike Kestner  <mkestner@novell.com>
7020
7021         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
7022         event forwarding when menus are active.
7023         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
7024         Most of the patch is pdb's with a little rework.
7025
7026 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7027
7028         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
7029           Removed GetMenuDC and ReleaseMenuDC methods; replaced
7030           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
7031         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
7032         * InternalWindowManager.cs: Added use of PaintEventStart/End to
7033           handling of WM_NCPAINT message, now passing the PaintEventArgs to
7034           the PaintWindowDecorations method
7035         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
7036         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
7037         * MenuAPI.cs: Made tracker window invisible
7038         * XplatUIWin32.cs:
7039           - Removed GetMenuDC and ReleaseMenuDC methods
7040           - Implemented the client=false path for PaintEventStart and
7041             PaintEventEnd
7042
7043 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7044
7045         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
7046         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
7047           styles
7048         * Form.cs: 
7049           - MaximizeBox, MinimizeBox: Recreate the handle when setting
7050             the style
7051           - CreateParams: Reworked the styles to match MS look'n'feel,
7052             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
7053             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
7054
7055 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7056
7057         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
7058           window is not mapped, since otherwise every form that's being 
7059           created is considered minimized, which is wrong.
7060         * Form.cs: Catching the exception and returning our internal value
7061           instead
7062
7063 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7064
7065         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
7066           SetWindowMinMax() to have means to tell the driver about the minimum,
7067           maximum and maximized state window sizes. (Part of the fix for #76485)
7068         * Form.cs:
7069           - Implemented tracking of minimum and maximum window size, now calling
7070             new SetWindowMinMax() driver method to tell the driver (Part of the
7071             fix for #76485)
7072           - Finished handling of WM_GETMINMAXINFO method, now setting all values
7073             (Completes fix for #76485)
7074           - Calling new SetWindowMinMax driver method when the handle for a 
7075             form is created, to make sure the driver knows about it even if
7076             the values have been set before the window was created
7077           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
7078             to avoid messing up our anchoring calculations (partial fix
7079             for #77355)
7080         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
7081         * XplatUIX11.cs:
7082           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
7083           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
7084             (and presumably other freedesktop.org compliant WMs). Left the
7085             assumption unmapped=minimized, needed for SetVisible to work.
7086           - Now setting the window state when creating windows
7087           - Fixed SetVisible to consider/set the window state when mapping
7088             a Form. We cannot set the state before it's mapped, and we cannot
7089             use Form.WindowState once it's mapped (since it would ask the
7090             driver and get 'normal'. Therefore, we grab the state before
7091             mapping, map, and then set state.
7092           - Implmemented SetWindowMinMax method; Metacity does not seem to
7093             honor the ZoomHints, though.
7094         * XplatUIWin32.cs:
7095           - Removed MINMAXINFO (moved to XplatUIStructs)
7096           - Added SetWindowMinMax stub (on Win32 the only way to set that
7097             information is in response to the WM_GETMINMAXINFO message, which
7098             is handled in Form.cs)
7099           - Added logic to SetVisible to set the proper window state when a 
7100             form is made visible (fixes #75720)
7101
7102 2006-01-26  Jackson Harper  <jackson@ximian.com>
7103
7104         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
7105         same way we handle them with Invoke.
7106
7107 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
7108
7109         * Form.cs:
7110           - Added tracking of window state so CreateParams can return
7111             the appropriate style
7112           - Moved setting of WS_CAPTION style in CreateParams to allow
7113             styles without caption
7114         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
7115           control if the TextBox property is accessed. Fixes #77345
7116         * Control.cs:
7117           - get_Created: now uses is_disposed and is_created to determine
7118             return value (suggested by Jackson)
7119           - CreateHandle: No longer exits if the handle is being recreated
7120           - RecreateHandle: If the handle is not yet created call the 
7121             appropriate method to create either control or handle. If the
7122             control is already created CreateHandle will simply exit instead
7123             of just creating the handle
7124         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
7125           now SendMessage WM_DESTROY directly to the control when DestroyWindow
7126           is called.
7127         * XplatUIX11.cs: 
7128           - When DestroyWindow is called, instead of waiting for the 
7129             DestroyNotification from X11, we directly post it to the WndProc
7130             and immediately dispose the hwnd object.
7131             Same applies to DestroyChildWindows, and this obsoletes the
7132             expose_pending tracking. Contrary to Win32 behaviour we destroy our
7133             child windows before our own, to avoid X11 errors.
7134           - Removed the direct sending of WM_PAINT on UpdateWindow
7135         * XplatUIWin32.cs:
7136           - Reworked DoEvents and GetMessage to allow access to internal queue
7137             even when trying non-blocking access to the queue.  Fixes #77335. 
7138             Based on a patch suggestion by Don Edvalson. The new private
7139             GetMessage can now also be used as a backend for a PeekMessage
7140             frontend version.
7141         * XplatUI.cs: Improved debug output for CreateWindow
7142
7143 2006-01-25  Jackson Harper  <jackson@ximian.com>
7144
7145         * Help.cs: Allow param to be null. Patch by Don Edvalson.
7146
7147 2006-01-24  Jackson Harper  <jackson@ximian.com>
7148
7149         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
7150         when we have a MaxDropItems lower then the selected index.
7151
7152 2006-01-24  Jackson Harper  <jackson@ximian.com>
7153
7154         * Control.cs: Don't allow selection of non visible controls, allow
7155         selection of controls without parents.
7156
7157 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7158
7159         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
7160         * DataGridDrawingLogic.cs: Add editing row only when is necessary
7161
7162 2006-01-23  Jackson Harper  <jackson@ximian.com>
7163
7164         * UpDownBase.cs: Make the textbox handle all the selection and
7165         tabbing. This fixes tabing to updown controls.
7166
7167 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7168
7169         * TextBoxBase.cs: fixes exception thown the object was null
7170
7171 2006-01-23  Jackson Harper  <jackson@ximian.com>
7172
7173         * ButtonBase.cs: Just use the base CreateParams. They set
7174         visibility and enabled correctly.
7175         * ComboBox.cs:
7176         * TrackBar.cs:
7177         * MonthCalendar.cs: Lets let the base set as much of the
7178         createparams as possible so we don't have duplicate code all over
7179         the place.
7180
7181 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
7182
7183         * ThemeGtk.cs: Added TrackBar and some experimental code to
7184           get double buffering back
7185
7186 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
7187
7188         * DataGrid.cs: Allows row number set internally higher than the last
7189         when creating a new row. Restores the editing functionality.
7190
7191 2006-01-20  Mike Kestner  <mkestner@novell.com>
7192
7193         * MimeIcon.cs: delay Image creation until the icons are accessed
7194         instead of creating 190 scaled images on GnomeHandler startup.
7195
7196 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
7197
7198         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
7199           first call base before processing the event. Fixes #77279
7200
7201 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
7202
7203         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
7204           that the stride for the GDI bitmap would match the stride of
7205           a DIB or a Cursor.
7206
7207 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
7208
7209         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
7210
7211 2006-01-19  Jackson Harper  <jackson@ximian.com>
7212
7213         * ComboBox.cs: Hookup the text controls keydown event so we get
7214         those when the text control has the focus.
7215
7216 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7217
7218         * Label.cs: Now using the base events instead of defining new ones;
7219           this allows us to just call the base properties without having to
7220           duplicate all base property logic 
7221
7222 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7223
7224         * Label.cs: A label by default is not a tabstop (Fixes one of our
7225           failing nunit tests)
7226
7227 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7228
7229         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
7230         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
7231
7232 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7233
7234         * Cursor.cs: Reimplemented creating cursor bitmaps without using
7235           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
7236           This fixes #77218
7237         * XplatUIWin32.cs: 
7238           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
7239             constructor creates images that can't be saved. Part of the fix
7240             for #76103
7241           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
7242           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
7243             bug fix for handling window state in forms properly)
7244
7245 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7246
7247         * ThemeGtk.cs: Simplify ScrollBar drawing
7248
7249 2006-01-18  Jackson Harper  <jackson@ximian.com>
7250
7251         * Splitter.cs: Set the default dock style for the splitter control
7252         in the constructor.
7253
7254 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7255
7256         * ThemeGtk.cs: Corrected StateType and ShadowType for
7257           gtk_paint_box
7258
7259 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7260
7261         * Control.cs: Make use of Theme.DoubleBufferingSupported
7262         * ThemeGtk.cs:
7263           - Added drawing for flat style buttons
7264           - Added ScrollBar drawing
7265
7266 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7267
7268         * ThemeClearlooks.cs: Removed some unneeded code.
7269         * ThemeGtk.cs: First part of ThemeGtk enhancements.
7270
7271 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7272
7273         * LinkLabel.cs: We need to update the hover drawing when
7274           leaving the control as well.
7275
7276 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
7277
7278         * DataGrid.cs: Clicking on non empty areas in the columns
7279            area was giving an exception
7280
7281 2006-01-17  Jackson Harper  <jackson@ximian.com>
7282
7283         * ThemeWin32Classic.cs:
7284         * ListView.cs: Do not draw/clip the headers when the header style
7285         is None.
7286
7287 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7288
7289         * DataGrid.cs: Fixes 77260
7290         
7291 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7292
7293         * DataGrid.cs: Clicking on a column on a empty grid was giving
7294           an exception
7295
7296 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7297
7298         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
7299           or any keypress will crash the grid.
7300
7301 2006-01-17  Mike Kestner  <mkestner@novell.com>
7302
7303         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
7304         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
7305         invisible/previously-visible items.
7306         [Fixes #76909]
7307
7308 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
7309
7310         * ThemeClearlooks.cs:
7311         - Added CL_Draw_Button method; now other theme controls that are 
7312           not derived from button or do not have a button can draw buttons
7313           too
7314         - Updated ComboBox drawing
7315         - Beautified RadioButton drawing
7316         - Corrected drawing of bottom and left tabs
7317         - Beautified DateTimePicker and MonthCalendar
7318         - Added CPDrawButton and CPDrawRadioButton
7319
7320 2006-01-16  Jackson Harper  <jackson@ximian.com>
7321
7322         * ComboBox.cs: Set the initial value of the scrollbar to the
7323         current index. Reduce the numbers of refreshs and IndexOfs called.
7324
7325 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
7326
7327         * FileDialog.cs: When the file listview is focused hitting the
7328           backspace key moves the fileview to the parent directory
7329
7330 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7331
7332         * Form.cs: 
7333           - Added RecreateHandle call when changing taskbar visibility to 
7334             trigger reparenting in Win32 driver (Fixes #75719)
7335           - If a window has minimize or maximize buttons, it cannot have
7336             a help button
7337         * XplatUIWin32.cs:
7338           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
7339             the toplevel form with FosterParent (A toolwindow not on the
7340             taskbar) (Fixes #75719)
7341           - Made FosterParent a toolwindow
7342
7343 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7344
7345         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
7346
7347 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7348
7349         * ToolTip.cs: If SetToolTip is called from a control and the mouse
7350           is currently over that control, make sure that tooltip_window.Text
7351           gets updated
7352
7353 2006-01-13  Mike Kestner  <mkestner@novell.com>
7354
7355         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
7356
7357 2006-01-13  Jackson Harper  <jackson@ximian.com>
7358
7359         * TreeView.cs: On MS GetNodeAt never actually factors in the X
7360         value passed.  Also redraw the selected node when we recieve
7361         focus, so tabbing between trees works correctly.
7362
7363 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7364
7365         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
7366           ~/.gconf/%gconf-tree.xml, so use
7367           .gconf/desktop/gnome/interface/%gconf.xml
7368
7369 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7370
7371         * TextControl.cs: Draw text in gray if control is disabled
7372
7373 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7374
7375         * TreeView.cs: Draw the focus rectangle outside the highlight, to
7376           make sure it's always visible. Fixes #76680.
7377
7378 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7379
7380         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
7381
7382 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
7383
7384         * PageSetupDialog.cs: Added.
7385         * PrintDialog.cs: Attributes.
7386         * PrintPreviewControl.cs: Updates.
7387         * PrintPreviewDialog.cs: Updates.
7388         
7389 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7390
7391         * Control.cs: Undid my selection check fix, since it's not needed
7392         * TextBoxBase.cs:
7393           - Now considering the presence of hscroll/vscroll when sizing
7394             vscroll/hscroll respectively. Fixed bug #77077
7395           - Added Left/Up/Down/Right to IsInputKey list to prevent
7396             ContainerControl from stealing them. This fixes what I broke
7397             with my last checkin.
7398
7399 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
7400
7401         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
7402           I finally understand how the property can be set without a setter :-)
7403
7404 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7405
7406         * Application.cs:
7407           - Switched RunLoop to use static Message.Create to create a 
7408             Message object
7409           - Added PreProcessMessage call in runloop for keyboard events; this
7410             is part of the fix for #77219, I overlooked this originally in the
7411             MSDN doc for PreProcessMessage
7412         * Control.cs:
7413           - Removed call to PreProcessMessage from handling of keyboard 
7414             messages; it's supposed to be done in the message pump
7415           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
7416             per MSDN documentation.
7417           - IsInputChar: All chars are input chars by default; removed the 
7418             parent calling chain, MS does not document that
7419           - PreProcessMessage: If IsInputChar is true, we want to return false
7420             to allow dispatching of the message
7421           - When selecting the next control, now also check that we're not
7422             selecting ourselves again and therefore return a false positive.
7423         * TextBoxBase.cs:
7424           - Tried to match return values for IsInputKey and ProcessDialogKey
7425             to what MS returns; moved processing of our special keys outside
7426             ProcessDialogKey since MS does not seem to return true on those.
7427           - Moved code that previously was in ProcessDialogKey into new private
7428             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
7429           - Reworked handling of WM_CHAR to not have to duplicate code from
7430             Control.cs anymore, instead we simply call down to base.
7431            
7432 2006-01-12  Jackson Harper  <jackson@ximian.com>
7433
7434         * ComboBox.cs: We always need to refresh the text area when
7435         EndUpdate is called. Fixes the combobox in the file dialog.
7436         * Control.cs: Don't create the creator_thread until the controls
7437         handle is created.  Also in InvokeRequired we check if the
7438         creator_thread is null. This gives the effect of InvokeRequired
7439         returning true if the controls handle is not created yet, and
7440         matches MS.
7441
7442 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7443
7444         * XplatUI.cs:
7445           - Added StartLoop() driver method. This is used to allow drivers to
7446             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
7447             loop for a particular thread
7448           - Added EndLoop() driver method. This is called once the message
7449             pump for the thread is shut down
7450           - Added SupportsTransparency method to allow the driver to indicate
7451             opacity support for windows
7452         * Form.cs:
7453           - Removed TODO attribute, completed AllowTransparency property
7454           - Added documented logic to Opacity
7455         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
7456           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
7457           versions of CompatibleTextRendering
7458         * X11Structs.cs: Added opacity atom to our atom enumeration
7459         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
7460           of a form might be set before it's reparented by the WM, and we need
7461           the opacity value without calling up to Form)
7462         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
7463           SupportsTransparency() driver methods
7464         * Application.cs: Now calling StartLoop and EndLoop driver methods
7465         * XplatUIX11.cs:
7466           - Added opacity atom registration
7467           - Added StartLoop()/EndLoop() methods. They're empty right now but
7468             will need to get implemented when we switch to a per-thread queue
7469           - Implemented SupportsTransparency() method
7470           - Implemented SetWindowTransparency() method
7471           - Added support for setting the opacity value when a window is
7472             reparented (since the opacity needs to be set on the WM frame)
7473         * XplatUIOSX.cs, XplatUIWin32.cs:
7474           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
7475
7476 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7477
7478         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
7479
7480 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7481
7482         * FileDialog.cs: Added ToolTip for MWFFileView
7483         * MimeIcon.cs: Rewrote GnomeHandler.
7484           - Get currently used gnome icon theme from
7485             ($HOME)/.gconf/%gconf-tree.xml
7486           - Make use of inherited icon themes
7487           - Support SVG icon themes like Tango via librsvg
7488
7489 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7490
7491         Revert's Jackson's revert which broke 2.0 builds.   Fix both
7492         builds. 
7493         
7494         * Application.cs: Move the use_compatible_text_rendering outside
7495         the NET_2_0 define.  If we ever need to use the
7496         use_compatible_text_rendering on the individual controls they will
7497         access the variable from the common shared code paths.
7498
7499 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7500
7501         * XplatUI.cs:
7502           - Added more granular debug options
7503           - Added method to print both window text and id
7504           - Switched debug output to use new Window() debug method
7505           - Added IsEnabled() driver method
7506           - Added EnableWindow() driver method
7507         * Form.cs:
7508           - Removed end_modal; no longer needed, new loop handles termination
7509             via 'closing' variable
7510           - If form is modal, setting DialogResult will now initiate loop
7511             termination via 'closing' variable
7512           - Added support for is_enabled/WS_DISABLED to CreateParams
7513           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
7514             does all the work
7515           - Removed code that's now in RunLoop from ShowDialog()
7516           - Added various documented sanity checks to ShowDialog()
7517           - Added handling of WM_DESTROY message; we set 'closing' on getting
7518             the message to indicate the message pump to terminate
7519           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
7520             send by the Application.ExitThread method. (We send the message
7521             to destroy the window after all other events have been
7522             processed through the queue, instead of destroying the handle 
7523             directly)
7524           - Moved code from Close() method to WM_CLOSE handler; added logic
7525             to only send close-related events if the form is not displayed
7526             modal
7527         * Splitter.cs (..ctor): Fixed typo in resource name
7528         * Control.cs:
7529           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
7530             brush now
7531           - set_Cursor: Now only setting calling into XplatUI if the handle for
7532             the control is already created; this avoids implict handle creation
7533             or crashes if it's not created
7534           - set_Enabled: Now setting the enabled state via the new driver method
7535             instead of just tracking it
7536           - CreateParams: Added logic to set WS_DISABLED based on enabled state
7537           - CreateControl: Reordered event firing and method calls to more
7538             closely fire events in the order MS does. Now setting the
7539             enabled state in the driver when creating the control.
7540           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
7541             match MS order
7542         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
7543           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
7544         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
7545         * Hwnd.cs:
7546           - Added tracking of window enabled state (get_Enabled/set_Enabled)
7547           - Added EnabledHwnd property to easily allow a driver to find the
7548             handle of the first enabled window in the parent chain (this is
7549             used by drivers to pass up input events of disabled windows)
7550         * XplatUIDriver.cs: Added IsEnabled() method
7551         * Application.cs:
7552           - Removed crude and obsolete exiting tracking variable
7553           - Removed internal ModalRun(); replaced by RunLoop()
7554           - Implemented private CloseForms() method to allow closing all 
7555             windows owned by a particular (or all) threads
7556           - Exit() now properly closes all windows without forcing the message
7557             pump to quit
7558           - Removed obsolete InternalExit() method
7559           - Changed Run() methods to use new RunLoop() message pump
7560           - Implemented new RunLoop() method for both modal and non-modal forms
7561         * CommonDialog.cs:
7562           - get_CreateParams: Added setting of WS_DISABLED
7563           - Simplified ShowDialog(); now all the work is done in RunLoop(),
7564             invoked via Form.ShowDialog()
7565         * NativeWindow.cs: We don't remove the window from the collection when
7566           the handle is destroyed; there might still be messages for it in the
7567           queue (mainly the resulting WM_DESTROY); instead it will be removed
7568           when Control calls InvalidateHandle in the WM_DESTROY handler
7569         * XplatUIX11.cs:
7570           - CreateWindow: Added logic to handle the WS_DISABLED window style
7571           - EnableWindow: Implemented based on Hwnd.Enabled
7572           - GetMessage: Reset PostQuitState so the method can be called again
7573           - Implemented support for disabled windows (passing messages to the
7574             first enabled parent) in handling all input messages
7575           - Added optimizations for handling Expose events
7576           - Implemeted new driver method IsEnabled()
7577           - Now always resetting paint pending tracking vars when we start paint
7578           - Re-implemented UpdateWindow via just sending a WM_PAINT message
7579         * XplatUIOSX.cs: Added IsEnabled method stub
7580         * XplatUIWin32.cs: Implemented new IsEnabled() method
7581
7582 2006-01-11  Jackson Harper  <jackson@ximian.com>
7583
7584         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7585         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
7586         variables a little.
7587         * ColorDialog.cs: Clear out the old form before adding the new
7588         panel.  
7589
7590 2006-01-11  Jackson Harper  <jackson@ximian.com>
7591
7592         * X11Dnd.cs: Make sure to add all the text formats when adding
7593         strings to the data object.
7594         * TreeNodeCollection.cs: When adding to a sorted tree we need to
7595         do some redrawing too.  Also change the UpdateNode to an
7596         UpdateBelow so the newly added node gets painted.
7597         
7598 2006-01-11  Miguel de Icaza  <miguel@novell.com>
7599
7600         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7601         LinkLabel.cs, PropertyGrid.cs: Implement the
7602         UseCompatibleTextRendering property for 2.x
7603
7604         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
7605
7606 2006-01-11  Jackson Harper  <jackson@ximian.com>
7607
7608         * TreeView.cs: Use the property for setting the selected node so
7609         the correct events get raised.
7610         * TreeNode.cs: Update the tree when the fore/back colours of a
7611         node are set.
7612
7613 2006-01-10  Jackson Harper  <jackson@ximian.com>
7614
7615         * TreeView.cs: Allow setting SelectedNode to null.
7616
7617 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7618
7619         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
7620
7621 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7622
7623         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
7624
7625 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7626
7627         * PrintDialog.cs: Added attributes and set default property values.
7628
7629 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7630
7631         * PrintControllerWithStatusDialog.cs: 
7632         Added PrintControllerWithStatusDialog.
7633
7634 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7635
7636         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
7637         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
7638
7639 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7640
7641         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
7642
7643 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7644
7645         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
7646         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
7647
7648 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7649
7650         * MimeIcon.cs: Added internal class SVGUtil.
7651
7652 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7653
7654         * FileDialog.cs: Don't crash if there are two files with the
7655           same name but different locations.
7656
7657 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
7658
7659         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
7660         dates across multiple month grids. Used to not highlight entire 
7661         month, but does now.
7662         
7663 2006-01-06  Jackson Harper  <jackson@ximian.com>
7664
7665         * MonthCalendar.cs: Removed DoEvents call to prevent a running
7666         message loop. Change timer intervals to numbers that seem more
7667         natural.
7668
7669 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
7670
7671         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
7672           object for location info since screen object is now implemented.
7673
7674 2006-01-05  Jackson Harper  <jackson@ximian.com>
7675
7676         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
7677         * AsyncMethodResult.cs: We no longer use a WeakReference for the
7678         AsyncMethodResult, this is because we ALWAYS want the
7679         ManualResetEvent to get set.
7680         * Control.cs: When disposing use an async invoke to call shutdown
7681         code, so that thigns don't block on the finalizer thread.  Also
7682         check if we even have a message loop before trying to send
7683         messages, if we don't then don't bother sending messages.
7684         - No more weak references for async methods
7685         * XplatUIDriver.cs: No more weak references for async methods.
7686
7687 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7688
7689         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
7690           returns two FontFamily with the same name
7691
7692 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
7693
7694         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
7695           drawing disabled text. Instead using the ColorGrayText color
7696
7697 2006-01-04  Jackson Harper  <jackson@ximian.com>
7698
7699         * TreeNode.cs: redraw the node when its image index is changed.
7700
7701 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
7702
7703         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
7704           time I checked there are no others like it.
7705
7706 2006-01-04  Jackson Harper  <jackson@ximian.com>
7707
7708         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
7709         this gives the behavoir I was looking for.
7710         * Control.cs: Special case Invoking EventHandlers, this matches MS
7711         and fixes part of bug #76326.
7712
7713 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7714
7715         * ThemeClearlooks.cs, FileDialog.cs:
7716           - Reflect the latest Theme class changes
7717           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
7718             with DateTime
7719             
7720 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7721
7722         * Theme.cs: Cache UI resource images and resize them if needed
7723
7724 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
7725
7726         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
7727           is called. This fixes the crash in Nexxia when setting the font
7728           attributes in the chat. [However, RTF needs a look-over to make sure
7729           that all SelectionXXX methods handle the special case that selection
7730           is empty and therefore the change must be applied to all text starting
7731           at the cursor/selection start]
7732
7733 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
7734
7735         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
7736           XplatUIOSX.cs: Added SendMessage and PostMessage methods
7737         * X11Keyboard.cs: Switched to new way of calling PostMessage
7738
7739 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
7740
7741         * Theme.cs: Added theme interface for images to allow the theme to
7742           control what images are used for things like FileDialog, MessageBox
7743           icons, etc.
7744         * MessageBox.cs: Now uses the new Theme icon/image interfaces
7745
7746 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
7747
7748         * FileDialog.cs:
7749           - Removed some dead code
7750           - Opening a recently used file does work now
7751           - Small UI enhancements
7752           - Refactoring
7753
7754 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
7755
7756         * FileDialog.cs: Forgot too add __MonoCS__
7757
7758 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
7759
7760         * FileDialog.cs: We are able to read recently used files now let's
7761           go on and write them.
7762
7763 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
7764
7765         * FileDialog.cs: Breathe some life into "last open"/"recently used"
7766           button
7767         * MimeIcon.cs: Do a check for the top level media type also
7768
7769 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
7770
7771         * ThemeClearlooks.cs:
7772           - Added CPDrawStringDisabled
7773           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
7774             some chars if the text doesn't fit into text_rect
7775           - DrawListViewItem: If View = View.LargeIcon center the image;
7776             rewrote the drawing of ListViewItem.Text if View = 
7777             View.LargeIcon
7778
7779 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
7780
7781         * MimeIcon.cs: Use default KDE icon theme if there is no
7782           "48x48" directory for the current icon theme, fixes #77114
7783         * Mime.cs: Disable not working and actually not used code. 
7784         * ThemeWin32Classic.cs:
7785           - Replace "new SolidBrush" in GetControlBackBrush and
7786             GetControlForeBrush with ResPool.GetSolidBrush
7787           - Changed DrawListViewItem from private to protected virtual
7788         * FileDialog.cs:
7789           - Added form.MaximizeBox = true
7790           - Don't throw an exception if there is a broken symbolic link
7791
7792 2005-12-23  Jackson Harper  <jackson@ximian.com>
7793
7794         * TabControl.cs: Give the panels focus, keyboard navigation is
7795         fixed so this works correctly now.
7796         - We need these key events also.
7797         * ToolBar.cs: Remove some of the poor mans double buffering.
7798         
7799 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
7800
7801         * ComboBox.cs: The internal TextBox now returns the focus.
7802
7803 2005-12-23  Jackson Harper  <jackson@ximian.com>
7804
7805         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
7806
7807 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
7808
7809         * Control.cs: Removed debug code
7810         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
7811           implicit children
7812
7813 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
7814
7815         * Control.cs: When creating the control, update the Z-order after
7816           all it's children are created, too. (Fixes nexxia not showing
7817           picturebox bug)
7818
7819 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
7820
7821         * Control.cs: Do not update the anchoring distances if layout is
7822           suspended, instead do it once layout is resumed
7823
7824 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
7825
7826         * Control.cs: 
7827           - After many hours of debugging, for both Jackson and
7828             myself, it turns out that it helps to set the parent of a control
7829             if you want to actually see it onscreen. In the spirit of that
7830             discovery, we're now setting the parent of the control and
7831             it's children when the control's handle is created. This fix
7832             will make Lutz Roeder's Reflector run happily. 
7833           - now just creating the handle instead of the whole control when
7834             getting a graphics context for the control.
7835
7836 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
7837
7838         * ScrollableControl.cs: When calculating the canvas, don't consider
7839           the scrollbar widths. Instead, predict if horizontal scrollbar
7840           will affect canvas when deciding on vertical display and vice versa.
7841
7842 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
7843
7844         * RichTextBox.cs: Set default RTF font for documents that don't
7845           have a font table (Fixes #77076)
7846
7847 2005-12-22  Jackson Harper  <jackson@ximian.com>
7848
7849         * TextBoxBase.cs: It's difficult to do, but you can have an empty
7850         clipboard. This prevents a NullRef in that case.
7851         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
7852         clipboard. PRIMARY is for the currently selected text only. (We
7853         should implement PRIMARY at some point.
7854
7855 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7856
7857         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
7858           a Unicode function with a structure that was defined in Ansi way.
7859           This fixes #76942.
7860
7861 2005-12-21  Jackson Harper  <jackson@ximian.com>
7862
7863         * StatusBar.cs: Statusbar handles its fore/back colours on it's
7864         on. Because thats how it rolls. (and this avoids it using ambient
7865         colours).
7866         * ThemeWin32Classic.cs: Use the proper back color for filling.
7867         * Menu.cs: Use the system menu bar color for drawing menu
7868         bars. Using the window back color will bring ambient colours into
7869         the picture.
7870
7871 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
7872
7873         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
7874           Bitmaps were created and not disposed.
7875
7876 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7877
7878         * Control.cs (CreateControl): Don't do anything if the control is
7879           already created, otherwise we'd fire the OnCreated event more than
7880           once
7881
7882 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
7883
7884         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
7885           will always match. Instead return -1. Fixes #76464.
7886
7887 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7888
7889         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
7890           neither the beginning nor the end of the line (Fixes bug #76479)
7891
7892 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
7893
7894         * Control.cs:
7895           - ControlNativeWindow.ControlFromHandle(): Now handling situation
7896             where handle is invalid
7897           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
7898             instead of slower linear search
7899         * NativeWindow.cs: Don't remove the window from the hashtable until
7900           after the driver has destroyed it (since the driver might use
7901           Control.FromHandle to lookup the control object
7902         * Hwnd.cs: Added DestroyPending property to track if a window is 
7903           already destroyed as far as the driver is concerned and only hasn't
7904           yet notified the control
7905         * XplatUIX11.cs:
7906           - Activate(): Check if the window is still valid before using the 
7907             handle
7908           - Implemented DestroyChildWindow() method to mark child windows as
7909             destroyed when a window is destroyed. This prevents situations 
7910             where we might call an X method based on queued events for a
7911             window that already has been destroyed but we haven't yet pulled
7912             the destroy method from the queue.
7913           - Added a call to the new DestroyChildWindow() method to the drivers
7914             DestroyWindow code. Also now marking the destroyed window itself
7915             as pending
7916
7917 2005-12-20  Jackson Harper  <jackson@ximian.com>
7918
7919         * StatusBar.cs:
7920         * StatusBarPanel.cs: Don't calculate panel sizes on draw
7921         anymore. Just do them when needed, also track the rects of panels
7922         so that we can optimize refreshing more in the future.
7923
7924 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
7925
7926         * ColorDialog.cs: Fixed focus drawing in small color controls
7927
7928 2005-12-19  Jackson Harper  <jackson@ximian.com>
7929
7930         * InternalWindowManager.cs:
7931         * MdiWindowManager.cs: Cleanup some coordinate system changes so
7932         moving windows works properly.
7933
7934 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
7935
7936         * Control.cs: 
7937           - Removed call to InitLayout() from SetBoundsCore(); doc says
7938             it's only called when a control is added to a container
7939           - Split InitLayout logic, moved to separate UpdateDistances() method
7940             since we need to perform those calculations more often than just
7941             when adding the control to a container. (Needed to fix #77022)
7942           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
7943           - Reduced the OnBindingContextChanged events count, don't send them
7944             unless the control is created, we still aren't totally matching
7945             MS, but I can't quite figure out some of their rules
7946
7947 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
7948
7949         * ThemeClearlooks.cs: Corrected distance between ProgressBar
7950           stripes
7951
7952 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
7953
7954         * ThemeClearlooks.cs:
7955           - Updated ProgressBar drawing
7956           - Corrected drawing of ScrollBars and scroll buttons
7957           - Some temporary fixes for minor pixel artefacts
7958
7959 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
7960
7961         * Control.cs:
7962           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
7963             cause events to be sent in the same order as MS does.
7964           - Added ChangeParent() method to trigger various OnXXXChanged events
7965             that need to be fired when a parent changes (This is a reworking
7966             of the patch from r54254, with the X11 errors fixed)
7967           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
7968             since on MS we get OnLayoutChanged events when calling Clear()
7969           - Changed Enabled property to consider parent state as well, if a
7970             parent is not enabled, the control will not be either
7971           - Changed Parent property to simply call Controls.Add() since that
7972             now does all the work required, this way we avoid code duplication
7973           - Threw in a few OnBindingsContextChanged calls to try and match
7974             when MS sends them. We seem to send a few too many, though.
7975           - Added call to CreateControl when adding the control to a parent.
7976             We were never calling CreateControl. Still needs some work, in
7977             some places we treat HandleCreated and ControlCreated as equal, 
7978             which is wrong
7979           - Removed obsolete commented out code from UpdateZOrder()
7980
7981 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
7982
7983         * ThemeClearlooks.cs: Updated TrackBar drawing.
7984
7985 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
7986
7987         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
7988
7989 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
7990
7991         * FileDialog.cs: Add the Help button and the open readonly
7992           checkbox only if needed
7993
7994 2005-12-16  Jackson Harper  <jackson@ximian.com>
7995
7996         * Control.cs: Make sure we have an active menu before trying to
7997         process commands on it. Prevents menu-less forms from crashing
7998         when Alt is pressed.
7999         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
8000         Dieter Bremes.
8001         * RichTextBox.cs: Expand statement to help out gmcs and fix the
8002         2.0 build.
8003
8004 2005-12-16  Jackson Harper  <jackson@ximian.com>
8005
8006         * InternalWindowManager.cs: Don't translate tool windows screen
8007         coordinates. This fixes windows 'bouncing' around when being moved.
8008
8009 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8010
8011         * TextBoxBase.cs:
8012           - MaxLength now treats 2^31-1 equal to unlimited length (this is
8013             not quite MS compatible, MS uses that number only for single line
8014             and 2^32-1 for multi-line, but I figure it won't hurt keeping
8015             the limit at 2GB)
8016           - Now enforcing the MaxLength limit when entering characters
8017           - Added argument to internal Paste() method to track if it's called
8018             from programatically or via keyboard, since keyboard driven pastes
8019             need to enforce max-length
8020           - Added logic to Paste to only paste as many chars as MaxLength 
8021             allows
8022         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
8023         * TextControl.cs:
8024           - Added Length property to return number of characters in document
8025           - Added private CharCount property which only tracks actual chars
8026             in the document (no linefeeds) and fires event when CharCount
8027             changes
8028           - Added tracking of character count to all methods that alter it
8029           - Added LengthChanged event to allow applications to subscribe
8030             to any changes to the document
8031
8032 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8033
8034         * TextBox.cs: 
8035           - Removed local password_char field (moved to TextBoxBase)
8036           - Now setting the document's password var when password is
8037             set
8038         * TextBoxBase.cs:
8039           - Added password_char field (needed here so MultiLine can
8040             access it)
8041           - Added logic to MultiLine property setter to set the document's
8042             variable when password display is allowed
8043           - Removed debug code and made some debug code conditional
8044         * TextControl.cs:
8045           - Added RecalculatePasswordLine() method to handle special password
8046             char only lines
8047           - Added PasswordChar property, also added related tracking vars
8048           - Draw() method now uses local text var for grabbing text to draw,
8049             this var is set to line.text unless we're doing password display,
8050             then it is set to the pre-generated all-password-chars line
8051           - Added calling RecalculatePasswordLine() method for password lines
8052
8053 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8054
8055         * Hwnd.cs: 
8056           - Added Reparented property to allow tracking of Window Manager
8057             reparenting actions (which affect X/Y calculations of toplevel 
8058             windows)
8059           - Made ToString() print window handles in hex
8060         * XplatUIX11.cs:
8061           - AddConfigureNotify(): Now uses reparented state off Hwnd to
8062             determine if X/Y needs offsetting
8063           - AddConfigureNotify(): Fixed offset calculations
8064           - Now adds ReparentNotify messages into the queue
8065           - Now processes ReparentNotify messages and causes a 
8066             WM_WINDOWPOSCHANGED message to be sent upstream if a window
8067             is reparented (as most likely it's X/Y coordinates are changed
8068             due to that)
8069
8070 2005-12-14  Jackson Harper  <jackson@ximian.com>
8071
8072         * XplatUIX11.cs: Tool windows still need to respek focus.
8073
8074 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8075
8076         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
8077           have a working release
8078
8079 2005-12-13  Jackson Harper  <jackson@ximian.com>
8080
8081         * Form.cs: Update styles after setting the border style regardless
8082         of whether or not the window is using a window manager.
8083
8084 2005-12-13  Jackson Harper  <jackson@ximian.com>
8085
8086         * Form.cs: We now hook into an internal window manager instead of just an
8087         MDI subsystem, this is so we can have properly behaving tool windows.
8088         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
8089         * InternalWindowManager.cs: New internal class that acts as a
8090         window manager for tool windows and as a base for mdi windows.
8091         * MdiWindowManager.cs: New class that acts as a window manager for
8092         mdi windows.
8093
8094 2005-12-12  Jackson Harper  <jackson@ximian.com>
8095
8096         * Control.cs: Updates so we match behavoir for for implicit
8097         controls. Fixes explosions in MDI.
8098
8099 2005-12-12  Jackson Harper  <jackson@ximian.com>
8100
8101         * Control.cs: Implement Invalidate (Region).
8102
8103 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
8104
8105         * Control.cs: 
8106           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
8107             the same events as MS does. MS fires events for each property 
8108             except, for unknown reasons, Cursor, when the control is reparented. 
8109             I can't seem to totally match add/remove since MS also fires some 
8110             VisibleChanged events, which makes no sense. Consolidated the
8111             parenting code into a separate method so it can be called from
8112             both Add and Remove. set_Parent no longer needs any special logic
8113             as it calls the parent's add method which implicitly fires
8114             all events
8115           - Removed some obsolete code and debug output
8116           - Enabled state is inherited from parents, if this is enabled
8117
8118 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
8119
8120         * Form.cs: Removed commented out code
8121
8122 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
8123
8124         * Control.cs:
8125           - Added internal version of Invoke, with additional argument 
8126             indicating if we're calling it from a Dispose() handler. That
8127             way we can avoid BeginInvoke throwing an exception if we're
8128             calling for an already destroyed window.
8129           - Added a dispose argument to BeginInvokeInternal, and made the
8130             check if a valid window handle chain exists conditional on
8131             it not being a dispose call
8132           - Removed code in DestroyHandle to destroy our children. Since we
8133             now handle the WM_DESTROY message we will catch all our children
8134             being destroyed.
8135           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
8136         * Form.cs:
8137           - Added a field to track the application context of the form.
8138           - No need to set closing variable as response to WM_CLOSE, instead
8139             we destroy the window. We also call PostQuitMessage if the form
8140             has an application context (which makes it the main app form,
8141             which, when closed terminates the app)
8142         * XplatUI.cs:
8143           - Dropped Exit() method, it's naming was confusing
8144           - Added PostQuitMessage() which causes GetMessage to return false
8145             once the message queue is empty
8146         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
8147           PostQuitMessage()
8148         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
8149           no longer a valid XplatUI method, but left it in since it's used
8150           internally. Added empty PostQuitMessage() method.
8151         * MenuAPI.cs: Replaced call to Exit() with call to
8152           PostQuitMessage, even though this is probably no longer needed.
8153         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
8154         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
8155         * Application.cs:
8156           - Replaced call to XplatUI.Exit() with PostQuitMessage()
8157           - Removed old debug code that would call XplatUI for exception
8158             display, enabled standard exception handling (Still not enabled
8159             though, until NativeWindow's ExternalExceptionHandler define
8160             is removed
8161         * NativeWindow.cs:
8162           - Added internal method to allow control to update NativeWindow
8163             after a window has been destroyed
8164           - Added handling of already destroyed windows when calling i
8165             DestroyWindow
8166           - Added removal of handle from list on ReleaseHandle
8167         * XplatUIX11.cs:
8168           - Dropped GetMessageResult var and related code
8169           - Added PostQuitState to field to track if PostQuitMessage has been
8170             called
8171           - Dropped Exit() method
8172           - Added PostQuitMessage() method
8173           - GetMessage now will return false if PostQuitState is set and no
8174             more messages are in the queue.
8175           - Expose handler will no longer generate WM_PAINT messages if we are
8176             in PostQuitState since it's very likely any windows have already
8177             been destroyed, and since Hwnd won't get updated until we have
8178             processed the DestroyNotify we'd be causing X errors.
8179         
8180 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8181
8182         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
8183           Thanks to Mike for pointing out the err of my ways.
8184
8185 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8186
8187         * Control.cs(PreProcessMessage): Moved menu handling back, but
8188           after all other key handling, to match MS (who handles Menu in
8189           DefWndProc)
8190         * Menu.cs (WndProc): Removed my brainfart
8191
8192 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8193
8194         * Control.cs(PreProcessMessage): Removed special menu handling 
8195         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
8196
8197 2005-12-07  Mike Kestner  <mkestner@novell.com>
8198
8199         * Control.cs : special case SYSKEYUP so that we can adjust keynav
8200         state according in tracker.
8201         * Menu.cs : promote tracker field to base class and provide a tracker
8202         lookup capability.  Add/Remove shortcuts dynamically if the top menu
8203         has a tracker. Unparent items that are removed from the collection.
8204         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
8205         * Theme*.cs: add always_show_hotkeys field to support configurability
8206         of mnemonic display.  win32 doesn't show mnemonics until Alt is
8207         pressed.
8208
8209 2005-12-07  Jackson Harper  <jackson@ximian.com>
8210
8211         * MdiChildContext.cs: Use Control.ResetCursor.
8212         * Control.cs: ResetCursor needs to set the property so that the
8213         correct XplatUI call gets made.
8214
8215 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8216
8217         * Control.cs: More fixes to make our key events match MS. We
8218           were not setting the modifier state on KeyData, and we were
8219           not generating any events when Alt was pressed with a key
8220           since handling of WM_SYSxxx was missing for the OnKey methods.
8221
8222 2005-12-07  Jackson Harper  <jackson@ximian.com>
8223
8224         * MdiChildContext.cs: reenable the sizing code.
8225         - When the mouse leaves a window reset its cursor.
8226
8227 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8228
8229         * ThemeClearlooks.cs: Reflect latest Hwnd changes
8230
8231 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8232
8233         * Hwnd.cs: Now using the theme 3d bordersize to calculate
8234           widths of Fixed3D borders
8235
8236 2005-12-07  Jackson Harper  <jackson@ximian.com>
8237
8238         * MdiClient.cs: Fix warnings. Earn Mike's love.
8239
8240 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8241
8242         * ThemeClearlooks.cs:
8243           - Adjusted mouse over button color
8244           - Added first parts of CheckBox drawing
8245           - Added correct color for selected text background
8246           - Fixed ComboBox drawing
8247           - Added CPDrawBorder3D and CPDrawBorder
8248
8249 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8250
8251         * XplatUIX11.cs: Added call to XBell for AudibleAlert
8252
8253 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
8254
8255         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8256           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
8257           alert users via sound. We could add an enum arg with different
8258           types of alerts in the future
8259
8260 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8261
8262         * Control.cs: Fix behaviour problems pointed out by Mike
8263
8264 2005-12-05  Mike Kestner  <mkestner@novell.com>
8265
8266         * StatusBarPanel.cs: add Invalidate method and hook it into all the
8267         prop setters.  Calls parent.Refresh for now, but could be maybe be
8268         optimized with an internal method on StatusBar at some point.
8269         [Fixes #76513]
8270
8271 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
8272
8273         * RichTextBox.cs: Implemented get_SelectionColor
8274
8275 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
8276
8277         * ThemeClearlooks.cs:
8278           - Removed dead code
8279           - Draw black button border only if button is Form.AcceptButton
8280           - Draw correct button color for pressed RadioButton if the mouse 
8281             has entered the button
8282           - Updated ProgressBar drawing!
8283           - Updated CPDrawSizeGrip drawing
8284           - Updated StatusBarPanel drawing
8285
8286 2005-12-05  Mike Kestner  <mkestner@novell.com>
8287
8288         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
8289         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
8290
8291 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
8292
8293         * ThemeClearlooks.cs: Initial check-in, activate with
8294           export MONO_THEME=clearlooks
8295         * ThemeEngine.cs: Added ThemeClearlooks
8296
8297 2005-12-03  Mike Kestner  <mkestner@novell.com>
8298
8299         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
8300         [Fixes #76897]
8301
8302 2005-12-02  Jackson Harper  <jackson@ximian.com>
8303
8304         * Form.cs: If the child form has no menu the default main menu is
8305         used as the active menu.
8306
8307 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
8308
8309         * ListBox.cs: Check if any items exist before trying to resolve 
8310           coordinates into items
8311
8312 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8313
8314         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
8315           as the second color for the background hatch
8316
8317 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8318
8319         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
8320         * RichTextBox.cs: FormatText position arguments are 1-based, now making
8321           sure that what we pass to FormatText is always 1-based. Fixes #76885
8322
8323 2005-11-29  Miguel de Icaza  <miguel@novell.com>
8324
8325         * NumericUpDown.cs (EndInit): When we are done initializing,
8326         reflect any updates on the UI.
8327
8328 2005-12-02  Jackson Harper  <jackson@ximian.com>
8329
8330         * ImplicitHScrollBar.cs:
8331         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
8332         their container controls.
8333         * TreeView.cs: Use the new implicit scrollbars.
8334
8335 2005-12-02  Jackson Harper  <jackson@ximian.com>
8336
8337         * TreeView.cs: Make top_node internal so the TreeNodeCollections
8338         can play with it.
8339         * TreeNodeCollection.cs: If we remove the topnode we need to
8340         update topnode to the next node in line.
8341         - When clearing nodes go through the same process as removing
8342         them, so they get depareneted and checked if they are top node.
8343
8344 2005-12-01  Jackson Harper  <jackson@ximian.com>
8345
8346         * TreeView.cs: When imagelists are used the image area is
8347         selectable as well as the text.
8348         - If there are no selected nodes select the first one.
8349         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
8350         so don't do it more then we need to.
8351
8352 2005-12-01  Jackson Harper  <jackson@ximian.com>
8353
8354         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
8355         that arrows can be scaled.
8356
8357 2005-12-01  Jackson Harper  <jackson@ximian.com>
8358
8359         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
8360         fail. Patch by Dieter Bremes
8361
8362 2005-11-30  Jackson Harper  <jackson@ximian.com>
8363
8364         * Form.cs: Property is 2.0 only
8365         * PrintDialog.cs: Signature fix.
8366
8367 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8368
8369         * TextControl.cs: 
8370           - No longer artificially moves text 2 pixels down (now that we have
8371             borders this is no longer needed)
8372           - Added calcs for left, hanging and right indent
8373
8374 2005-11-23  Mike Kestner  <mkestner@novell.com>
8375
8376         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
8377
8378 2005-11-30  Jackson Harper  <jackson@ximian.com>
8379
8380         * MdiChildContext.cs: Set the cloned menus forms, as these don't
8381         get cloned as part of CloneMenu ().
8382         * Menu.cs: Make sure the parent of the items get set correctly
8383         when they are added.  And the owners are notified of the changes.
8384         * Form.cs: Create an ActiveMenu property, so that when MDI is used
8385         we can change the menu being displayed/handled by the form without
8386         changing the menu assosciated with the form.
8387         - Don't let Mdi children draw/handle menus.
8388         
8389 2005-11-30  Jackson Harper  <jackson@ximian.com>
8390
8391         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
8392         a MenuChanged event. Just to make the API a little more
8393         consistent.
8394         * MainMenu.cs:
8395         * MenuItem.cs: Use the new OnMenuChanged
8396         * MdiChildContext.cs: Handle menu merging.
8397         * Form.cs: Implement MergedMenu.
8398         
8399 2005-11-30  Jackson Harper  <jackson@ximian.com>
8400
8401         * Menu.cs: We were misusing Add. Add goes behind the specified
8402         index according to the docs, and does not replace the specified
8403         index. So I added an Insert method.
8404
8405 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8406
8407         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
8408           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
8409           is for Jackson
8410         * RichTextBox.cs: Added calls to base for DnD events
8411
8412 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
8413
8414         * TextControl.cs:
8415           - Fixed drag-selection related crash; style fixes
8416           - Implemented undo class
8417             o Implemented method to capture document state for specified
8418               range in document tree
8419             o Implemented method to restore captured document state
8420             o Implemented cursor tracking
8421             o Implemented basic undo stack
8422           - Added undo cursor tracking to methods altering cursor location
8423           - Added undo tracking to selection deletion (still missing
8424             other text-altering hookups)
8425         * RichTextBox.cs:
8426           - Added SelectionLength property
8427           - Implemented CanPaste()
8428           - Implemented Paste()
8429           - Added missing protected methods
8430           - Fixed RTF->Document conversion; now uses font index 0 and color 
8431             index 0 as the default font for the parsed text
8432           - Fixed RTF<->Document font size translation
8433           - Fixed RTF generation, now properly handles cross-tag boundaries
8434             for single line selection
8435           - No longer always appends blank line to generated RTF
8436           - Removed TODOs
8437           - Added missing attributes
8438           - Hooked up undo-related methods
8439         * TextBoxBase.cs:
8440           - Implemented Copy()
8441           - Implemented Paste()
8442           - Implemented Cut()
8443           - Fixed caret mis-behaviour on backspace across line-boundaries
8444
8445 2005-11-29  Jackson Harper  <jackson@ximian.com>
8446
8447         * MdiClient.cs: Add a method for activating mdi children. Very
8448         basic right now. I imagine someday it might need more girth.
8449         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
8450         children windows names are added to the menu item.
8451         * ThemeWin32Classic.cs: Draw the arrow if the item is an
8452         mdilist. This happens regardless of whether or not there are any
8453         mdi windows to see in the list, and according to my tests happens
8454         before the items are even added. Also happens if there isn't even
8455         an mdi client to get windows from.
8456
8457 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
8458
8459         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
8460         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
8461
8462 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
8463
8464         * DataGridTableStyle.cs:
8465           - Create always the styles for the missing columns even if they are
8466             provided by the user (not default table style)
8467         * DataGrid.cs:
8468           - Fixes bug 76770
8469           - Fixes SetDataBinding (always re-attach source)
8470           - Fixes SetNewDataSource (only clear styles if they are not for 
8471             this source)
8472          -  Expands OnTableStylesCollectionChanged to handle style refresh 
8473             and remove properly
8474
8475 2005-11-29  Jackson Harper  <jackson@ximian.com>
8476
8477         * FileDialog.cs: Implement missing bits, remove some dead
8478         code.
8479         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
8480         creation of the panel so that the options set on the dialog are
8481         seen when the panel is created.
8482         * TreeView.cs: raise a click when items are clicked.
8483         
8484 2005-11-29  Jackson Harper  <jackson@ximian.com>
8485
8486         * MdiClient.cs: Pass some signature methods through to base.
8487
8488 2005-11-28  Jackson Harper  <jackson@ximian.com>
8489
8490         * ListView.cs: Raise the click event when items are clicked.
8491
8492 2005-11-28  Jackson Harper  <jackson@ximian.com>
8493
8494         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
8495         a nullref.
8496
8497 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
8498
8499         * ThemeNice.cs: - Removed 1 pixel bitmaps
8500           - Use SmoothingMode.AntiAlias where it makes sense
8501             (ScrollButton arrow for example)
8502           - Enhanced Button focus drawing
8503           - Fixed ComboBox drawing (no artefacts anymore, focus
8504             rectangle is back again, reduced size of ComboButton, etc.)
8505           - Fixed RadioButton focus drawing for Appearence.Button
8506           - Slight ScrollButton redesign
8507           - Some LinearGradientBrush size fixes
8508           - GroupBoxes have now rounded edges
8509           - Fixed StatusBar drawing
8510
8511 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
8512
8513         * ThemeNice.cs: - Remove dead code
8514           - use correct background colors for menus, etc.
8515           - Fake pixel drawing with 1 pixel bitmaps
8516
8517 2005-11-24  Jackson Harper  <jackson@ximian.com>
8518
8519         * MdiClient.cs: Size the scrollbars when resizing the window.
8520         - Resize the maximized windows when the client is resized
8521         * Form.cs: Make the child context available
8522         
8523 2005-11-23  Jackson Harper  <jackson@ximian.com>
8524
8525         * MdiChildContext.cs: Don't size windows if they are maximized.
8526
8527 2005-11-23  Mike Kestner  <mkestner@novell.com>
8528
8529         * ContextMenu.cs: use MenuTracker.
8530         * Control.cs: remove menu handle usage.
8531         * Form.cs: remove menu handle usage.
8532         * Hwnd.cs: remove menu handle usage.
8533         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
8534         motion and clicks to the new Tracker handlers.
8535         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
8536         and handle usage.
8537         * MenuAPI.cs: refactored to combine popup and menubar event handling.
8538         Killed the MENU and MENUITEM data types and associated collections
8539         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
8540         MenuTracker class that exposes the leftovers from the old MenuAPI
8541         static methods. Restructured Capture handling so that only one grab is
8542         done for the entire menu hierarchy instead of handing off grabs to
8543         submenus. Tracker now has an invisible control to Capture when active.
8544         * MenuItem.cs: add sizing accessors, kill Create
8545         and handle usage.
8546         * Theme.cs: remove menu handle and MENU(ITEM) usage.
8547         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
8548         MENU(ITEM). remove menu handle usage, use Menu directly.
8549         * XplatUIDriver.cs: remove menu handle usage.
8550         * XplatUIOSX.cs: remove menu handle usage.
8551         * XplatUIWin32.cs: remove menu handle usage.
8552         * XplatUIX11.cs: remove menu handle usage.
8553
8554 2005-11-22  Jackson Harper  <jackson@ximian.com>
8555
8556         * Hwnd.cs: Don't compute the menu size for
8557         DefaultClientRectangle.
8558         - Reenable menu sizes being computed for GetClienRectangle.
8559         * Form.cs: Remove comment of trechery
8560         
8561 2005-11-22  Jackson Harper  <jackson@ximian.com>
8562
8563         * Hwnd.cs: The adjustments for the menu bar are made when it is
8564         attached to the form.
8565
8566 2005-11-19  Jackson Harper  <jackson@ximian.com>
8567
8568         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
8569         (just like on windows).
8570
8571 2005-11-19  Jackson Harper  <jackson@ximian.com>
8572
8573         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
8574         use real buttons anymore because they are in non client area. The
8575         one TODO here is that I need to somehow invalidate a section of
8576         the non client area.
8577
8578 2005-11-18  Jackson Harper  <jackson@ximian.com>
8579
8580         * Control.cs: Put the enum check back in now that MDI doesnt have
8581         to use this to set border styles.
8582         * Form.cs: Only set mdi child windows borders if the handle has
8583         been created.
8584         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
8585         this directly on to the driver.
8586         - Get the move start position before adjusting for the titlebar
8587         height, this fixes the windows "skipping" when they are first
8588         moved.
8589
8590 2005-11-18  Jackson Harper  <jackson@ximian.com>
8591
8592         * XplatUIX11.cs: Just compute the mdi borders separately as they
8593         don't totally match up with normal form borders.
8594
8595 2005-11-18  Jackson Harper  <jackson@ximian.com>
8596
8597         * Control.cs: Set WS_ styles for borders, so that the driver does
8598         not have to retrieve the control instance to figure out what kind
8599         of borders it should have.
8600         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
8601         driver can know its an mdi child easily.
8602         * XplatUIX11.cs: Get the border styles and whether the window is
8603         MDI from the Styles and ExStyles params instead of having to get a
8604         control. This prevents a chicken and egg problem.       
8605
8606 2005-11-18  Jackson Harper  <jackson@ximian.com>
8607
8608         * MdiClient.cs: Fix typo so scrollbars show up correctly.
8609
8610 2005-11-18  Jackson Harper  <jackson@ximian.com>
8611
8612         * MdiClient.cs: Calculate when to add and remove scrollbars
8613         correctly.
8614         * MdiChildContext.cs: Adjust the y position to take the titlebar
8615         into account.
8616         - No height for FormBorderStyle.None
8617
8618 2005-11-18  Jackson Harper  <jackson@ximian.com>
8619
8620         * Control.cs: Allow non enum values to be used for
8621         InternalBorderStyle.  MDI does this to set a special border style.
8622         - New utility methods for converting points to/from client coords
8623         - Add the newly created control to the Controls collection before
8624         updating its style. This way UpdateStyle can walk the control
8625         heirarchy to find the control if needed.
8626         so I don't need to create a new Point object all the time.
8627         * Form.cs: Let MDI windows handle their border styles.
8628         - Set styles on MDI windows so the correct title style is derived.
8629         * MdiChildContext.cs: Move all the painting and window handling
8630         into the non client area.
8631         - Use correct sizing and put correct buttons on frames based on
8632         the FormBorderStyle.
8633         - Notify the mdi client about scrolling
8634         - Need to handle the buttons ourselves now, because they are all
8635         in non client areas and we can't add controls there.
8636         * MdiClient.cs: Halfway to scrolling, this implementation is
8637         somewhat broken though, we need to check to make sure other
8638         windows aren't causing scrolling before removing the bars. Also
8639         the bars need to be drawn on top, maybe I can switch implicit
8640         controls to be on top.
8641         * Hwnd.cs: caption_height and tool_caption_height are now
8642         properties of an hwnd, this way they can be set by the driver
8643         based on the type of window they are.  In X11 the window manager
8644         handles the decorations so caption_height is zero unless its an
8645         MDI window.
8646         - Add 3 pixel borders for MDI windows (0xFFFF).
8647         - Get rid of some code duplication, have DefaultClientRectanle
8648         just call GetClientRectangle.
8649         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
8650         Hwnd now.
8651         - Set border styles differently for mdi windows.
8652         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
8653         Hwnd now.
8654         
8655 2005-11-15  Mike Kestner  <mkestner@novell.com>
8656
8657         * Menu.cs: when adding an item to the collection, if item is already 
8658         parented, remove it from the parent.
8659
8660 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
8661
8662         * X11DesktopColors.cs: Added KDE support
8663
8664 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
8665
8666         * XplatUIWin32.cs: 
8667           - Clipboard methods now can translate Rtf format
8668           - No longer removes clipboard contents whenever a new format is added
8669             to allow placing multiple formats on the clipboard
8670         * Clipboard.cs: Clipboard now supports getting a IDataObject and
8671           will place all formats contained in it onto the clipboard. Also
8672           now cleans the clipboard before placing a new object onto it
8673         * RichTextBox.cs:
8674           - Implemented set_Rtf
8675           - Implemented set_SelectedRtf
8676           - Created InsertRTFFromStream() method to allow single code base
8677             for all properties and methods that insert RTF into document
8678           - Removed debug output
8679         * TextControl.cs:
8680           - Fixed Delete(int) to fix up line numbers
8681           - Fixed ReplaceSelection to combine start and end line
8682           - Fixed serious DeleteChars bug that would leave the document tree
8683             broken
8684           - Improved DumpTree with several logic checks to detect broken
8685             document trees
8686           - Removed debug lines
8687           - Fixed Caret.WordForward/WordBack moving code, now always also 
8688             updates caret.tag (fixes crash when word-selecting across tag
8689             boundaries via keyboard)
8690           - Added Insert() method for inserting multiline text into documents
8691           - Fixed DeleteChars() calculation errors that would cause a broken
8692             tag chain with multiple tag lines
8693           - DeleteChars() no longer crashes on multi-tag lines if not all tags
8694           - Split() no longer moves caret if split is at caret location
8695           - ReplaceSelection() now updates the cursor and re-displays it
8696           - ReplaceSelection() now uses new Insert() method to avoid code
8697             duplication
8698           - FormatText() can now handle formatting partial lines
8699         * TextBoxBase.cs:
8700           - Append now uses new TextControl.Insert() method (this avoids 
8701             duplicate code)
8702           - Implemented Ctrl-X (Cut) (
8703           - Implemented Ctrl-C (Copy)
8704           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
8705             regeneration when pasting text; roundtripping Copy&Paste within
8706             edit control still fails due to some calculation bugs in GenerateRTF)
8707           - The Delete key will now remove the current selection if it is visible
8708         * TextBox.cs: Removed debug lines
8709         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
8710           driver to be initialized and can't therefore be done via a static ctor)
8711
8712 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
8713
8714         * TextControl.cs: Added backend code for finding char arrays and strings
8715         * TextBoxBase.cs:
8716           - Added mouse wheel scroll support
8717           - Added support for VScroll and HScroll events
8718         * RichTextBox.cs:
8719           - Implemented all seven Find() variants
8720           - Implemented GetCharFromPosition()
8721           - Implemented GetCharIndexFromPosition()
8722           - Implemented GetLineFromIndex()
8723           - Implemented GetPositionFromCharIndex();
8724           - Implemented SaveFile for PlainText and UnicodeText
8725           - Fixed set_Font, now setting a new font applies that font to
8726             the whole document
8727           - Implemented generic Document to RTF converter
8728           - Implemented SaveFile for RichText format (still missing unicode
8729             conversion for non-ansi chars)
8730           - Implemented get_Rtf
8731           - Implemented get_SelectedRtf
8732
8733 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
8734
8735         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
8736           to allow any captures to be released before triggering OnClick. This
8737           way a click handler may capture the mouse without interference.
8738         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
8739           This way we send them even though X may not allow a grab (if the window
8740           isn't visible, for example)
8741
8742 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
8743
8744         * DataGridViewRowEventArgs.cs: DataGridView implementation
8745         * DataGridViewElement.cs: DataGridView implementation
8746         * DataGridViewComboBoxCell.cs: DataGridView implementation
8747         * DataGridViewDataErrorContexts.cs: DataGridView implementation
8748         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
8749         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
8750         * ImageLayout.cs: DataGridView implementation
8751         * DataGridViewComboBoxColumn.cs: DataGridView implementation
8752         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
8753         * DataGridViewSelectionMode.cs: DataGridView implementation
8754         * IDataGridViewEditingControl.cs: DataGridView implementation
8755         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
8756         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
8757         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
8758         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
8759         * DataGridViewColumnSortMode.cs: DataGridView implementation
8760         * DataGridView.cs: DataGridView implementation
8761         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
8762         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
8763         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
8764         * Padding.cs: DataGridView implementation
8765         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
8766         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
8767         * DataGridViewRowEventHandler.cs: DataGridView implementation
8768         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
8769         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
8770         * DataGridViewButtonCell.cs: DataGridView implementation
8771         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
8772         * DataGridViewEditMode.cs: DataGridView implementation
8773         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
8774         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
8775         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
8776         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
8777         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
8778         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
8779         * DataGridViewCellEventHandler.cs: DataGridView implementation
8780         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
8781         * DataGridViewCellStyleConverter.cs: DataGridView implementation
8782         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
8783         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
8784         * DataGridViewColumnEventArgs.cs: DataGridView implementation
8785         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
8786         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
8787         * QuestionEventArgs.cs: DataGridView implementation
8788         * IDataGridViewEditingCell.cs: DataGridView implementation
8789         * DataGridViewTriState.cs: DataGridView implementation
8790         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
8791         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
8792         * DataGridViewColumnCollection.cs: DataGridView implementation
8793         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
8794         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
8795         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
8796         * DataGridViewColumn.cs: DataGridView implementation
8797         * DataGridViewCellBorderStyle.cs: DataGridView implementation
8798         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
8799         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
8800         * DataGridViewRow.cs: DataGridView implementation
8801         * DataGridViewImageCellLayout.cs: DataGridView implementation
8802         * DataGridViewImageCell.cs: DataGridView implementation
8803         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
8804         * DataGridViewCheckBoxCell.cs: DataGridView implementation
8805         * DataGridViewHeaderCell.cs: DataGridView implementation
8806         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
8807         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
8808         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
8809         * DataGridViewTextBoxColumn.cs: DataGridView implementation
8810         * QuestionEventHandler.cs: DataGridView implementation
8811         * DataGridViewCellStyleScopes.cs: DataGridView implementation
8812         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
8813         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
8814         * DataGridViewCell.cs: DataGridView implementation
8815         * DataGridViewCellEventArgs.cs: DataGridView implementation
8816         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
8817         * DataGridViewCellStyle.cs: DataGridView implementation
8818         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
8819         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
8820         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
8821         * TextFormatFlags.cs: DataGridView implementation
8822         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
8823         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
8824         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
8825         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
8826         * DataGridViewButtonColumn.cs: DataGridView implementation
8827         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
8828         * HandledMouseEventArgs.cs: DataGridView implementation
8829         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
8830         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
8831         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
8832         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
8833         * DataGridViewRowCollection.cs: DataGridView implementation
8834         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
8835         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
8836         * DataGridViewHitTestType.cs: DataGridView implementation
8837         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
8838         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
8839         * DataGridViewColumnEventHandler.cs: DataGridView implementation
8840         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
8841         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
8842         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
8843         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
8844         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
8845         * DataGridViewContentAlignment.cs: DataGridView implementation
8846         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
8847         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
8848         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
8849         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
8850         * DataGridViewPaintParts.cs: DataGridView implementation
8851         * DataGridViewCellCollection.cs: DataGridView implementation
8852         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
8853         * DataGridViewImageColumn.cs: DataGridView implementation
8854         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
8855         * DataGridViewElementStates.cs: DataGridView implementation
8856         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
8857         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
8858         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
8859         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
8860         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
8861         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
8862         * DataGridViewRowHeaderCell.cs: DataGridView implementation
8863         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
8864         * DataGridViewTextBoxCell.cs: DataGridView implementation
8865         * DataGridViewBand.cs: DataGridView implementation
8866         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
8867         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
8868         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
8869         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
8870         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
8871         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
8872         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
8873         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
8874         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
8875         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
8876         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
8877
8878 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
8879
8880         * ThemeWin32Classic.cs: 
8881           - Draw the outside focus rectangle around buttons
8882           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
8883             doesn't use end caps for every dash of a line anymore. This
8884             workaround ignores the forecolor.
8885
8886 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
8887
8888         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
8889           endian safe.
8890
8891 2005-11-07  Jackson Harper  <jackson@ximian.com>
8892
8893         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
8894
8895 2005-11-07  Jackson Harper  <jackson@ximian.com>
8896
8897         * ScrollableControl.cs: Calculate the maximum and change vars
8898         (more) correctly so that scrollbars appear as a sensible size.
8899
8900 2005-11-04  Jackson Harper  <jackson@ximian.com>
8901
8902         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
8903         collection.
8904         * TreeView.cs: When the tree is sorted null out the top_node so
8905         that it is recalculated.
8906         - Use dotted lines instead of dashed lines to match MS better.
8907
8908 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
8909
8910         * ListView.cs: 
8911           - Implements key search for items. Useful when browsing files with FileDialog
8912           - When changing view mode or when clear the items reset scrollbar positions
8913
8914 2005-11-04  Jackson Harper  <jackson@ximian.com>
8915
8916         * CurrencyManager.cs: Implement the MetaDataChanged event, the
8917         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
8918         as to what the method may do as there is no real way of creating a
8919         derived CurrencyManager and calling the method. 
8920
8921 2005-11-03  Jackson Harper  <jackson@ximian.com>
8922
8923         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
8924         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
8925         method which seems to just be used internally to refresh the tabs.
8926
8927 2005-11-03  Jackson Harper  <jackson@ximian.com>
8928
8929         * TabControl.cs: Implement the remove method. Fix some broken
8930         comments.
8931
8932 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
8933
8934         * DateTimePicker.cs:
8935           - Added missing DateTimePickerAccessibleObject class
8936           - Added missing events
8937           - Added OnFontChanged method
8938         * Form.cs: Added missing attributes
8939         * TreeView.cs: Added missing attributes
8940
8941 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
8942
8943         * GridItemCollection.cs: Fix signatures
8944
8945 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
8946
8947         * XplatUI.cs: Updated build rev/date
8948         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
8949           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
8950         * Application.cs: Trigger context-specific ExitThread events
8951
8952 2005-11-03  Jackson Harper  <jackson@ximian.com>
8953
8954         * Menu.cs:
8955         * MainMenu.cs:
8956         * GridTableStylesCollection.cs:
8957         * Timer.cs:
8958         * TabPage.cs:
8959         * HelpProvider.cs:
8960         * StatusBar.cs:
8961         * MonthCalendar.cs: Signature fixes
8962
8963 2005-11-03  Jackson Harper  <jackson@ximian.com>
8964
8965         * TreeNodeCollection.cs: Remove should not be virtual.
8966         * TreeView.cs: Implement the last of the missing methods.
8967
8968 2005-11-03  Jackson Harper  <jackson@ximian.com>
8969
8970         * TreeNodeConverter.cs: Implement to get off my class-status back.
8971
8972 2005-11-03  Jackson Harper  <jackson@ximian.com>
8973
8974         * TreeView.cs: Hookup the bits for drag and drop.
8975         * TreeNode.cs: Don't cache the tree_view or index anymore, now
8976         that nodes can be moved from tree to tree easily this just causes
8977         all sorts of problems.
8978         * TreeNodeCollection: Don't need to give treenodes an index and
8979         treeview anymore when they are added, these are computed on the
8980         fly. Also make sure to remove a node before its added.
8981
8982 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
8983
8984         * TextControl.cs:
8985           - Added CaretSelection enum
8986           - Added comparison methods to Marker struct, makes selection code
8987             more readable
8988           - Added SelectionStart and SelectionEnd as 'moveable' location for
8989             the CaretDirection enum and handler
8990           - Added selection_prev variable to track optimized invalidation for
8991             word and line selection
8992           - Added SelectionVisible property (returns true if there is a valid 
8993             selection)
8994           - Switched CaretHasFocus to only display the caret if there is no
8995             visible selection
8996           - Avoiding StringBuilder.ToString to retrieve a single char, instead
8997             using the direct character index; should be much faster
8998           - Added various conditional debug statements
8999           - Fixed invalidation calculation for selection ranges
9000           - Added ExpandSelection() method to support word and line selection
9001           - Switched SetSelectionToCaret to use new Marker compare overloads
9002           - Added central IsWordSeparator() method to determine word 
9003             separators/whitespace and FindWordSeparator() to streamline common
9004             usage of IsWordSeparator()
9005         * TextBoxBase.cs:
9006           - Removed unneeded grabbed variable, it was just mirroring
9007             Control.Capture
9008           - No longer firing OnTextChanged event when Text setter is called,
9009             since the base will fire the event for us
9010           - Added handling of Ctrl-Up/Down selection
9011           - Added handling of Shift-Cursorkey selection
9012           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
9013             words
9014           - Added handling of Shift and Ctrl-Shift-Home/End selection
9015           - Removed some debug output
9016           - Added handling for single/double/tripple-click to place caret/
9017             select word/select line respectively (Fixes bug #76031)
9018           - Added support for drag expansion of word/line selection
9019         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
9020           current selection
9021
9022 2005-11-02  Jackson Harper  <jackson@ximian.com>
9023
9024         * X11Dnd.cs: If the drag is going to and from a MWF window just
9025         copy the data instead of sending it out through the X Selection
9026         mechanism.
9027
9028 2005-11-02  Jackson Harper  <jackson@ximian.com>
9029
9030         * X11Dnd.cs:
9031         * XplatUIX11.cs: When in a drag we don't want motion notify
9032         messages to get passed on to the other controls. This prevents
9033         mouse move messages from showing up in the drag source.
9034
9035 2005-11-02  Jackson Harper  <jackson@ximian.com>
9036
9037         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
9038         the correct button is release to end a drag.
9039         * XplatUIX11.cs: Make the button state internal so the drag system
9040         can access it.  Dragging needs to know about all button releases,
9041         not just left button.
9042
9043 2005-11-02  Miguel de Icaza  <miguel@novell.com>
9044
9045         * Form.cs (Icon): If the icon is null, reset the icon to the
9046         default value. 
9047
9048         * Cursor.cs: When writing the AND-mask bitmap do not include the
9049         number of colors, but hardcode those to two (black and white),
9050         fixes the loading of color cursors (Paint Dot Net).
9051
9052         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
9053         turn off autoscaling.
9054
9055         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
9056
9057 2005-11-02  Jackson Harper  <jackson@ximian.com>
9058
9059         * X11Dnd.cs: Make sure to send a status message if the pointer
9060         enters a control that can not accept a drop, otherwise the cursor
9061         isn't updated correctly. Also tried to compress the lines of code
9062         a bit.
9063
9064 2005-11-02  Jackson Harper  <jackson@ximian.com>
9065
9066         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
9067         set actions correctly.  This isn't perfect as XDND and win32 have
9068         some differences on how you allow actions. I'll clear this up by
9069         adding a path for drag from MWF to MWF windows.
9070         * XplatUIX11.cs: Hook into the dnd system.
9071
9072 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
9073
9074         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
9075         previously shown but they are no longer need it. Very obvious when 
9076         browsing files with FileDialog.
9077
9078 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
9079
9080         * Control.cs: We always need to call OnPaintBackground. We pretty much
9081           ignore AllPaintingInWmPaint and always do the painting there, whether 
9082           it's set or not, since we always ignore the WM_ERASEBKGND message 
9083           (which we don't generate on X11). This fixes #76616.
9084         * Panel.cs: Removed unneeded background painting. This happens properly
9085           in Control.cs already
9086
9087 2005-10-31  Mike Kestner  <mkestner@novell.com>
9088
9089         * Menu.cs: Add items to collection before setting their index.
9090         * MenuItem.cs : add range checking with ArgumentException like MS.
9091         [Fixes #76510]
9092
9093 2005-10-31  Jackson Harper  <jackson@ximian.com>
9094
9095         * ListBox.cs: Invalidate if the area is visible at all not just
9096         contained in the visible rect. Fixes unselection of semi visible
9097         items.
9098
9099 2005-10-31  Jackson Harper  <jackson@ximian.com>
9100
9101         * Control.cs: Consistently name the dnd methods. Make them
9102         internal so we can override them to match some MS behavoir
9103         internally.
9104         * Win32DnD.cs: Use the new consistent names.
9105
9106 2005-10-31  Jackson Harper  <jackson@ximian.com>
9107
9108         * TreeView.cs: Don't draw the selected node when we lose focus.
9109
9110 2005-10-31  Jackson Harper  <jackson@ximian.com>
9111
9112         * X11Dnd.cs: We still need to reset the state even though a full
9113         reset isn't being done, otherwise status's still get sent all over
9114         the place.
9115
9116 2005-10-31  Jackson Harper  <jackson@ximian.com>
9117
9118         * Control.cs: Make the dnd_aware flag internal so the dnd
9119         subsystem can check it. Catch exceptions thrown in dnd handlers to
9120         match MS behavoir.
9121         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
9122         * X11Dnd.cs: Handle null data in the converters. Set the XDND
9123         version when sending a XdndEnter. Use the control/hwnd dnd_aware
9124         flags to reduce the number of dnd enters/status's sent.
9125
9126 2005-10-31  Jackson Harper  <jackson@ximian.com>
9127
9128         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
9129
9130 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
9131
9132         * PictureBox.cs: Fixes 76512
9133
9134 2005-10-28  Jackson Harper  <jackson@ximian.com>
9135
9136         * X11Dnd.cs: Early implementation to support winforms being a drag
9137         source for data on X11. Also restructured the converters so they
9138         can go both ways now.
9139         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
9140         
9141 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
9142
9143         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
9144           clipboard requests
9145
9146 2005-10-27  Jackson Harper  <jackson@ximian.com>
9147
9148         * TreeNode.cs: Implement serialization so my DnD examples will work.
9149
9150 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
9151
9152         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
9153           TreeView.cs: Don't dispose objects that are not owned.
9154           
9155 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
9156
9157         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
9158           should retrieve the current cursor and report that, but XplatUI
9159           doesn't (yet) have an interface for that (and I'm not sure I even
9160           can, on X11)
9161         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
9162           until any message loop processing is done (and the WM_SETCURSOR
9163           replaces the cursor to the proper one)
9164         * XplatUIX11.cs: 
9165           - Fixed override behaviour, we can't set the cursor globally on X11, 
9166             just for our windows.
9167           - Invalidating the System.Drawing X11 display handle when we are
9168             shutting down
9169         * Control.cs: Fix to make csc happy
9170
9171 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
9172
9173         * TextBoxBase.cs: 
9174           - get_Text: Add last line (without trailing newline) to returned
9175             value (Fixes 76212)
9176           - get_TextLength: Count last line in returned length
9177           - ToString: Call Text property instead of duplicating code
9178
9179 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
9180
9181         * ImageList.cs: Dispose ImageAttributes objects.
9182
9183 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9184
9185         * ImageList.cs: Use attribute constructors with less arguments where
9186           possible.
9187
9188 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9189
9190         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
9191           Use typeof instead of strings when assembly is referenced. Added
9192           some more comments.
9193
9194 2005-10-21  Jackson Harper  <jackson@ximian.com>
9195
9196         * ListView.cs: Raise a double click event. Also tried to somewhat
9197         fix when the selectedindexchanged event is raised. Its still
9198         broken though.
9199
9200 2005-10-21  Jackson Harper  <jackson@ximian.com>
9201
9202         * TreeView.cs: New method to invalidate the plus minus area of a
9203         node without invalidating the whole node (maybe this can be used
9204         in some more places).
9205         * TreeNodeCollection.cs: When adding to an empty node we need to
9206         invalidate its plus minus area so the little block shows up.
9207         
9208 2005-10-21  Jackson Harper  <jackson@ximian.com>
9209
9210         * TreeView.cs: Make sure that when we invalidate a node the bounds
9211         are big enough to cover the selected box and the focus
9212         rectangle. Use a different colour for the lines connecting nodes
9213         so they show up with all themes.
9214
9215 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9216
9217         * NativeWindow.cs: Don't call anything that could call into the driver,
9218           we might be on a different thread.
9219
9220 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
9221
9222         * Control.cs(Dispose): Since Dispose might run on a different thread,
9223           make sure that we call methods that could call into the driver via
9224           invoke, to avoid thread issues
9225
9226 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9227
9228         * XplatUI.cs: Removed finalizer
9229         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
9230           not allowing to be called on the finalizer thread.
9231
9232 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
9233
9234         * ImageList.cs:
9235           - Reverted r51889 and r51891.
9236           - Added ImageListItem class that stores unmodified image items and image
9237             properties required to create list images until handle is created.
9238           - Added AddItem and moved image creation logic to AddItemInternal.
9239           - Added CreateHandle method that creates images based on unmodified items.
9240           - Added DestroyHandle that changes state to store unmodified items.
9241           - Add and AddStrip methods no more create handle.
9242           - ReduceColorDepth has no return value.
9243           - Dispose destroys handle.
9244           - Modified other methods to reflect the above changes.
9245           - Implemented key support.
9246           - Added profile 2.0 members and attributes.
9247           - Added private Reset and ShouldSerialize methods that provide the same
9248             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
9249             them as they are private.
9250           - Added some more comments about implementation details.
9251
9252 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9253
9254         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
9255
9256 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9257
9258         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
9259
9260 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9261
9262         * DataGridDrawingLogic.cs: Fixes column hit calcultation
9263         * DataGridColumnStyle.cs: Remove debug message
9264
9265 2005-10-20  Jackson Harper  <jackson@ximian.com>
9266
9267         * TreeView.cs: We can always get input keys regardless of whether
9268         or not editing is enabled. They are used for navigation.
9269
9270 2005-10-20  Jackson Harper  <jackson@ximian.com>
9271
9272         * TreeNode.cs: Use the viewport rect for determining if a node
9273         needs to be moved for visibility. Don't use Begin/End edit. This
9274         calls a full refresh when its done.
9275         * TreeView.cs: New SetBottom works correctly.  Make the viewport
9276         rect property internal so the treenodes can see it. When clicking
9277         on a node we need to ensure that its visible because it might just
9278         be partly visible when clicked.
9279
9280 2005-10-20  Jackson Harper  <jackson@ximian.com>
9281
9282         * TreeNodeCollection.cs: Remove debug code.
9283
9284 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9285
9286         * Datagrid.cs: Implements column sorting in Datagrid
9287         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
9288
9289 2005-10-20  Jackson Harper  <jackson@ximian.com>
9290
9291         * TreeNodeCollection.cs: Remove items properly. Update the correct
9292         area after removing them.
9293
9294 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9295
9296         * Datagrid.cs: Should not call base.OnPaintBackground
9297
9298 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9299
9300         * XplatUIX11.cs (GetMessage):
9301           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
9302             window instead of client window
9303           - Now properly calculates NC_xBUTTONUP message coordinates
9304           - ScreenToMenu now properly calculates it's coordinates of whole 
9305             window, since menus are in the whole window, not in the client
9306             window
9307           - Added WholeToScreen coordinate translation method
9308
9309 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
9310
9311         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
9312           want to return a message, loop back to the beginning of the function
9313           and grab the next real message to process instead.
9314
9315 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9316
9317         * Splitter.cs: Properly set limits if no filler control is used
9318
9319 2005-10-19  Jackson Harper  <jackson@ximian.com>
9320
9321         * ColorDialog.cs: Don't show the help button if it is not enabled
9322         instead of disabling it (this is what MS does). Don't create the
9323         panel until the dialog is run, otherwise the vars (such as
9324         ShowHelp) are not set yet.
9325
9326 2005-10-19  Jackson Harper  <jackson@ximian.com>
9327
9328         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
9329         are reduced when adding nodes.
9330         * TreeNode.cs:
9331         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
9332         tree.
9333         
9334 2005-10-19  Jackson Harper  <jackson@ximian.com>
9335
9336         * FolderBrowserDialog.cs: End editing our treeview so the window
9337         actually gets refreshed.
9338
9339 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9340
9341         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
9342           Obsoleted handling of WM_ERASEBKGND, now always draws our background
9343           inside of WM_PAINT
9344
9345 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9346
9347         * MenuAPI.cs: Returns after Hidding window
9348         * XplatUIX11.cs: Added TODO found while debugging menu issues
9349
9350 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9351
9352         * XplatUIX11.cs: Do not re-map the whole window when it's size
9353           becomes non-zero unless it's supposed to be actually visible
9354
9355 2005-10-18  Jackson Harper  <jackson@ximian.com>
9356
9357         * TreeView.cs: We don't need to keep a count anymore.
9358         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
9359         use the Grow method.
9360
9361 2005-10-18  Jackson Harper  <jackson@ximian.com>
9362
9363         * TreeNodeCollection.cs: Insert is not supported on arrays, so
9364         implement it manually here.
9365
9366 2005-10-18  Jackson Harper  <jackson@ximian.com>
9367
9368         * ImageList.cs: Dont kill the list when the colour depth is
9369         changed, just change the colour depth of all the images.
9370         - Same goes for setting the image size. Just resize them all
9371         instead of killing the list softly.
9372
9373 2005-10-18  Jackson Harper  <jackson@ximian.com>
9374
9375         * Control.cs: Don't invalidate empty rectangles.
9376
9377 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9378
9379         * ListViewItem.cs:
9380           - Adds checked item to the Checked/Item lists (where empty before)
9381           - Do not add items to the Selected lists if they are already present
9382         * ListView.cs:
9383           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
9384           - When deleting items make sure that we delete them for the Selected
9385           and Checked list also.
9386
9387 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9388
9389         * Label.cs: Dispose objects no longer used
9390         * ThemeWin32Classic.cs: Dispose objects no longer used
9391
9392 2005-10-18  Jackson Harper  <jackson@ximian.com>
9393
9394         * TabControl.cs: Don't refresh the whole control when the tabs are
9395         scrolled, we just need to refresh the tab area.
9396
9397 2005-10-17  Jackson Harper  <jackson@ximian.com>
9398
9399         * XplatUIX11.cs: Compress code a little bit. Only calculate the
9400         after handle when we need it.
9401
9402 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9403
9404         * Control.cs: When the parent size changes, recalculate anchor 
9405           positions. Partial fix for #76462
9406
9407 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9408
9409         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
9410           drawn. Fixes #76462
9411
9412 2005-10-17  Jackson Harper  <jackson@ximian.com>
9413
9414         * MonthCalendar.cs: Don't create the numeric up down until our
9415         handle is created. Otherwise our handle is created in the
9416         constructor and we don't know if we are a WS_CHILD or WS_POPUP
9417         yet.
9418
9419 2005-10-17  Jackson Harper  <jackson@ximian.com>
9420
9421         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
9422         correctly.
9423
9424 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
9425         * TreeNode.cs : small logical fix (was using local var instead of field)
9426         
9427 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9428
9429         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
9430
9431 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9432
9433         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
9434
9435 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
9436
9437         * Control.cs: 
9438           - Re-implemented anchoring code. My first version was really broken.
9439             This fixes bug #76033. Unlike the previous implementation we will
9440             no longer have round errors since all numbers are calculated from
9441             scratch every time. Removed various anchor-related obsolete vars.
9442           - InitLayout no longer causes layout event firing and layout to be 
9443             performed
9444
9445 2005-10-16  Jackson Harper  <jackson@ximian.com>
9446
9447         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
9448         which was broken).
9449
9450 2005-10-16  Jackson Harper  <jackson@ximian.com>
9451
9452         * TabControl.cs: Remove debug code.
9453
9454 2005-10-16  Jackson Harper  <jackson@ximian.com>
9455
9456         * XEventQueue.cs: Increase the default queue size (very simple
9457         apps needed to grow the queue).
9458         * Hwnd.cs: No finalizer so we don't need to suppress
9459         finalization. Compute the invalid area manually so a new rectangle
9460         does not newto be created.
9461         * ScrollableControl.cs: Don't set any params (otherwise visibility
9462         isn't set correctly).
9463         * MdiChildContext.cs: New constructor takes the mdi parent so it
9464         doesn't have to be computed and avoids a crash on windows. Draw
9465         the window icon properly, and allow the text to be seen.
9466         * Form.cs: Use new MdiChildContext constructor. Make sure the
9467         child context isn't null in wndproc.
9468         * TabControl.cs: Don't set focus, this is muddling keyboard
9469         behavoir. Expand the tab rows when a window size increase will
9470         allow extra tabs to be seen. Don't allow tabs smaller than the
9471         width of a window to be scrolled out of view.
9472         * TreeNode.cs:
9473         * TreeView.cs: Use measure string to calculate a nodes width, the
9474         width is cached and only updated when the text or the font is
9475         changed. Don't check for expand/collapse clicks on the first level
9476         nodes if root lines are disabled.
9477         
9478 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
9479
9480         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
9481
9482 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9483
9484         * DataGridBoolColumn.cs: fixes warning
9485
9486 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9487
9488         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
9489         to match more to match more precisely the MS Net behavior
9490
9491 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9492
9493         * Hwnd.cs: Added field to track if window is mapped
9494         * XplatUIX11.cs: 
9495           - Unmap windows if they become 0-size, re-map when 
9496             they are >0 again; fixes #76035
9497           - Re-set our error handler after initializing X11Desktop
9498             to override any error handlers Gtk or whatever was called
9499             may have set.
9500
9501 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9502
9503         * CheckedListBox.cs: Removed unused vars
9504         * ListView.cs: Fixed signatures
9505         * RichTextBox.cs: Removed unused vars
9506         * TextBoxBase.cs: Removed unused vars
9507         * XplatUIWin32.cs: Removed unused vars
9508         * XplatUIX11.cs: Removed unused vars
9509         * XplatUI.cs: Updated version and date to latest published
9510
9511 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9512
9513         * Cursor.cs: Added private .ctor to work around a bug in
9514           resourceset (Thanks to Geoff Norton for the help on this)
9515         * SplitterEventArgs.cs: Made fields accessible so we don't
9516           waste boatloads of objects and can reuse the same one
9517           in Splitter
9518         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
9519           any captions and borders when generating screen coordinates
9520         * Splitter.cs: Reimplemented control, now fully complete, uses
9521           rubberband drawing, supports and obeys all properties, has
9522           proper cursors
9523
9524 2005-10-13  Miguel de Icaza  <miguel@novell.com>
9525
9526         * Form.cs (Form): Setup default values for autoscale and
9527         autoscale_base_size;  Make these instance variables, not static
9528         variables. 
9529
9530         (OnLoad): on the first load, adjust the size of the form.
9531
9532 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9533
9534         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
9535           width argument to DrawReversibleRectangle()
9536         * XplatUIWin32.cs, XplatUIX11.cs: 
9537           - Implemented width for DrawReversibleRectangle()
9538           - Added logic to DrawReversibleRectangle that recognizes a zero
9539             width or height and only draws a line in that situation
9540         
9541 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
9542
9543         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
9544         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
9545         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
9546           method (it uses our FosterParent window to get a graphics context)
9547
9548 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
9549
9550         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
9551           and SetWindowBackground methods
9552         * Control.cs:
9553           - Setting proper ControlStyles
9554           - We no longer call XplatUI.SetWindowBackground and XplatUI.
9555             EraseWindowBackground, instead we draw the window background
9556             ourselves in PaintControlBackground. This behaviour is
9557             required to match MS, where, when OnPaintBackground is not
9558             called, the background is not drawn.
9559           - Removed unneeded Refresh() in set_Text
9560         * Hwnd.cs: Dropped the ErasePending support. No longer needed
9561         * XplatUIX11.cs:
9562           - Created DeriveStyles method to translate from CreateParams to
9563             FormBorderStyle and TitleStyle, also handles BorderStyle (which
9564             matches FormBorderStyle enum values)
9565           - Consolidated SetHwndStyles and CalculateWindowRect border/title
9566             style calculations into single DeriveStyles method
9567           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
9568             from redrawing the whole window on any resize or expose.
9569           - Fixed CreateWindow usage of SetWindowValuemask. Before not
9570             all styles were applied to our whole/client window appropriately
9571           - Removed EraseWindowBackground() and SetWindowBackground() methods
9572           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
9573             no longer clear/redraw the background through X
9574           - Removed handling of erase_pending bit, we have no use for it (or
9575             so it seems)
9576         * XplatUIOSX.cs:
9577           - Removed generation and handling of WM_ERASEBKGND message
9578           - Removed EraseWindowBackground() and SetWindowBackground() methods
9579           - Removed handling of hwnd.ErasePending flag
9580         * XplatUIWin32.cs:
9581           - Removed EraseWindowBackground() and SetWindowBackground() methods
9582           - We no longer call EraseWindowBackground on PaintEventStart, we 
9583             ignore the fErase flag, erasing is handled in Control in the
9584             background handler
9585         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
9586           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
9587           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
9588           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
9589           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
9590           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
9591           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
9592
9593 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
9594
9595         * PropertyGrids.cs: Get sub properties
9596         * PropertyGridView.cs: Fix drawing code
9597
9598 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9599
9600         * ListBox.cs: Fixes 76383
9601
9602 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9603
9604         * DataGridTextBoxColumn.cs: Sets location and size before attachment
9605         * ThemeWin32Classic.cs: Fixes border drawing and calculations
9606         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
9607
9608
9609 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9610
9611         * ComboBox.cs: Fixes border drawing
9612
9613 2005-10-10  Miguel de Icaza  <miguel@novell.com>
9614
9615         * MimeIcon.cs: Ignore errors if the file can not be read.
9616
9617 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9618
9619         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
9620          - Fixed border calculations
9621          - Fixed horizontal scrolling in single column listboxes
9622          - Fixed drawing issues
9623
9624 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
9625
9626         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
9627           FormBorderStyle enum
9628         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
9629           code to determine FormBorderStyles from CreateParams
9630         * Form.cs:
9631           - Fixed bug where we'd set the wrong window styles if we were
9632             not creating an MDI window
9633           - Added call to XplatUI.SetBorderStyle when form borders are set
9634         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
9635         * Hwnd.cs:
9636           - Removed obsolete edge style
9637           - Switched from BorderStyle to FormBorderStyle
9638         
9639 2005-10-10  Jackson Harper  <jackson@ximian.com>
9640
9641         * Form.cs: Use the property to get the window handle instead of
9642         accessing it directly. Prevents a null reference exception.
9643
9644 2005-10-10  Jackson Harper  <jackson@ximian.com>
9645
9646         * TreeView.cs: Don't adjust the rect given to DrawString now that
9647         our libgdiplus draws correctly.
9648
9649 2005-10-08  Jackson Harper  <jackson@ximian.com>
9650
9651         * TreeView.cs: Don't try to find the clicked on node if there are
9652         no nodes in the tree.
9653
9654 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9655
9656         * RichTextBox.cs:
9657
9658           restore
9659
9660 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9661
9662         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
9663           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
9664           ErrorProvider.cs:
9665           Use ResPool for brushes and dispose System.Drawing objects that
9666           are not used anymore.
9667
9668 2005-10-07  Jackson Harper  <jackson@ximian.com>
9669
9670         * MdiChildContext.cs: Use the new borders instead of drawing them
9671         ourselves.
9672
9673 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
9674
9675         * Calling UpdateBounds after changing the window's BorderStyle 
9676         since the style can change the ClientSize
9677
9678 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9679
9680         * Control.cs: Made PaintControlBackground virtual
9681         * Panel.cs: Overriding PaintControlBackground instead of using paint
9682           event; paint event method was interfering with 'real' users of the
9683           event.
9684
9685 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
9686
9687         * ThemeWin32Classic.cs: remove border drawing since it is handled
9688         by the base control class now and was causing double border drawing.
9689
9690 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9691
9692         * Panel.cs: Redraw our background on paint. Not a pretty solution,
9693           but it does seem to match MS behaviour. This fixes bug #75324
9694
9695 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9696
9697         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
9698           somewhat hackish looking
9699
9700 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9701
9702         * TextBoxBase.cs:
9703           - We now accept Enter even if AcceptEnter is false, if the containing
9704             form does not have an AcceptButton configured (fixes bug #76355)
9705           - Calculations are now fixed to no longer use Width/Height, but
9706             ClientSize.Width/Height, since we now support borders (this was
9707             a result of fixing borders and therefore bug #76166)
9708           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
9709             true (fixes bug #76354)
9710         
9711 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9712
9713         * Control.cs: 
9714           - Defaulting BorderStyle and setting it in XplatUI when our window 
9715             is created
9716           - Added enum check to InternalBorderStyle setter
9717         * XplatUIX11.cs: 
9718           - Added drawing of window borders
9719           - Now properly calculates WM decorations offset for toplevel 
9720             windows (fixes bug #74763)
9721         * XplatUIWin32.cs: 
9722           - Implemented BorderStyles for windows (we're letting win32 draw 
9723             the border for us)
9724           - Fixed the signature for SetWindowLong
9725         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
9726           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
9727           setting borders
9728         * UpDownBase.cs: Remove drawing of borders, this is handled by
9729           the driver, outside the client area
9730         * ListView.cs: Removed bogus border calculations. The control should
9731           be oblivious to borders, since those are not part of the client
9732           area. 
9733         * X11DesktopColors.cs: Commented out (currently) unneeded variables
9734         * ThemeWin32Classic.cs: Removed border calculations from ListView 
9735           drawing code
9736
9737 2005-10-06  Jackson Harper  <jackson@ximian.com>
9738
9739         * MdiChildContext.cs: Clear out the old virtual position remove
9740         all the unneeded calls to CreateGraphics.
9741
9742 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9743
9744         * TextControl.cs: Use proper color for highlighted text; fixes #76350
9745
9746 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9747
9748         * Form.cs: 
9749           - Added loading and setting of our new default icon
9750           - Only set icon if window is already created
9751
9752 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * Label.cs:
9755           - Do not explicitly set the foreground and background colors, to
9756             allow inheriting from parents (fixes #76302)
9757           - Use Control's InternalBorderStyle property to deal with borders
9758
9759 2005-10-06  Jackson Harper  <jackson@ximian.com>
9760
9761         * MdiChildContext.cs: Use the new xplatui function to draw a
9762         reversible rect.
9763
9764 2005-10-06  Jackson Harper  <jackson@ximian.com>
9765
9766         * Form.cs: Add the parent before creating the child context cause
9767         we need the parent when setting up the child.
9768
9769 2005-10-06  Jackson Harper  <jackson@ximian.com>
9770
9771         * FolderBrowserDialog.cs: redo the tree population code so a
9772         second thread isn't used. Should be a lot faster and more stable
9773         now.
9774
9775 2005-10-05  Jackson Harper  <jackson@ximian.com>
9776
9777         * TreeView.cs: There are no expand/collapse boxes if the node has
9778         no children.
9779
9780 2005-10-05  Jackson Harper  <jackson@ximian.com>
9781
9782         * X11DesktopColors.cs: Get menu colours for the gtk theme.
9783
9784 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
9785
9786         * FileDialog.cs: Fix InitialDirectory
9787
9788 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
9789
9790         * ComboBox.cs:
9791                 - Fixes changing between styles
9792                 - Fixes simple mode
9793                 - Fixes last item crashing when navigating with keyboard
9794
9795 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
9796
9797         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
9798
9799 2005-10-05  Jackson Harper  <jackson@ximian.com>
9800
9801         * TreeView.cs: If updating the root node do a full refresh.
9802         * TreeNode.cs: The root node should be expanded by default. Also
9803         added a utility prop to tell if we are the root node.
9804         * TreeNodeCollection.cs: Only refresh if the node we are being
9805         added to is expanded. Also added a comment on a potential
9806         optimization.
9807         
9808 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
9809
9810         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
9811           in dispose method. Fixes #76330
9812
9813 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
9814
9815         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
9816
9817                 - Implements vertical and horizontal scrolling using XplatUI
9818                 - Fixes keyboard navagation
9819                 - Fixes EnsureVisible
9820                 - Drawing fixes
9821                 - Handles and draws focus properly
9822
9823
9824 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
9825
9826         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
9827           Create handle. NET_2_0: Destroy handle when value is null.
9828
9829 2005-10-03  Jackson Harper  <jackson@ximian.com>
9830
9831         * ScrollBar.cs: My last scrollbar patch was broken. This is a
9832         revert and a new patch to prevent the thumb from refreshing so
9833         much.
9834
9835 2005-10-02  Jackson Harper  <jackson@ximian.com>
9836
9837         * ScrollBar.cs: Don't update position if it hasn't actually
9838         changed. This occurs when you hold down the increment/decrement
9839         buttons and the thumb gets to the max/min.
9840
9841 2005-10-01  Jackson Harper  <jackson@ximian.com>
9842
9843         * Form.cs:
9844         * MdiChildContext.cs:
9845         * MdiClient.cs: Implement ActiveMdiChild in Form.
9846
9847 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
9848
9849         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
9850
9851 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
9852
9853         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
9854           be found
9855
9856 2005-09-30  Jackson Harper  <jackson@ximian.com>
9857
9858         * ListBox.cs: Don't do a full refresh unless some data has
9859         actually changed.
9860
9861 2005-09-30  Jackson Harper  <jackson@ximian.com>
9862
9863         * TreeView.cs: Make sure that the checkboxes size is factored in
9864         even when not visible.
9865
9866 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
9867
9868         * FileDialog.cs: Fix Jordi's build break
9869
9870 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
9871
9872         * FileDialog.cs: 
9873                 - Use standard the Windows colours for the combobox as espected
9874                 - Dispose objects that use resouces when no longer need them
9875
9876 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
9877
9878         * X11DesktopColors.cs: Initial incomplete implementation
9879         * XplatUIX11.cs: Added call to initialize X11DesktopColors
9880
9881 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
9882
9883         * Theme.cs: 
9884           - Switched Theme color names to match the names defined in 
9885             System.Drawing.KnownColors. Life's hard enough, no need to make 
9886             it harder.
9887           - Added setters to all theme color properties so themes can set
9888             their color schemes. The setters also propagate the color changes
9889             to System.Drawing.KnownColors via reflection
9890         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
9891           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
9892           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
9893           use the new, more logical theme color names
9894         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
9895           post-NT colors
9896         * ThemeWin32Classic.cs:
9897           - Removed code to set the old classic Windows colors. Instead it
9898             now relies on the colors returned by System.Drawing.KnownColors
9899             which will be either modern static colors (Unix) or colors
9900             read from the user's configuration (Win32)
9901           - Updated to use the new, more logical theme color names
9902           - Switched DataGrid drawing code to use only Theme colors instead of
9903             a mix of System.Drawing.KnownColors and Theme colors
9904           - DrawFrameControl(): Removed code that fills the button area, the
9905             fill would overwrite any previous fill done by a control. This
9906             fixes bug #75338 
9907           - Added DrawReversibleRectangle() stub
9908         * ScrollableControl.cs: Set visible state to false when scrollbars
9909           are removed (pdn fix)
9910         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
9911           DrawReversibleRectangle() method to allow drawing primitive 
9912           'rubber bands'
9913         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
9914
9915 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9916
9917         * ImageList.cs: Add(Icon): Create handle.
9918
9919 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
9920
9921         * ListView.cs:
9922         * ThemeWin32Classic.cs:
9923                 - Fixes detail mode
9924                 - Sets clippings
9925                 - Issues with drawing
9926
9927 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9928
9929         * ImageList.cs: Moved RecreateHandle back to ImageList as event
9930           source has to be the ImageList.
9931
9932 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9933
9934         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
9935
9936 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9937
9938         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
9939
9940 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9941
9942         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
9943
9944 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
9945         * GridItem.cs: Fixed TODOs
9946         * GridItemCollection.cs: Added ICollection interface
9947
9948 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9949
9950         * ImageList.cs: Resize icons when needed.
9951
9952 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
9953
9954         * ListViewItem.cs
9955                 - Fixes GetBounds and returns on screen rects
9956         * ListView.cs:
9957                 - Fixes vertical and horzintal scrolling of items
9958         * ThemeWin32Classic.cs:
9959                 - Fixes drawing
9960                 
9961 2005-09-29  Raja R Harinath  <harinath@gmail.com>
9962
9963         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
9964
9965 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
9966
9967         * ImageList.cs: Added comments about handle creation. Moved Handle,
9968           HandleCreated and OnRecreateHandle implementations to ImageCollection.
9969           Handle is created in Add methods.
9970
9971 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
9972          
9973         * DataGridDrawingLogic.cs: 
9974                 - Takes rows into account on Colum calculations
9975                 - Returns the column when clickig
9976         * DataGrid.cs:
9977                 - Fixes default HitTestInfo values
9978                 - Fixes HitTestInfo.ToString
9979                 - Fixes ResetBackColor          
9980         
9981 2005-09-28  Jackson Harper  <jackson@ximian.com>
9982
9983         * MdiChildContext.cs: Obey rules for fixed sized windows (no
9984         sizing or cursor changes). Also added some temp code to draw the
9985         titlebars text (Makes dev a little easier).
9986
9987 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
9988
9989         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
9990
9991 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
9992          
9993         * ListBox.cs: Fixes bug 76253
9994
9995 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
9996
9997         * ImageList.cs: Added comments about the current implementation. Added
9998           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
9999           Format32bppArgb to preserve transparency and can use Graphics.FromImage
10000           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
10001           with Bitmap.LockBits for better performance. Revised the whole file to
10002           match MS.NET behaviour and provide better performance. Non-public
10003           interface members are calling public members even when they throw
10004           NotSupportedException for better maintainability. Moved ColorDepth,
10005           ImageSize, ImageStream and TransparentColor implementations to
10006           ImageCollection for better performance as these properties are not used
10007           by ImageList.
10008         * ImageListStreamer.cs: Added a new internal constructor that takes an
10009           ImageList.ImageCollection and serializes Images based on
10010           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
10011           match ImageList property name.
10012
10013 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
10014
10015         * ListBox.cs: Fixes IndexFromPoint for last item
10016
10017 2005-09-27  Jackson Harper  <jackson@ximian.com>
10018
10019         * Form.cs: Set the position of new mdi children correctly.
10020
10021 2005-09-27  Jackson Harper  <jackson@ximian.com>
10022
10023         * MdiClient.cs: New mdi children need to be added to the back of
10024         the controls collection so the zorder is set correctly. Also add a
10025         count of all the child windows that have been created.
10026
10027 2005-09-27  Jackson Harper  <jackson@ximian.com>
10028
10029         * Form.cs (CreateParams): Setup MDI forms correctly.
10030
10031 2005-09-27  Jackson Harper  <jackson@ximian.com>
10032
10033         * MdiChildContext.cs:
10034         * MonthCalendar.cs:
10035         * UpDownBase.cs:
10036         * ListBox.cs:
10037         * ListView.cs:
10038         * TextBoxBase.cs:
10039         * TreeView.cs:
10040         * ScrollableControl.cs:
10041         * ComboBox.cs: Add implicit controls using the new implict control
10042         functionality in ControlCollection. Also try to block multiple
10043         control add in a suspend/resume layout to save some cycles.
10044         
10045 2005-09-27  Jackson Harper  <jackson@ximian.com>
10046
10047         * Control.cs: Add functionality to the controls collection to add
10048         'implicit controls' these are controls that are created by the
10049         containing control but should not be exposed to the user. Such as
10050         scrollbars in the treeview.
10051         * Form.cs: The list var of the ControlsCollection is no longer
10052         available because of the potential of implicit controls getting
10053         ignored by someone accessing the list directly.
10054
10055 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
10056
10057         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
10058           loose it's parent. (Fixed bug introduced in r49103 when we added
10059           setting the child parent to null on Remove)
10060
10061 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
10062
10063         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
10064         * Splitter.cs: Added missing attributes for BorderStyle property.
10065         * TextBoxBase.cs: Marked Calculate* methods internal.
10066         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
10067         MS.NET.
10068
10069 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
10070          
10071         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
10072
10073 2005-09-25  Jackson Harper  <jackson@ximian.com>
10074
10075         * TreeView.cs: Update the node bounds correctly regardless of
10076         whether the node is visible.
10077
10078 2005-09-25  Jackson Harper  <jackson@ximian.com>
10079
10080         * ImageList.cs: Don't dispose the image after it is added to the
10081         image list. Only reformat images that need to be resized.
10082
10083 2005-09-25  Jackson Harper  <jackson@ximian.com>
10084
10085         * ImageList.cs: Don't set the format when changing the image.
10086
10087 2005-09-25  Jackson Harper  <jackson@ximian.com>
10088
10089         * TreeView.cs: We can't just assume the node has a font. Use the
10090         treeviews font if no node font is available.
10091
10092 2005-09-25  Jackson Harper  <jackson@ximian.com>
10093
10094         * TreeView.cs: Allow the scrollbars to be reset with negative
10095         values.
10096         - Don't add scrollbars to negative sized windows.
10097
10098 2005-09-23  Jackson Harper  <jackson@ximian.com>
10099
10100         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
10101         old Mono.Posix. Also remove some stray code that shouldn't have
10102         been committed.
10103
10104 2005-09-23  Jackson Harper  <jackson@ximian.com>
10105
10106         * TreeView.cs: Attempt at proper sizing of the horizontal
10107         scrollbar. Also don't resize the scrollbars unless they are
10108         visible.
10109
10110 2005-09-23  Jackson Harper  <jackson@ximian.com>
10111
10112         * TreeView.cs: We don't need to expand the invalid area when the
10113         selection changes, as this is all drawn in the node's bounding
10114         box. The area needs to be expanded (previous typo was contracting
10115         it) when the focus rect moves.
10116
10117 2005-09-23  Jackson Harper  <jackson@ximian.com>
10118
10119         * TreeView.cs: Display the selection box under the correct
10120         circumstances. We were rendering white text with no selection box
10121         before.
10122
10123 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
10124
10125         * TextControl.cs(Split): Now updates selection start/end if it points 
10126           into a line that's being split. Fixes a FIXME and bug #75258
10127
10128 2005-09-23  Jackson Harper  <jackson@ximian.com>
10129
10130         * Binding.cs:
10131         * ListControl.cs: Don't use the path when retrieving binding
10132         managers from the binding context. My bat sense tells me that the
10133         path is only used on insertion.
10134
10135 2005-09-22  Jackson Harper  <jackson@ximian.com>
10136
10137         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
10138
10139 2005-09-22  Jackson Harper  <jackson@ximian.com>
10140
10141         * Splitter.cs: There are special cursors used for splitting.
10142         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
10143
10144 2005-09-22  Jackson Harper  <jackson@ximian.com>
10145
10146         * Splitter.cs: Change the cursor appropriately when the splitter
10147         is moused over, so the user actually knows there is a splitter
10148         there.
10149
10150 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10151
10152        * Label.cs : Fix ToString method to give same output as MS.NET
10153
10154 2005-09-22  Jackson Harper  <jackson@ximian.com>
10155
10156         * TreeView.cs: Create the scrollbars when the handle is created
10157         and add them right away, just make them invisble. Also account for
10158         the window being shrunk vertically to the point that the vert
10159         scrollbar needs to be added.
10160         - Remove some 0.5 adjustments to get around anti aliasing issues.
10161         
10162 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
10163          
10164         * MainMenu.cs: Fixes default value
10165         * MenuItem.cs: Fixes default value
10166
10167 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
10168
10169         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
10170
10171 2005-09-21  Jackson Harper  <jackson@ximian.com>
10172
10173         * Control.cs: Don't try to set the border style on the window if
10174         it hasn't been created. When the window is created the border
10175         style will be used.
10176
10177 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10178
10179         * Control.cs (Update): Don't call XplatUI if we don't have a
10180           window handle yet
10181
10182 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10183
10184         * ContainerControl.cs: Instead of throwing an exception, print
10185           a one-time warning about Validate not being implemented
10186         * XplatUIWin32.cs: Removed debug output
10187
10188 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10189
10190         * Control.cs: Only set XplatUI background if we expect the windowing
10191           system to handle the background. This stops controls that draw their
10192           own background from flickering
10193
10194         * XplatUIX11.cs: Support custom visuals and colormaps for window 
10195           creation. This allows, amongst other things, using MWF X11 windows 
10196           with OpenGL.
10197
10198 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10199
10200         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
10201           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
10202           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
10203           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
10204           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
10205           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
10206           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
10207           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
10208           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
10209           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
10210           GridColumnStylesCollection.cs, 
10211           IDataGridColumnStyleEditingNotificationService.cs,
10212           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
10213           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
10214           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
10215           TreeNodeCollection.cs, AmbientProperties.cs, 
10216           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
10217           DataObject.cs, ErrorProvider.cs, Splitter.cs,
10218           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
10219           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
10220           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
10221           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
10222           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
10223           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
10224           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
10225           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
10226           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
10227           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
10228           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
10229           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
10230           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
10231           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
10232           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
10233           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
10234           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
10235           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
10236           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
10237           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
10238           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
10239           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
10240           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
10241           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
10242           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
10243           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
10244           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
10245           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
10246           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
10247           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
10248           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
10249           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
10250           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
10251           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
10252           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
10253
10254 2005-09-21  Jackson Harper  <jackson@ximian.com>
10255
10256         * TreeNode.cs: Call Before/After Expand not Collapse when
10257         expanding.
10258
10259 2005-09-20  Jackson Harper  <jackson@ximian.com>
10260         
10261         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
10262
10263 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10264          
10265         * ListViewItem.cs:
10266                 - Fixes bug 76120
10267                 - Fixes proper storing of subitems
10268                 - Fixes not updated items
10269
10270 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
10271
10272         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
10273           things if our window handle isn't created yet. Also disabled 
10274           debug for TextBoxBase
10275
10276 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
10277
10278         * MenuAPI.cs: Remove filtering of events to allow menu usage
10279
10280 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10281
10282         * Cursor.cs: Allow null to be passed to Cursor.Current.
10283
10284 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
10285
10286         * ThemeWin32Classic.cs:
10287           - Change some private methods/fields to protected virtual so that 
10288             they can be accessed and overriden in derived classes
10289           - First refactoring of some methods. Derived themes now don't 
10290             need to duplicate the complete code from ThemeWin32Classic
10291         * ThemeNice.cs:
10292           - Added nice StatusBar
10293           - Derive from ThemeWin32Classic and not Theme
10294           - Removed duplicate ThemeWin32Classic code
10295
10296 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10297
10298         * Control.cs (ControlCollection.Add): If the value null is passed
10299         the control is ignored. 
10300
10301         Optimize this loop.
10302
10303 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
10304
10305         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
10306           PostQuitMessage state.
10307         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
10308
10309 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
10310
10311         * Application.cs: Our constructor will never get called, move 
10312           initialization to fields; fixes bug #75933
10313
10314 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10315
10316         * FileDialog.cs :
10317                 - Allow files to be selected properly using file name
10318                 combo box.
10319                 - Add ability to change diretory (absolute / relative)
10320                 using file name combo box.
10321
10322 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10323          
10324         * ListBox.cs: 
10325                 - Fixes Multicolumn listboxes item wrong calculations
10326                 - Allows to click when only one item is in the listbox
10327                 - Fixes crash when no items using keyboard navigation
10328
10329 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
10330
10331         * ComboBox.cs: Reverted almost everything from the latest patch which
10332           broke ComboBox
10333
10334 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
10335         
10336         * ToolTip.cs:
10337                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
10338         * ComboBox.cs:
10339                 - When DropDownStyle is Simple, it does not show scrollbar 
10340                 to the last item of the list.
10341                 - When DropDownStyle is Simple, it crashed when the list was 
10342                 scrolled down with the down cursor key.
10343                 - Fixed a bug that when DropDownStyle is DropDownList, the 
10344                 selected item was not shown.
10345                 - The position of the selected item was not preserved when 
10346                 the next dropdown happened.
10347         * ThemeWin32Classic.cs:
10348                 - Items were wrapped at the right end.
10349         * CheckedListBox.cs:
10350                 - Fixed Add method
10351         * ListBox.cs:
10352                 - Items should be fully shown.
10353                 - When resizing and vertical scrollbar disappeared, the item 
10354                 of index 0 should be on the top of the list.
10355                 - GetItemRectangle should consider the size of ver. scrollbar
10356         * StatusBar.cs:
10357                 - SizingGrip area should not be allocated when it is not 
10358                 displayed.
10359                 - Now it reflects MinWidth of the containing panel and 
10360                 fixed a crash that happens when its width becomes so small.
10361
10362 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10363
10364         * CheckedListBox.cs: Fixes bug 76028
10365         * ListBox.cs: Fixes bug 76028
10366
10367 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10368
10369         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
10370         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
10371
10372 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
10373
10374         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
10375
10376 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10377
10378         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
10379
10380 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10381
10382         * IRootGridEntry.cs: Added
10383         * PropertyGridCommands.cs: Added
10384         * PropertiesTab.cs: Added missing methods and property
10385         * PropertyGridView.cs: Made class internal
10386         * PropertyGridTextBox.cs: Made class internal
10387
10388 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10389
10390         * MimeIcon.cs: Try to check some other environment variables
10391           if "DESKTOP_SESSION" returns "default"
10392
10393 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10394
10395         * ThemeNice.cs: Corrected background colors (e.g. menus)
10396         * ColorDialog.cs: Use correct background colors for controls
10397
10398 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10399
10400         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
10401
10402 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
10403
10404         * RichTextBox.cs: Added initial implementation
10405         * lang.cs: Removed. Was accidentally checked in long time ago
10406         * TODO: Removed. Contents were obsolete
10407
10408 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10409                                                                                 
10410         * PropertiesTab.cs : Added
10411
10412 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10413                                                                                 
10414         * PropertyGrid.cs : Update
10415         * PropertyGridView.cs : Update
10416         * System.Windows.Forms.resx : Added images and strings
10417
10418 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
10419
10420         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
10421  
10422 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
10423
10424         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
10425           a busy loop right after the Ungrab the X11 display is otherwise 
10426           blocked
10427
10428 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
10429
10430         * ThemeWin32Classic.cs: Optimise the use of clipping
10431
10432 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
10433
10434         * DataGrid.cs: fixes recursion bug
10435
10436 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
10437
10438         * ThemeNice.cs: 
10439           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
10440           - Cleanup
10441
10442 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
10443
10444         * ThemeNice.cs: Draw nice ProgressBars
10445
10446 2005-09-01  Miguel de Icaza  <miguel@novell.com>
10447
10448         * VScrollBar.cs: Another buglet found by Aaron's tool. 
10449
10450         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
10451         bug finder.
10452
10453 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
10454
10455         * ThemeNice.cs:
10456           - Added nicer menu drawing
10457           - Updated DrawTab
10458           - some refactoring
10459
10460 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10461
10462         * CreateParams.cs (ToString): Made output match MS
10463         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
10464             handle is already created (to avoid forcing window creation)
10465         * XplatUIX11.cs: Set window text to caption after creating window,
10466           in case Text was set before window was created
10467         * Form.cs: Use this.Text instead of a static string as caption
10468
10469 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10470
10471         * NotifyIcon.cs: Don't set the window to visible; this screws
10472           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
10473           OnPaint without a bitmap)
10474         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
10475           happen very often anyway; we could add the check to the WM_PAINT 
10476           event generation code
10477
10478 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10479
10480         * NotifyIcon.cs: Fill the icon area with a background color, to 
10481           avoid 'residue' when transparent icons are drawn
10482         * XplatUIX11.cs:
10483           - Handle whole_window == client_window when destroying windows
10484           - SystrayAdd(): Set client_window to whole_window value to
10485             get mouse and other events passed to NotifyIcon
10486
10487 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10488
10489         * Form.cs: Set proper default for Opacity property
10490         * NotifyIcon.cs:
10491           - ShowSystray(): Don't bother creating telling the OS
10492             about the systray item if no icon is provided
10493           - Now handles WM_NCPAINT message to deal with whole/client window
10494             split
10495           - Create window as visible to not get caught by Expose optimization
10496         * Hwnd.cs: Removed debug message
10497         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
10498           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
10499             PaintEventStart/End to use new client argument
10500         * TextBoxBase.cs:
10501           - Commented out debug messages
10502           - Switched PaintEventStart/End to use new client argument
10503         * XplatUI.cs: Added client window bool to PaintEventStart()/
10504           PaintEventEnd() calls, to support drawing in non-client areas
10505         * XplatUIDriver.cs: 
10506           - Added client window bool to PaintEventStart()/PaintEventEnd() 
10507             calls, to support drawing in non-client areas
10508           - Added conditional compile to allow using MWF BeginInvoke 
10509             on MS runtime
10510         * XplatUIX11.cs:
10511           - Added some conditional debug output
10512           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
10513             whole/client window split
10514           - Implemented handling of client argument to PaintEventStart()/End()
10515         * Control.cs:
10516           - Throw exception if BeginInvoke() is called and the window handle
10517             or one of the window's parent handles is not created
10518           - Added conditional compile to allow using MWF BeginInvoke on
10519             MS runtime
10520           - get_Parent(): Only sets parent if handle is created. This avoids
10521             forcing window handle creation when parent is set.
10522           - Now fires Layout and Parent changed events in proper order
10523           - Switched to use Handle instead of window.Handle for Z-Order setting,
10524             the get_Parent() patch above causes us to possibly get null for 'window'
10525           - Implemented handling of client argument to PaintEventStart()/End()
10526           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
10527             default handling)
10528           - Now sends a Refresh() to all child windows when Refresh() is called
10529
10530 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10531
10532         * Form.cs: Added (non-functional) Opacity property
10533         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
10534
10535 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
10536         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
10537           use export MONO_THEME=nice to activate it.
10538           Currently supported controls:
10539           - Button
10540           - ComboBox
10541           - ScrollBar
10542           - TabControl (TabAlignment.Top only, other will follow)
10543         * ThemeEngine.cs: Add theme nice
10544         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
10545           if enabled
10546
10547 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
10548
10549         * Splitter.cs: Resize docked control and its neighbor.
10550
10551 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10552         -- Making Windows with Menus layout correctly --
10553         * Form.cs : The first leg of the fix
10554                 Menu setter - adjust Client Size as needed to make space for the menu
10555                 SetClientSizeCore - doesn't call base version to be able to pass the 
10556                         menu handle to XplatUI.CalculateWindowRect
10557         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
10558         * XplatUIX11.cs: The critical second leg of the fix
10559                 GetWindowPos needs to use a recalculated client_rect
10560                 so that resizing the window doesn't break layout of child controls. 
10561                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
10562                 Lots of \t\n killed
10563
10564 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10565
10566         * Label.cs: Now properly recalculates width and height on Font and Text
10567           changes if AutoSize is set
10568
10569 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10570         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
10571
10572 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
10573
10574         * ImageList.cs: Makes ToString method compatible with MS
10575
10576 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
10577
10578         * MenuAPI.cs: fixes bug 75716
10579
10580 2005-08-11 Umadevi S <sumadevi@novell.com>
10581         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
10582
10583 2005-08-11 Umadevi S <sumadevi@novell.com>
10584         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
10585
10586 2005-08-10  Umadevi S <sumadevi@novell.com>
10587         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
10588
10589 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
10590
10591         * Menu.cs: fixes bug 75700
10592         * MenuAPI.cs: fixes navigation issues
10593
10594 2005-08-09  Umadevi S <sumadevi@novell.com>
10595         * CheckedListBox.cs - simple fix for GetItemChecked.
10596
10597 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
10598
10599         * ComboBox.cs: Serveral fixes
10600         * ListBox.cs: Serveral fixes
10601
10602 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10603
10604         * ComboBox.cs: Fixes FindString methods and GetItemHeight
10605         * ListBox.cs: Fixes FindString methods
10606
10607 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10608
10609         * DataGrid.cs: fixes bugs exposed by new tests
10610
10611 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
10612
10613         * Mime.cs: Compile Mono assembly references only if compiling
10614           with Mono (Allows to build with VS.Net again)
10615
10616 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
10617
10618         * Control.cs (PaintControlBackground): Draw background image
10619         corrrectly.
10620         (CheckForIllegalCrossThreadCalls): Stubbed.
10621         
10622         * Form.cs (OnCreateControl): Center when should be centered.
10623         
10624         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
10625
10626 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
10627
10628         * Binding.cs: Binding to properties should be case unsensitive
10629
10630 2005-07-18 vlindos@nucleusys.com
10631
10632         * DataGrid.cs: fixes setmember order
10633
10634 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
10635
10636         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
10637         * FileDialog.cs: FileDialog is now resizable and uses the new
10638           MimeIconEngine
10639
10640 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
10641
10642         * DataGridTextBoxColumn.cs: default value
10643         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
10644         * GridTableStylesCollection.cs: fixes checking MappingName
10645         * DataGridDrawingLogic.cs: fixes drawing logic issues
10646         * DataSourceHelper.cs: rewritten to make compatible with more data sources
10647         * DataGrid.cs: fixes    
10648
10649 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
10650
10651         * MimeGenerated.cs: Use case sensitive comparer for
10652           NameValueCollections
10653
10654 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
10655
10656         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
10657         * ThemeWin32Classic.cs: bug fixes, code refactoring
10658         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
10659         * DataGrid.cs: bug fixes, code refactoring
10660         * DataGridTextBox.cs: bug fixes, code refactoring
10661         * DataGridColumnStyle.cs:  bug fixes, code refactoring
10662         * Theme.cs:  bug fixes, code refactoring
10663
10664 2005-07-01  Peter Bartok  <pbartok@novell.com> 
10665
10666         * TextControl.cs: Quick fix for the reported crash on ColorDialog
10667           and other text box usage
10668
10669 2005-07-01  Jackson Harper  <jackson@ximian.com>
10670
10671         * TabControl.cs: Make sure the bottom of the tab covers the pages
10672         border.
10673
10674 2005-06-30  Peter Bartok  <pbartok@novell.com> 
10675
10676         * Form.cs (ShowDialog): Assign owner of the dialog
10677         * TextBoxBase.cs: Always refresh caret size when deleting, caret
10678           might have been moved to a tag with different height
10679
10680 2005-06-30  Jackson Harper  <jackson@ximian.com>
10681
10682         * Form.cs: Don't create an infinite loop when setting focus
10683         * MenuItem.cs: Don't dirty the parents if we don't have any
10684
10685 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
10686
10687         * LibSupport.cs: Rename
10688
10689 2005-06-29  Peter Bartok  <pbartok@novell.com>
10690
10691         * TextBoxBase.cs: Re-align caret after deleting a character
10692         * TextControl.cs:
10693           - DeleteChars(): Ensure that tag covers the provided position
10694           - StreamLine(): Drop reference for dropped tag
10695
10696 2005-06-29  Peter Bartok  <pbartok@novell.com> 
10697
10698         * TextControl.cs: 
10699           - Selections now work properly, anchoring at the initial location
10700             and properly extending in either direction (SetSelectionToCaret(),
10701             SetSelectionStart() and SetSelectionEnd())
10702           - No longer redraws the whole control on selection change, now
10703             calculates delta between previous and new selection and only
10704             invalidates/redraws that area
10705           - Fixed FindPos() math off-by-one errors
10706           - Changed DeleteChars() to verify the provided tag covers the
10707             provided position, selections may have a tag that doesn't cover
10708             the position if the selection is at a tag border
10709           - Fixed off-by-one errors in DeleteChars()
10710           - Added missing streamlining check in DeleteChars() to remove
10711             zero-length tags
10712           - Implemented Invalidate() method, now properly calculates exposures
10713             between two given lines/positions
10714           - Implemented SetSelection()
10715           - Obsoleted and removed FixupSelection()
10716           - Improved RecalculateDocument() logic, removing code duplication
10717
10718 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10719
10720         * LibSupport.cs: changes to match different input/output arguments.
10721
10722 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10723
10724         * LibSupport.cs: added libsupport.so init routine.
10725
10726 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
10727         
10728         * ControlBindingsCollection.cs
10729                 - Throws an exception on null datasource when adding
10730                 - Checks for duplicated bindings when adding
10731
10732 2005-06-28  Jackson Harper  <jackson@ximian.com>
10733
10734         * TreeView.cs (OnKeyDown): Support left and right properly
10735         (navigates as well as expanding and collapsing.
10736         - Add support for Multiply, this expands all the selected nodes
10737         children.
10738         - Fix some tabbing.
10739
10740 2005-06-28  Jackson Harper  <jackson@ximian.com>
10741
10742         * TreeView.cs: Implement keyboard navigation, currently supports,
10743         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
10744         support for toggling checkboxes with the space bar.
10745
10746 2005-06-28  Jackson Harper  <jackson@ximian.com>
10747
10748         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
10749         tree.
10750
10751 2005-06-28  Jackson Harper  <jackson@ximian.com>
10752
10753         * TreeView.cs: Add missing event.
10754
10755 2005-06-27  Peter Bartok  <pbartok@novell.com> 
10756
10757         * TextControl.cs:
10758           - Made line ending size configurable (now allows for counting 
10759             lineendings as \n or \r\n)
10760           - Added margin to viewport to keep caret visible on right side
10761           - Fixed translation routines for line/pos to documentpos to consider
10762             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
10763           - Fixed some line-endings to be unix style
10764           - Fixed Document.FormatText to perform it's calculations 1-based
10765           - Added descriptions for a few methods that might otherwise get 
10766             used wrong
10767           - Added NOTE section with some basic conventions to remember at 
10768             the top of the file
10769           - Major fixup for RichTextBox selection drawing:
10770             * Fixed crashes when multiple tags on a single line were selected
10771             * fixed selection box drawing not overlaying text
10772             * fixed bogus offset calculation for tags not starting at index 1
10773             * Switched behaviour from using multiple Substrings of a 
10774               StringBuilder.ToString() to using multiple 
10775               StringBuilder.ToString(start, length) statements, hoping this is
10776               faster (kept original version commented out in the code, in case
10777               original version was faster)
10778         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
10779           alignment != Left
10780         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
10781           call it as well
10782
10783 2005-06-27  Jackson Harper  <jackson@ximian.com>
10784
10785         * TabControl.cs: Move to the left and right with the arrow
10786         keys. These keys don't cycle beyond first and last like
10787         tab. Refresh all the tabs when scrolling them to the left or
10788         right.
10789
10790 2005-06-27  Jackson Harper  <jackson@ximian.com>
10791
10792         * TabControl.cs:
10793           - ToString: Added method
10794           - CreateParams: Remove TODO and comment
10795           - OnKeyDown: Cycle through bounds properly.
10796           - SelectedIndex: Scroll to the right or left if we need to
10797           display the newly selected tab.
10798
10799 2005-06-23  Jackson Harper  <jackson@ximian.com>
10800
10801         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
10802         set.
10803
10804 2005-06-23  Jackson Harper  <jackson@ximian.com>
10805
10806         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
10807         CTRL-SHIFT-TAB, and HOME, END are there any others?
10808
10809 2005-06-23  Jackson Harper  <jackson@ximian.com>
10810
10811         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
10812
10813 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
10814         
10815         * DataGridTextBoxColumn.cs: fixes and enhancements
10816         * ThemeWin32Classic.cs: fixes and enhancements
10817         * DataGridBoolColumn.cs:  fixes and enhancements
10818         * DataGridDrawingLogic.cs:  fixes and enhancements
10819         * CurrencyManager.cs: fixes and enhancements
10820         * DataGrid.cs: fixes and enhancements
10821         * DataGridColumnStyle.cs:  fixes and enhancements
10822
10823 2005-06-22  Jackson Harper  <jackson@ximian.com>
10824
10825         * TabControl.cs: Add some missing methods that just call into the
10826         base. Make the TabPageCollection's IList interface behave in the
10827         same manner as the MS implementation.
10828
10829 2005-06-22  Peter Bartok  <pbartok@novell.com> 
10830
10831         * TextControl.cs: Added sanity check
10832         * TextBoxBase.cs: 
10833           - Fixed wrapping behaviour, don't set wrap on single line controls
10834             (this fixes the breakage of colordialog introduced in an earlier
10835              checkin)
10836           - Added rudimentary support for autoscrolling right-aligned controls
10837             (still needs fixing, also, center alignment scroll is missing)
10838
10839 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
10840         
10841         * ScrollBar.cs: Fixes thumbpos on Maximum values
10842
10843 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
10844         
10845         * PropertyGridView.cs: Pass context information to UITypeEditors 
10846
10847 2005-06-21  Peter Bartok  <pbartok@novell.com> 
10848
10849         * TextBoxBase.cs:
10850           - Now calling PositionCaret with absolute space coordinates
10851           - Enabled vertical scrolling
10852           - Better tracking of scrollbar changes, tied into WidthChange
10853             event
10854           - Improved cursor tracking
10855           - Removed debug output
10856         * TextControl.cs:
10857           - PositionCaret coordinates are now works in absolute space, not 
10858             the canvas
10859           - Improved tracking of document size
10860           - Added events for width and height changes
10861
10862 2005-06-21  Peter Bartok  <pbartok@novell.com>
10863
10864         * Form.cs: Set focus to active control when form is activated
10865         * TextControl.cs: 
10866           - Added word-wrap functionality to RecalculateLine() 
10867           - Added some short function descriptions for VS.Net to aid in
10868             writing dependent controls
10869           - Added Caret property, returning the current coords of the caret
10870           - Added ViewPortWidth and ViewPortHeight properties
10871           - Added Wrap property
10872           - Added CaretMoved event
10873           - Removed some old debug code
10874           - Split() can now create soft splits
10875           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
10876           - Added method to format existing text
10877           - Fixed size/alignment calculations to use viewport
10878           - RecalculateDocument now can handle changing line-numbers while
10879             calculating lines
10880
10881         * TextBox.cs:
10882           - Added some wrap logic, we don't wrap if alignment is not left
10883           - Added casts for scrollbar var, base class switched types to
10884             also support RichTextBoxA
10885           - Implemented handling of scrollbar visibility flags
10886
10887         * TextBoxBase.cs:
10888           - Switched scrollbars type to RichTextBoxScrollBars to support
10889             RichTextBox
10890           - Added tracking of canvas width/height
10891           - Switched scrollbars to be not selectable (to keep focus on text)
10892           - Added central CalculateDocument() method to handle all redraw
10893             requirements
10894           - Added ReadOnly support
10895           - Added WordWrap support
10896           - Fixed handling of Enter key (we now treat it as a DialogKey)
10897           - Fixed caret positioning when h or v scroll is not zero
10898           - Fixed placing/generation of vertical scrollbar
10899           - Added CalculateScrollBars() method to allow updating scrollbar
10900             limits and visibility
10901           - Fixed handling of horizontal scroll
10902           - Added handling of vertical scroll
10903           - Implemented auto-'jump' when caret moves to close to a left or
10904             right border and there is text to be scrolled into view (currently
10905             there's the potential for a stack overflow, until a bug in
10906             scrollbar is fixed)
10907
10908 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
10909         
10910         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
10911
10912 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
10913
10914         * Mime.cs:
10915         - added inodes.
10916         - return application/x-zerosize for files with size zero
10917           (if no extension pattern matches).
10918         - check matches collection for strings too.
10919         - return only the first mime type if the name value
10920           collection has more than one mime type.
10921
10922 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
10923         
10924         * PropertyGrid.cs: Cleaned up some TODOs
10925         * PropertyGridView.cs: Added support for UITypeEditors
10926
10927 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
10928         
10929         * DataGrid.cs: clears cached value
10930
10931 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
10932
10933         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
10934         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
10935         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
10936         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
10937         
10938 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
10939
10940         * ThemeWin32Classic.cs: fixes colour
10941
10942 2005-06-15  Peter Bartok  <pbartok@novell.com>
10943
10944         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
10945         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
10946         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
10947         * Control.cs: Added some MWFCategory and MWFDescription attributes
10948         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
10949
10950 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
10951
10952         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
10953         usage
10954
10955 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
10956
10957         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
10958         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
10959         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
10960         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
10961         * DataGrid.cs: default datagrid settings for Default Styles, fixes
10962         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
10963
10964 2005-06-13  Jackson Harper  <jackson@ximian.com>
10965
10966         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
10967         isn't printed when the user enables dropping. (X11 does accept
10968         drops).
10969         
10970 2005-06-13  Jackson Harper  <jackson@ximian.com>
10971
10972         * TreeView.cs: Remove some TODOS.
10973
10974 2005-06-13  Jackson Harper  <jackson@ximian.com>
10975
10976         * Form.cs: Hook into the mdi framework.
10977         * MdiClient.cs: Use the base control collections add method so
10978         parents get setup correctly. Set the default back colour and dock
10979         style.
10980         * MdiChildContext.cs: New class, this bad actor handles an
10981         instance of an MDI window. Right now there is only basic
10982         support. You can drag, close, and resize windows. Minimize and
10983         Maximize are partially implemented.
10984
10985 2005-06-13  Jackson Harper  <jackson@ximian.com>
10986
10987         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
10988         freaky when both vals are negative. NOTE: There are probably other
10989         places in XplatUIX11 that this needs to be done.
10990
10991 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
10992
10993         * DataGrid.cs: implement missing methods, move KeyboardNavigation
10994         * DataGridColumnStyle.cs: fixes signature
10995
10996 2005-06-12  Jackson Harper  <jackson@ximian.com>
10997
10998         * XplatUIX11.cs: Use sizing cursors similar to the ones on
10999         windows.
11000
11001 2005-06-11  Jackson Harper  <jackson@ximian.com>
11002
11003         * StatusBarPanel.cs: Signature cleanups. Implement
11004         BeginInit/EndInit.
11005
11006 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
11007
11008         * DataGridTextBoxColumn.cs: Honors aligment
11009         * GridColumnStylesCollection.cs: Contains is case unsensitive
11010         * GridTableStylesCollection.cs: several fixes
11011         * DataGridTableStyle.cs: default column creation
11012         * DataGridDrawingLogic.cs: fixes
11013         * CurrencyManager.cs: ListName property
11014         * DataGrid.cs: multiple styles support
11015         * DataGridColumnStyle.cs: fixes
11016         
11017
11018 2005-06-10  Peter Bartok  <pbartok@novell.com>
11019
11020         * Control.cs(Select): Moved SetFocus call to avoid potential
11021           loops if controls change the active control when getting focus
11022         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
11023           the up/down buttons
11024
11025 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
11026
11027         * ImageListConverter.cs: Implemented
11028
11029 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11030
11031         * MonthCalendar.cs: Wired in NumericUpDown control for year
11032
11033 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11034
11035         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
11036           DoubleClick events, since they are not meant to be fired.
11037
11038 2005-06-09  Peter Bartok  <pbartok@novell.com>
11039
11040         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
11041           Jonathan's standalone controls into MWF, implemented missing
11042           events, attributes and methods; added xxxAccessible classes
11043         * AccessibleObject.cs: Made fields internal so other classes
11044           can change them if needed
11045
11046 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
11047
11048         * UpDownBase.cs: Complete implementation
11049         * NumericUpDown.cs: Complete implementation
11050         * DomainUpDown.cs: Complete implementation
11051
11052 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
11053
11054         * DataGridTextBoxColumn.cs: drawing fixes
11055         * DataGridCell.cs: fixes ToString method to match MSNet
11056         * DataGridTableStyle.cs: fixes
11057         * DataGridBoolColumn.cs: fixes, drawing
11058         * DataGridDrawingLogic.cs: fixes, new methods
11059         * DataGridTextBox.cs: Keyboard and fixes
11060         * DataGrid.cs:
11061                 - Keyboard navigation
11062                 - Scrolling fixes
11063                 - Row selection (single, multiple, deletion, etc)
11064                 - Lots of fixes
11065         
11066 2005-06-07  Jackson Harper  <jackson@ximian.com>
11067
11068         * ThemeWin32Classic.cs: Clear the background area when drawing
11069         buttons.
11070
11071 2005-06-06  Peter Bartok  <pbartok@novell.com>
11072
11073         * ImageListStreamer.cs: Fixed signature for GetData
11074         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
11075         * ComboBox.cs:
11076           - Added missing ChildAccessibleObject class
11077           - Added missing OnXXXFocus overrides, switched to using those
11078             instead of the event handler
11079         * Control.cs:
11080           - Added Parent property for ControlAccessibleObject
11081           - Fixed signatures
11082           - Fixed attributes
11083           - Added ResetBindings()
11084         * ListBindingConverter.cs: Implemented some methods
11085         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
11086         * ImageList.cs: Implemented basic handle scheme, removed TODOs
11087         * ContainerControl.cs: Fixed signature, now subscribing to the
11088           ControlRemoved event instead of overriding the handler, LAMESPEC
11089         * CurrencyManager.cs: Added missing attribute
11090         * MonthCalendar.cs: Added missing properties
11091
11092 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11093
11094         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
11095         
11096 2005-06-06  Gaurav Vaish and Ankit Jain
11097
11098         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
11099         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
11100         
11101 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11102
11103         * Control.cs: fixes CreateParams Width / Height.
11104
11105 2005-06-05  Peter Bartok  <pbartok@novell.com>
11106
11107         * Win32DnD.cs: Removed compilation warnings
11108
11109 2005-06-05  Peter Bartok  <pbartok@novell.com>
11110
11111         * Control.cs (CreateParams): Since we don't know if one of the
11112           properties we use is overridden, lets make sure if we fail accessing
11113           we continue with a backup plan
11114
11115 2005-06-05  Peter Bartok  <pbartok@novell.com>
11116
11117         * Win32DnD.cs:
11118           - Removed debug output
11119           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
11120             struct
11121           - Plugged resource leak
11122         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
11123           MS size
11124
11125 2005-06-05  Peter Bartok  <pbartok@novell.com>
11126
11127         * XplatUIWin32.cs: Removed DnD code
11128         * Win32DnD.cs: Implemented drop source and drop target functionality
11129
11130 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11131
11132         * UpDownBase.cs: remove duplicate addition of event, enable some code
11133         that was commented out.
11134         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
11135         Validate input when a key is pressed. It works fine now for every
11136         combination of Hexadecimal. Only missing some drawing love when sharing
11137         space with other controls.
11138
11139 2005-06-04  Peter Bartok  <pbartok@novell.com>
11140
11141         * Control.cs:
11142           - We need to pass a window for DragDrop, so enable callback events
11143           - Added DnD callback events when being a DragSource
11144         * XplatUI.cs (StartDrag): Added window handle argument
11145         * XplatUIDriver.cs (StartDrag): Added window handle argument
11146         * QueryContinueDragEventArgs: Made fields internally accessible so
11147           drivers can set them
11148         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
11149           can set them
11150
11151 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
11152
11153         * DataGridTextBoxColumn.cs: column text editing
11154         * DataGridTableStyle.cs: Respect columns styles created by the user
11155         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
11156         * DataGridBoolColumn.cs: bool column editing
11157         * DataGrid.cs: fixes to scrolling, properties, etc
11158         * DataGridTextBox.cs: handle keyboard
11159         * DataGridColumnStyle.cs: fixes
11160
11161 2005-06-02  Jackson Harper  <jackson@ximian.com>
11162
11163         * ImageListStreamer.cs: Somewhat broken implementation of
11164         GetObjectData. The RLE needs some work to match MS properly.
11165
11166 2005-06-02  Jackson Harper  <jackson@ximian.com>
11167
11168         * X11Dnd.cs: Attempting to keep at least one file in MWF
11169         monostyled.
11170
11171 2005-06-02  Peter Bartok  <pbartok@novell.com>
11172
11173         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
11174           that way
11175
11176 2005-06-02  Peter Bartok  <pbartok@novell.com>
11177
11178         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
11179         * XplatUI.cs: Added DoDragDrop() method
11180         * XplatUIDriver.cs: Added DoDragDrop() method
11181
11182 2005-06-02  Jackson Harper  <jackson@ximian.com>
11183
11184         * Splitter.cs: Implement BorderStyle.
11185
11186 2005-06-02  Jackson Harper  <jackson@ximian.com>
11187
11188         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
11189         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
11190         X11 using XDND.
11191
11192 2005-06-02  Peter Bartok  <pbartok@novell.com>
11193
11194         * DataObject.cs:
11195           - Added Data setter
11196           - Fixed broken insertion code for SetData, now also
11197             overwrites any existing entry of the same format name
11198         * Hwnd.cs: Added list of pointers that automatically gets
11199           freed when the window is disposed
11200         * XplatUI.cs: Call driver initialization method when loading
11201           a driver
11202         * Control.cs:
11203           - OnDragLeave takes EventArgs, not DragEventArgs
11204           - Added setting of WS_EX_ACCEPTFILES style when dropping is
11205             supported
11206           - Forces style update when drop state changes
11207         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
11208           not perfect since we cannot (yet) call the IDataObject.GetData()
11209           method, we keep getting 0x80004005 error, dunno why)
11210
11211 2005-06-02  Peter Bartok  <pbartok@novell.com>
11212
11213         * DragEventArgs.cs: Make fields internal so we can cache the
11214           object and re-set the fields from XplatUI
11215
11216 2005-06-02  Jackson Harper  <jackson@ximian.com>
11217
11218         * Control.cs: Add some internal methods so the DnD subsystem can
11219         raise DnD events. Also call into the driver when AllowDrop is set.
11220         * XplatUI.cs:
11221         * XplatUIDriver.cs: New method for setting whether or not a window
11222         is allowed to accept drag and drop messages.
11223                 
11224 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
11225         
11226         * ScrollBar.cs: Make sure that values sent in Scroll events
11227         are always between Maximum and Minimum.
11228
11229 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
11230
11231         * Menu.cs: Call MenuChanged when menuitem visibility has been
11232         changed.
11233         * MenuItem.cs: Rebuild menu when item is (not) visible.
11234         * MainMenu.cs: MainMenu has special MenuChanged.
11235         * Theme.cs: Caption and FrameBorderSize are not fixed.
11236         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
11237         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
11238         * XplatUIX11.cs,
11239         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
11240         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
11241
11242 2005-05-30  Jackson Harper  <jackson@ximian.com>
11243
11244         * DataFormat.cs: We can't statically initialize this stuff because
11245         it calls into the xplatui and could create a loop. So we lazy init
11246         it.
11247
11248 2005-05-28  Jackson Harper  <jackson@ximian.com>
11249
11250         * Control.cs: Proper implementation of Product(Name/Version).
11251
11252 2005-05-27  Jackson Harper  <jackson@ximian.com>
11253
11254         * DataObject.cs: Dont crash if no data is found.
11255
11256 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
11257         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
11258                 as per status page, guessing it should be set to true
11259
11260 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
11261
11262         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
11263         * DataGridTableStyle.cs: set proper formatting text, def header text
11264         * ThemeWin32Classic.cs: new themable paramaters
11265         * DataGridBoolColumn.cs: paint check box, get data, fixes
11266         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
11267         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
11268         * DataGridColumnStyle.cs: fixes
11269         * Theme.cs: new themable paramaters
11270                 
11271 2005-05-26  Peter Bartok  <pbartok@novell.com>
11272
11273         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
11274
11275 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11276         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
11277
11278 2005-05-24  Peter Bartok  <pbartok@novell.com>
11279
11280         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
11281           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
11282           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
11283           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
11284           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
11285           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
11286           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
11287           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
11288           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
11289           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
11290           missing attributes, etc
11291         * DataGridPreferredColumnWidthTypeConverter.cs: Added
11292
11293 2005-05-24  Peter Bartok  <pbartok@novell.com>
11294
11295         * Help.cs: Added, implemented trivial functions, throws up MessageBox
11296           when user tries to get help
11297         * DataObject.cs, DataFormats.cs, LinkArea.cs,
11298           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
11299           to suppress warnings
11300         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
11301           avoid unreachable code warning
11302
11303 2005-05-20  Peter Bartok  <pbartok@novell.com>
11304
11305         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
11306
11307 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11308
11309         * DataGridTextBoxColumn.cs: Basic painting methods
11310         * DataGridTableStyle.cs: Set table style in the column
11311         * ThemeWin32Classic.cs: Use Theme for colors
11312         * DataGridDrawingLogic.cs: Implement more drawing
11313         * DataGrid.cs: drawing, theming, enhacements, fixes
11314         * DataGridColumnStyle.cs: fixes, drawing
11315         * Theme.cs: theming for Datagrid
11316
11317 2005-05-20  Peter Bartok  <pbartok@novell.com>
11318
11319         * Cursor.cs: Implemented GetObjectData() method
11320
11321 2005-05-20  Peter Bartok  <pbartok@novell.com>
11322
11323         * Cursors.cs: Added setting of cursor name
11324         * Cursor.cs:
11325           - Implemented constructors
11326           - Implemented Draw and DrawStretched
11327           - Implemented Current property
11328           - Implemented == and != operators
11329           - Implemented Dispose()
11330           - Implemented ToString
11331           - Added missing attributes
11332         * XplatUIX11.cs:
11333           - Added missing reset for OverrideCursor when DoEvents is called
11334           - Fixed creation of cursor, logic was wrong
11335         * XplatUIWin32.cs:
11336           - Added missing reset for OverrideCursor when DoEvents is called
11337           - Fixed creation of cursor, bit arrays were swapped
11338         * Clipboard.cs: Removed obsolete MonoTODO attribute
11339
11340 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11341
11342         * ComboBox.cs: fixes OnSelectedItemChanged
11343         * ControlBindingsCollection.cs: fixes item range check
11344
11345 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11346
11347         * UpDownBase.cs:
11348                 - Calc preferred height properly
11349                 - Implement missing properties
11350                 
11351         * NumericUpDown.cs: Implement missing events
11352
11353 2005-05-19  Jackson Harper  <jackson@ximian.com>
11354
11355         * TabControl.cs: New method that resizes the tab pages before
11356         redrawing them. This as needed as the control is double buffered
11357         and sizing will not be recalculated unless ResizeTabPages is
11358         called.
11359         * TabPage.cs: Set base.Text instead of Text in the constructor so
11360         that UpdateOwner does not get called. Use the new Redraw method of
11361         TabControl instead of Refresh so the sizing is recalculated.
11362         * ThemeWin32Classic.cs: Draw the text for button tabs.
11363
11364 2005-05-19  Jackson Harper  <jackson@ximian.com>
11365
11366         * Control.cs: Paint control background images. Fix typo where
11367         PaintControlBackground was not getting called correctly.
11368
11369 2005-05-19  Peter Bartok  <pbartok@novell.com>
11370
11371         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
11372           I can investigate, apparently I broke FileDialog
11373
11374 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
11375
11376         * AxHost.cs: Some simple properties.
11377         * Control.cs: window must be accessible after ctor.
11378         * Form.cs: Added TransparencyKey property.
11379         * TextBoxBase.cs: Implemented Clear. Text property can be null.
11380         * XplatUIWin32.cs: SetBorderStyle implemented.
11381
11382 2005-05-18  Peter Bartok  <pbartok@novell.com>
11383
11384         * DataObject.cs: Entries are not global but particular to the
11385           DataObject, now it behaves that way
11386         * XplatUIWin32.cs: Implemented Clipboard methods
11387         * Clipboard.cs: Implemented
11388         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
11389         * XplatUIOSX.cs: Updated to final clipboard prototypes
11390         * XplatUIX11.cs: Implemented Clipboard methods
11391         * XplatUIDriver.cs: Updated to final clipboard prototypes
11392         * XplatUIStructs.cs:
11393           - Added BITMAPINFOHEADER struct
11394           - Added ClipboardFormats enum
11395         * X11Structs.cs:
11396           - Added ClipboardStruct
11397           - Added Atom enum items for clipboard types
11398           - Fixed atom types for Selection event structures
11399         * DataFormats.cs:
11400           - Added internal properties and methods for drivers to enumerate
11401             all known formats
11402           - Switched initialization method to allow drivers to assign their
11403             own IDs even for the MS predefined clipboard IDs
11404         * XplatUI.cs: Updated to final clipboard interface
11405
11406 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11407         * PropertyGridView.cs: Fixed compiler warnings.
11408
11409 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11410         * PropertyGrid.cs: Added some event calls
11411         * PropertyGridView.cs: Change drawing code to use double buffering
11412         * PropertyGridTextBox.cs: Changed Text property name
11413         * GridItem.cs: Added Bounds property.
11414         * GridEntry.cs: Added Bounds property.
11415
11416 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
11417
11418         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
11419         since GetType() may not return the correct type if the object is
11420         a remoting proxy.
11421
11422 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
11423
11424         * TreeNodeCollection.cs: fixes get/set item ranges
11425         
11426 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11427
11428         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
11429                 
11430 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11431
11432         * ComboBox.cs: Fix item range comparation
11433         * ListView.cs: Fix item range comparation
11434
11435 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11436
11437         * FontDialog.cs:
11438           - Clear example panel when OnPaint is called
11439           - Better solution for displaying the example panel text
11440           - Select default indexes in the ListBoxes
11441
11442 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11443
11444         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
11445
11446 2005-05-11  Peter Bartok  <pbartok@novell.com>
11447
11448         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
11449         * SelectionRangeConverter.cs: Implemented
11450         * PropertyGrid.cs: Fixed attribute value
11451         * Control.cs:
11452           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
11453           - Added Sebastien Pouliot's CAS Stack Propagation fixes
11454         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
11455           that's common to all drivers. First methods to go there are
11456           Sebastien Pouliot's CAS Stack Propagation helper methods
11457         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
11458           Sebastien Pouliot for CAS Stack Propagation
11459
11460 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11461
11462         * OSXStructs.cs:
11463           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
11464
11465 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
11466
11467         * DataGridTextBoxColumn.cs: fixed some members
11468         * GridColumnStylesCollection.cs: indexed column is case insensitive
11469         * DataGridTableStyle.cs: fixes
11470         * ThemeWin32Classic.cs: add new theme parameter
11471         * Theme.cs: add new theme parameter
11472         * DataGridDrawingLogic.cs: Datagrid's drawing logic
11473         * DataGrid.cs: fixes, new internal properties, etc.
11474         * DataGridColumnStyle.cs: allows to set grid value
11475         *
11476
11477 2005-05-10  Peter Bartok  <pbartok@novell.com>
11478
11479         * AccessibleObject.cs:
11480           - Removed MonoTODO attribute on help, method is correct
11481           - Fixed Bounds property
11482         * AxHost.cs: Moved MonoTODO
11483         * ButtonBase.cs: Now setting AccessibleObject properties
11484         * RadioButton.cs: Setting proper AccessibleObject role
11485         * CheckBox.cs: Setting proper AccessibleObject role
11486         * ControlBindingsCollection.cs: Added properties, methods and attributes
11487         * DataFormats.cs: Fixed awkward internal API, and changed to enable
11488           userdefined DataFormats.Format items as well
11489         * ListControl.cs: Removed data_member from the public eye
11490         * OpenFileDialog.cs:
11491           - Made class sealed
11492           - Added missing attributes
11493         * SaveFileDialog.cs: Added missing attributes
11494         * ImageListStreamer.cs: Fixed code that caused warnings
11495         * LinkLabel.cs: Removed unreachable code
11496         * TreeView.cs: Fixed code that caused warnings
11497         * PropertyGridView.cs: Fixed code that caused warnings
11498         * GridColumnStylesCollection.cs: Added missing attributes
11499         * GridTableStylesCollection: Added missing attribute
11500         * PropertyManager: Added .ctor
11501         * SecurityIDType: Added
11502         * DataObject.cs: Implemented class
11503         * LinkArea.cs: Added missing attribute
11504
11505 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
11506
11507         * RadioButton.cs: call base method to allow to fire OnClick event
11508         * UpDownBase.cs: OnMouseUp call base method
11509         * CheckedListBox.cs: call base method before returning
11510         * TrackBar.cs: call base method before returning
11511         
11512
11513 2005-05-10  Peter Bartok  <pbartok@novell.com>
11514
11515         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
11516           for messages
11517
11518 2005-05-10  Peter Bartok  <pbartok@novell.com>
11519
11520         * DataFormats.cs: Implemented
11521         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
11522           XplatUIX11.cs: Added Clipboard APIs
11523         * XplatUIWin32.cs: Implemented Clipboard APIs
11524         * FolderBrowserDialog.cs: Added missing event, attributes
11525
11526 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
11527
11528         * CheckBox.cs: call base method to allow to fire OnClick event
11529
11530 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
11531
11532         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
11533
11534 2005-05-06  Peter Bartok  <pbartok@novell.com>
11535
11536         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
11537         * Screen.cs: Implemented
11538         * HelpNavigator.cs: Added
11539         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
11540           property
11541         * HelpProvider.cs: Implemented all we can do until we have a CHM
11542           help library (which means that "What's This" does work now)
11543
11544 2005-05-06  Jackson Harper  <jackson@ximian.com>
11545
11546         * XplatUIX11.cs: Fix waking up the main loop.
11547                 
11548 2005-05-05  Peter Bartok  <pbartok@novell.com>
11549
11550         * XplatUI.cs: Updated revision
11551         * Form.cs: Removed enless loop
11552         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
11553         * Label.cs (OnPaint): Added call to base.OnPaint()
11554         * ToolTip.cs: Made ToolTipWindow reusable for other controls
11555         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
11556         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
11557         * AxHost.cs: Added
11558         * ButtonBase.cs: Moved base.OnPaint() call to end of method
11559         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
11560           to ToolTip.ToolTipWindow for drawing and size methods; this allows
11561           reuse of ToolTipWindow by other controls
11562         * SizeGrip.cs: Moved base.OnPaint() call to end of method
11563         * XplatUIX11.cs: Now clipping drawing area (experimental)
11564         * PictureBox.cs: Moved base.OnPaint() call to end of method
11565         * Theme.cs: Fixed ToolTip abstracts to match new format
11566         * ErrorProvider.cs: Implemented
11567
11568 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
11569
11570         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
11571         * LinkLabel.cs:
11572                 - Adds cursors
11573                 - Handles focus
11574                 - Implements LinkBehavior
11575                 - Fixes many issues
11576
11577 2005-05-03  Jackson Harper  <jackson@ximian.com>
11578
11579         * ListView.cs: Calculate the scrollbar positioning on resize and
11580         paint, so they get put in the correct place.
11581
11582 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11583
11584         * ColorDialogs.cs: The small color panels are now handled by
11585           SmallColorControl. This fixes drawing of the focus rectangle
11586           and adds a 3D border.
11587
11588 2005-05-03  Peter Bartok  <pbartok@novell.com>
11589
11590         * Control.cs: Modified version of Jonathan Chamber's fix for
11591           double-buffering
11592
11593 2005-05-03  Jackson Harper  <jackson@ximian.com>
11594
11595         * ListView.cs: Remove redraw variable. Control now handles whether
11596         or not a redraw needs to be done, and will only raise the paint
11597         event if redrawing is needed.
11598
11599 2005-05-03  Jackson Harper  <jackson@ximian.com>
11600
11601         * Splitter.cs: No decorations for the splitter form. Cache the
11602         hatch brush.
11603
11604 2005-05-03  Jackson Harper  <jackson@ximian.com>
11605
11606         * TreeView.cs: Use dashed lines to connect nodes. Use the
11607         ControlPaint method for drawing the focus rect instead of doing
11608         that in treeview.
11609
11610 2005-05-02  Peter Bartok  <pbartok@novell.com>
11611
11612         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
11613
11614 2005-04-29  Jackson Harper  <jackson@ximian.com>
11615
11616         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
11617         entire image buffer. Just clear the clipping rectangle.
11618
11619 2005-04-29  Jackson Harper  <jackson@ximian.com>
11620
11621         * ThemeWin32Classic.cs: Don't draw list view items that are
11622         outside the clipping rectangle.
11623
11624 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
11625
11626         * ListBox.cs: added horizontal item scroll
11627
11628 2005-04-29  Jackson Harper  <jackson@ximian.com>
11629
11630         * ThemeWin32Classic.cs: Remove some old debug code that was
11631         causing flicker with the new double buffering code.
11632
11633 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
11634
11635         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
11636         behave like combobox and comboboxlist (still not sure if this is
11637         correct though).
11638
11639 2005-04-28  Jackson Harper  <jackson@ximian.com>
11640
11641         * ThemeWin32Classic.cs: Don't fill the middle of progress
11642         bars. This fills areas outside of the clip bounds that don't need
11643         to be filled.
11644
11645 2005-04-28  Jackson Harper  <jackson@ximian.com>
11646
11647         * Control.cs: Don't expose functionality to touch the image buffers.
11648         * ProgressBar.cs:
11649         * ListView.cs: We do not need to (and no longer can) manipulate
11650         the image buffers directly. All of this is handled by Control.
11651
11652 2005-04-28  Peter Bartok  <pbartok@novell.com>
11653
11654         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11655           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
11656           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
11657
11658 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11659
11660         * Combobox:
11661                 - Adjust control's height for non-simple comboboxes (bug fix)
11662                 - Remove dead code
11663         * MenuAPI.cs: remove unused var
11664         * ScrollBar.cs: remove unsed var
11665                  
11666         * ListBox.cs: unselect items when clearing
11667
11668 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11669
11670         * ListControl.cs: honors OnPositionChanged and default Selected Item
11671         * ListBox.cs: unselect items when clearing
11672
11673 2005-04-27  Jackson Harper  <jackson@ximian.com>
11674
11675         * X11Keyboard.cs: Initialize a default keyboard and give a warning
11676         if a "correct" keyboard is not found. This will make us not crash,
11677         but might give some users bad keyboard layouts...seems to be the
11678         same thing rewind does.
11679
11680 2005-04-27  Jackson Harper  <jackson@ximian.com>
11681
11682         * BindingManagerBase.cs: Attach the current/position changed
11683         handlers to their respective events.
11684
11685 2005-04-27  Jackson Harper  <jackson@ximian.com>
11686
11687         * Control.cs: Make sure that the first WM_PAINT does a full draw,
11688         not just a blit.
11689         * ThemeWin32Classic.cs: Don't fill the background for picture
11690         boxes. This could overright user drawing.
11691         * ComboBox.cs: Just fill the clipping rect not the entire client
11692         rect when drawing the background. This prevents pieces of the
11693         image buffer from getting overwritten and is theoretically faster.
11694
11695 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
11696
11697         * ComboBox.cs: Databinding support fixes, fire missing events
11698         * ListControl.cs: implement missing methods and properties, fixes
11699         * ThemeWin32Classic.cs: Databiding support on Drawing
11700         * CheckedListBox.cs: Databinding support fixes, fire missing events
11701         * ListBox.cs: Databinding support fixes, fire missing events
11702         
11703 2005-04-25  Peter Bartok  <pbartok@novell.com>
11704
11705         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
11706
11707 2005-04-25  Jackson Harper  <jackson@ximian.com>
11708
11709         * TreeView.cs: Use the horizontal scrollbars height not width when
11710         determining how much of the client area is available.
11711
11712 2005-04-25  Jackson Harper  <jackson@ximian.com>
11713
11714         * Control.cs: Double buffering is handled differently now. As per
11715         the spec, the extra buffer is created in the WM_PAINT message and
11716         passed down to the control's drawing code.
11717         * GroupBox.cs:
11718         * Label.cs:
11719         * CheckBox.cs:
11720         * ProgressBar.cs:
11721         * RadioButton.cs:
11722         * ColorDialog.cs:
11723         * ComboBox.cs:
11724         * PropertyGridView.cs:
11725         * UpDownBase.cs:
11726         * MessageBox.cs:
11727         * MenuAPI.cs:
11728         * ListView.cs:
11729         * ButtonBase.cs:
11730         * SizeGrip.cs:
11731         * ScrollBar.cs:
11732         * ListBox.cs:
11733         * TrackBar.cs:
11734         * ToolBar.cs:
11735         * PictureBox.cs:
11736         * DateTimePicker.cs:
11737         * StatusBar.cs:
11738         * TreeView.cs: Update to new double buffering system.
11739         * MonthCalendar.cs: Uncomment block, as Capture is now
11740         working. Update to new double buffering
11741         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
11742         * PaintEventArgs.cs: New internal method allows us to set the
11743         graphics object. This is used for double buffering.
11744         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
11745         rectangle. The internal paint_area var has been removed from
11746         StatusBar. The clipping rect should be used instead.
11747         * Theme.cs: Give the PictureBox drawing method a clipping rect.
11748         * TabPage.cs: The RefreshTabs method was removed, so just call the
11749         tab controls Refresh method now.
11750         * TabControl.cs: Update to new double buffering. Make sure the
11751         handle is created before sizing the tab pages, otherwise we will
11752         get stuck in a loop.
11753
11754 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
11755
11756         * LinkLabel.cs: Fix typo, bug #74719; patch
11757           from Borja Sanchez Zamorano
11758
11759 2005-04-22  Jackson Harper  <jackson@ximian.com>
11760
11761         * TreeNode.cs: Implement Handle stuff.
11762         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
11763
11764 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
11765
11766         * DataGridTextBoxColumn.cs: call base constructors, fixes
11767         * GridColumnStylesCollection.cs: missing events, methods, and functionality
11768         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
11769         * DataGridTableStyle.cs: implements create default column styles
11770         * DataGridBoolColumn.cs: which types can handle
11771         * DataGrid.cs: missing methods, fixes, new functionality
11772         * DataGridColumnStyle.cs: fixes
11773
11774 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
11775         * FolderBrowserDialog.cs:
11776         - Use a thread to fill the TreeView
11777         - Adjusted some sizes
11778
11779 2005-04-19  Peter Bartok  <pbartok@novell.com>
11780
11781         * LinkLabel.cs: (Re-)create the pieces when setting the Text
11782           property. Fixes #74360.
11783
11784 2005-04-19  Jackson Harper  <jackson@ximian.com>
11785
11786         * XEventQueue.cs: Lock when getting the lockqueue size.
11787         * PictureBox.cs: Call base OnPaint
11788         
11789 2005-04-19  Peter Bartok  <pbartok@novell.com>
11790
11791         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
11792           messages were no longer being processed (this broke BeginInvoke)
11793
11794           
11795 2005-04-18  Jackson Harper  <jackson@ximian.com>
11796
11797         * TreeView.cs: buglet that caused node images to get drawn
11798         regardless of whether or not they were in the clipping rectangle.
11799
11800 2005-04-18  Jackson Harper  <jackson@ximian.com>
11801
11802         * CurrencyManager.cs: There are four rules for GetItemProperties:
11803         - If the type is an array use the element type of the array
11804         - If the type is a typed list, use the type
11805         - If the list contains an Item property that is not an object, use
11806         that property
11807         - use the first element of the list if there are any elements in
11808         the list.
11809         
11810 2005-04-17  Jackson Harper  <jackson@ximian.oom>
11811
11812         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
11813         click. This handles offsets for scrolling properly and reduces
11814         memory. Also fixed GetNode to not offset now that TopNode works
11815         properly.
11816         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
11817         
11818 2005-04-17  Jackson Harper  <jackson@ximian.com>
11819
11820         * CursorConverter.cs: Initial implementation.
11821
11822 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
11823
11824         * ListControl.cs: work towards complex data binding support on ListControl
11825         * CurrencyManager.cs: work towards complex data binding support on ListControl
11826         * ListBox.cs: work towards complex data binding support on ListControl
11827
11828
11829 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
11830
11831         * GridTableStylesCollection.cs: fixes name and constructor
11832         * DataGridTableStyle.cs: fixes
11833         * DataGridBoolColumn.cs: fixes names and constructors
11834         * DataGrid.cs: define methods and properties. Some init implementations
11835         * DataGridCell.cs: define methods and properties. Some init implementations
11836         * GridTablesFactory.cs: Define methods and properties
11837
11838 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
11839
11840         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
11841         graphics port changes.  We still want the coordinates in global screen
11842         coordinates.
11843
11844 2005-04-14  Jackson Harper  <jackson@ximian.com>
11845
11846         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
11847         check plus minus or checkbox clicks unless those features are enabled.
11848
11849 2005-04-14  Jackson Harper  <jackson@ximian.com>
11850
11851         * TreeView.cs: Add methods for setting the top and bottom visible
11852         nodes. TreeNode::EnsureVisible uses these methods.
11853         * TreeNode.cs: Implement EnsureVisible
11854
11855 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
11856
11857         * Form.cs: Pospone menu assignation if the window has not been created yet
11858         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
11859         size and position
11860
11861 2005-04-12  Jackson Harper  <jackson@ximian.com>
11862
11863         * TreeView.cs: Set the TopNode properly when scrolling
11864         occurs. This has the added benifit of reducing the amount of
11865         walking that needs to be done when drawing. Also removed an old
11866         misleading TODO.
11867         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
11868         
11869 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
11870
11871         * Timer.cs: fixes interval setting when the timer is already enabled
11872         
11873 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
11874
11875         * FolderBrowserDialog.cs: First approach
11876
11877 2005-04-09  Peter Bartok  <pbartok@novell.com>
11878
11879         * FolderBrowserDialog: Added
11880
11881 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
11882
11883         * LinkLabel.cs: move drawing code into the theme
11884         * ThemeWin32Classic.cs: drawing code and painting background bugfix
11885         * Theme.cs: define DrawLinkLabel method
11886
11887 2005-04-05  Jackson Harper  <jackson@ximian.com>
11888
11889         * BindingContext.cs: Use weak references so these bad actors don't
11890         stay alive longer then they need to.
11891
11892 2005-04-05  Jackson Harper  <jackson@ximian.com>
11893
11894         * ListControl.cs: Basic implementation of complex databinding.
11895         * ComboBox.cs:
11896         * ListBox.cs: Add calls to ListControl databinding methods.
11897
11898 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
11899
11900         * FileDialog.cs:
11901           - Don't change PopupButtonState to Normal when the
11902             PopupButton gets pressed several times.
11903           - Renamed ButtonPanel to PopupButtonPanel
11904
11905 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
11906
11907         * ColorDialog.cs: Use cached objects instead of creating them
11908         * LinkLabel.cs: Use cached objects instead of creating them
11909         * Splitter.cs: Use cached objects instead of creating them
11910         * FontDialog.cs: Use cached objects instead of creating them
11911         * PropertyGridView.cs: Use cached objects instead of creating them
11912         * MessageBox.cs: Use cached objects instead of creating them
11913         * FileDialog.cs: Use cached objects instead of creating them
11914         * ThemeWin32Classic.cs: Use cached objects instead of creating them
11915         * TreeView.cs: Use cached objects instead of creating them
11916         
11917 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
11918
11919         * Control.cs: use Equals to compare the font since no == op
11920         * ScrollBar.cs: use Equals to compare the font since no == op
11921
11922 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
11923
11924         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
11925
11926 2005-04-01  Jackson Harper  <jackson@ximian.com>
11927
11928         * Binding.cs: Implement IsBinding.
11929         * BindingManagerBase.cs:
11930         * PropertyManager.cs:
11931         * CurrencyManager.cs: Add IsSuspended property.
11932
11933 2005-04-01  Jackson Harper  <jackson@ximian.com>
11934
11935         * Binding.cs: Had some IsAssignableFrom calls backwards.
11936
11937 2005-04-01  Jackson Harper  <jackson@ximian.com>
11938
11939         * Binding.cs: Handle null data members when pulling data.
11940         * PropertyManager.cs: Handle the data member being a property that
11941         does not exist.
11942
11943 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
11944
11945         * DataGridTextBoxColumn.cs: fixes signature
11946         * DataGrid.cs: calls right constructor
11947
11948 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
11949
11950         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
11951         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
11952         * GridTableStylesCollection.cs: implements GridTableStylesCollection
11953         * DataGridTableStyle.cs: implements DataGridTableStyle
11954         * DataGridBoolColumn.cs: implements DataGridBoolColumn
11955         * DataGridTextBox.cs: implements DataGridTextBox
11956         * DataGridColumnStyle.cs: implements DataGridColumnStyle
11957
11958 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
11959
11960         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
11961
11962 2005-03-29  Peter Bartok  <pbartok@novell.com>
11963
11964         * Application.cs:
11965           - Properly implemented CompanyName property
11966           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
11967             returns a path that includes CompanyName, ProductName and
11968             Version (fixes bug #70330)
11969
11970 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
11971
11972         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
11973           fixes bug #72588.
11974
11975 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
11976
11977         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
11978         
11979           - Added ReadOnly CheckBox
11980           - Further refactoring: moved some code from Open-/SaveFileDialog
11981             to FileDialog
11982
11983 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
11984
11985         * OpenFileDialog.cs: Fixed CheckFileExists
11986         * FileDialog.cs:
11987           Moved FileView and DirComboBox outside FileDialog class.
11988           They can now be used outside FileDialog
11989
11990 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
11991
11992         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
11993         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
11994
11995 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
11996
11997         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
11998           - Added missing CreatePrompt property in SaveDialog
11999           - Overall SaveDialog handling should be better now
12000           - Added non standard ShowHiddenFiles property
12001           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
12002           - Added InitialDirectory and RestoreDirectory support
12003
12004 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
12005
12006         * FileDialog.cs: Made dirComboBox usable
12007
12008 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
12009
12010         * FileDialog.cs: Added Filter support (case sensitiv)
12011
12012 2005-03-24  Jackson Harper  <jackson@ximian.com>
12013
12014         * TabControl.cs: Need a couple more pixels for the lines.
12015
12016 2005-03-23  Jackson Harper  <jackson@ximian.com>
12017
12018         * TabControl.cs: Give the tab page focus when it is selected.
12019
12020 2005-03-23  Jackson Harper  <jackson@ximian.com>
12021
12022         * TabControl.cs: Account for the drawing of tabs borders when
12023         invalidating. If the slider was clicked dont do click detection on
12024         the tabs.
12025
12026 2005-03-23  Jackson Harper  <jackson@ximian.com>
12027
12028         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
12029
12030 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
12031
12032         * CategoryGridEntry.cs: Added
12033         * GridItem.cs: Added helper properties
12034         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
12035         * GridEntry.cs: Updated code for collection
12036         * PropertyGrid.cs: Cleaned up some formatting
12037         * PropertyGridView.cs: Added drop down functionality for enums.
12038         * GridItemCollection.cs: Added enumerator logic
12039         * PropertyGridEntry.cs: Added
12040
12041 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12042
12043         * FileDialog.cs:
12044           - Removed unnecessary commented code
12045           - Fixed handling for entering the filename manually in the combobox
12046
12047 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12048
12049         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
12050
12051 2005-03-18  Peter Bartok  <pbartok@novell.com>
12052
12053         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
12054           them being touching the border
12055
12056 2005-03-18  Peter Bartok  <pbartok@novell.com>
12057
12058         * TextControl.cs: Quick hack to center text better
12059
12060 2005-03-18  Peter Bartok  <pbartok@novell.com>
12061
12062         * ControlPaint.cs:
12063           - Don't throw NotImplemented exceptions, just print a notice once
12064             instead (requested by Miguel). This makes running existing SWF
12065             apps a bit easier
12066         * Control.cs:
12067           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
12068           - Added context menu trigger on right click
12069         * Panel.cs: Trigger invalidate on resize
12070         * StatusBar.cs:
12071           - Removed old double-buffer drawing
12072           - Added ResizeRedraw style to force proper update of statusbar
12073         * ListView.cs:
12074           - Removed debug output
12075         * ThemeWin32Classic.cs:
12076           - Fixed drawing of status bar, now draws Text property if there
12077             are no defined panels
12078
12079 2005-03-18  Jackson Harper  <jackson@ximian.com>
12080
12081         * ImageList.cs: When the image stream is set pull all the images
12082         from it.
12083         * ImageListStreamer.cs: Implement reading image list streams.
12084
12085 2005-03-18  Peter Bartok  <pbartok@novell.com>
12086
12087         * ThemeWin32Classic.cs (DrawPictureBox):
12088           - Fixed calculations for centered drawing
12089           - Fixed drawing for normal mode, not scaling the image on normal
12090
12091 2005-03-18  Peter Bartok  <pbartok@novell.com>
12092
12093         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
12094           textbox
12095         * FileDialog.cs:
12096           - Made Open/Save button the accept button for FileDialog
12097           - Tied the cancel button to the IButtonControl cancel button
12098           - Save/Open now properly builds the pathname
12099           - Now handles user-entered text
12100           - Preventing crash on right-click if no item is selected
12101           - Fixed Text property, now uses contents of textbox
12102           - Fixed SelectedText property, now just returns the text part that
12103             is selected in the text box
12104
12105 2005-03-18  Jackson Harper  <jackson@ximian.com>
12106
12107         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
12108         rect, make sure to de-adjust the interior rect after drawing the
12109         tab text.
12110
12111 2005-03-18  Peter Bartok  <pbartok@novell.com>
12112
12113         * MenuAPI.cs: Remove menu *before* executing selected action to
12114           prevent the menu from 'hanging around'
12115           
12116 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
12117
12118         * XplatUIOSX.cs: Implemented WorkingArea property
12119
12120 2005-03-17  Peter Bartok  <pbartok@novell.com>
12121
12122         * XplatUIX11.cs: Fixed menu coord calculations
12123         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
12124           for calculating offsets
12125
12126 2005-03-17  Peter Bartok  <pbartok@novell.com>
12127
12128         * Hwnd.cs: Do not consider menu presence for default client
12129           rectangle location/size
12130         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
12131           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
12132           translation functions
12133         * FileDialog.cs: Fixed (what I presume is a) typo
12134
12135 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
12136
12137         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
12138           X access (avoids X-Async errors)
12139
12140 2005-03-16  Jackson Harper  <jackson@ximian.com>
12141
12142         * TabControl.cs: Raise the SelectedIndexChanged event.
12143
12144 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
12145
12146         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
12147           - Removed vertical ToolBar and replaced it with a custom panel
12148             (desktop and home button already work)
12149           - Added Help button (some controls get resized or relocated then)
12150           - Draw correct text depending on Open or Save.
12151           - Fixed some typos...
12152
12153 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
12154
12155         * ScrollBar.cs:
12156           - Only change Maximum and Minimum when need it (bug fix)
12157
12158 2005-03-15  Peter Bartok  <pbartok@novell.com>
12159
12160         * Form.cs: Use Handle for icon, to trigger creation if
12161           the window does not yet exist
12162         * Control.cs:
12163           - CanSelect: Slight performance improvement
12164           - Focus(): Preventing possible recursion
12165           - Invalidate(): Removed ControlStyle based clear flag setting
12166           - WM_PAINT: fixed logic for calling OnPaintBackground
12167           - WM_ERASEBKGND: Fixed logic, added call to new driver method
12168             EraseWindowBackground if the control doesn't paint background
12169         * XplatUIWin32.cs:
12170           - Moved EraseWindowBackground() method to internal methods
12171           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
12172             is sent via SendMessage on BeginPaint call on Win32
12173         * XplatUIX11.cs:
12174           - Added EraseWindowBackground() method
12175           - No longer sends WM_ERASEBKGND on .Expose, but on call to
12176             PaintEventStart, which more closely matches Win32 behaviour
12177           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
12178           - Fixed SetFocus() to properly deal with client and whole windows
12179         * Hwnd.cs: Added ErasePending property
12180         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
12181         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
12182
12183 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
12184
12185         * XplatUIOSX.cs:
12186           - Fix hard loop when timers exist.
12187           - Fix bugs with middle and right click for 3 button mice.
12188
12189 2005-03-11  Peter Bartok  <pbartok@novell.com>
12190
12191         * XplatUIX11.cs:
12192           - get_WorkingArea: Need to call X directly, GetWindowPos only
12193             returns cached data now
12194           - Added sanity check to GetWindowPos hwnd usage
12195
12196 2005-03-11  Jackson Harper  <jackson@ximian.com>
12197
12198         * BindingManagerBase.cs: This method isn't used anymore as
12199         PullData now updates the data in the control.
12200
12201 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
12202
12203         * Form.cs: fixes menu drawing on X11
12204         * MenuAPI.cs:  fixes menu drawing on X11
12205
12206 2005-03-11  Peter Bartok  <pbartok@novell.com>
12207
12208         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
12209           from Jonathan Gilbert; should fix bug #73606
12210         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
12211           in Screen coordinates. Thanks, Jordi.
12212         * Form.cs: Added missing attribute
12213
12214 2005-03-11  Peter Bartok  <pbartok@novell.com>
12215
12216         * Form.cs:
12217           - Rudimentary Mdi support
12218           - Removed outdated FormParent code
12219           - Implemented lots of missing properties and methods, still missing
12220             transparency support
12221           - Added missing attributes
12222           - Implemented support for MaximumBounds
12223           - Added firing of various events
12224         * XplatUI.cs: Added SetIcon() method
12225         * XplatUIDriver.cs: Added SetIcon() abstract
12226         * XplatUIOSX.cs: Stubbed out SetIcon() method
12227         * XplatUIX11.cs:
12228           - Implemented SetIcon() support
12229           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
12230           - Switched to unix line endings
12231         * XplatUIWin32.cs:
12232           - Made POINT internal so for can access it as part of MINMAX
12233           - Implemented SetIcon() support
12234           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
12235             native Mdi support again, might have to go managed)
12236         * Control.cs: Now fires the StyleChanged event
12237         * MdiClient.cs: Added; still mostly empty
12238
12239 2005-03-10  Peter Bartok  <pbartok@novell.com>
12240
12241         * SaveFileDialog.cs: Added emtpy file
12242
12243 2005-03-08  Peter Bartok  <pbartok@novell.com>
12244
12245         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
12246           in turn triggers OnCreateContro) when creating a handle for the
12247           first time.
12248         * TextControl.cs: Fixed endless loop in certain cases when
12249           replacing the current selection
12250
12251 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
12252
12253         * ScrollBar.cs:
12254           - Honors NewValue changes in Scroll events allowing apps to change it
12255           - Adds First and Last Scroll events
12256           - Fixes Thumb events
12257
12258 2005-03-07  Peter Bartok  <pbartok@novell.com>
12259
12260         * Hwnd.cs: Added DefaultClientRectangle property
12261         * XplatUI.cs: Now using the X11 driver Where() method, which provides
12262           more detailed debug information
12263         * XplatUIX11.cs:
12264           - Fixed size-change feedback loop, where we would pull an old size
12265             off the queue and mistakenly change our window's size to an
12266             earlier value
12267           - Now compressing ConfigureNotify events, to reduce looping and
12268             redraw issues
12269         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
12270           is called
12271
12272 2005-03-07  Jackson Harper  <jackson@ximian.com>
12273
12274         * Binding.cs: Push data pushes from data -> property. Check if the
12275         property is readonly when attempting to set it.
12276
12277 2005-03-07  Jackson Harper  <jackson@ximian.com>
12278
12279         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
12280         instead of IsSubclassOf. Pulling data now sets the value on the
12281         control.
12282         * PropertyManager.cs:
12283         * CurrencyManager.cs: Just need to pull data when updating now,
12284         because PullData will set the value on the control.
12285
12286 2005-03-04  Jackson Harper  <jackson@ximian.com>
12287
12288         * Binding.cs: Implement data type parsing and converting on pulled
12289         data. TODO: Are there more ways the data can be converted?
12290
12291 2005-03-04  Jackson Harper  <jackson@ximian.com>
12292
12293         * Binding.cs: Support <Property>IsNull checks. Also bind to the
12294         controls Validating method so we can repull the data when the
12295         control loses focus.
12296
12297 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
12298
12299         * ColumnHeader.cs:
12300           - Fixes null string format
12301           
12302         * ListView.cs:
12303           - Adds enum type checks
12304           - Fixes redrawing and recalc need after changing some properties
12305           - Fixes on focus_item set after the event
12306           - Fixes adding columns after the control has been created
12307           
12308         * ThemeWin32Classic.cs:
12309           - Fixes CheckBox focus rectangle
12310           - Fixes ColumnHeader drawing
12311
12312
12313 2005-03-03  Jackson Harper  <jackson@ximian.com>
12314
12315         * Binding.cs: Bind to <Property>Changed events so we can detect
12316         when properties are changed and update the data.
12317
12318 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
12319
12320         * ImageList.cs:
12321           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
12322           - Fixes ImageList constructor with ImageList container
12323           - Fixes image scaling (wrong parameters at DrawImage)
12324
12325 2005-02-02  Jackson Harper  <jackson@ximian.com>
12326
12327         * Binding.cs: Make property searches case-insensitive. Eliminate
12328         some duplicated code.
12329
12330 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
12331
12332         * ComboBox.cs:
12333                 - Handle focus event
12334                 - Fix scrollbar events
12335                 - Discard highlighted item if remove it
12336                 - Fixes SelectedItem with strings
12337
12338 2005-03-01  Peter Bartok  <pbartok@novell.com>
12339
12340         * Control.cs:
12341           - Fixed Visible property, now follows (once again) parent chain
12342             to return false if any control in the chain is visible=false
12343           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
12344           - Fixed several places where is_visible instead of Visible was used
12345           - Implemented FIXME related to focus selection when setting focused
12346             control to be invisible
12347
12348         * XplatUIWin32.cs: Now using proper method to find out if window is
12349           visible. Thanks to Jordi for pointing it out
12350
12351 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
12352
12353         * ComboBox.cs: show/hide scrollbar instead of creating it
12354
12355 2005-02-27  Jackson Harper  <jackson@ximian.com>
12356
12357         * CurrencyManager.cs: Add PositionChanged stuff.
12358
12359 2005-02-27  Peter Bartok  <pbartok@novell.com>
12360
12361         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
12362         * XplatUIOSX.cs: Added GetMenuOrigin() stub
12363         * XplatUIWin32.cs: Implemented GetMenuOrigin()
12364         * XplatUIX11.cs:
12365           - Implemented GetMenuDC()
12366           - Implemented GetMenuOrigin()
12367           - Implemented ReleaseMenuDC()
12368           - Implemented generation of WM_NCPAINT message
12369           - Implemented generation and handling of WM_NCCALCSIZE message
12370         * Form.cs: Added debug helper message for Jordi's menu work
12371         * Hwnd.cs:
12372           - Modified ClientRect property; added setter, fixed getter to handle
12373             setting of ClientRect
12374           - Added MenuOrigin property
12375
12376 2005-02-26  Peter Bartok  <pbartok@novell.com>
12377
12378         * XplatUIX11.cs:
12379           - Destroys the caret if a window that's being destroyed contains it
12380           - Ignores expose events coming from the X11 queue for windows that
12381             already are destroyed
12382           - Now uses the proper variable for handling DestroyNotify, before we
12383             marked the wrong window as destroyed
12384           - Improved/added some debug output
12385
12386 2005-02-26  Peter Bartok  <pbartok@novell.com>
12387
12388         * X11Keyboard.cs: Fixes to work on 64bit systems
12389
12390 2005-02-26  Peter Bartok  <pbartok@novell.com>
12391
12392         * Control.cs:
12393           - Now calling OnHandleDestroyed from DestroyHandle()
12394             instead of Dispose()
12395           - Removed bogus call to controls.Remove() from DestroyHandle()
12396
12397 2005-02-26  Peter Bartok  <pbartok@novell.com>
12398
12399         * Control.cs: Properly destroy child windows when our handle is
12400           destroyed
12401
12402 2005-02-25  Peter Bartok  <pbartok@novell.com>
12403
12404         * XplatUI.cs:
12405           - Added 'DriverDebug' define to allow tracing XplatUI API calls
12406           - Alphabetized Static Methods and Subclasses
12407
12408         * XplatUIX11.cs:
12409           - Added XException class to allow custom handling of X11 exceptions
12410           - Created custom X11 error handler, tied into XException class
12411           - Added support for MONO_XEXCEPTIONS env var to allow the user
12412             to either throw an exception on X errors or continue running
12413             after displaying the error
12414           - Added handling of DestroyNotify message
12415           - Added handler for CreateNotify message (still disabled)
12416           - Improved (tried to at least) Where method to provide file and lineno
12417         * X11Structs.cs:
12418           - Added XErrorHandler delegate
12419           - Added XRequest enumeration (to suppor translation of errors)
12420
12421 2005-02-25  Jackson Harper  <jackson@ximian.com>
12422
12423         * PropertyManager.cs: Implement editing features
12424         * CurrencyManager.cs:
12425         * Binding.cs: First attempt at UpdateIsBinding
12426         * BindingManagerBase.cs: Call UpdateIsBinding before
12427         pushing/pulling data.
12428
12429 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
12430
12431         * MenuAPI.cs: Respect disabled items
12432         * ThemeWin32Classic.cs
12433                 - Caches ImageAttributes creation for DrawImageDisabled
12434                 - Fixes vertical menu line drawing
12435                 - Draws disabled arrows in disable menu items
12436
12437 2005-02-24  Peter Bartok  <pbartok@novell.com>
12438
12439         * Hwnd.cs:
12440           - Added UserData property to allow associating arbitrary objects
12441             with the handle
12442           - Fixed leak; now removing Hwnd references from static windows array
12443         * XplatUIWin32.cs:
12444           - Fixed Graphics leak in PaintEventEnd
12445           - Removed usage of HandleData, switched over to Hwnd class
12446         * HandleData.cs: Removed, obsoleted by Hwnd.cs
12447
12448 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12449
12450         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
12451         * ScrollBar.cs: Fixes bug
12452         * TrackBar.cs: removes death code, clipping, mimize refreshes,
12453          keyboard navigation enhancements
12454
12455 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12456
12457         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
12458         * GroupBox.cs: Add control styles
12459         * Label.cs: Add control styles
12460         * UpDownBase.cs: Add control styles
12461         * ListBox.cs: Add control styles
12462         * XplatUIWin32.cs: Fixes wrong parameter order
12463
12464
12465 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
12466
12467         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
12468
12469 2005-02-23  Jackson Harper  <jackson@ximian.com>
12470
12471         * PropertyManager.cs: Implement property binding. This doesn't
12472         seem to work yet though as (I think) there are some bugs in
12473         System.ComponentModel.PropertyDescriptor.
12474         * BindingContext.cs: Use new PropertyManager constructor.
12475
12476 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
12477
12478         * ProgressBar.cs: use clip region in ProgressBar
12479         * ThemeWin32Classic.cs: use clip region in ProgressBar
12480
12481 2004-02-22  Jackson Harper  <jackson@ximian.com>
12482
12483         * BindingsCollection.cs: Remove some debug code.
12484
12485 2005-02-22  Jackson Harper  <jackson@ximian.com>
12486
12487         * BindingContext.cs:
12488         * ControlBindingsCollection.cs:
12489         * CurrencyManager.cs:
12490         * Binding.cs:
12491         * BindingManagerBase.cs: Initial implementation
12492         * BindingsCollection.cs: Add an internal contains method that the
12493         BindingManagerBase uses to ensure bindings aren't added twice to
12494         the collection.
12495         * PropertyManager.cs: Stubbed out.
12496         * Control.cs:
12497         * ContainerControl.cs: Hook up databinding
12498         
12499 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
12500
12501         * XplatUIOSX.cs:
12502           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
12503           Fixed Invalidate/Update chain.
12504           Fixed tons of other minor bugs (this is almost a complete rewrite).
12505
12506 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
12507
12508         * ComboBox.cs: do subcontrol creation when the control is created
12509
12510 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12511
12512         * Label.cs: fixes image drawing (image and imagelist)
12513         * ThemeWin32Classic.cs: cache brushes
12514         
12515 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12516
12517         * Form.cs: Move menu drawing code to Theme class
12518         * ComboBox.cs: Move ComboBox drawing code to Theme class
12519         * MenuItem.cs: Move menu drawing code to Theme class
12520         * MenuAPI.cs: Move menu drawing code to Theme class
12521         * ThemeWin32Classic.cs: New methods
12522         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
12523         * ListBox.cs: Move Listbox drawing code to Theme class
12524         * Theme.cs: New methods
12525
12526 2005-02-20  Peter Bartok  <pbartok@novell.com>
12527
12528         * Control.cs:
12529           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
12530             only process mnemonics on those)
12531           - Fixed event sequence for key handling; first calling
12532             ProcessKeyEventArgs now
12533         * TextBoxBase.cs:
12534           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
12535             for processing non-character keys
12536           - Fixed WM_CHAR to generate proper event sequence before processing
12537         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
12538           generation
12539
12540 2005-02-19  Peter Bartok  <pbartok@novell.com>
12541
12542         * UserControl.cs: Added TextChanged event; added attributes
12543         * SizeGrip.cs: Implemented resizing and optional display of grip
12544         * Form.cs: Fixed attribute
12545         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
12546           Changed meaning of ScrollWindow bool argument; instead of the
12547           clear attribute (which will be true usually anyway), it gives the
12548           option of moving child controls as well.
12549         * XplatUIX11.cs:
12550           - Changed to match new ScrollWindow argument
12551           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
12552             now handles the implicit parent window a WM puts around us
12553         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
12554           to work)
12555         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
12556         * TreeView.cs: Adjusted to new ScrollWindow arguments
12557
12558 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12559
12560         * Form.cs: Menu integration with non-client area
12561         * MenuItem.cs: Menu integration with non-client area
12562         * MenuAPI.cs: Menu integration with non-client area
12563
12564 2005-02-18  Peter Bartok  <pbartok@novell.com>
12565
12566         * MethodInvoker.cs: Added
12567         * MdiLayout.cs: Added
12568         * SendKeys.cs: Started implementation
12569         * ErrorIconAlignment.cs: Added
12570
12571 2005-02-18  Peter Bartok  <pbartok@novell.com>
12572
12573         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
12574         * Form.cs: Added handling for Menu-related Non-client messages
12575
12576 2005-02-17  Peter Bartok  <pbartok@novell.com>
12577
12578         * UpDownBase.cs: Fixed typo, compilation errors
12579         * DomainUpDown.cs: Fixed attribute value
12580
12581 2005-02-16  Miguel de Icaza  <miguel@novell.com>
12582
12583         * UpDownBase.cs: Attach entry events.
12584         Propagate events.
12585         Add ForeColor property, Focused, InterceptArrowKeys (interception
12586         does not work yet).
12587
12588 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
12589
12590         * Form.cs:
12591                 - Redraw non client are on Setmenu
12592                 - Calc proper menu starting point
12593
12594 2005-02-17  Peter Bartok  <pbartok@novell.com>
12595
12596         * Application.cs: Fixed message_filter check
12597
12598 2005-02-17  Peter Bartok  <pbartok@novell.com>
12599
12600         * Application.cs: Now calls registered message filters
12601         * DockStyle.cs: Fixed attribute
12602         * Form.cs: Fixed attribute
12603         * Menu.cs: Fixed attribute
12604         * ToolTip.cs: Fixed attribute
12605         * TreeNode.cs: Added missing attributes and arranged in regions
12606         * PropertyGrid.cs: Fixed signatures
12607         * TreeNodeCollection.cs: Added attributes
12608         * Splitter.cs: Added missing attributes; arranged into regions
12609         * TabPage.cs: Added missing attributes; arranged into regions
12610         * TextBoxBase.cs: Added missing attributes
12611         * TextBox.cs: Added missing attributes
12612         * ArrangeDirection.cs: Added missing attributes
12613         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
12614         * ToolBarButton.cs: Fixed attributes
12615         * AnchorStyles.cs: Fixed attribute
12616         * TrackBar.cs: Fixed attributes
12617         * TabControl.cs: Added missing attributes and arranged into regions
12618         * ToolBar.cs: Fixed attribute
12619         * StatusBar.cs: Fixed signature, organized into regions and added
12620           attributes
12621         * StatusBarPanel.cs: Fixed attributes
12622         * ContentsResizedEventArgs.cs: Implemented
12623         * ContentsResizedEventHandler.cs: Implemented
12624         * DateBoldEventArgs.cs: Implemented
12625         * DateBoldEventHandler.cs: Implemented
12626         * UpDownEventArgs.cs: Implemented
12627         * UpDownEventHandler.cs: Implemented
12628         
12629 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
12630
12631         * Form.cs: first Menu NC refactoring
12632         * MenuAPI.cs: first Menu NC refactoring
12633         
12634 2005-02-16  Peter Bartok  <pbartok@novell.com>
12635
12636         * ImeMode.cs: Added missing attributes
12637         * Menu.cs: Fixed attribute
12638         * GroupBox.cs: Fixed attribute
12639         * Label.cs: Fixed attribute
12640         * ColorDialog.cs (RunDialog): Removed TODO attribute
12641         * ComboBox.cs: Fixed attributes
12642         * ListControl.cs: Added missing attributes
12643         * PropertyGrid.cs: Fixed attributes
12644         * Control.cs: Fixed attributes
12645         * ListViewItem.cs: Added TypeConverter attribute
12646         * NotifyIcon.cs: Fixed attributes
12647         * ListView.cs: Fixed attributes
12648         * ButtonBase.cs: Fixed attribute
12649         * ImageList.cs: Added missing attributes
12650         * ContainerControl.cs: Fixed signature
12651         * CheckedListBox.cs: Fixed attribute; added missing attributes
12652         * Panel.cs: Fixed attributes
12653         * PropertyTabChangedEventArgs.cs: Added missing attribute
12654         * PropertyValueChangedEventArgs.cs: Added missing attribute
12655         * Binding.cs: Fixed attribute
12656         * ListViewItemConverter: Implemented ListViewSubItemConverter class
12657         * ListBox.cs: Fixed attribute; added missing attributes;
12658         * ScrollableControl.cs: Added missing attributes
12659         * PictureBox.cs: Added missing attributes; implemented missing property
12660         * DateTimePicker.cs: Added missing attributes
12661         * Theme.cs (ToolWindowCaptionHeight): Fixed type
12662         * MonthCalendar.cs: Fixed attributes
12663         * StatusBarPanel.cs: Added missing attributes
12664         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
12665
12666 2005-02-16  Peter Bartok  <pbartok@novell.com>
12667
12668         * TextBoxBase.cs: The previous method to enforce height yet remember
12669           the requested high was less than ideal, this is an attempt to do
12670           it better.
12671         * Control.cs: Added comment about possible problem
12672         * Copyright: Updated format
12673         * GridItemType.cs: Fixed swapped values
12674
12675 2005-02-15  Jackson Harper  <jackson@ximian.com>
12676
12677         * BaseCollection.cs: Use property so we never access an
12678         uninitialized list. Also initialize the list in the property.
12679
12680 2005-02-15  Peter Bartok  <pbartok@novell.com>
12681
12682         * GroupBox.cs (ProcessMnemonic): Implemented
12683         * Label.cs (ProcessMnemonic): Implemented
12684         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
12685           hotkeys
12686
12687 2005-02-15  Peter Bartok  <pbartok@novell.com>
12688
12689         * RadioButton.cs (ProcessMnemonic): Implemented
12690         * CheckBox.cs (ProcessMnemonic): Implemented
12691         * Control.cs:
12692           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
12693             handling
12694           - Added internal method to allow calling ProcessMnemonic from other
12695             controls
12696         * ContainerControl.cs:
12697           - Started support for handling validation chain handling
12698           - Implemented ProcessMnemonic support
12699           - Added Select() call to Active, to make sure the active control
12700             receives focus
12701         * Form.cs: Setting toplevel flag for Forms (this was lost in the
12702           FormParent rewrite)
12703         * ThemeWin32Classic.cs:
12704           - DrawCheckBox(): Fixed stringformat to show hotkeys
12705           - DrawRadioButton(): Fixed stringformat to show hotkeys
12706         * CommonDialog.cs: Removed WndProc override, not needed
12707
12708 2005-02-14  Peter Bartok  <pbartok@novell.com>
12709
12710         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
12711           missed those in the rewrite
12712
12713 2005-02-14  Miguel de Icaza  <miguel@novell.com>
12714
12715         * NumericUpDown.cs (Increment, ToString): Add.
12716         (DecimalPlaces): implement.
12717         
12718         Add attributes.
12719         
12720         * UpDownBase.cs: Add the designer attributes.
12721
12722 2005-02-13  Peter Bartok  <pbartok@novell.com>
12723
12724         * Panel.cs: Removed border_style, now in Control
12725         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
12726           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
12727
12728 2005-02-13  Peter Bartok  <pbartok@novell.com>
12729
12730         * MouseButtons.cs: Added missing attributes
12731         * XplatUIStructs.cs: Added enumeration for title styles
12732         * LeftRightAlignment.cs: Added missing attributes
12733         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
12734           it compatible with Graphics.FromHwnd()
12735         * SelectedGridItemChangedEventArgs.cs: Fixed property type
12736         * Keys.cs: Added missing attributes
12737         * SelectionRange.cs: Added missing attributes
12738         * SelectionRangeConverter.cs: Added
12739         * XplatUI.cs:
12740           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
12741             ReleaseMenuDC methods
12742           - Renamed ReleaseWindow to UngrabWindow
12743           - Added proper startup notice to allow version identification
12744         * Form.cs:
12745           - Added missing attributes
12746           - Removed FormParent concept
12747         * Label.cs: Removed border_style field, now in Control
12748         * RadioButton.cs: Now properly selects RadioButton when focus is
12749           received
12750         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
12751         * Control.cs:
12752           - Added missing attributes
12753           - Added borderstyle handling
12754           - Removed FormParent concept support
12755           - Fixed calls to XplatUI to match changed APIs
12756           - Fixed bug that would case us to use disposed Graphics objects
12757           - Removed unneeded internal methods
12758           - PerformLayout(): Fixed to handle DockStyle.Fill properly
12759           - SelectNextControl(): Fixed to properly check common parents
12760         * TextBoxBase.cs: Removed border_style field (now in Control)
12761         * MessageBox.cs:
12762           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
12763             fixed calculations for form size
12764           - Added support for localized strings and icons
12765           - Improved form size calculations, added border
12766         * ListView.cs: Removed border_style field (now in Control)
12767         * X11Structs.cs: Moved several structs from X11 driver here
12768         * X11Keyboard.cs: Changed debug message
12769         * Application.cs: Removed FormParent concept support
12770         * CommonDialog.cs:
12771           - Resetting end_modal flag
12772           - Removed FormParent concept support
12773         * NativeWindow.cs: Removed FormParent concept support
12774         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
12775           Client area and Non-Client whole window to allow support for WM_NC
12776           messages
12777         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
12778           prevent using it until it supports Hwnd as per Geoff Norton's request
12779         * ToolBar.cs: Fixed drawing, was not doing proper drawing
12780         * PictureBox.cs: Removed border_style field, now in Control
12781         * XplatUIWin32.cs: Added new driver methods
12782
12783 2005-02-12  Peter Bartok  <pbartok@novell.com>
12784
12785         * OpacityConverter.cs: Implemented
12786         * Hwnd.cs: Internal class to support drivers that need to emulate
12787           client area/non-client area window behaviour
12788
12789 2005-02-11  Peter Bartok  <pbartok@novell.com>
12790
12791         * KeysConverter.cs: Implemented
12792
12793 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
12794
12795         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
12796         * LinkLabel: Added missing attributes
12797         * MainMenu.cs: fixes ToString
12798         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
12799         * ListBox.cs: fixes event position
12800         * TrackBar.cs: adds missing attributes and events
12801         
12802 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
12803
12804         * MenuItem.cs: Use SystemInformation and bug fixes
12805         * MenuAPI.cs: Use SystemInformation and bug fixes
12806
12807 2005-02-09  Jackson Harper  <jackson@ximian.com>
12808
12809         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
12810         their keystate otherwise things like VK_MENU get stuck "on".
12811
12812 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
12813
12814         * ListBox.cs: Fixes AddRange bug
12815         
12816 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
12817
12818         * ProgressBar.cs
12819                 - Add missing attributes
12820                 - Add missing method
12821                 
12822         * CheckedListBox.cs: Added missing attributes
12823                 - Add missing attributes
12824                 - Remove extra method
12825         
12826         * ComboBox.cs: Added missing attributes
12827         * VScrollBar.cs: Added missing attributes
12828         * ScrollBar.cs:  Added missing attributes
12829         * ListBox.cs: Fixes signature, add missing consts
12830         * LinkArea.cs:   Added missing attributes
12831         
12832
12833 2005-02-08  Peter Bartok  <pbartok@novell.com>
12834
12835         * Menu.cs: Added missing attributes
12836         * MainMenu.cs: Added missing attributes
12837         * GroupBox.cs: Added missing attributes
12838         * Label.cs: Added missing attributes
12839         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
12840         * ColorDialog.cs:
12841           - Added Instance and Options properties
12842           - Added missing attributes
12843         * Cursor.cs: Made Serializable
12844         * NotifyIcon: Added missing attributes
12845         * MenuItem.cs: Added missing attributes
12846         * TextBoxBase.cs: Implemented AppendText() and Select() methods
12847         * Panel.cs: Added Missing attributes
12848         * MonthCalendar.cs: Fixed CreateParams
12849
12850 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
12851         
12852         * LinkLabel.cs:
12853                 - Fixes signature
12854                 - Fixes issues with links
12855                 - Adds the class attributes
12856
12857 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
12858         
12859         * ComboBox.cs:
12860                 - Fixes button when no items available in dropdown
12861                 - Fixes repainting problems
12862                 - Adds the class attributes
12863                 
12864 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12865
12866         * XplatUIOSX.cs: Detect the menu bar and title bar height from
12867         the current theme.  Cache these on startup.
12868
12869 2005-02-07  Jackson Harper  <jackson@ximian.com>
12870
12871         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
12872         the scrollbar buttons when they are depressed.
12873
12874 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12875
12876         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
12877         Get the display size from the main displayid.  We currently dont
12878         support multiple display configurations.
12879
12880 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12881
12882         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
12883
12884 2005-02-07  Miguel de Icaza  <miguel@novell.com>
12885
12886         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
12887
12888 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
12889
12890         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
12891
12892 2005-02-04  Jackson Harper  <jackson@ximian.com>
12893
12894         * ThemeWin32Classic.cs: Respect the clipping rect when
12895         drawing. Only fill the intersection of clips and rects so there
12896         isn't a lot of large fills.
12897         * ScrollBar.cs: Pass the correct clipping rect to the theme
12898         engine. Remove some debug code.
12899
12900 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
12901         
12902         * DateTimePicker.cs:
12903                 - Fixed crash on DateTime.Parse, use Constructor instead
12904
12905 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
12906         
12907         * MenuItem.cs:
12908         * MenuAPI.cs:
12909                 - Owner draw support (MeasureItem and DrawItem)
12910
12911 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
12912         
12913         *  Menu.cs:
12914                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
12915                 - Fixes MenuItems.Add range
12916         * MenuItem.cs:
12917                 - MergeMenu and Clone and CloneMenu functions
12918
12919 2005-02-03  Jackson Harper  <jackson@ximian.com>
12920
12921         * ScrollBar.cs: Make abstract
12922         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
12923         is abstract.
12924
12925 2005-02-03  Jackson Harper  <jackson@ximian.com>
12926
12927         * ScrollBar.cs: First part of my scrollbar fixups. This removes
12928         all the unneeded refreshes and uses invalidates with properly
12929         computed rects.
12930
12931 2005-02-03  Peter Bartok  <pbartok@novell.com>
12932
12933         * ComponentModel.cs: Added
12934         * IDataGridEditingService.cs: Added
12935         * Timer.cs: Added missing attributes
12936         * ToolTip.cs: Added missing attributes
12937
12938 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
12939
12940         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
12941
12942 2005-02-03  Peter Bartok  <pbartok@novell.com>
12943
12944         * ListBox.cs: Added missing attributes
12945
12946 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
12947         
12948         * ListBox.cs:
12949                 - Fixes font height after font change
12950                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
12951                 
12952 2005-02-02  Peter Bartok  <pbartok@novell.com>
12953
12954         * HandleData.cs: Introduced static methods to allow class
12955           to be more self-contained and track it's own HandleData objects
12956         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
12957           HandleData to use new static methods
12958
12959 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
12960
12961         * Combobox.cs:
12962                 - Fixes default size and PreferredHeight
12963                 - Missing events
12964                 - ObjectCollection.Insert implementation
12965                 
12966         * ListControl.cs
12967                 - Fixes signature
12968         * ListBox.cs:
12969                 - Several fixes
12970                 - ObjectCollection.Insert implementation
12971                 - No selection after clean
12972                 - Small fixes
12973
12974 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
12975
12976         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
12977
12978 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
12979
12980         * Combobox.cs:
12981                 - Caches ItemHeight calculation for OwnerDrawVariable
12982                 - Handles dropdown properly
12983                 - Fixes several minor bugs
12984
12985 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
12986
12987         * ListBox.cs:
12988                 - Fixes 71946 and 71950
12989                 - Fixes changing Multicolumn on the fly
12990                 - Fixes keyboard navigation on Multicolumn listboxes
12991
12992 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
12993         
12994         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
12995         crash reporter log.
12996
12997 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
12998
12999         * XplatUIOSX.cs: Allow applications to actually exit.
13000
13001 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13002
13003         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
13004         their parent at creation time rather than lazily later.  Fixes a major
13005         regression we were experiencing.
13006
13007 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13008
13009         * ThemeWin32Classic.cs: more date time picker painting fixes
13010         * DateTimePicker.cs: more monthcalendar drop down fixes
13011         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
13012
13013 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13014
13015         * ScrollBar.cs:
13016                 - When moving the thumb going outside the control should stop the moving
13017                 - Adds the firing of missing events
13018                 - Fixes no button show if Size is not specified
13019                 - End / Home keys for keyboard navigation
13020
13021 2005-01-30  Peter Bartok  <pbartok@novell.com>
13022
13023         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
13024           sanity check to prevent theoretical loop
13025         * XplatUIWin32.cs (SetVisible): Removed debug output
13026         * XplatUIX11.cs (SystrayChange): Added sanity check
13027         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
13028         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
13029           behaviour, valid until the X11 client window rewrite is done
13030         * TextBox.cs (ctor): Setting proper default foreground and background
13031           colors
13032
13033 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
13034
13035         * Theme: Added DrawDateTimePicker to interface
13036         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
13037         * DateTimePicker.cs: Created (still needs keys and painting code)
13038         * DateTimePickerFormat.cs: added
13039         * MonthCalendar.cs: fixed CreateParams for popup window mode
13040           
13041 2005-01-29  Peter Bartok  <pbartok@novell.com>
13042
13043         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
13044           this should also the calculations for ligher/darker
13045         * Theme.cs: Fixed defaults for ScrollBar widths/heights
13046
13047 2005-01-29  Peter Bartok  <pbartok@novell.com>
13048
13049         * ArrangeDirection.cs: Added
13050         * ArrangeStartingPositon.cs: Added
13051         * SystemInformation.cs: Implemented
13052         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13053           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
13054           used by SystemInformation class
13055         * X11Strucs.cs: Added XSizeHints structure
13056         * MenuAPI.cs:
13057           - Fixed CreateParams to make sure the menu window is always visible
13058           - TrackPopupMenu: Added check to make sure we don't draw the
13059             menu offscreen
13060
13061 2005-01-29  Peter Bartok  <pbartok@novell.com>
13062
13063         * HandleData.cs: Added method for altering invalid area
13064         * TextBoxBase.cs: Implemented TextLength
13065
13066 2005-01-28  Peter Bartok  <pbartok@novell.com>
13067
13068         * XplatUIX11.cs: Improvement over last patch, not sending
13069           the WM_PAINT directly anymore, instead we scroll any pending
13070           exposed areas and let the system pick out the WM_PAINT later
13071
13072 2005-01-28  Peter Bartok  <pbartok@novell.com>
13073
13074         * SWF.csproj: Deleted, no longer used. Instead,
13075           Managed.Windows.Forms/SWF.csproj should be used
13076         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
13077           directly, to avoid a potential race condition with the next
13078           scroll
13079
13080 2005-01-28  Peter Bartok  <pbartok@novell.com>
13081
13082         * XplatUI.cs: Made class internal
13083
13084 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
13085
13086         * CheckedListBox.cs:
13087                 - Draw focus
13088                 - Fixed Drawing
13089                 - Missing methods and events
13090
13091 2005-01-27  Peter Bartok  <pbartok@novell.com>
13092
13093         * Application.cs (Run): Don't use form if we don't have one
13094
13095 2005-01-27  Peter Bartok  <pbartok@novell.com>
13096
13097         * TextBoxBase.cs (get_Lines): Fixed index off by one error
13098
13099 2005-01-27  Peter Bartok  <pbartok@novell.com>
13100
13101         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
13102         * GridItem.cs: Added; Patch by Jonathan S. Chambers
13103         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
13104         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
13105         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
13106         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
13107         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13108         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13109         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13110         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13111         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13112         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13113
13114 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13115
13116         * Combobox.cs:
13117                 - Draw focus on Simple Combobox
13118                 - Fixes drawing issues
13119                 - fixes 71834
13120
13121 2005-01-27  Peter Bartok  <pbartok@novell.com>
13122
13123         * Form.cs:
13124           - Place window in default location, instead of hardcoded 0/0
13125           - Send initial LocationChanged event
13126         * Control.cs:
13127           - UpdateBounds after creation to find out where the WM placed us
13128           - Make sure that if the ParentForm changes location the Form
13129             is notified
13130         * XplatUIX11.cs: XGetGeometry will not return the coords relative
13131             to the root, but to whatever the WM placed around us.
13132             Translate to root coordinates before returning toplevel
13133             coordinates
13134         * XplatUIWin32.cs: Removed debug output
13135         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
13136           flag to GetWindowPos, to allow translation of coordinates on X11
13137
13138 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13139
13140         * ListBox.cs: connect LostFocus Event
13141
13142 2005-01-27  Peter Bartok  <pbartok@novell.com>
13143
13144         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
13145           XplatUIX11.cs: Extended the Systray API
13146         * Form.cs: Removed debug output
13147         * Application.cs: Fixed focus assignment, always need to call
13148           XplatUI.Activate() since Form.Activate() has rules that may
13149           prevent activation
13150         * NotifyIcon.cs: Should be complete now
13151         * ToolTip.cs: Worked around possible timer bug
13152
13153 2005-01-27  Jackson Harper  <jackson@ximian.com>
13154
13155         * TabControl.cs:
13156         - Only invalidate the effected tabs when the
13157         selected index changes. This reduces drawing and gets rid of some
13158         flicker.
13159         - Only refresh if the tabs need to be shifted, otherwise only
13160         invalidate the slider button.
13161         - On windows the tabs are not filled to right if the slider is
13162         visible.
13163         
13164 2005-01-27  Jackson Harper  <jackson@ximian.com>
13165
13166         * TabControl.cs: Only refresh on mouseup if we are showing the
13167         slider. Also only invalidate the button whose state has changed.
13168
13169 2005-01-26  Peter Bartok  <pbartok@novell.com>
13170
13171         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
13172         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
13173           and SystrayRemove() methods
13174         * XplatUIOSX.cs: Stubbed Systray methods
13175         * XplatUIX11.cs:
13176           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
13177             methods
13178           - Fixed broken XChangeProperty calls (marshalling messed up things)
13179         * X11Structs.cs: Added enums and structs required for Size hinting
13180         * NotifyIcon.cs: Added & implemented
13181
13182 2005-01-26  Jackson Harper  <jackson@ximian.com>
13183
13184         * TabControl.cs: Space vertically layed out tabs properly.
13185
13186 2005-01-26  Peter Bartok  <pbartok@novell.com>
13187
13188         * Form.cs (CreateClientParams): Always set the location to 0,0
13189           since we're a child window.
13190
13191         * Control.cs (SetVisibleCore): Always explicitly setting the location
13192           of a toplevel window, apparently X11 doesn't like to move windows
13193           while they're not mapped.
13194
13195 2005-01-26  Jackson Harper  <jackson@ximian.com>
13196
13197         * TabControl.cs: Implement FillToRight size mode with vertically
13198         rendered tabs.
13199
13200 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13201
13202         * ControlPaint.cs, ThemeWin32Classic.cs
13203                 - Fixes DrawFocusRectangle
13204
13205 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13206
13207         * MenuAPI.cs:
13208                 - MenuBar tracking only starts when item is first clicked
13209                 - Fixes menu hidding for multiple subitems
13210                 - Unselect item in MenuBar when item Executed
13211                 - Fixes bug 71495
13212
13213 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
13214
13215         * ListControl.cs:
13216                 - IsInputKey for ListBox
13217         * ListBox.cs:
13218                 - Focus item
13219                 - Shift and Control item selection
13220                 - Implement SelectionMode.MultiExtended
13221                 - Fixes RightToLeft
13222         * ComboBox.cs:
13223                 - IsInputKey implemented
13224                 - Do not generate OnTextChangedEdit on internal txt changes
13225                 
13226 2005-01-23  Peter Bartok  <pbartok@novell.com>
13227
13228         * AccessibleObject.cs: Partially implemented Select()
13229         * MonthCalendar.cs: Added missing attributes and events
13230         * Form.cs: Fixed CreateParams behaviour, now controls derived from
13231           form can properly override CreateParams.
13232         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13233           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
13234           Control performs Invalidate & Update
13235         * NativeWindow (CreateHandle): Added special handling for Form
13236           and Form.FormParent classes to allow overriding of From.CreateParams
13237         * Control.cs:
13238           - ControlNativeWindow: Renamed 'control' variable to more intuitive
13239             name 'owner'
13240           - ControlNativeWindow: Added Owner property
13241           - Removed usage of Refresh() on property changes, changed into
13242             Invalidate(), we need to wait until the queue is processed for
13243             updates, direct calls might cause problems if not all vars for
13244             Paint are initialized
13245           - Added call to UpdateStyles() when creating the window, to set any
13246             styles that CreateWindow might have ignored.
13247           - Added support for Form CreateParent overrides to UpdateStyles()
13248         * MessageBox.cs: Removed no longer needed FormParent override stuff,
13249           CreateParams are now properly overridable
13250         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
13251           CreateParams are now properly overridable
13252
13253 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
13254
13255         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
13256         OnTextBoxChanged.
13257
13258         Capture LostFocus and OnTextBoxChanged.  The later introduces a
13259         recursive invocation that I have not figured out yet.
13260
13261         Reset the timer when not using (it was accumulating).
13262
13263
13264         (OnTextBoxChanged): Set UserEdit to true here to track whether the
13265         user has made changes that require validation.
13266
13267         Reset changing to avoid loops.
13268
13269 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
13270
13271         * NumericUpDown.cs: Display value at startup.
13272
13273         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
13274         ValidateEditText.
13275
13276         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
13277         filled in.  Added some basic parsing of text.
13278
13279         Still missing the OnXXX method overrides, and figuring out the
13280         events that must be emitted.
13281
13282         * UpDownBase.cs: Handle UserEdit on the Text property.
13283         
13284 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
13285
13286         * ComboBox.cs:
13287           - Fixes IntegralHeight
13288           - ToString method
13289
13290 2005-01-21  Jackson Harper  <jackson@ximian.com>
13291
13292         * TabControl.cs: Set the SelectedIndex property when SelectedTab
13293         is set so that the page visibility is updated and the tabs are
13294         sized correctly.
13295
13296 2005-01-21  Jackson Harper  <jackson@ximian.com>
13297
13298         * TabControl.cs: Use cliping rectangle for blitting. Give the
13299         theme the clipping rect so we can do clipping while
13300         drawing. Remove some debug code.
13301
13302 2005-01-21  Jackson Harper  <jackson@ximian.com>
13303
13304         * TabPage.cs: Add a new method so tab pages can force the tab
13305         control to recalculate the tab page sizes.
13306         * TabControl.cs: UpdateOwner needs to make the tab control recalc
13307         sizes.
13308
13309 2005-01-20  Jackson Harper  <jackson@ximian.com>
13310
13311         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
13312
13313 2005-01-20  Jackson Harper  <jackson@ximian.com>
13314
13315         * TreeView.cs: Set the bounds for nodes properly. They were
13316         getting screwed up when checkboxes were not enabled, but images
13317         were.
13318
13319 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
13320
13321         * ListBox.cs:
13322                 - Owner draw support
13323                 - Fixes
13324                 
13325 2005-01-20  Jackson Harper  <jackson@ximian.com>
13326
13327         * XplatUIStructs.cs: More misc keys
13328         * X11Keyboard.cs: Ignore some control keys.
13329
13330 2005-01-20  Jackson Harper  <jackson@ximian.com>
13331
13332         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
13333         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
13334
13335 2005-01-19  Peter Bartok  <pbartok@novell.com>
13336
13337         * Control.cs: Un-selecting the control when it is loosing focus
13338
13339 2005-01-19  Jackson Harper  <jackson@ximian.com>
13340
13341         * TreeView.cs: Hook up to the text controls leave event so we can
13342         end editing when the users clicks outside the text box.
13343         
13344 2005-01-19  Jackson Harper  <jackson@ximian.com>
13345
13346         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
13347         get set in the conversion array.
13348
13349 2005-01-19  Peter Bartok  <pbartok@novell.com>
13350
13351         * Application.cs (ModalRun): Added a call to CreateControl to ensure
13352           focus is properly set
13353         * Button.cs:
13354           - Added missing attributes
13355           - removed styles, those are already set in the base class
13356         * ButtonBase.cs:
13357           - Added missing attributes
13358           - Added clip window styles
13359         * CheckBox.cs: Added missing attributes
13360         * CommonDialog.cs:
13361           - FormParentWindow.CreateParams: Added required clip styles
13362         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
13363           also filters modifier keys
13364         * MessageBox.cs:
13365           - Added assignment of Accept and Cancel button to enable Enter
13366             and Esc keys in MessageBox dialogs
13367           - FormParentWindow.CreateParams: Added required clip styles
13368         * RadioButton.cs: Added missing attributes
13369         * TextControl.cs: No longer draws selection if control does not
13370           have focus
13371         * TextBoxBase.cs:
13372           - Now draws simple rectangle around test area to make it obvious
13373             there's a control. This is a hack until we properly support borders
13374           - A few simple fixes to support selections better, now erases selected
13375             text when typing, and resets selection when using movement keys
13376
13377 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13378
13379         * UpDownBase.cs: Added some new properties.
13380
13381         * DomainUpDown.cs: Implement a lot to get my test working.
13382
13383 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13384
13385         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
13386
13387 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13388
13389         * OSXStructs (WindowAttributes): Fixed csc complaints
13390
13391 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13392
13393         * XplayUIOSX.cs:
13394           OSXStructs.cs: Initial refactor to move enums and consts into
13395           OSXStructs and use them in the driver for greater readability.
13396
13397 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13398
13399         * XplatUIOSX.cs: Initial support for Standard Cursors.
13400         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
13401
13402 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
13403
13404         * ComboBox.cs: ability to change style when the ctrl is already
13405         created, missing methods and events, bug fixes, signature fixes
13406
13407 2005-01-19  Peter Bartok  <pbartok@novell.com>
13408
13409         * Cursors.cs (ctor): Added ctor to fix signature
13410
13411 2005-01-18  Peter Bartok  <pbartok@novell.com>
13412
13413         * Button.cs: Implemented DoubleClick event
13414         * ButtonBase.cs:
13415           - Fixed keyboard handling to behave like MS, where the press of
13416             Spacebar is equivalent to a mousedown, and the key release is
13417             equivalent to mouseup. Now a spacebar push will give the same
13418             visual feedback like a mouse click.
13419           - Added missing attributes
13420           - Added ImeModeChanged event
13421           - Added support for generating DoubleClick event for derived classes
13422         * CheckBox.cs:
13423           - Implemented DoubleClick event
13424           - Added missing attributes
13425         * CommonDialog.cs: Added missing attribute
13426         * ContextMenu.cs: Added missing attributes
13427         * RadioButton.cs:
13428           - AutoChecked buttons do not allow to be unselected when clicked
13429             (otherwise we might end up with no selected buttons in a group)
13430           - Added missing attributes
13431           - Implemented DoubleClickEvent
13432         * ThreadExceptionDialog.cs: Enabled TextBox code
13433
13434 2005-01-18  Peter Bartok  <pbartok@novell.com>
13435
13436         * Form.cs: Removed debug output
13437         * Button.cs: Added support for DoubleClick method
13438
13439 2005-01-18  Peter Bartok  <pbartok@novell.com>
13440
13441         * Form.cs:
13442           - Added method to parent window that allows triggering size
13443             calculations when a menu is added/removed
13444           - set_Menu: Cleaned up mess from early days of Form and Control,
13445             now properly triggers a recalc when a menu is added/removed
13446           - Added case to select form itself as focused form if no child
13447             controls exist
13448           - Added PerformLayout call when showing dialog, to ensure properly
13449             placed controls
13450         * Control.cs:
13451           - Select(): Made internal so Form can access it
13452           - Focus(): Only call Xplat layer if required (avoids loop), and sets
13453             status
13454         * Application.cs (Run): Removed hack and calls PerformLayout instead
13455           to trigger calculation when Form becomes visible
13456
13457 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
13458
13459         * ComboBox.cs: fixes for ownerdraw
13460
13461 2005-01-18  Peter Bartok  <pbartok@novell.com>
13462
13463         * TextControl.cs:
13464           - Sentinel is no longer static, each Document gets it's own, this
13465             avoids locking or alternatively overwrite problems when more
13466             than one text control is used simultaneously.
13467           - Switched to use Hilight and HilightText brushes for text selection
13468
13469         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
13470
13471 2005-01-18  Peter Bartok  <pbartok@novell.com>
13472
13473         * Control.cs:
13474           - Hooked up the following events:
13475                 o ControlAdded
13476                 o ControlRemoved
13477                 o HandleDestroyed
13478                 o ImeModeChanged
13479                 o ParentChanged
13480                 o TabStopChanged
13481                 o Invalidated
13482                 o SystemColorsChanged
13483                 o ParentFontChanged
13484                 o Move
13485           - Removed debug output
13486           - Added a call to the current theme's ResetDefaults when a color change
13487             is detected
13488         * Form.cs: Now setting the proper ImeMode
13489         * Theme.cs: Defined a method to force recreation of cached resources
13490           and rereading of system defaults (ResetDefaults())
13491         * ThemeWin32Classic.cs: Added ResetDefaults() stub
13492
13493 2005-01-17  Peter Bartok  <pbartok@novell.com>
13494
13495         * Control.cs: Added missing attributes
13496
13497 2005-01-17  Jackson Harper  <jackson@ximian.com>
13498
13499         * TreeNode.cs: Implement editing. Add missing properties selected
13500         and visible.
13501         * TreeView.cs: Implement node editing. Also some fixes to use
13502         Invalidate (invalid area) instead of Refresh when selecting.
13503
13504 2005-01-17  Peter Bartok  <pbartok@novell.com>
13505
13506         * Control.cs:
13507           - Implemented InvokeGotFocus() method
13508           - Implemented InvokeLostFocus() method
13509           - Implemented InvokePaint() method
13510           - Implemented InvokePaintBackground() method
13511           - Implemented InvokeClick() method
13512           - Implemented FindForm() method
13513           - Implemented RectangleToClient() method
13514           - Implemented ClientToRectangle() method
13515           - Implemented ResetBackColor() method
13516           - Implemented ResetCursor() method
13517           - Implemented ResetFont() method
13518           - Implemented ResteForeColor() method
13519           - Implemented ResetImeMode() method
13520           - Implemented ResetLeftToRight() method
13521           - Implemented ResetText() method
13522           - Implemented Scale() methods
13523           - Implemented ScaleCore() method
13524           - Implemented Update() method
13525           - Removed unused variables
13526           - Stubbed AccessibilityNotifyClients and
13527             ControlAccessibleObject.NotifyClients() methods (dunno what to do
13528             with those yet)
13529           - Now setting proper default for RightToLeft property
13530           - Fixed bug in SetClientSizeCore that would cause windows to get
13531             really big
13532           - Now sending Click/DoubleClick events
13533           - Now selecting controls when left mouse button is clicked on
13534             selectable control
13535         * AccessibleEvents.cs: Added
13536         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
13537         * XplatUIOSX.cs: Stubbed UpdateWindow() method
13538         * XplatUIWin32.cs: Implemented UpdateWindow() method
13539         * XplatUIX11.cs: Implemented UpdateWindow() method
13540         * Form.cs: Removed stray semicolon causing CS0162 warning
13541         * ThemeWin32Classic.cs: Fixed unused variable warnings
13542         * ScrollableControl.cs: Now calls base method for ScaleCore
13543         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
13544           style to avoid interference with internal click handler (which is
13545           different than standard Control click handling)
13546         * RadioButton.cs:
13547           - Now unchecks all sibling radio buttons when control is
13548             selected (Fixes #68756)
13549           - Removed internal tabstop variable, using the one inherited from
13550             Control
13551
13552 2005-01-17  Jackson Harper  <jackson@ximian.com>
13553
13554         * NavigateEventArgs.cs: Fix base type.
13555         * LinkLabel.cs: Sig fix
13556         
13557 2005-01-17  Jackson Harper  <jackson@ximian.com>
13558
13559         * TreeView.cs: Only invalidate the effected nodes bounds when
13560         selecting nodes.
13561
13562 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13563
13564         * XplatUIWin32.cs: fixes Win32 marshaling
13565         * XplatUIX11.cs: fixes method signature
13566
13567 2005-01-17  Peter Bartok  <pbartok@novell.com>
13568
13569         * XplatUIX11.cs: Clean up resources when we no longer need them
13570
13571 2005-01-17  Peter Bartok  <pbartok@novell.com>
13572
13573         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
13574           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
13575           and DestroyCursor() methods.
13576         * Cursor.cs: Partially implemented, now supports standard cursors;
13577           still contains some debug code
13578         * Cursors.cs: Implemented class
13579         * Control.cs:
13580           - WndProc(): Added handling of WM_SETCURSOR message, setting the
13581             appropriate cursor
13582           - Implemented Cursor property
13583           - Replaced break; with return; more straightforwar and possibly
13584             faster
13585           - Now properly setting the result for WM_HELP
13586         * X11Structs.cs: Added CursorFontShape enum
13587         * XplatUIStructs.cs:
13588           - Added StdCursor enum (to support DefineStdCursor() method)
13589           - Added HitTest enum (to support sending WM_SETCURSOR message)
13590         * XplatUIX11.cs:
13591           - Now sends the WM_SETCURSOR message
13592           - Implemented new cursor methods
13593         * XplatUIOSX.cs: Stubbed new cursor methods
13594         * XplatUIWin32.cs:
13595           - Implemented new cursor methods
13596           - Added GetSystemMetrics function and associated enumeration
13597
13598 2005-01-15  Peter Bartok  <pbartok@novell.com>
13599
13600         * Control.cs:
13601           - WndProc(): Now handles EnableNotifyMessage
13602           - SelectNextControl(): Fixed bug where if no child or sibling
13603             controls exist we looped endlessly
13604
13605 2005-01-14  Jackson Harper  <jackson@ximian.com>
13606
13607         * TreeView.cs: Recalculate the tab pages when a new one is added
13608         so that the proper bounding rects are created.
13609
13610 2005-01-14  Jackson Harper  <jackson@ximian.com>
13611
13612         * TreeView.cs: Draw a gray box instead of a grip in the lower
13613         right hand corner when there are both horizontal and vertical
13614         scroll bars.
13615
13616 2005-01-14  Jackson Harper  <jackson@ximian.com>
13617
13618         * Control.cs: When erasing backgrounds use FromHwnd instead of
13619         FromHdc when there is a NULL wparam. This occurs on the X driver.
13620         * XplatUIX11.cs: Set the wparam to NULL.
13621
13622 2005-01-13  Jackson Harper  <jackson@ximian.com>
13623
13624         * PictureBox.cs: Implement missing methods (except ToString, need
13625         to test that on windows) and events. When visibility is changed we
13626         need to redraw the image because the buffers are killed. When size
13627         is changed refresh if the sizemode needs it.
13628
13629 2005-01-13  Peter Bartok  <pbartok@novell.com>
13630
13631         * Control.cs (SelectNextControl): Was using wrong method to select
13632           a control
13633
13634 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13635
13636         * ComboBox.cs: fixes dropstyle
13637
13638 2005-01-13  Peter Bartok  <pbartok@novell.com>
13639
13640         * Form.cs:
13641           - Implemented Select() override
13642           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
13643           - Now sets keyboard focus on startup
13644         * Control.cs (SelectNextControl): Now properly handles directed=true
13645         * TextBoxBase.cs:
13646           - WndProc: Now passes tab key on to base if AcceptTabChar=false
13647           - Added (really bad) focus rectangle (mostly for testing)
13648         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
13649           to enforce redraw on focus changes
13650         * ContainerControl.cs:
13651           - Fixed detection of Shift-Tab key presses
13652           - Fixed traversal with arrow keys
13653         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
13654           gonna keep this or if it's complete yet
13655         
13656 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13657
13658         * ComboBox.cs: missing properties, fixes
13659
13660 2005-01-13  Peter Bartok  <pbartok@novell.com>
13661
13662         * Panel.cs (ctor): Setting Selectable window style to off
13663         * Splitter.cs (ctor): Setting Selectable window style to off
13664         * GroupBox.cs (ctor): Setting Selectable window style to off
13665         * Label.cs (ctor): Setting Selectable window style to off
13666
13667 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
13668
13669         * UpDownBase.cs (InitTimer): If the timer has been already
13670         created, enable it.
13671
13672         Use a TextBox instead of a Label.
13673
13674 2005-01-12  Jackson Harper  <jackson@ximian.com>
13675
13676         * TreeView.cs: Refresh the tree after sorting the nodes. Always
13677         draw the connecting node lines (when ShowLines is true).
13678         * TreeNode.cs: The nodes index can now be updated. This is used
13679         when a node collection is sorted.
13680         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
13681         insert or an existing unsorted node collection can be sorted.
13682         
13683 2005-01-12  Peter Bartok  <pbartok@novell.com>
13684
13685         * ContainerControl.cs: Implemented ProcessDialogKeys()
13686
13687 2005-01-12  Peter Bartok  <pbartok@novell.com>
13688
13689         * Control.cs:
13690           - Implemented SelectNextControl() method
13691           - Several focus related bug fixes
13692           - Fixed Docking calculations to match MS documentation and
13693             behaviour
13694
13695 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
13696
13697         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
13698         bug fixes
13699
13700 2005-01-12  Peter Bartok  <pbartok@novell.com>
13701
13702         * Control.cs:
13703           - Fixed broken Contains() method
13704           - Implemented GetNextControl() method. Finally. This is the pre-
13705             requisite for focus handling.
13706
13707 2005-01-12  Peter Bartok  <pbartok@novell.com>
13708
13709         * OSXStrucs.cs: Added
13710
13711 2005-01-12  Peter Bartok  <pbartok@novell.com>
13712
13713         * XplatUIWin32.cs:
13714           - Removed PeekMessageFlags
13715           - Implemented SetWindowStyle() method
13716         * XplatUIStructs.cs: Added PeekMessageFlags
13717         * X11Structs: Added missing border_width field to XWindowChanges struct
13718         * XplatUIX11.cs:
13719           - PeekMessage: Now throws exception if flags which are not yet
13720             supported are passed
13721           - Implemented SetWindowStyle() method
13722           - Fixed SetZOrder to handle AfterHwnd properly
13723         * XplatUI.cs: Added SetWindowStyle() method
13724         * XplatUIDriver.cs: Added SetWindowStyle() abstract
13725         * Control.cs:
13726           - Implemented UpdateStyles() method
13727           - Implemented UpdateZOrder() method
13728         * XplatUIOSX.cs: Added SetWindowStyle() stub
13729
13730 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
13731
13732         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
13733         button mouse).
13734
13735
13736 2005-01-11  Jackson Harper  <jackson@ximian.com>
13737
13738         * TreeView.cs: Still need to draw lines to siblings even if out of
13739         the current node is out of the clip.
13740
13741 2005-01-11  Jackson Harper  <jackson@ximian.com>
13742
13743         * TreeView.cs: When setting the hbar/vbar/grip position use
13744         SetBounds so that perform layout is only called once. Also suspend
13745         and resume layout so layout is only done once for all controls.
13746         - Removed some debug fluff
13747         * SizeGrip.cs: Call base implmentation in overriding methods.
13748         - When visibility is changed the drawing buffers are killed so we
13749         need to redraw.
13750
13751 2005-01-11  Jackson Harper  <jackson@ximian.com>
13752
13753         * TreeView.cs: Calculate the open node count while drawing. This
13754         saves us an entire tree traversal for every paint operation. Use
13755         a member var for the open node count so less vars are passed around.
13756
13757 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
13758
13759         * MonthCalendar.cs:
13760         - fixed selection to use mousemove, not mouse polling on timer
13761         * ThemeWin32Classic.cs
13762         - removed redundant unused variable "no_more_content"
13763         
13764 2005-01-11  Peter Bartok  <pbartok@novell.com>
13765
13766         * XplatUIX11.cs (DoEvents): Needs to return when no more events
13767           are pending, so it now calls PeekMessage instead of GetMessage;
13768           implemented a incomplete version of PeekMessage
13769         
13770 2005-01-11  Peter Bartok  <pbartok@novell.com>
13771
13772         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
13773           I18n issues
13774         * TextBoxBase.cs: Added sending of TextChanged event
13775
13776 2005-01-10  Jackson Harper  <jackson@ximian.com>
13777
13778         * TreeView.cs: Try not to draw outside the clipping rectangle on
13779         each node element.
13780
13781 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
13782
13783         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
13784
13785 2005-01-10  Jackson Harper  <jackson@ximian.com>
13786
13787         * TreeView.cs:
13788         - Implement fast scrolling. Now only the newly
13789         exposed nodes are drawn and the old image is moved using the
13790         XplatUI::ScrollWindow method.
13791         - Factor in height of nodes when calculating whether or not the
13792         node is in the clipping rect.
13793
13794 2005-01-10  Jackson Harper  <jackson@ximian.com>
13795
13796         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
13797
13798 2005-01-10  Peter Bartok  <pbartok@novell.com>
13799
13800         * Application.cs: Added temporary hack to resolve all our resize
13801           required issues on startup. This will get fixed properly at
13802           some point in the future
13803
13804 2005-01-10  Jackson Harper  <jackson@ximian.com>
13805
13806         * SizeGrip.cs: New internal class that is used as a sizing
13807         grip control...hence the name.
13808
13809 2005-01-10  Peter Bartok  <pbartok@novell.com>
13810
13811         * Control.cs: Implemented proper TabIndex handling, now assigning
13812           a tabindex when a control is added to a container
13813         * GroupBox.cs (ctor): Now sets the Container style bit, required
13814           for Control.GetNextControl()
13815
13816 2005-01-09  Jackson Harper  <jackson@ximian.com>
13817
13818         * TextBoxBase.cs: Clear window when scrolling (fixes build).
13819
13820 2005-01-09  Peter Bartok <pbartok@novell.com>
13821
13822         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
13823           XplatUIX11.cs: Added ability to control ScrollWindow expose and
13824           an overload for ScrollWindow to allow only scrolling a rectangle
13825
13826 2005-01-09  Peter Bartok <pbartok@novell.com>
13827
13828         * Form.cs:
13829           - Implemented SetDesktopBounds method
13830           - Implemented SetDesktopLocation method
13831
13832 2005-01-08  Jackson Harper  <jackson@ximian.com>
13833
13834         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
13835         the node count has changed, this removes to VScroll::Refresh calls
13836         when drawing.
13837
13838 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
13839
13840         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
13841
13842 2005-01-07  Jackson Harper  <jackson@ximian.com>
13843
13844         * TreeNode.cs: Just update the single node when it is
13845         checked. Don't refresh after toggling, the Expand/Collapse already
13846         handles this.
13847         * TreeView.cs: Respect clipping a little more when drawing. Try
13848         not to redraw things that don't need to be redrawn. Just hide the
13849         scrollbars when they are no longer needed instead of removing
13850         them, so they don't have to be created again and again.
13851         
13852 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
13853
13854         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
13855         coordinates to window space to place the caret properly, FIXED.
13856         Implement GetWindowState & SetWindowState
13857
13858 2005-01-06  Peter Bartok <pbartok@novell.com>
13859
13860         * Form.cs:
13861           - Implemented ClientSize property
13862           - Implemented DesktopBounds property
13863           - Implemented DesktopLocation property
13864           - Implemented IsRestrictedWindow property
13865           - Implemented Size property
13866           - Implemented TopLevel property
13867           - Implemented FormWindowState property
13868         * Control.cs:
13869           - Implemented GetTopLevel() method
13870           - Implemented SetTopLevel() method
13871         * X11Structs.cs (Atom):
13872           - Added AnyPropertyType definition
13873           - Added MapState definiton and updated XWindowAttribute struct
13874         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
13875         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
13876         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
13877         * XplatUIWin32.cs:
13878           - Implemented GetWindowState() and SetWindowState() methods
13879           - Fixed Win32GetWindowLong return type
13880         * XplatUIX11.cs:
13881           - Introduced central function for sending NET_WM messages
13882           - Implemented GetWindowState() and SetWindowState() methods
13883         * TextBoxBase.cs (set_Lines):
13884           - Now uses Foreground color for text added via Text property (Duh!)
13885           - Added code to remember programmatically requested size (fixes
13886             behaviour when Multiline is set after Size)
13887           - Added AutoSize logic
13888
13889 2005-01-06  Jackson Harper  <jackson@ximian.com>
13890
13891         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
13892
13893 2005-01-06  Jackson Harper  <jackson@ximian.com>
13894
13895         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
13896         set to less then 0.
13897
13898 2005-01-06  Jackson Harper  <jackson@ximian.com>
13899
13900         * ScrollableControl.cs: Lazy init the scrollbars.
13901         
13902 2005-01-06  Jackson Harper  <jackson@ximian.com>
13903
13904         * Theme.cs: Speed up getting pens and solid brushes, by using
13905         their ARGB as a hash instead of tostring and not calling Contains.
13906
13907 2005-01-06  Peter Bartok <pbartok@novell.com>
13908
13909         * Form.cs:
13910           - Implemented OnActivated and OnDeactivate event trigger
13911           - Implemented Activate() method
13912           - Fixed ShowDialog() to activate the form that was active before
13913             the dialog was shown
13914         * XplatUIX11.cs:
13915           - Added global active_window var that tracks the currently active
13916             X11 window
13917           - Now always grabs Property changes from the root window to always
13918             catch changes on the active window property
13919           - Added code to PropertyNotify handler to send Active/Inactive
13920             messages when state changes. This puts X11 and Win32 en par on
13921             WM_ACTIVATE notifications (except for double notifications when
13922             the user clicks away from our modal window to another one of our
13923             windows)
13924
13925 2005-01-05  Jackson Harper  <jackson@ximian.com>
13926
13927         * ImageList.cs: Implment ctor
13928
13929 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
13930
13931         * XplatUIOSX.cs: Implement Activate/SetTopmost
13932
13933 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
13934
13935         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
13936
13937 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
13938
13939         * XplatUIOSX.cs: Implement GetActive/SetFocus.
13940
13941 2005-01-05  Peter Bartok <pbartok@novell.com>
13942
13943         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
13944           XplatUIOSX.cs: Added GetActive method to return the currently
13945           active window for the application (or null, if none is active)
13946         * Form.cs:
13947           - Implemented ActiveForm
13948           - Commented out owner assignment for modal dialogs (causes problems
13949             on Win32, since the owner will be disabled)
13950           - Reworked some Active/Focus handling (still incomplete)
13951         * CommonDialog.cs: Commented out owner assignment for modal dialogs
13952           (causes problems on Win32, since the owner will be disabled)
13953         * IWin32Window: Added ComVisible attribute
13954
13955 2005-01-05  Peter Bartok <pbartok@novell.com>
13956
13957         * ToolTip.cs (WndProc): Enable setting focus now that we have the
13958           required XplatUI functions.
13959
13960 2005-01-05  Peter Bartok <pbartok@novell.com>
13961
13962         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
13963           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
13964           to implement focus and activation handling; still incomplete and
13965           with debug output
13966
13967 2005-01-04  Peter Bartok <pbartok@novell.com>
13968
13969         * TextBoxBase.cs: Changed access level for Document property to
13970           match switch to internal for TextControl
13971
13972 2005-01-04  Peter Bartok <pbartok@novell.com>
13973
13974         * AccessibleObject: Added ComVisible attribute
13975
13976 2005-01-04  Jackson Harper  <jackson@ximian.com>
13977
13978         * X11Keyboard.cs: Remove unneeded var.
13979
13980 2005-01-04  Jackson Harper  <jackson@ximian.com>
13981
13982         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
13983         but PAINT.
13984         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
13985         ClientMessage. This makes apps exit cleanly (more often).
13986         
13987 2005-01-04  Jackson Harper  <jackson@ximian.com>
13988
13989         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
13990         handling focus, return correct colors and fonts,
13991         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
13992         handle selection, horizontal scrolling, and mouse interaction.
13993
13994 2005-01-04  Peter Bartok <pbartok@novell.com>
13995
13996         * ICommandExecutor.cs: Added
13997         * IDataGridColumnStyleEditingNotificationService.cs: Added
13998         * IFeatureSupport.cs: Added
13999         * IFileReaderService.cs: Added
14000         * IDataObject.cs: Added ComVisible attribute
14001         * AmbientProperties.cs: Added
14002         * BaseCollection.cs: Added missing attributes
14003         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
14004         * BaseCollection.cs: Added missing attributes
14005         * Binding.cs: Added TypeConverter attribute
14006         * BindingContext.cs: Added DefaultEvent attribute
14007         * BindingsCollection.cs: Added DefaultEvent attribute
14008         * Button.cs: Added DefaultValue attribute
14009         * DragEventArgs.cs: Added ComVisible attribute
14010         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
14011         * KeyEventArgs.cs: Added ComVisible attribute
14012         * KeyPressEventArgs.cs: Added ComVisible attribute
14013         * MouseEventArgs.cs: Added ComVisible attribute
14014         * NavigateEventArgs.cs: Added
14015         * NavigateEventHandler.cs: Added
14016         * FeatureSupport.cs: Added
14017         * OSFeature.cs: Added
14018         * Theme.cs: Added abstract Version property to support OSFeature
14019         * ThemeWin32Classic.cs: Added Version property to
14020           support OSFeature.Themes
14021         * ProgressBar.cs: Removed OnPaintBackground override, not required since
14022           the proper styles to avoid background drawing are set, also doesn't
14023           match MS signature
14024         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
14025         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
14026         * ScrollEventArgs.cs: Added ComVisible attribute
14027         * SplitterEventArgs.cs: Added ComVisible attribute
14028         * AccessibleSelection.cs: Added Flags attribute
14029         * Appearance.cs: Added ComVisible attribute
14030         * Border3DSide.cs: Added ComVisible attribute
14031         * Border3DStyle.cs: Added ComVisible attribute
14032         * BorderStyle.cs: Added ComVisible attribute
14033         * DragAction.cs: Added ComVisible attribute
14034         * ErrorBlinkStyle.cs: Added
14035         * ScrollEventType.cs: Added ComVisible attribute
14036         * AnchorStyles.cs: Added Editor attribute
14037         * DockStyle.cs: Added Editor attribute
14038         * HorizontalAlignment.cs: Added ComVisible attribute
14039         * HelpEventArgs.cs: Added ComVisible attribute
14040         * PaintEventArgs.cs: Added IDisposable
14041
14042 2005-01-04  Peter Bartok <pbartok@novell.com>
14043
14044         * TextControl.cs: Switched Line, LineTag and Document classes to
14045           internal
14046
14047 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14048
14049         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
14050         Simple mode, fixes, IntegralHeight, etc.
14051
14052 2005-01-04  Peter Bartok <pbartok@novell.com>
14053
14054         * TextBoxBase.cs: Using proper font variable now
14055
14056 2005-01-04  Peter Bartok <pbartok@novell.com>
14057
14058         * Form.cs (ShowDialog): Set parent to owner, if provided
14059         * GroupBox.cs: Removed unused vars
14060         * TextControl.cs:
14061           - Added GetHashCode() for Document and LineTag classes
14062           - Removed unused variables
14063           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
14064             to allow translation between continuous char position and line/pos
14065         * CheckBox.cs: Removed vars that are provided by base class
14066         * RadioButton.cs: Removed vars that are provided by base class, added
14067           new keyword where required
14068         * LinkLabel.cs: Added new keyword where required
14069         * Control.cs (WndProc): Removed unused variable
14070         * TextBoxBase.cs:
14071           - Finished SelectionLength property
14072           - Implemented SelectionStart property
14073           - Implemented Text property
14074           - Removed unused vars
14075         * MessageBox.cs: Added new keyword where required
14076         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
14077           WndProc signature
14078         * MenuAPI.cs: Added new keyword where required
14079         * ButtonBase.cs: Removed vars that are provided by base class, added
14080           new keyword where required
14081         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
14082           argument to double, to allow compiling with csc 2.0 (Atsushi ran
14083           into this)
14084         * Application.cs (Run): Now triggers the ThreadExit event
14085         * CommonDialog.cs: Added new keyword where required; now properly sets
14086           parent (owner) for dialog
14087         * XplatUIX11.cs: Commented out unused vars
14088         * StatusBar.cs: Fixed signature for Text property
14089         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
14090
14091 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14092
14093         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
14094         TrackBar.cs, MonthCalendar.cs: remove unused vars
14095
14096 2005-01-03  Jackson Harper  <jackson@ximian.com>
14097
14098         * ThemeWin32Classic.cs:
14099         * X11Keyboard.cs: Remove unused vars.
14100
14101 2005-01-03  Peter Bartok  <pbartok@novell.com>
14102
14103         * TextBox.cs:
14104           - set_Text: Tied into TextControl
14105           - set_TextAlignment: Tied into TextControl
14106         * TextControl.cs:
14107           - Added alignment properties and implemented alignment handling
14108             and drawing (still has a bug, not generating proper expose events)
14109           - Added new Line() constructor to allow passing the line alignment
14110           - Fixed selection setting, properly handling end<start now
14111           - Added aligment considerations to RecalculateDocument()
14112         * TextBoxBase.cs:
14113           - Now properly enforces control height for single line controls
14114           - Added support for CharacterCasing
14115           - Added IsInputKey override
14116           - Fixed Keys.Enter logic
14117           - Added SetBoundsCore override
14118           - Fixed mouse selection handling
14119
14120 2005-01-03  Jackson Harper  <jackson@ximian.com>
14121
14122         * TreeView.cs:
14123           - Collapse and uncheck all nodes when CheckBoxes is disabled.
14124           - Checkboxes are always aligned to the bottom of the node,
14125           regardless of item height.
14126           - Use the node bounds to draw the text so we can center it when
14127           the item height is greater then the font height.
14128           - Node::Bounds are only the text part of the node.
14129         * TreeNode.cs: New method to combine collapsing and unchecking all
14130           nodes recursively.
14131
14132 2005-01-02  Jackson Harper  <jackson@ximian.com>
14133
14134         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
14135         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
14136         tree when a check is changed. TODO: Only refresh the checked node.
14137
14138 2004-12-30  Jackson Harper  <jackson@ximian.com>
14139
14140         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
14141         * TreeNode.cs: When collapsing make sure to never collapse the
14142         root node.
14143
14144 2004-12-29  Jackson Harper  <jackson@ximian.com>
14145
14146         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
14147         
14148 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
14149
14150         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
14151
14152 2004-12-28  Peter Bartok  <pbartok@novell.com>
14153
14154         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
14155           not yet assigned
14156
14157 2004-12-28  Peter Bartok  <pbartok@novell.com>
14158
14159         * Control.cs (WndProc): Added WM_HELP handler, now generates
14160           HelpRequested event
14161         * Form.cs: Added HelpButton property and required support code
14162         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
14163
14164 2004-12-28  Peter Bartok  <pbartok@novell.com>
14165
14166         * CommonDialog.cs:
14167           - Made DialogForm.owner variable internal
14168           - Added check to ensure owner form is set before setting
14169             owner properties in CreateParams
14170
14171 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
14172
14173         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
14174           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
14175           GetCursorPos.  Fix major visibility issues.  Rework the windowing
14176           system to support borderless/titleless windows (implements menus).
14177           Fix GetWindowPos.  Implement initial background color support for
14178           views.
14179
14180 2004-12-28  Peter Bartok  <pbartok@novell.com>
14181
14182         * Form.cs (get_CreateParams): Make sure we have an owner before using
14183           the owner variable. Implement proper default if no owner exists
14184
14185 2004-12-28  Peter Bartok  <pbartok@novell.com>
14186
14187         * In preparation for making Managed.Windows.Forms the default build target
14188           for System.Windows.Forms, the following stubbed files were added.
14189           Dialogs are currently being implemented by contributors and are only
14190           short-term place holders.
14191         * ColorDialog.cs: Initial check-in (minmal stub)
14192         * DataGrid.cs: Initial check-in (minimal stub)
14193         * DataGridLineStyle.cs: Initial check-in (minimal stub)
14194         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
14195         * DataGridTableStyle.cs: Initial check-in (minimal stub)
14196         * FontDialog.cs: Initial check-in (minimal stub)
14197         * FileDialog.cs: Initial check-in (minimal stub)
14198         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
14199         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
14200         * OpenFileDialog: Initial check-in (minimal stub)
14201         * IComponentEditorPageSite.cs: Initial check-in
14202         * Splitter.cs: Initial check-in (for Jackson)
14203         * SplitterEventArgs.cs: Initial check-in (for Jackson)
14204         * SplitterEventHandler.cs: Initial check-in (for Jackson)
14205         * TextBox.cs: Initial check-in; still needs some wiring to
14206           TextControl backend
14207         * Form.cs: Implemented ControlBox property
14208         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
14209         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
14210         * TextControl.cs: Added selection functionality; added todo header
14211         * TextBoxBase.cs:
14212           - Implemented Lines property
14213           - Implemented TextHeight property
14214           - Implemented SelectedText property
14215           - Implemented SelectionLength property
14216           - Implemented SelectAll method
14217           - Implemented ToString method
14218           - Removed and cleaned up some debug code
14219           - Implemented (still buggy) mouse text selection
14220
14221 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
14222
14223         * ComboBox.cs: Complete DropDownList implementation, fixes.
14224
14225 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
14226
14227         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
14228         * ComboBoxStyle.cs: ComboBoxStyle enum
14229         * ComboBox.cs: Initial work on ComboBox control
14230
14231 2004-12-21  Peter Bartok  <pbartok@novell.com>
14232
14233         * Control.cs (ctor, CreateParams): Moved setting of is_visible
14234           forward so that anything that creates a window gets the default,
14235           also no longer uses Visible property in CreateParams to avoid
14236           walking up the parent chain and possibly get the wrong visible
14237           status. Fixed IsVisible to no longer walk up to the parent.
14238
14239 2004-12-21  Peter Bartok  <pbartok@novell.com>
14240
14241         * Form.cs (ShowDialog): Unset modality for the proper window
14242  
14243 2004-12-20  Peter Bartok  <pbartok@novell.com>
14244
14245         * CommonDialog.cs: Initial check-in
14246
14247 2004-12-20  Peter Bartok  <pbartok@novell.com>
14248
14249         * Control.cs (Visible): Now uses the parent window instead of the
14250           client area window for the property
14251
14252         * Form.cs
14253           - ShowDialog(): Now uses the proper window for modality
14254           - The default visibility state for the form parent is now false. This
14255             will prevent the user from seeing all the changes to the form and
14256             its controls before the application hits Application.Run()
14257           - Removed some stale commented out code
14258
14259         * NativeWindow.cs:
14260           - Added FindWindow() method to have a method to check for existence
14261             of a window handle
14262           - Added ability to override default exception handling (for example
14263             when debugging with VS.Net; to do this the ExternalExceptionHandler
14264             define must be set
14265           - Removed some useless debug output
14266
14267         * XplatUIX11.cs:
14268           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
14269             not working as expected
14270           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
14271             property to allow switching back to the modal window if focus is
14272             given to another one of our windows (Application Modal)
14273           - Now only sets override_redirect if we create a window
14274             without WS_CAPTION
14275           - Moved EventMask selection before mapping of newly created window
14276             so we can catch the map event as well
14277           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
14278           - Added various Atom related DllImports
14279           - Implemented Exit() method
14280           - .ctor() : No longer shows window if WS_VISIBLE is not defined
14281             in the CreateParams
14282
14283         * MessageBox.cs: Now properly deals with the FormParent window by
14284           providing an override the FormParent CreateParams property to
14285           set as POPUP instead of OVERLAPPED window.
14286
14287 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14288
14289         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
14290         Minor code cleanup.
14291
14292 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14293         
14294         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
14295
14296 2004-12-18  Peter Bartok  <pbartok@novell.com>
14297
14298         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
14299           implementing SetModal() method
14300
14301 2004-12-18  Peter Bartok  <pbartok@novell.com>
14302
14303         * X11Structs.cs (XGCValues): Fixed type of function element
14304         * XplatUI.cs: Added ScrollWindow() method
14305         * XplatUIDriver.cs: Added ScrollWindow() abstract
14306         * XplatUIWin32.cs: Implemented ScrollWindow() method
14307         * XplatUIX11.cs: Implemented ScrollWindow() method
14308         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
14309
14310 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14311
14312         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
14313         Some more keyboard support (INCOMPLETE)
14314
14315 2004-12-17  Peter Bartok  <pbartok@novell.com>
14316
14317         * TextControl.cs:
14318         - Added color attribute to line tags.
14319         - Added color argument to all functions dealing with tags
14320         - Added color argument support to various functions
14321         - Fixed miss-calculation of baseline/shift in certain circumstances
14322
14323         * TextBoxBase.cs: Added new color option to test code
14324
14325 2004-12-17  Jackson Harper  <jackson@ximian.com>
14326
14327         * TreeNode.cs:
14328         * MonthCalendar.cs: Signature fixes
14329
14330 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14331
14332         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
14333         keyboard event moved it.  Create a new graphics context for each paint resolves this
14334
14335 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14336
14337         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
14338         Make caret exist and go blink blink.  Initial keyboard support.
14339         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
14340         works.
14341
14342 2004-12-17  Jackson Harper  <jackson@ximian.com>
14343
14344         * XplatUIStructs.cs: Updated set of virtual keycodes.
14345         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
14346
14347 2004-12-17  Jackson Harper  <jackson@ximian.com>
14348
14349         * XplatUIX11.cs: Prune old keyboard code.
14350
14351 2004-12-17  Jackson Harper  <jackson@ximian.com>
14352
14353         * XplatUIX11.cs: When generating mouse wparams get the modifier
14354         keys from the ModifierKeys property.
14355
14356 2004-12-17  Jackson Harper  <jackson@ximian.com>
14357
14358         * X11Keyboard.cs: Send up/down input when generating
14359         messages. Remove some unused vars.
14360
14361 2004-12-17  Jackson Harper  <jackson@ximian.com>
14362
14363         * TabControl.cs:
14364         * TreeView.cs: get rid of warnings.
14365
14366 2004-12-17  Jackson Harper  <jackson@ximian.com>
14367
14368         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
14369
14370 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
14371
14372         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
14373           CheckedListBox.cs: Implementation
14374
14375 2004-12-17  Peter Bartok  <pbartok@novell.com>
14376
14377         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
14378
14379 2004-12-16  Peter Bartok  <pbartok@novell.com>
14380
14381         * TextControl.cs:
14382           - InsertCharAtCaret(): Fixed start pos fixup
14383           - CaretLine_get: No longer derives the line from the tag, the tag
14384             could be stale if lines in the document have been added or deleted
14385           - RebalanceAfterDelete(): Fixed bug in balancing code
14386           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
14387           - Line.Streamline(): Now can also elminate leading empty tags
14388           - DumpTree(): Added a few more tests and prevented exception on
14389             uninitialized data
14390           - Added Debug section for Combining lines
14391           - Delete(): Now copies all remaining properties of a line
14392           
14393         * TextBoxBase.cs:
14394           - Left mousebutton now sets the caret (and middle button still acts
14395             as formatting tester, which must go away soon)
14396           - Added Debug section for Deleting/Combining lines
14397           - Fixed calculations for UpdateView after Combining lines
14398
14399 2004-12-16  Peter Bartok  <pbartok@novell.com>
14400
14401         * TextControl.cs: Now properly aligns text on a baseline, using the
14402           new XplatUI.GetFontMetrics() method. Simplified several calculations
14403         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
14404           defined
14405
14406 2004-12-16  Peter Bartok  <pbartok@novell.com>
14407
14408         * XplatUI.cs: Added GetFontMetrics() method
14409         * XplatUIDriver.cs: Added GetFontMetrics() abstract
14410         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
14411           into libgdiplus, our private GetFontMetrics function
14412         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
14413         * XplatUIWin32.cs: Implemented GetFontMetrics() method
14414
14415 2004-12-16  Jackson Harper  <jackson@ximain.com>
14416
14417         * XplatUIStruct.cs: Add enum for dead keys
14418         * X11Keyboard.cs: Map and unmap dead keys.
14419
14420 2004-12-16  Jackson Harper  <jackson@ximian.com>
14421
14422         * X11Keyboard.cs: Detect and use the num lock mask.
14423
14424 2004-12-16  Peter Bartok  <pbartok@novell.com>
14425
14426         * Control.cs (CreateGraphics): Added check to make sure the
14427           handle of the window exists before calling Graphics.FromHwnd()
14428
14429 2004-12-16  Peter Bartok  <pbartok@novell.com>
14430
14431         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
14432           contains a lot of code that's not supposed to be there for the
14433           real thing, but required for developing/testing the textbox
14434           backend.
14435
14436 2004-12-16  Peter Bartok  <pbartok@novell.com>
14437
14438         * TextControl.cs:
14439         - Fixed Streamline method
14440         - Added FindTag method to Line
14441         - Added DumpTree method for debugging
14442         - Added DecrementLines() method for deleting lines
14443         - Fixed UpdateView to update the cursor to end-of-line on single-line
14444           updates
14445         - Added PositionCaret() method
14446         - Fixed MoveCaret(LineDown) to move into the last line, too
14447         - Added InsertChar overload
14448         - Fixed InsertChar tag offset calculations
14449         - Added DeleteChar() method
14450         - Added Combine() method for folding lines
14451         - Fixed Delete() method, no longer allocates wasted Line object and
14452           now copies all properties when swapping nodes
14453         - Delete() method now updates document line counter
14454
14455 2004-12-15  Jackson Harper  <jackson@ximian.com>
14456
14457         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
14458         * X11Keyboard.cs: Expose the currently selected modifier keys
14459         through a property.
14460
14461 2004-12-15  Peter Bartok  <pbartok@novell.com>
14462
14463         * TextControl.cs: Initial check-in. Still incomplete
14464
14465 2004-12-15  Jackson Harper  <jackson@ximian.com>
14466
14467         * TreeNode.cs:
14468         * TreeView.cs: Fix build on csc (second time today ;-))
14469
14470 2004-12-15  Jackson Harper  <jackson@ximian.com>
14471
14472         * TreeView.cs: Store the treenodes plus/minus box bounds when it
14473         is calculated and use this for click testing.
14474         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
14475
14476 2004-12-15  Jackson Harper  <jackson@ximian.com>
14477
14478         * TreeView.cs: Pass the nodes image index to the image list when
14479         drawing that image.
14480
14481 2004-12-15  Jackson Harper  <jackson@ximian.com>
14482
14483         * X11Keyboard.cs: Set messages hwnd.
14484         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
14485         post_message calls.
14486
14487 2004-12-15  Jackson Harper  <jackson@ximian.com>
14488
14489         * X11Keyboard.cs: Fix to compile with csc.
14490         
14491 2004-12-15  Jackson Harper  <jackson@ximian.com>
14492
14493         * X11Structs.cs: Add key mask values
14494         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
14495         * X11Keyboard.cs: New file - Extrapolates and interpolates key
14496         down/up foo into WM_CHAR foo
14497         * KeyboardLayouts.cs: Common keyboard layouts
14498         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
14499         post messages into the main queue.
14500
14501 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
14502
14503         * Button.cs: implement ProcessMnemonic
14504         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
14505           brushes everytime
14506         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
14507         * ButtonBase.cs: Show HotkeyPrefix (not the &)
14508
14509 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
14510         
14511         * MonthCalendar.cs: Implemented click-hold for next/previous month
14512           and date selection
14513           
14514 2004-12-11  Peter Bartok  <pbartok@novell.com>
14515
14516         * X11Structs.cs:
14517           - Added XKeyboardState (moved from XplatUIX11.cs)
14518           - Added XCreateGC related enums and structures
14519           - Added GXFunction for XSetFunction
14520
14521         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
14522
14523         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
14524           CaretVisible() calls
14525
14526         * ToolTip.cs: Added code to prevent stealing focus from app windows
14527
14528         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
14529           DestroyCaret, SetCaretPos and CaretVisible)
14530
14531         * XplatUIX11.cs:
14532           - Added implementation for caret functions
14533           - Moved hover variables into a struct, to make it a bit easier
14534             on the eyes and to debug
14535           - Removed XKeyboardState (moved to XplatUIX11.cs)
14536           - Moved Keyboard properties into the properties region
14537
14538         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
14539           call to get a graphics context for our control
14540
14541         * XplatUIOSX.cs: Added empty overrides for the new caret functions
14542
14543         * TreeView.cs: Fixed bug. No matter what color was set it would always
14544           return SystemColors.Window
14545
14546         * XplatUIWin32.cs: Implemented caret overrides
14547
14548 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
14549
14550         * ListBox.cs: fire events, implement missing methods and properties,
14551         sorting.
14552
14553 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
14554
14555         * MonthCalendar.cs: invalidation bug fixing
14556         * ThemeWin32Classic.cs: paint fixing
14557
14558 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
14559
14560         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
14561         prepare the CGContextRef there now.
14562
14563 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
14564
14565         * MonthCalendar.cs:
14566           - optimisationL only invalidate areas that have changed
14567         * ThemeWin32Classic.cs:
14568           - only paint parts that intersect with clip_area
14569
14570 2004-12-09  Peter Bartok  <pbartok@novell.com>
14571
14572         * Application.cs: Undid changes from r37004 which cause problems
14573         on X11
14574
14575 2004-12-09  Ravindra  <rkumar@novell.com>
14576
14577         * ToolBar.cs: Added support for displaying ContextMenu
14578         attached to a button on ToolBar.
14579         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
14580         property.
14581
14582 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14583
14584         * Label.cs: autosize works in text change and removes unnecessary
14585         invalidate
14586
14587 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14588
14589         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14590         remove warnings
14591
14592 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
14593
14594         * XplatUIOSX.cs: Added mouse move/click/grab support
14595         Remove some debugging WriteLines not needed anymore.
14596         Add window resizing/positioning.
14597         Fix visibility on reparenting.
14598
14599 2004-12-08  Peter Bartok  <pbartok@novell.com>
14600
14601         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
14602
14603 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
14604
14605         * XplatUIOSX.cs: Initial checkin
14606         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
14607
14608 2004-12-03  Ravindra <rkumar@novell.com>
14609
14610         * ListView.cs: Added some keybindings and fixed scrolling.
14611         ScrollBars listen to ValueChanged event instead of Scroll
14612         Event. This would let us take care of all changes being
14613         done in the scrollbars' values programmatically or manually.
14614         * ListView.cs (CanMultiselect): Added a check for shift key.
14615         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
14616         * ListViewItem.cs (Clone): Fixed. We need to make a copy
14617         of ListViewSubItemCollection as well.
14618
14619 2004-12-06  Peter Bartok <pbartok@novell.com>
14620
14621         * Control.cs (Parent): Added check and exception to prevent
14622         circular parenting
14623
14624 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
14625
14626         * ListBox.cs: implemented clipping, selection single and multiple,
14627         bug fixing
14628
14629 2004-12-03  Ravindra <rkumar@novell.com>
14630
14631         * ListView.cs (ListView_KeyDown):
14632         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
14633         when CTRL key is pressed.
14634         * ListViewItem.cs (Selected): Fixed setting the property.
14635
14636 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14637
14638         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
14639
14640         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
14641         MinimizeBox, ShowInTaskbar, TopMost properties.
14642
14643         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
14644         will be implemented).
14645
14646 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14647
14648         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
14649
14650         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
14651         tests.
14652         
14653         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
14654         
14655         * TreeView.cs: BackColor is Colors.Window.
14656
14657 2004-12-01  Jackson Harper  <jackson@ximian.com>
14658
14659         * TreeView.cs: When resizing the tree if the user is making it
14660         smaller we don't get expose events, so we need to handle adding
14661         the horizontal scrollbar in the size changed handler as well as
14662         the expose handler.
14663
14664 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
14665
14666         * DrawItemState.cs: fixes wrong enum values
14667
14668 2004-12-01  Jackson Harper  <jackson@ximian.com>
14669
14670         * TreeView.cs: Resize the hbar as well as the vbar on resize.
14671
14672 2004-12-01  Jackson Harper  <jackson@ximian.com>
14673
14674         * NodeLabelEditEventArgs.cs:
14675         * NodeLabelEditEventHandler.cs:
14676         * OpenTreeNodeEnumerator.cs:
14677         * TreeNode.cs:
14678         * TreeNodeCollection.cs:
14679         * TreeView.cs:
14680         * TreeViewAction.cs:
14681         * TreeViewCancelEventArgs.cs:
14682         * TreeViewCancelEventHandler.cs:
14683         * TreeViewEventArgs.cs:
14684         * TreeViewEventHandler.cs: Initial implementation.
14685
14686 2004-12-01  Ravindra <rkumar@novell.com>
14687
14688         * ListView.cs (CalculateListView): Fixed scrolling related
14689         calculations. Also, removed some debug statements from other
14690         places.
14691         * ListViewItem.cs: Changed access to 'selected' instance variable
14692         from private to internal.
14693         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
14694
14695 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
14696
14697         * ThemeWin32Classic.cs: remove cache of brush and pens for
14698         specific controls and use the global system, fixes scrollbutton
14699         bugs (for small sizes, disabled, etc)
14700         
14701         * ScrollBar.cs: does not show the thumb for very small controls
14702         (as MS) and allow smaller buttons that the regular size
14703
14704 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
14705
14706         * UpDownBase.cs: Add abstract methods for the interface.
14707         Add new virtual methods (need to be hooked up to TextEntry when it
14708         exists).
14709         Add override methods for most features.
14710         Computes the size, forces the height of the text entry.
14711
14712         * NumericUpDown.cs: Put here the current testing code.
14713
14714         * Set eol-style property on all files that do not have mixed line
14715         endings, to minimize the future problems.  There are still a few
14716         files with mixed endings, and someone should choose whether they
14717         want to move it or not.
14718
14719 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
14720
14721         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
14722         System.Colors
14723         
14724 2004-11-30  Ravindra <rkumar@novell.com>
14725
14726         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
14727         drawing and replaced use of SystemColors by theme colors.
14728         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
14729         * ListView.cs (ListViewItemCollection.Add): Throw exception when
14730         same ListViewItem is being added more than once.
14731
14732 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
14733
14734         * MonthCalendar.cs:
14735           - ControlStyles love to make the control not flicker
14736           
14737 2004-11-30  Peter Bartok  <pbartok@novell.com>
14738
14739         * CharacterCasing.cs: Added
14740
14741 2004-11-29  Peter Bartok  <pbartok@novell.com>
14742
14743         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
14744           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
14745           I am removing these files as they conflict with already completed
14746           work. While it is fantastic to get contributions to MWF, I
14747           respectfully ask that everyone please coordinate their contributions
14748           through mono-winforms-list or #mono-winforms at this time. We're
14749           explicitly avoiding stubbing and don't want controls that don't have
14750           their basic functionality implemented in svn. Please also see
14751           http://www.mono-project.com/contributing/winforms.html
14752
14753
14754 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
14755
14756         * Application.cs (ModalRun): Don't hang after exit.
14757
14758         * Theme.cs: New TreeViewDefaultSize property.
14759
14760         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
14761         with less hardcoded SystemColors constant.
14762         Implemented TreeViewDefaultSize.
14763
14764         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
14765         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
14766
14767
14768 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
14769
14770         * MonthCalendar.cs:
14771           - Fix NextMonthDate and PrevMonthDate click moving calendar
14772
14773 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
14774
14775         * MonthCalendar.cs:
14776           - Fix usage of ScrollChange Property when scrolling months
14777
14778 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
14779
14780         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
14781          - Fixes menu destroying
14782          - Support adding and removing items on already created menus
14783
14784 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
14785
14786         * MonthCalendar.cs:
14787           - Re-worked all bolded dates handling to match win32
14788         * ThemeWin32Classic.cs:
14789           - Fixed rendering with bolded dates
14790
14791 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
14792
14793         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
14794         - Horizontal scroolbar
14795         - Multicolumn
14796         - Fixes
14797
14798
14799 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
14800
14801         * MonthCalendar.cs:
14802           - Fix Usage of MaxSelectionCount from SelectionRange
14803           - Fixed Shift + Cursor Selection
14804           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
14805           - Fixed normal cursor selection to be compat with win32
14806           - Fixed Shift + Mouse Click selection
14807
14808 2004-11-24  Peter Bartok <pbartok@novell.com>
14809
14810         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
14811         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
14812         * XplatUIX11.cs:
14813           - CreatedKeyBoardMsg now updates keystate with Alt key
14814           - Added workaround for timer crash to CheckTimers, Jackson will
14815             develop a proper fix and check in later
14816           - Implemented DispatchMessage
14817           - Removed calling the native window proc from GetMessage (call
14818             now moved to DispatchMessage)
14819
14820         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
14821           the keydata (Fixes bug #69831)
14822
14823         * XplatUIWin32.cs:
14824           - (DispatchMessage): Switched to return IntPtr
14825           - Added DllImport for SetFocus
14826
14827 2004-11-24  Ravindra <rkumar@novell.com>
14828
14829         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
14830         background drawing.
14831         * ListViewItem.cs: Fixed various properties, calculations
14832         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
14833         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
14834         and some internal properties. Fixed MouseDown handler and Paint
14835         method.
14836
14837 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14838
14839         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
14840
14841 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14842
14843         * ContainerControl.cs: correct accidental check in of local changes
14844
14845 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14846
14847         * ThemeWin32Classic.cs:
14848                 - Fixed Drawing Last month in grid (sometimes not showing)
14849         * MonthCalendar.cs:
14850                 - Fixed title width calculation bug (makeing title small)
14851
14852 2004-11-23  Peter Bartok <pbartok@novell.com>
14853
14854         * XplatUIX11.cs:
14855           - Added generation of WM_MOUSEHOVER event
14856           - Added missing assignment of async_method atom
14857           - Fixed WM_ERASEBKGND; now only redraws the exposed area
14858
14859 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
14860
14861         * ThemeWin32Classic.cs:
14862                 - Fixed Drawing of today circle when showtodaycircle not set
14863                 - fixed drawing of first and last month in the grid (gay dates)
14864         * MonthCalendar.cs:
14865                 - Fixed Drawing of today circle
14866                 - Fixed drawing of grady dates
14867                 - Fixed HitTest for today link when ShowToday set to false
14868                 - Fixed DefaultSize to obey ShowToday
14869
14870 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
14871
14872         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
14873         * System.Windows.Forms/Theme.cs
14874         * MonthCalendar.cs: added for MonthCalendar
14875         * SelectionRange.cs: added for MonthCalendar
14876         * Day.cs: added for MonthCalendar: added for MonthCalendar
14877         * DateRangeEventArgs.cs: added for MonthCalendar
14878         * DateRangeEventHandler.cs: added for MonthCalendar
14879
14880 2004-11-22  Ravindra <rkumar@novell.com>
14881
14882         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
14883         property.
14884
14885 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
14886
14887         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
14888         event handler.
14889         
14890         * NumericUpDown.cs: Added new implementation.
14891         * UpDownBase.cs: Added new implementation.
14892
14893         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
14894         implementations.
14895         
14896         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
14897         implementations.
14898
14899         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
14900         methods.
14901
14902 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
14903
14904         * Timer.cs  (Dispose): Should call the base dispose when
14905         overriding.
14906
14907 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
14908
14909         * ScrollBar.cs: updates thumb position when max, min or increment
14910         is changed
14911
14912 2004-11-21  Ravindra <rkumar@novell.com>
14913
14914         * ListView.cs: Implemented item selection, activation and
14915         column header style. Fixed properties to do a redraw, if
14916         required. Added support for MouseHover, DoubleClick, KeyDown
14917         and KeyUp event handling and some minor fixes.
14918         * ListViewItem.cs: Fixed constructor.
14919         * ThemeWin32Classic.cs: Improved drawing for ListView.
14920
14921 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
14922
14923         * ThemeWin32Classic.cs: initial listbox drawing code
14924         * DrawMode.cs: new enumerator
14925         * ListControl.cs: stubbed class
14926         * ListBox.cs: initial implementation
14927         * Theme.cs: new methods definitions
14928         * SelectionMode.cs: new enumerator
14929
14930 2004-11-17  Peter Bartok  <pbartok@novell.com>
14931
14932         * XplatUIWin32.cs: Added double-click events to the class style
14933         * Control.cs (WndProc):
14934           - Added handling of click-count to MouseDown/ MouseUp events.
14935           - Added handling of middle and right mouse buttons
14936           - Removed old debug code
14937
14938 2004-11-17  Jackson Harper  <jackson@ximian.com>
14939
14940         * XplatUIX11.cs: Use the new Mono.Unix namespace.
14941
14942 2004-11-17  Ravindra <rkumar@novell.com>
14943
14944         * ListView.cs: Added event handling for MouseMove/Up/Down.
14945         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
14946         * ThemeWin32Classic.cs: We need to clear the graphics context and
14947         draw column header in a proper state.
14948
14949
14950 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
14951
14952         *  Menu.cs: fixes signature
14953
14954 2004-11-16  Peter Bartok  <pbartok@novell.com>
14955
14956         * XplatUIX11.cs (GetMessage): Implemented generation of
14957           double click mouse messages
14958
14959 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
14960
14961         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
14962         not by menu
14963
14964 2004-11-11  Peter Bartok  <pbartok@novell.com>
14965
14966         * HandleData.cs: Added Visible property
14967         * XplatUIX11.cs (IsVisible): Now uses Visible property from
14968           HandleData
14969         * XplatUIX11.cs: Removed old debug leftovers
14970         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
14971         * Control.cs (WndProc): Removed old debug leftovers,
14972           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
14973           needed WM_SIZE handling
14974
14975 2004-11-11  Jackson Harper  <jackson@ximian.com>
14976
14977         * OwnerDrawPropertyBag.cs:
14978         * TreeViewImageIndexConverter.cs: Initial implementation
14979
14980 2004-11-10  Jackson Harper  <jackson@ximian.com>
14981
14982         * ThemeWin32Classic.cs:
14983         * TabControl.cs: instead of moving tabs by the slider pos just
14984         start drawing at the tab that is offset by the slider. This way
14985         scrolling always moves by exactly one tab.
14986
14987 2004-11-10  Jackson Harper  <jackson@ximian.com>
14988
14989         * TabControl.cs: You can only scroll left when the slider has
14990         already ben moved right.
14991         
14992 2004-11-10  Jackson Harper  <jackson@ximian.com>
14993
14994         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
14995         the clip area.
14996         
14997 2004-11-10  Jackson Harper  <jackson@ximian.com>
14998
14999         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
15000         clip area.
15001         
15002 2004-11-09  Jackson Harper  <jackson@ximian.com>
15003
15004         * TabControl.cs (CalcXPos): New helper method so we can determine
15005         the proper place to start drawing vertical tabs.
15006         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
15007         
15008 2004-11-09  Jackson Harper  <jackson@ximian.com>
15009
15010         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
15011         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
15012         and Bottom, left and right are illegal values for this and
15013         multiline is enabled when the alignment is set to left or right.
15014         (DrawTab): Each alignment block should draw the text itself now
15015         because Left requires special love. Also add rendering for Left
15016         aligned tabs.
15017         
15018 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
15019
15020         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
15021         does not destroy the windows, removes debugging messages
15022
15023 2004-11-09  jba  <jba-mono@optusnet.com.au>
15024
15025         * ThemeWin32Classic.cs
15026         (DrawButtonBase): Fix verticle text rect clipping in windows
15027         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15028         rendering and incorrect text rect clipping
15029         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15030         rendering and incorrect text rect clipping
15031         
15032 2004-11-08  Jackson Harper  <jackson@ximian.com>
15033
15034         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
15035         bottom when they are bottom aligned so the bottoms of the tabs get
15036         displayed.
15037         * TabControl.cs (DropRow): Move rows up instead of down when the
15038         tab control is bottom aligned.
15039
15040 2004-11-08 13:59  pbartok
15041
15042         * XplatUIX11.cs:
15043           - Added handling for various window styles
15044           - Added handling for popup windows
15045           - Added SetTopmost handling
15046
15047 2004-11-08 13:55  pbartok
15048
15049         * XplatUIWin32.cs:
15050           - Added argument to SetTopmost method
15051           - Fixed broken ClientToScreen function
15052
15053 2004-11-08 13:53  pbartok
15054
15055         * XplatUIStructs.cs:
15056           - Added missing WS_EX styles
15057
15058 2004-11-08 13:53  pbartok
15059
15060         * XplatUI.cs, XplatUIDriver.cs:
15061           - Added argument to SetTopmost
15062
15063 2004-11-08 13:52  pbartok
15064
15065         * X11Structs.cs:
15066           - Added XSetWindowAttributes structure
15067           - Improved XWindowAttributes structure
15068           - Added SetWindowValuemask enum
15069           - Added window creation arguments enum
15070           - Added gravity enum
15071           - Added Motif hints structure
15072           - Added various Motif flags and enums
15073           - Added PropertyMode enum for property functions
15074
15075 2004-11-08 13:50  pbartok
15076
15077         * Form.cs:
15078           - Fixed arguments for updated SetTopmost method
15079
15080 2004-11-08 13:49  pbartok
15081
15082         * ToolTip.cs:
15083           - Fixed arguments for updated SetTopmost function
15084           - Fixed usage of PointToClient
15085
15086 2004-11-08 13:44  pbartok
15087
15088         * MenuAPI.cs:
15089           - Added Clipping of children and siblings
15090
15091 2004-11-08 13:41  pbartok
15092
15093         * MainMenu.cs:
15094           - Removed SetMenuBarWindow call. We do this in Form.cs
15095
15096 2004-11-08 13:40  jackson
15097
15098         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
15099           scrolling jimmi in the correct location with bottom aligned tabs
15100
15101 2004-11-08 13:36  pbartok
15102
15103         * ContainerControl.cs:
15104           - Implemented BindingContext
15105           - Implemented ParentForm
15106
15107 2004-11-08 12:46  jackson
15108
15109         * TabControl.cs: Put bottom rendered tabs in the right location
15110
15111 2004-11-08 07:15  jordi
15112
15113         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
15114           removes dead code
15115
15116 2004-11-05 17:30  jackson
15117
15118         * TabControl.cs: When selected tabs are expanded make sure they
15119           don't go beyond the edges of the tab control
15120
15121 2004-11-05 14:57  jackson
15122
15123         * TabControl.cs: Reset show_slider so if the control is resized to
15124           a size where it is no longer needed it's not displayed anymore
15125
15126 2004-11-05 13:16  jackson
15127
15128         * TabControl.cs: Make tab pages non visible when added to the
15129           control
15130
15131 2004-11-05 12:42  jackson
15132
15133         * TabControl.cs: Implement SizeMode.FillToRight
15134
15135 2004-11-05 12:16  jackson
15136
15137         * Control.cs: Do not call CreateHandle if the handle is already
15138           created
15139
15140 2004-11-05 11:46  jackson
15141
15142         * TabControl.cs: Remove superflous call to CalcTabRows
15143
15144 2004-11-05 09:07  jackson
15145
15146         * XplatUIX11.cs: Update for Mono.Posix changes
15147
15148 2004-11-05 07:00  ravindra
15149
15150         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
15151           scrolling.
15152
15153 2004-11-04 22:47  jba
15154
15155         * ThemeWin32Classic.cs:
15156           - Fix Button rendering for FlatStyle = Flat or Popup
15157           - Fix RadioButton and CheckBox rendering when Appearance = Button
15158             (normal and flatstyle).
15159           - Correct outer rectangle color when drawing focus rectangle
15160           - Adjust button bounds to be 1 px smaller when focused
15161           - Make button not draw sunken 3d border when pushed (windows compat)
15162           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
15163           - Offset the text in RadioButton and Checkbox when being rendered as
15164           a button.
15165           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
15166           radiobuttons
15167           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
15168           - Fixed disabled text rendering for normally rendered radiobuttons
15169
15170 2004-11-04 10:26  jackson
15171
15172         * TabControl.cs: Recalculate tab rows when resizing
15173
15174 2004-11-04 07:47  jordi
15175
15176         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
15177           collection completion, drawing issues, missing features
15178
15179 2004-11-04 05:03  ravindra
15180
15181         * ScrollBar.cs:
15182                 - We need to recalculate the Thumb area when
15183                 LargeChange/maximum/minimum values are changed.
15184           - We set the 'pos' in UpdatePos() method to minimum, if it's less
15185                 than minimum. This is required to handle the case if large_change is
15186                 more than max, and use LargeChange property instead of large_change
15187                 variable.
15188           - We return max+1 when large_change is more than max, like MS does.
15189
15190 2004-11-04 04:29  ravindra
15191
15192         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
15193                 - Changed default value signatures (prefixed all with ListView).
15194                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
15195                 ListView.
15196           - Fixed calculations for ListViewItem and implemented Clone()
15197           method.
15198
15199 2004-11-04 04:26  ravindra
15200
15201         * Theme.cs, ThemeWin32Classic.cs:
15202                 - Changed default ListView values signatures (prefixed all with
15203                 ListView).
15204           - Fixed default size values for VScrollBar and HScrollBar.
15205                 - Fixed DrawListViewItem method.
15206
15207 2004-11-04 04:05  ravindra
15208
15209         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
15210
15211 2004-11-04 04:04  ravindra
15212
15213         * ImageList.cs: Implemented the missing overload for Draw method.
15214
15215 2004-11-03 19:29  jackson
15216
15217         * TabControl.cs: Handle dropping rows on selection properly
15218
15219 2004-11-03 11:59  jackson
15220
15221         * TabControl.cs: remove debug code
15222
15223 2004-11-03 11:52  jackson
15224
15225         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
15226           the scrolly widgerywoo
15227
15228 2004-11-02 13:52  jackson
15229
15230         * TabControl.cs: Resize the tab pages and tabs when the tab control
15231           is resized
15232
15233 2004-11-02 13:40  jackson
15234
15235         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
15236           selected tab to the bottom
15237
15238 2004-11-02 13:39  jackson
15239
15240         * TabPage.cs: Store the tab pages row
15241
15242 2004-11-02 12:33  jordi
15243
15244         * MenuItem.cs: fixes handle creation
15245
15246 2004-11-02 11:42  jackson
15247
15248         * TabControl.cs: signature fix
15249
15250 2004-11-02 08:56  jackson
15251
15252         * TabControl.cs: Calculate whether the tab is on an edge properly.
15253           Remove top secret debugging code
15254
15255 2004-11-01 19:57  jackson
15256
15257         * TabControl.cs: Add click handling, and proper sizing
15258
15259 2004-11-01 19:47  jackson
15260
15261         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
15262           tab controls
15263
15264 2004-11-01 19:39  jackson
15265
15266         * TabPage.cs: add internal property to store the bounds of a tab
15267           page
15268
15269 2004-10-30 04:23  ravindra
15270
15271         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
15272           values.
15273
15274 2004-10-30 04:21  ravindra
15275
15276         * ListView.cs, ListViewItem.cs: Added support for scrolling and
15277           fixed calculations.
15278
15279 2004-10-30 03:06  pbartok
15280
15281         * XplatUIX11.cs:
15282           - Removed extension of DllImported libs
15283
15284 2004-10-29 09:55  jordi
15285
15286         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
15287           navigation, itemcollection completion, menu fixes
15288
15289 2004-10-27 22:58  pbartok
15290
15291         * XplatUIX11.cs:
15292           - Now throws a nice error message when no X display could be opened
15293
15294 2004-10-26 13:51  jordi
15295
15296         * ListView.cs: removes warning
15297
15298 2004-10-26 03:55  ravindra
15299
15300         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
15301           ThemeWin32Classic.cs: Some formatting for my last checkins.
15302
15303 2004-10-26 03:36  ravindra
15304
15305         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
15306           control and default values.
15307
15308 2004-10-26 03:35  ravindra
15309
15310         * Theme.cs: Added some default values for ListView control.
15311
15312 2004-10-26 03:33  ravindra
15313
15314         * ToolBar.cs: ToolBar should use the user specified button size, if
15315           there is any. Added a size_specified flag for the same.
15316
15317 2004-10-26 03:33  ravindra
15318
15319         * ColumnHeader.cs: Added some internal members and calculations for
15320           ColumnHeader.
15321
15322 2004-10-26 03:32  ravindra
15323
15324         * ListViewItem.cs: Calculations for ListViewItem.
15325
15326 2004-10-26 03:31  ravindra
15327
15328         * ListView.cs: Added some internal members and calculations for
15329           ListView.
15330
15331 2004-10-22 13:31  jordi
15332
15333         * MenuAPI.cs: speedup menus drawing
15334
15335 2004-10-22 13:16  jackson
15336
15337         * XplatUIX11.cs: Make sure to update exposed regions when adding an
15338           expose event
15339
15340 2004-10-22 11:49  jackson
15341
15342         * Control.cs: oops
15343
15344 2004-10-22 11:41  jackson
15345
15346         * Control.cs: Check to see if the window should have its background
15347           repainted by X when drawing.
15348
15349 2004-10-22 11:31  jackson
15350
15351         * XplatUIX11.cs: When invalidating areas only use XClearArea if
15352           clear is true, this way we do not get flicker from X repainting the
15353           background
15354
15355 2004-10-22 11:28  jackson
15356
15357         * XEventQueue.cs: Queue properly
15358
15359 2004-10-21 09:38  jackson
15360
15361         * XEventQueue.cs: Fix access modifier
15362
15363 2004-10-21 09:36  jackson
15364
15365         * XEventQueue.cs: Don't loose messages
15366
15367 2004-10-21 09:22  jackson
15368
15369         * XEventQueue.cs: Don't loose messages
15370
15371 2004-10-20 04:15  jordi
15372
15373         * BootMode.cs: enum need it by SystemInfo
15374
15375 2004-10-19 21:58  pbartok
15376
15377         * XplatUIWin32.cs:
15378           - Small sanity check
15379
15380 2004-10-19 21:56  pbartok
15381
15382         * Form.cs:
15383           - Added private FormParentWindow class which acts as the container
15384             for our form and as the non-client area where menus are drawn
15385           - Added/Moved required tie-ins to Jordi's menus
15386           - Fixed/Implemented the FormStartPosition functionality
15387
15388 2004-10-19 21:52  pbartok
15389
15390         * Control.cs:
15391           - Removed unneeded locals
15392           - Added code to all size and location properties to understand and
15393             deal with the parent container of Form
15394
15395 2004-10-19 21:33  pbartok
15396
15397         * Application.cs:
15398           - Fixed to deal with new Form subclasses for menus
15399
15400 2004-10-19 17:48  jackson
15401
15402         * XEventQueue.cs: commit correct version of file
15403
15404 2004-10-19 16:50  jackson
15405
15406         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
15407
15408 2004-10-19 16:15  jordi
15409
15410         * MenuAPI.cs: MenuBarCalcSize returns the height
15411
15412 2004-10-19 08:31  pbartok
15413
15414         * Control.cs:
15415           - Added missing call to PreProcessMessage before calling OnXXXKey
15416           methods
15417
15418 2004-10-19 00:04  ravindra
15419
15420         * ToolTip.cs: Fixed constructor.
15421
15422 2004-10-18 09:31  jordi
15423
15424         * MenuAPI.cs: menuitems in menubars do not have shortcuts
15425
15426 2004-10-18 09:26  jordi
15427
15428         * MenuItem.cs: fixes MenuItem class signature
15429
15430 2004-10-18 08:56  jordi
15431
15432         * MenuAPI.cs: prevents windows from showing in the taskbar
15433
15434 2004-10-18 00:28  ravindra
15435
15436         * ToolTip.cs: Suppressed a warning message.
15437
15438 2004-10-18 00:27  ravindra
15439
15440         * Control.cs: Default value of visible property must be true.
15441
15442 2004-10-17 23:19  pbartok
15443
15444         * ToolTip.cs:
15445           - Complete implementation
15446
15447 2004-10-17 23:19  pbartok
15448
15449         * XplatUIX11.cs:
15450           - Added EnableWindow method
15451           - Added SetModal stub
15452           - Added generation of WM_ACTIVATE message (still needs testing)
15453           - Added SetTopMost stub
15454           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
15455
15456 2004-10-17 23:17  pbartok
15457
15458         * XplatUIWin32.cs:
15459           - Removed VirtualKeys to XplatUIStructs
15460           - Implemented SetTopMost method
15461           - Implemented EnableWindow method
15462           - Bugfix in ScreenToClient()
15463           - Bugfixes in ClientToScreen()
15464
15465 2004-10-17 22:51  pbartok
15466
15467         * XplatUIStructs.cs:
15468           - Added WS_EX styles to WindowStyles enumeration
15469
15470 2004-10-17 22:50  pbartok
15471
15472         * XplatUI.cs, XplatUIDriver.cs:
15473           - Added method for enabling/disabling windows
15474           - Added method for setting window modality
15475           - Added method for setting topmost window
15476
15477 2004-10-17 22:49  pbartok
15478
15479         * ThemeWin32Classic.cs:
15480           - Added ToolTip drawing code
15481
15482 2004-10-17 22:49  pbartok
15483
15484         * Theme.cs:
15485           - Added ToolTip abstracts
15486
15487 2004-10-17 22:47  pbartok
15488
15489         * Form.cs:
15490           - Fixed Form.ControlCollection to handle owner relations
15491           - Added Owner/OwnedForms handling
15492           - Implemented Z-Ordering for owned forms
15493           - Removed unneeded private overload of ShowDialog
15494           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
15495             so I hope)
15496           - Fixed Close(), had wrong default
15497           - Added firing of OnLoad event
15498           - Added some commented out debug code for Ownership handling
15499
15500 2004-10-17 22:16  pbartok
15501
15502         * Control.cs:
15503           - Fixed/implemented flat list of controls
15504
15505 2004-10-17 22:14  pbartok
15506
15507         * Application.cs:
15508           - Added code to simulate modal dialogs on Win32
15509
15510 2004-10-17 16:11  jordi
15511
15512         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
15513           mouse event
15514
15515 2004-10-17 13:39  jordi
15516
15517         * MenuAPI.cs: menu drawing fixes
15518
15519 2004-10-15 09:10  ravindra
15520
15521         * StructFormat.cs: General Enum.
15522
15523 2004-10-15 09:09  ravindra
15524
15525         * SizeGripStyle.cs: Enum for Form.
15526
15527 2004-10-15 09:08  ravindra
15528
15529         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
15530           in Theme for ListView.
15531
15532 2004-10-15 09:06  ravindra
15533
15534         * ColumnHeader.cs: Flushing some formatting changes.
15535
15536 2004-10-15 09:05  ravindra
15537
15538         * ListViewItem.cs: Implemented GetBounds method and fixed coding
15539           style.
15540
15541 2004-10-15 09:03  ravindra
15542
15543         * ListView.cs: Implemented Paint method and fixed coding style.
15544
15545 2004-10-15 07:34  jordi
15546
15547         * MenuAPI.cs: fix for X11
15548
15549 2004-10-15 07:32  ravindra
15550
15551         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
15552                 - Renamed Paint() method to Draw() for clarity. Also, moved
15553                 DrawImage() to OnPaint().
15554
15555 2004-10-15 07:25  ravindra
15556
15557         * CheckBox.cs, RadioButton.cs:
15558                 - Removed Redraw (), we get it from ButtonBase.
15559                 - Implemented Paint (), to do class specific painting.
15560
15561 2004-10-15 07:16  ravindra
15562
15563         * ButtonBase.cs:
15564                 - Redraw () is not virtual now.
15565                 - Added an internal virtual method Paint (), so that
15566                 derived classes can do their painting on their own.
15567                 - Modified OnPaint () to call Paint ().
15568
15569 2004-10-15 06:43  jordi
15570
15571         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
15572           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
15573
15574 2004-10-15 00:30  ravindra
15575
15576         * MessageBox.cs:
15577                 - MessageBox on windows does not have min/max buttons.
15578                 This change in CreateParams fixes this on Windows. We
15579                 still need to implement this windowstyle behavior in
15580                 our X11 driver.
15581
15582 2004-10-14 05:14  ravindra
15583
15584         * ToolBar.cs:
15585                 - Changed Redraw () to do a Refresh () always.
15586                 - Fixed the MouseMove event handling when mouse is pressed,
15587                 ie drag event handling.
15588                 - Replaced the usage of ToolBarButton.Pressed property to
15589                 ToolBarButton.pressed internal variable.
15590
15591 2004-10-14 05:10  ravindra
15592
15593         * ToolBarButton.cs:
15594                 - Added an internal member 'inside' to handle mouse move
15595                 with mouse pressed ie mouse drag event.
15596                 - Changed 'Pressed' property to return true only when
15597                 'inside' and 'pressed' are both true.
15598                 - Some coding style love.
15599
15600 2004-10-14 00:17  ravindra
15601
15602         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
15603           public method.
15604
15605 2004-10-14 00:15  ravindra
15606
15607         * ButtonBase.cs: Redraw () related improvements.
15608
15609 2004-10-14 00:14  ravindra
15610
15611         * MessageBox.cs: Moved InitFormSize () out of Paint method and
15612           removed unnecessary calls to Button.Show () method.
15613
15614 2004-10-13 17:50  pbartok
15615
15616         * XplatUIX11.cs:
15617           - Formatting fix
15618           - Removed destroying of window until we solve the problem of X
15619             destroying the window before us on shutdown
15620
15621 2004-10-13 16:32  pbartok
15622
15623         * ButtonBase.cs:
15624           - Now Redraws on MouseUp for FlatStyle Flat and Popup
15625
15626 2004-10-13 14:18  pbartok
15627
15628         * XplatUIX11.cs:
15629           - Added code to destroy the X window
15630
15631 2004-10-13 14:18  pbartok
15632
15633         * XplatUIWin32.cs:
15634           - Added code to destroy a window
15635
15636 2004-10-13 14:12  pbartok
15637
15638         * ButtonBase.cs:
15639           - Added the Redraw on Resize that got dropped in the last rev
15640
15641 2004-10-13 09:06  pbartok
15642
15643         * ThemeWin32Classic.cs:
15644           - Path from John BouAntoun:
15645             * Fix check rendering (centre correctly for normal style, offset
15646               correctly for FlatStyle).
15647             * Fix border color usage (use backcolor) for FlatStyle.Popup
15648             * Use checkbox.Capture instead of checkbox.is_pressed when
15649               rendering flatstyle states.
15650
15651 2004-10-12 21:48  pbartok
15652
15653         * ThemeWin32Classic.cs:
15654           - Removed all occurences of SystemColors and replaced them with the
15655             matching theme color
15656
15657 2004-10-12 21:41  pbartok
15658
15659         * ThemeWin32Classic.cs:
15660           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
15661             him using the function for flatstyle drawing
15662           - Changed functions to use the new version of CPDrawBorder3D
15663
15664 2004-10-12 21:15  pbartok
15665
15666         * ControlPaint.cs:
15667           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
15668             match MS documentation. They need to return defined colors if the
15669             passed color matches the configured control color. Thanks to John
15670             BouAntoun for pointing this out.
15671
15672 2004-10-12 20:57  pbartok
15673
15674         * Control.cs:
15675           - Fix from John BouAntoun: Raise ForeColorChanged event when text
15676             color is changed
15677
15678 2004-10-12 20:46  pbartok
15679
15680         * CheckBox.cs:
15681           - Fix from John BouAntoun: Now properly sets the Appearance property
15682
15683 2004-10-12 20:45  pbartok
15684
15685         * ThemeWin32Classic.cs:
15686           - Fixes from John BouAntoun: now handles forecolors and backcolors
15687             for flatstyle rendered controls much better; It also fixes normal
15688             checkbox rendering when pushed or disabled.
15689
15690 2004-10-08 02:50  jordi
15691
15692         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
15693           work
15694
15695 2004-10-07 08:56  jordi
15696
15697         * ThemeWin32Classic.cs: Removes deletion of cached brushes
15698
15699 2004-10-06 03:59  jordi
15700
15701         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
15702           XplatUIWin32.cs: removes warnings from compilation
15703
15704 2004-10-05 12:23  jackson
15705
15706         * RadioButton.cs: Fix ctor
15707
15708 2004-10-05 11:10  pbartok
15709
15710         * MessageBox.cs:
15711           - Partial implementation by Benjamin Dasnois
15712
15713 2004-10-05 10:15  jackson
15714
15715         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
15716           by John BouAntoun
15717
15718 2004-10-05 03:07  ravindra
15719
15720         * ToolBar.cs:
15721                 - Removed a private method, Draw ().
15722                 - Fixed the ButtonDropDown event handling.
15723                 - Fixed MouseMove event handling.
15724
15725 2004-10-05 03:04  ravindra
15726
15727         * ThemeWin32Classic.cs:
15728                 - Added DrawListView method and ListViewDefaultSize property.
15729                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
15730                 - Changed DOS style CRLF to Unix format (dos2unix).
15731
15732 2004-10-05 03:03  ravindra
15733
15734         * Theme.cs:
15735                 - Added DrawListView method and ListViewDefaultSize property.
15736
15737 2004-10-05 02:42  ravindra
15738
15739         * ToolBarButton.cs: Added an internal member dd_pressed to handle
15740           clicks on DropDown arrow.
15741
15742 2004-10-04 22:56  jackson
15743
15744         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
15745           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
15746           Control handle the buffers, derived classes should not have to
15747           CreateBuffers themselves.
15748
15749 2004-10-04 21:20  jackson
15750
15751         * StatusBar.cs: The control handles resizing the buffers now.
15752
15753 2004-10-04 21:18  jackson
15754
15755         * Control.cs: When resizing the buffers should be invalidated. This
15756           should be handled in Control not in derived classes.
15757
15758 2004-10-04 14:45  jackson
15759
15760         * TabPage.cs: oops
15761
15762 2004-10-04 02:14  pbartok
15763
15764         * LeftRightAlignment.cs:
15765           - Initial check-in
15766
15767 2004-10-04 01:09  jordi
15768
15769         * ThemeWin32Classic.cs: fixes right button position causing right
15770           button not showing on horizontal scrollbars
15771
15772 2004-10-02 13:12  pbartok
15773
15774         * XplatUIX11.cs:
15775           - Simplified the Invalidate method by using an X call instead of
15776             generating the expose ourselves
15777           - Added an expose when the window background is changed
15778           - Implemented ClientToScreen method
15779
15780 2004-10-02 13:08  pbartok
15781
15782         * XplatUIWin32.cs:
15783           - Added Win32EnableWindow method (test for implementing modal
15784           dialogs)
15785           - Added ClientToScreen method and imports
15786
15787 2004-10-02 13:07  pbartok
15788
15789         * XplatUI.cs, XplatUIDriver.cs:
15790           - Added ClientToScreen coordinate translation method
15791
15792 2004-10-02 13:06  pbartok
15793
15794         * KeyPressEventArgs.cs:
15795           - Fixed access level for constructor
15796
15797 2004-10-02 13:06  pbartok
15798
15799         * NativeWindow.cs:
15800           - Changed access level for the window_collection hash table
15801
15802 2004-10-02 13:05  pbartok
15803
15804         * Form.cs:
15805           - Added KeyPreview property
15806           - Added Menu property (still incomplete, pending Jordi's menu work)
15807           - Implemented ProcessCmdKey
15808           - Implemented ProcessDialogKey
15809           - Implemented ProcessKeyPreview
15810
15811 2004-10-02 13:02  pbartok
15812
15813         * Control.cs:
15814           - Added private method to get the Control object from the window
15815           handle
15816           - Implemented ContextMenu property
15817           - Implemented PointToScreen
15818           - Implemented PreProcessMessage
15819           - Implemented IsInputChar
15820           - Implemented IsInputKey
15821           - Implemented ProcessCmdKey
15822           - Completed ProcessKeyEventArgs
15823           - Fixed message loop to call the proper chain of functions on key
15824           events
15825           - Implemented ProcessDialogChar
15826           - Implemented ProcessDialogKey
15827           - Implemented ProcessKeyMessage
15828           - Implemented ProcessKeyPreview
15829           - Added RaiseDragEvent stub (MS internal method)
15830           - Added RaiseKeyEvent stub (MS internal method)
15831           - Added RaiseMouseEvent stub (MS Internal method)
15832           - Added RaisePaintEvent stub (MS Internal method)
15833           - Added ResetMouseEventArgs stub (MS Internal method)
15834           - Implemented RtlTranslateAlignment
15835           - Implemented RtlTranslateContent
15836           - Implemented RtlTranslateHorizontal
15837           - Implemented RtlTranslateLeftRight
15838           - Added generation of KeyPress event
15839
15840 2004-10-02 05:57  ravindra
15841
15842         * ListViewItem.cs: Added attributes.
15843
15844 2004-10-02 05:32  ravindra
15845
15846         * ListView.cs: Added attributes.
15847
15848 2004-10-01 11:53  jackson
15849
15850         * Form.cs: Implement the Close method so work on MessageBox can
15851           continue.
15852
15853 2004-09-30 14:06  pbartok
15854
15855         * XplatUIX11.cs:
15856           - Bug fixes
15857
15858 2004-09-30 11:34  jackson
15859
15860         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
15861
15862 2004-09-30 07:26  ravindra
15863
15864         * ListViewItemConverter.cs: Converter for ListViewItem.
15865
15866 2004-09-30 07:26  ravindra
15867
15868         * SortOrder.cs: Enum for ListView control.
15869
15870 2004-09-30 07:25  ravindra
15871
15872         * ColumnHeader.cs: Supporting class for ListView control.
15873
15874 2004-09-30 07:24  ravindra
15875
15876         * ListView.cs, ListViewItem.cs: Initial implementation.
15877
15878 2004-09-30 07:20  ravindra
15879
15880         * ItemActivation.cs: Enum for ListView Control.
15881
15882 2004-09-29 20:29  pbartok
15883
15884         * XplatUIX11.cs:
15885           - Added lookup of pixel value for background color; tries to get a
15886             color 'close' to the requested color, it avoids having to create a
15887             colormap.  Depending on the display this could mean the used color
15888             is slightly off the desired color. Might have to change it to a more
15889             resource intensive colormap approach, but it will work as a
15890           workaround to avoid red screens.
15891
15892 2004-09-29 14:27  jackson
15893
15894         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
15895
15896 2004-09-28 12:44  pbartok
15897
15898         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
15899           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
15900           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
15901           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
15902           TrackBar.cs, VScrollBar.cs:
15903           - Streamlined Theme interfaces:
15904             * Each DrawXXX method for a control now is passed the object for
15905               the control to be drawn in order to allow accessing any state the
15906               theme might require
15907
15908             * ControlPaint methods for the theme now have a CP prefix to avoid
15909               name clashes with the Draw methods for controls
15910
15911             * Every control now retrieves it's DefaultSize from the current
15912             theme
15913
15914 2004-09-28 12:17  jackson
15915
15916         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
15917           drawing
15918
15919 2004-09-24 14:57  jackson
15920
15921         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
15922           Gives us a nice little performance boost.
15923
15924 2004-09-24 12:02  jackson
15925
15926         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
15927           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
15928           Control and supporting classes. Initial checkin
15929
15930 2004-09-23 13:08  jackson
15931
15932         * Form.cs: Temp build fixage
15933
15934 2004-09-23 01:39  ravindra
15935
15936         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
15937           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
15938           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
15939           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
15940           EventHandlers needed by ListView Control.
15941
15942 2004-09-22 14:12  pbartok
15943
15944         * ScrollableControl.cs:
15945           - Implemented DockPadding property
15946           - Implemented AutoScroll property
15947           - Implemented AutoScrollMargin property
15948           - Implemented AutoScrollMinSize property
15949           - Implemented AutoScrollPosition property
15950           - Implemented DisplayRectangle property (still incomplete)
15951           - Implemented CreateParams property
15952           - Implemented HScroll property
15953           - Implemented VScroll property
15954           - Implemented OnVisibleChanged property
15955
15956 2004-09-22 14:09  pbartok
15957
15958         * Form.cs:
15959           - Added Form.ControllCollection class
15960           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
15961             RemoveOwnedForm (still incomplete, missing on-top and common
15962             minimize/maximize behaviour)
15963           - Added StartPosition property (still incomplete, does not use when
15964             creating the form)
15965           - Added ShowDialog() methods (still incomplete, missing forcing the
15966             dialog modal)
15967
15968 2004-09-22 14:05  pbartok
15969
15970         * Application.cs:
15971           - Added message loop for modal dialogs
15972
15973 2004-09-22 14:02  pbartok
15974
15975         * GroupBox.cs:
15976           - Fixed wrong types for events
15977
15978 2004-09-22 14:00  pbartok
15979
15980         * Shortcut.cs, FormWindowState.cs:
15981           - Fixed wrong values
15982
15983 2004-09-22 12:01  jackson
15984
15985         * Control.cs: Text is never null
15986
15987 2004-09-20 22:14  pbartok
15988
15989         * XplatUIWin32.cs:
15990           - Fixed accessibility level for Idle handler
15991
15992 2004-09-20 18:54  jackson
15993
15994         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
15995           XplatUIX11.cs: New message loop that uses poll so we don't get a
15996           busy loop
15997
15998 2004-09-17 10:43  pbartok
15999
16000         * ScrollBar.cs:
16001           - Fixed behaviour of arrow buttons. Now properly behaves like
16002             Buttons (and like Microsoft's scrollbar arrow buttons)
16003
16004 2004-09-17 10:14  pbartok
16005
16006         * ScrollBar.cs:
16007           - Added missing release of keyboard/mouse capture
16008
16009 2004-09-17 06:18  jordi
16010
16011         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
16012           Theme.cs: Very early menu support
16013
16014 2004-09-16 17:45  pbartok
16015
16016         * XplatUIWin32.cs:
16017           - Fixed sending a window to the front
16018           - Added overload for SetWindowPos to avoid casting
16019
16020 2004-09-16 17:44  pbartok
16021
16022         * Control.cs:
16023           - Added SendToBack and BringToFront methods
16024
16025 2004-09-16 07:00  ravindra
16026
16027         * Copyright: Added Novell URL.
16028
16029 2004-09-16 07:00  ravindra
16030
16031         * ToolBar.cs: Invalidate should be done before redrawing.
16032
16033 2004-09-15 21:19  ravindra
16034
16035         * ColumnHeaderStyle.cs: Enum for ListView Control.
16036
16037 2004-09-15 21:18  ravindra
16038
16039         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
16040           ListView Control.
16041
16042 2004-09-13 18:26  jackson
16043
16044         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
16045           properly
16046
16047 2004-09-13 18:13  jackson
16048
16049         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
16050           a second thread and post messages into the main threads message
16051           queue. This makes timing much more consistent. Both win2K and XP
16052           have a minimum timer value of 15 milliseconds, so we now do this
16053           too.
16054
16055 2004-09-13 15:18  pbartok
16056
16057         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16058           XplatUIX11.cs:
16059           - Added Z-Ordering methods
16060
16061 2004-09-13 10:56  pbartok
16062
16063         * Form.cs:
16064           - Fixed #region names
16065           - Moved properties and methods into their proper #regions
16066
16067 2004-09-13 10:51  pbartok
16068
16069         * Form.cs:
16070           - Added Accept and CancelButton properties
16071           - Added ProcessDialogKey() method
16072
16073 2004-09-13 08:18  pbartok
16074
16075         * IWindowTarget.cs:
16076           - Initial check-in
16077
16078 2004-09-10 21:50  pbartok
16079
16080         * Control.cs:
16081           - Added DoDragDrop() [incomplete]
16082           - Properly implemented 'Visible' handling
16083           - Added SetVisibleCore()
16084           - Implemented FindChildAtPoint()
16085           - Implemented GetContainerControl()
16086           - Implemented Hide()
16087
16088 2004-09-10 19:28  pbartok
16089
16090         * Control.cs:
16091           - Moved methods into their appropriate #regions
16092           - Reordered methods within regions alphabetically
16093
16094 2004-09-10 18:57  pbartok
16095
16096         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16097           - Added method to retrieve text from window
16098
16099 2004-09-10 18:56  pbartok
16100
16101         * Control.cs:
16102           - Moved some internal functions into the internal region
16103           - Implemented FontHeight
16104           - Implemented RenderRightToLeft
16105           - Implemented ResizeRedraw
16106           - Implemented ShowFocusCues
16107           - Implemented ShowKeyboardCues
16108           - Implemented FromChildHandle
16109           - Implemented FromHandle
16110           - Implemented IsMnemonic
16111           - Implemented ReflectMessage
16112           - All public and protected Static Methods are now complete
16113
16114 2004-09-10 16:54  pbartok
16115
16116         * Control.cs:
16117           - Implemented remaining missing public instance properties
16118           - Alphabetized some out of order properties
16119
16120 2004-09-10 05:51  ravindra
16121
16122         * PictureBox.cs: Added a check for null image.
16123
16124 2004-09-10 00:59  jordi
16125
16126         * GroupBox.cs: remove cvs tag
16127
16128 2004-09-09 05:25  ravindra
16129
16130         * ToolBar.cs: Make redraw accessible from ToolBarButton.
16131
16132 2004-09-09 05:23  ravindra
16133
16134         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
16135           parent redraw.
16136
16137 2004-09-09 02:28  pbartok
16138
16139         * ThemeWin32Classic.cs:
16140           - Improve disabled string look
16141
16142 2004-09-09 01:15  jordi
16143
16144         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
16145           args and handler
16146
16147 2004-09-08 23:56  ravindra
16148
16149         * ItemBoundsPortion.cs: It's enum, not a class!
16150
16151 2004-09-08 23:47  ravindra
16152
16153         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
16154           Enums for Form.
16155
16156 2004-09-08 21:13  ravindra
16157
16158         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
16159           ListView control.
16160
16161 2004-09-08 21:03  ravindra
16162
16163         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
16164           avoid crash.
16165
16166 2004-09-08 21:01  ravindra
16167
16168         * ScrollableControl.cs: Removed unreachable code.
16169
16170 2004-09-08 06:45  jordi
16171
16172         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
16173
16174 2004-09-08 01:00  jackson
16175
16176         * XplatUIX11.cs: Only run the timers when updating the message
16177           queue. This effectively gives X messages a higher priority then
16178           timer messages. Timers still need love though
16179
16180 2004-09-07 14:01  jackson
16181
16182         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
16183           this for us and the handle is no longer valid.
16184
16185 2004-09-07 13:59  jackson
16186
16187         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
16188           loop that manages to not crash. TODO: Add poll and cleanup timers
16189
16190 2004-09-07 11:12  jordi
16191
16192         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
16193
16194 2004-09-07 03:40  jordi
16195
16196         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
16197           fixes, methods, multiple links
16198
16199 2004-09-06 06:55  jordi
16200
16201         * Control.cs: Caches ClientRectangle rectangle value
16202
16203 2004-09-05 02:03  jordi
16204
16205         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
16206           certain situations
16207
16208 2004-09-04 11:10  jordi
16209
16210         * Label.cs: Refresh when font changed
16211
16212 2004-09-02 16:24  pbartok
16213
16214         * Control.cs:
16215           - Added sanity check to creation of double buffer bitmap
16216
16217 2004-09-02 16:24  pbartok
16218
16219         * ButtonBase.cs:
16220           - Fixed selection of text color
16221           - Fixed handling of resize event; now properly recreates double
16222             buffering bitmap
16223           - Added missing assignment of TextAlignment
16224           - Added proper default for TextAlignment
16225
16226 2004-09-02 14:26  pbartok
16227
16228         * RadioButton.cs:
16229           - Added missing RadioButton.RadioButtonAccessibleObject class
16230
16231 2004-09-02 14:26  pbartok
16232
16233         * Control.cs:
16234           - Added missing Control.ControlAccessibleObject class
16235           - Started to implement Select()ion mechanisms, still very incomplete
16236
16237 2004-09-02 14:25  pbartok
16238
16239         * AccessibleObject.cs:
16240           - Added missing methods
16241
16242 2004-09-02 14:23  pbartok
16243
16244         * AccessibleNavigation.cs, AccessibleSelection.cs:
16245           - Initial check-in
16246
16247 2004-09-02 10:32  jordi
16248
16249         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
16250           pool for pens, brushes, and hatchbruses
16251
16252 2004-09-01 15:30  jackson
16253
16254         * StatusBar.cs: Fix typo
16255
16256 2004-09-01 14:44  pbartok
16257
16258         * RadioButton.cs:
16259           - Fixed state
16260
16261 2004-09-01 14:39  pbartok
16262
16263         * Button.cs, RadioButton.cs:
16264           - Functional initial check-in
16265
16266 2004-09-01 14:01  pbartok
16267
16268         * CheckBox.cs:
16269           - Added missing default
16270           - Added missing region mark
16271
16272 2004-09-01 09:10  jordi
16273
16274         * Label.cs: fixes method signatures, new methods, events, fixes
16275           autosize
16276
16277 2004-09-01 07:19  jordi
16278
16279         * Control.cs: Init string variables with an empty object
16280
16281 2004-09-01 04:20  jordi
16282
16283         * Control.cs: fires OnFontChanged event
16284
16285 2004-08-31 20:07  pbartok
16286
16287         * ButtonBase.cs:
16288           - Enabled display of strings
16289
16290 2004-08-31 20:05  pbartok
16291
16292         * Form.cs:
16293           - Added (partial) implementation of DialogResult; rest needs to be
16294             implemented when the modal loop code is done
16295
16296 2004-08-31 19:55  pbartok
16297
16298         * CheckBox.cs:
16299           - Fixed to match the removal of the needs_redraw concept
16300
16301 2004-08-31 19:55  pbartok
16302
16303         * ButtonBase.cs:
16304           - Removed the rather odd split between 'needs redraw' and redrawing
16305           - Now handles the events that require regeneration (ambient
16306             properties and size)
16307
16308 2004-08-31 19:41  pbartok
16309
16310         * Control.cs:
16311           - Added firing of BackColorChanged event
16312           - Added TopLevelControl property
16313           - Fixed handling of WM_ERASEBKGRND message
16314
16315 2004-08-31 12:49  pbartok
16316
16317         * ButtonBase.cs:
16318           - Removed debug
16319           - Minor fixes
16320
16321 2004-08-31 12:48  pbartok
16322
16323         * CheckBox.cs:
16324           - Finished (famous last words)
16325
16326 2004-08-31 04:35  jordi
16327
16328         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
16329           scrolling bugs, adds new methods
16330
16331 2004-08-30 14:42  pbartok
16332
16333         * CheckBox.cs:
16334           - Implemented CheckBox drawing code
16335
16336 2004-08-30 14:42  pbartok
16337
16338         * ButtonBase.cs:
16339           - Made Redraw() and CheckRedraw() virtual
16340           - Improved mouse up/down/move logic to properly track buttons
16341
16342 2004-08-30 09:44  pbartok
16343
16344         * CheckBox.cs:
16345           - Updated to fix broken build. Not complete yet.
16346
16347 2004-08-30 09:28  pbartok
16348
16349         * CheckState.cs:
16350           - Initial checkin
16351
16352 2004-08-30 09:17  pbartok
16353
16354         * Appearance.cs:
16355           - Initial check-in
16356
16357 2004-08-27 16:12  ravindra
16358
16359         * ToolBarButton.cs: Added TypeConverter attribute.
16360
16361 2004-08-27 16:07  ravindra
16362
16363         * ImageIndexConverter.cs: Implemented.
16364
16365 2004-08-27 14:17  pbartok
16366
16367         * Control.cs:
16368           - Removed unneeded stack vars
16369           - First attempt to fix sizing issues when layout is suspended
16370
16371 2004-08-25 15:35  jordi
16372
16373         * ScrollBar.cs: more fixes to scrollbar
16374
16375 2004-08-25 14:04  ravindra
16376
16377         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
16378           Added the missing divider code and grip for ToolBar Control.
16379
16380 2004-08-25 13:20  pbartok
16381
16382         * Control.cs:
16383           - Control now properly passes the ambient background color to child
16384             controls
16385
16386 2004-08-25 13:20  jordi
16387
16388         * ScrollBar.cs: small bug fix regarding bar position
16389
16390 2004-08-25 12:33  pbartok
16391
16392         * Timer.cs:
16393           - Now only calls SetTimer or KillTimer if the enabled state has
16394           changed
16395
16396 2004-08-25 12:33  pbartok
16397
16398         * XplatUIWin32.cs:
16399           - Fixed timer handling, now seems to work
16400           - Improved error message for window creation
16401
16402 2004-08-25 12:32  pbartok
16403
16404         * Control.cs:
16405           - Fixed generation of MouseUp message
16406
16407 2004-08-25 12:29  jordi
16408
16409         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
16410           and fixes for progressbar
16411
16412 2004-08-24 18:43  ravindra
16413
16414         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
16415           in ToolBar control.
16416
16417 2004-08-24 17:15  pbartok
16418
16419         * Panel.cs:
16420           - Added #region
16421           - Added missing events
16422           - Alphabetized
16423
16424 2004-08-24 17:14  pbartok
16425
16426         * StatusBar.cs, PictureBox.cs:
16427           - Now uses Control's CreateParams
16428
16429 2004-08-24 16:36  pbartok
16430
16431         * XplatUIX11.cs:
16432           - Fixed background color handling
16433           - Fixed sending of enter/leave events on a grab
16434
16435 2004-08-24 16:35  pbartok
16436
16437         * X11Structs.cs:
16438           - Refined definitions for CrossingEvent
16439
16440 2004-08-24 12:37  jordi
16441
16442         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
16443           formmating, methods signature, and adds missing events
16444
16445 2004-08-24 12:24  jordi
16446
16447         * Control.cs: fire OnEnabledChanged event
16448
16449 2004-08-24 11:17  pbartok
16450
16451         * XplatUIWin32.cs:
16452           - Implemented SetTimer() and KillTimer()
16453
16454 2004-08-24 11:16  pbartok
16455
16456         * XplatUIX11.cs:
16457           - Now uses Remove instead of Add to kill the timer
16458
16459 2004-08-24 10:16  jackson
16460
16461         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
16462           picture boxes in the theme now. Draw picture box borders and obey
16463           sizing modes
16464
16465 2004-08-24 05:49  jackson
16466
16467         * Timer.cs: Remove top secret debugging code
16468
16469 2004-08-24 05:34  jackson
16470
16471         * PictureBox.cs: Temp hack to make picture boxes draw their full
16472           image
16473
16474 2004-08-24 05:29  jackson
16475
16476         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16477           XplatUIX11.cs: Move timers to the driver level. On X they are
16478           queued by the driver and checked on idle.
16479
16480 2004-08-24 01:07  jackson
16481
16482         * XplatUIX11.cs: Use a queue for async messages instead of passing
16483           them as ClientMessages since that was totally broken. Also simply
16484           check for events and return an idle message if none are found. This
16485           gives us an idle handler, and prevents deadlocking when no messages
16486           are in the queue.
16487
16488 2004-08-23 18:19  ravindra
16489
16490         * XplatUIWin32.cs: Removed the unwanted destructor.
16491
16492 2004-08-23 17:27  pbartok
16493
16494         * ButtonBase.cs:
16495           - Finishing touches. Works now, just needs some optimizations.
16496
16497 2004-08-23 16:53  jordi
16498
16499         * ScrollBar.cs: small fix
16500
16501 2004-08-23 16:45  pbartok
16502
16503         * Application.cs:
16504           - Removed debug output
16505           - Simplifications
16506
16507 2004-08-23 16:43  jordi
16508
16509         * ScrollBar.cs: [no log message]
16510
16511 2004-08-23 16:10  pbartok
16512
16513         * Form.cs:
16514           - Fixed handling of WM_CLOSE message
16515           - Removed debug output
16516
16517 2004-08-23 16:09  pbartok
16518
16519         * Application.cs:
16520           - Added handling of Idle event
16521           - Added handling of form closing
16522           - Fixed reporting of MessageLoop property
16523           - Removed some unneeded code, should provide a bit of a speedup
16524
16525 2004-08-23 15:22  pbartok
16526
16527         * Control.cs:
16528           - Added InitLayout() method
16529           - Added code to properly perform layout when Anchor or Dock property
16530             is changed
16531           - Changed 'interpretation' of ResumeLayout. MS seems to have a
16532             LAMESPEC, tried to do it in a way that makes sense
16533
16534 2004-08-23 14:10  jordi
16535
16536         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
16537           properties and methods
16538
16539 2004-08-23 13:55  pbartok
16540
16541         * Control.cs:
16542           - Properly fixed Jordi's last fix
16543           - Now uses Cursor's Position property instead of calling XplatUI
16544           directly
16545
16546 2004-08-23 13:44  jordi
16547
16548         * PaintEventHandler.cs: Adding missing attribute
16549
16550 2004-08-23 13:39  pbartok
16551
16552         * Cursor.cs:
16553           - Implemented Position property
16554
16555 2004-08-23 13:39  pbartok
16556
16557         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16558           - Added method to move mouse cursor
16559
16560 2004-08-23 13:39  pbartok
16561
16562         * XplatUIX11.cs:
16563           - Fixed setting of background color
16564           - Added method to move mouse cursor
16565
16566 2004-08-23 13:16  jordi
16567
16568         * Control.cs: avoids null exception
16569
16570 2004-08-22 17:46  jackson
16571
16572         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
16573           PictureBox
16574
16575 2004-08-22 17:40  jackson
16576
16577         * XplatUIX11.cs: Add some missing locks
16578
16579 2004-08-22 15:10  pbartok
16580
16581         * Control.cs, Form.cs:
16582           - Removed OverlappedWindow style from Control, instead it's default
16583             now is child
16584           - Made form windows OverlappedWindow by default
16585
16586 2004-08-22 13:34  jackson
16587
16588         * ScrollBar.cs: Update the position through the Value property so
16589           the OnValueChanged event is raised.
16590
16591 2004-08-22 12:04  pbartok
16592
16593         * SWF.csproj:
16594           - Added Cursor.cs and UserControl.cs
16595
16596 2004-08-22 12:03  pbartok
16597
16598         * Cursor.cs:
16599           - Started implementation, not usable yet
16600
16601 2004-08-22 12:00  pbartok
16602
16603         * UserControl.cs:
16604           - Implemented UserControl (complete)
16605
16606 2004-08-21 19:20  ravindra
16607
16608         * ToolBar.cs: Correcting the formatting mess of VS.NET.
16609
16610 2004-08-21 18:49  ravindra
16611
16612         * ToolBar.cs: Probably this completes the missing attributes in
16613           toolbar control.
16614
16615 2004-08-21 18:03  ravindra
16616
16617         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
16618           Fixed toolbar control signatures.
16619
16620 2004-08-21 16:32  pbartok
16621
16622         * LinkLabel.cs:
16623           - Signature Fixes
16624
16625 2004-08-21 16:30  pbartok
16626
16627         * Label.cs:
16628           - Signature fixes
16629
16630 2004-08-21 16:19  pbartok
16631
16632         * Control.cs, Label.cs:
16633           - Signature fixes
16634
16635 2004-08-21 15:57  pbartok
16636
16637         * ButtonBase.cs:
16638           - Added loads of debug output for development
16639           - Fixed typo in method name
16640
16641 2004-08-21 15:52  pbartok
16642
16643         * ToolBarButtonClickEventArgs.cs:
16644           - Added missing base class
16645
16646 2004-08-21 14:53  pbartok
16647
16648         * Control.cs:
16649           - Updated to match new GrabWindow signature
16650
16651 2004-08-21 14:51  pbartok
16652
16653         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16654           - Added method to get default display size
16655
16656 2004-08-21 14:23  pbartok
16657
16658         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16659           - Added method to query current grab state
16660           - Added argument to allow confining a grab to a window
16661
16662 2004-08-21 14:22  pbartok
16663
16664         * Keys.cs:
16665           - Added [Flags] attribute so that modifiers can be used in bitwise
16666           ops
16667
16668 2004-08-21 14:21  pbartok
16669
16670         * TrackBar.cs, ScrollBar.cs:
16671           - Replaced direct XplatUI calls with their Control counterpart
16672
16673 2004-08-21 13:32  pbartok
16674
16675         * Control.cs:
16676           - Implemented Created property
16677
16678 2004-08-21 13:28  pbartok
16679
16680         * Control.cs:
16681           - Implemented ContainsFocus
16682
16683 2004-08-21 13:26  pbartok
16684
16685         * Control.cs:
16686           - Implemented CausesValidation
16687
16688 2004-08-21 13:21  pbartok
16689
16690         * Control.cs:
16691           - Implemented CanFocus
16692           - Implemented CanSelect
16693           - Implemented Capture
16694
16695 2004-08-21 12:35  pbartok
16696
16697         * XplatUIWin32.cs:
16698           - Fixed bug with Async message handling
16699           - Implemented getting the ModifierKeys
16700
16701 2004-08-21 12:32  jackson
16702
16703         * AsyncMethodResult.cs: Make sure we have the mutex before we
16704           release it. Fixes BeginInvoke on windows
16705
16706 2004-08-21 11:31  pbartok
16707
16708         * XplatUIWin32.cs, XplatUIX11.cs:
16709           - Drivers now return proper mouse state
16710
16711 2004-08-21 10:54  jackson
16712
16713         * Control.cs: Implement EndInvoke
16714
16715 2004-08-21 10:48  jackson
16716
16717         * Timer.cs: Remove unneeded finalizer
16718
16719 2004-08-20 19:52  ravindra
16720
16721         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
16722           in mouse event handling in the ToolBar control.
16723
16724 2004-08-20 19:50  ravindra
16725
16726         * ImageList.cs: Changed draw method to use the arguments passed in
16727           to draw the image.
16728
16729 2004-08-20 18:58  pbartok
16730
16731         * XplatUIStructs.cs:
16732           - Added private message for async communication
16733
16734 2004-08-20 17:38  ravindra
16735
16736         * Control.cs: Made RightToLeft property virtual and removed a
16737           Console.WriteLine.
16738
16739 2004-08-20 14:39  jordi
16740
16741         * ThemeGtk.cs: use style_attach
16742
16743 2004-08-20 14:39  pbartok
16744
16745         * XplatUIWin32.cs:
16746           - Added jackson's Async code from X11 to Win32
16747
16748 2004-08-20 14:09  pbartok
16749
16750         * SWF.csproj:
16751           - Added all new files
16752
16753 2004-08-20 14:09  pbartok
16754
16755         * Control.cs:
16756           - Added call to set window background color
16757
16758 2004-08-20 14:03  pbartok
16759
16760         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
16761           - Added method for setting the window background
16762
16763 2004-08-20 14:02  pbartok
16764
16765         * XplatUIWin32.cs:
16766           - Added method for setting the background color
16767           - Added handling for erasing the window background
16768
16769 2004-08-20 13:45  jordi
16770
16771         * TrackBar.cs: fixes timer, new properties and methods
16772
16773 2004-08-20 13:34  jackson
16774
16775         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
16776           correct thread
16777
16778 2004-08-20 13:22  jackson
16779
16780         * Timer.cs: Timer Tick events are now handed through Controls Async
16781           mechanism so the callbacks are executed in the same thread as X
16782
16783 2004-08-20 13:19  jackson
16784
16785         * XplatUIDriver.cs: Expose functionality to send async messages
16786           through the driver
16787
16788 2004-08-20 13:18  jackson
16789
16790         * Control.cs: Implement Begininvoke
16791
16792 2004-08-20 13:14  jackson
16793
16794         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
16795           messages through the driver
16796
16797 2004-08-20 13:12  jackson
16798
16799         * XplatUIX11.cs: Lock before all X operations. Also added Async
16800           method functionality through XSendEvent
16801
16802 2004-08-20 13:11  jackson
16803
16804         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
16805           This will screw up on 64 bit systems)
16806
16807 2004-08-20 13:10  jackson
16808
16809         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
16810           Async messages through X/Win32
16811
16812 2004-08-19 19:39  pbartok
16813
16814         * XplatUIX11.cs:
16815           - Updated code to match new HandleData.DeviceContext type
16816
16817 2004-08-19 19:38  pbartok
16818
16819         * HandleData.cs:
16820           - Made DeviceContext a generic object to allow usage from various
16821           drivers
16822           - Added support for queueing Windows messages
16823
16824 2004-08-19 19:37  pbartok
16825
16826         * XplatUIWin32.cs:
16827           - Added generation of MouseEnter, MouseLeave and MouseHover events
16828           - Added cleanup on EndPaint
16829
16830 2004-08-19 19:17  pbartok
16831
16832         * Control.cs:
16833           - Added handling of WM_MOUSEHOVER
16834           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
16835           code
16836
16837 2004-08-19 18:55  jordi
16838
16839         * ThemeGtk.cs: fixes button order
16840
16841 2004-08-19 18:12  jordi
16842
16843         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
16844
16845 2004-08-19 17:09  pbartok
16846
16847         * Control.cs:
16848           - Added Right property
16849           - Added RightToLeft property
16850
16851 2004-08-19 16:27  jordi
16852
16853         * ThemeGtk.cs: experimental GTK theme support
16854
16855 2004-08-19 16:26  jordi
16856
16857         * ITheme.cs, Theme.cs: move themes from an interface to a class
16858
16859 2004-08-19 16:25  jordi
16860
16861         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
16862           theme enhancaments
16863
16864 2004-08-19 16:04  pbartok
16865
16866         * XplatUIX11.cs:
16867           - Added colormap basics
16868           - Added a way to re-initialize with a different display handle
16869           - Fixed setting of the window background color
16870           - Added various X11 imports related to colors and colormaps
16871
16872 2004-08-19 15:51  pbartok
16873
16874         * X11Structs.cs:
16875           - Removed packing hints (Paolo suggested this a while back)
16876           - fixed colormap type
16877           - Added default Atom types
16878           - Added Screen and color structs and enums
16879
16880 2004-08-19 15:39  pbartok
16881
16882         * ImageList.cs:
16883           - Added missing Draw() method
16884           - Added missing RecreateHandle event
16885
16886 2004-08-19 15:30  pbartok
16887
16888         * Form.cs:
16889           - Added handling of WM_CLOSE
16890
16891 2004-08-18 13:16  jordi
16892
16893         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
16894           a table
16895
16896 2004-08-18 09:56  jordi
16897
16898         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
16899
16900 2004-08-17 15:31  ravindra
16901
16902         * SWF.csproj: Updated project.
16903
16904 2004-08-17 15:25  pbartok
16905
16906         * Control.cs:
16907           - Drawing improvement; don't call UpdateBounds if we are not visible
16908             (or have been minimized)
16909
16910 2004-08-17 15:24  pbartok
16911
16912         * XplatUIWin32.cs:
16913           - Finished IsVisible
16914           - Added Win32GetWindowPlacement
16915
16916 2004-08-17 15:08  jackson
16917
16918         * Panel.cs: Initial checkin of the Panel
16919
16920 2004-08-17 14:25  pbartok
16921
16922         * Control.cs:
16923           - Fixed broken handling of default window sizes
16924
16925 2004-08-17 13:29  jackson
16926
16927         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
16928           has a large startup time.
16929
16930 2004-08-17 10:25  jackson
16931
16932         * HandleData.cs: union areas properly
16933
16934 2004-08-17 10:12  jackson
16935
16936         * HandleData.cs: union areas properly
16937
16938 2004-08-16 20:00  ravindra
16939
16940         * ToolBar.cs, ToolBarButton.cs: Added attributes.
16941
16942 2004-08-16 18:48  ravindra
16943
16944         * ToolBar.cs: Added attributes.
16945
16946 2004-08-16 17:17  ravindra
16947
16948         * SWF.csproj: Updated project.
16949
16950 2004-08-16 17:16  jackson
16951
16952         * XplatUIX11.cs: Check for more expose events before sending a
16953           WM_PAINT so they can all be grouped together. This makes dragging a
16954           window across another window redraw in a sane way.
16955
16956 2004-08-16 15:47  pbartok
16957
16958         * Control.cs:
16959           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
16960             support OnMouseEnter/Leave()
16961           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
16962             exposure handling
16963
16964 2004-08-16 15:46  pbartok
16965
16966         * XplatUIStructs.cs, XplatUIX11.cs:
16967           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
16968           OnMouseEnter/Leave()
16969
16970 2004-08-16 15:34  jackson
16971
16972         * XplatUIX11.cs: Group multiple expose events in HandleData, make
16973           sure messages get the message field set to WM_NULL if they are not
16974           handled.
16975
16976 2004-08-16 15:24  jackson
16977
16978         * HandleData.cs: HandleData is used for storing message information
16979           for window handles
16980
16981 2004-08-15 17:23  ravindra
16982
16983         * ColorDepth.cs: Added attribute.
16984
16985 2004-08-15 17:23  ravindra
16986
16987         * SWF.csproj: Updated project for ToolBar Control.
16988
16989 2004-08-15 17:20  ravindra
16990
16991         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
16992           control and also dos2unix format.
16993
16994 2004-08-15 17:13  ravindra
16995
16996         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
16997           ToolBarButtonClickEventArgs.cs,
16998           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
16999           ToolBarTextAlign.cs: First Implementation of ToolBar control.
17000
17001 2004-08-15 15:31  pbartok
17002
17003         * ButtonBase.cs:
17004           - First (mostly) working version
17005
17006 2004-08-13 16:15  pbartok
17007
17008         * Control.cs:
17009           - Fixed Anchor default
17010
17011 2004-08-13 15:43  pbartok
17012
17013         * Control.cs:
17014           - Changed GetCursorPos signature
17015
17016 2004-08-13 15:42  pbartok
17017
17018         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17019           - Changed signature for GetCursorPos
17020
17021 2004-08-13 15:25  pbartok
17022
17023         * XplatUIX11.cs:
17024           - Cleanup
17025           - Fixed resizing/exposure handling
17026
17027 2004-08-13 15:22  jordi
17028
17029         * ThemeWin32Classic.cs: removes redundant code and fixes issues
17030           with tickposition
17031
17032 2004-08-13 14:55  jordi
17033
17034         * TrackBar.cs: change from wndproc to events
17035
17036 2004-08-13 13:00  jordi
17037
17038         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17039           XplatUIX11.cs: implements PointToClient (ScreenToClient)
17040
17041 2004-08-13 12:53  pbartok
17042
17043         * XplatUIWin32.cs:
17044           - Changed GetWindowPos to also provide client area size
17045           - Fixed broken prototypes for several win32 functions
17046
17047 2004-08-13 12:53  pbartok
17048
17049         * XplatUI.cs, XplatUIDriver.cs:
17050           - Changed GetWindowPos to also provide client area size
17051
17052 2004-08-13 12:52  pbartok
17053
17054         * XplatUIX11.cs:
17055           - Added generation of WM_POSCHANGED
17056           - Changed GetWindowPos to also provide client area size
17057
17058 2004-08-13 12:52  pbartok
17059
17060         * Control.cs:
17061           - Added Dispose() and destructor
17062           - Fixed resizing and bounds calculation
17063           - Fixed Layout
17064           - Added memory savings for invisible windows
17065
17066 2004-08-13 12:46  jordi
17067
17068         * TrackBar.cs: adds timer and grap window
17069
17070 2004-08-13 10:25  jackson
17071
17072         * Timer.cs: SWF Timer
17073
17074 2004-08-12 16:59  pbartok
17075
17076         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17077           - Implemented method to get current mouse position
17078
17079 2004-08-12 14:29  jordi
17080
17081         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
17082           enhancement, fix mouse problems, highli thumb, etc
17083
17084 2004-08-12 13:31  pbartok
17085
17086         * Control.cs:
17087           - Fixed Anchoring bugs
17088
17089 2004-08-12 13:01  jackson
17090
17091         * StatusBar.cs: Don't forget things
17092
17093 2004-08-12 12:54  jackson
17094
17095         * ThemeWin32Classic.cs: Handle owner draw status bars
17096
17097 2004-08-12 12:54  jackson
17098
17099         * StatusBar.cs: Implement missing properties, events, and methods.
17100           Handle mouse clicking
17101
17102 2004-08-12 10:19  jackson
17103
17104         * StatusBarPanelClickEventArgs.cs,
17105           StatusBarPanelClickEventHandler.cs: Classes for handling status
17106           bar panel click events
17107
17108 2004-08-12 10:10  jackson
17109
17110         * Control.cs: Add missing properties
17111
17112 2004-08-12 09:46  pbartok
17113
17114         * BindingsManagerBase.cs:
17115           - Name changed to BindingManagerBase.cs
17116
17117 2004-08-12 09:25  jordi
17118
17119         * ScrollableControl.cs: calls ctrlbase instead of exeception
17120
17121 2004-08-11 16:28  pbartok
17122
17123         * InputLanguageChangingEventArgs.cs:
17124           - Never check in before compiling. Fixes the last check-in
17125
17126 2004-08-11 16:26  pbartok
17127
17128         * InputLanguageChangingEventArgs.cs:
17129           - More signature fixes
17130
17131 2004-08-11 16:20  pbartok
17132
17133         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
17134           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
17135           ImageListStreamer.cs, InputLanguage.cs,
17136           InputLanguageChangedEventArgs.cs,
17137           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
17138           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
17139           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
17140           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17141           - Signature fixes
17142
17143 2004-08-11 16:16  pbartok
17144
17145         * Application.cs:
17146           - Fixed Signature
17147           - Added .Net 1.1 method
17148
17149 2004-08-11 15:25  pbartok
17150
17151         * SWF.csproj:
17152           - Fixed BindingManagerBase.cs filename
17153
17154 2004-08-11 15:22  pbartok
17155
17156         * BindingManagerBase.cs:
17157           - Was checked in with wrong filename
17158
17159 2004-08-11 14:50  pbartok
17160
17161         * SWF.csproj:
17162           - Updated
17163
17164 2004-08-11 13:41  jordi
17165
17166         * XplatUIWin32.cs: Fixes ClientRect
17167
17168 2004-08-11 13:19  pbartok
17169
17170         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17171           XplatUIX11.cs:
17172           - We had SetWindowPos and MoveWindow to set window positions and
17173             size, removed MoveWindow. We have GetWindowPos, so it made sense to
17174             keep SetWindowPos as matching counterpart
17175           - Added some X11 sanity checking
17176
17177 2004-08-11 12:59  pbartok
17178
17179         * Control.cs:
17180           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
17181             (It seems that SetBounds is just a front for SetBoundsCore and
17182              SetBoundsCore updates the underlying window system and
17183              UpdateBounds is responsible for updating the variables associated
17184              with the Control and sending the events)
17185           - Major cleanup of Size handling; we now have two sizes, client_size
17186             and bounds. Bounds defines the window with decorations, client_size
17187             without them.
17188
17189 2004-08-11 12:55  pbartok
17190
17191         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17192           - Added method to calculate difference between decorated window and
17193             raw client area
17194
17195 2004-08-11 12:54  pbartok
17196
17197         * Label.cs:
17198           - Forcing redraw on resize
17199
17200 2004-08-11 11:43  pbartok
17201
17202         * ImageList.cs:
17203           - Removed disposing of the actual images when the list is disposed
17204
17205 2004-08-11 09:13  pbartok
17206
17207         * Control.cs:
17208           - Now properly reparents windows
17209
17210 2004-08-11 08:37  pbartok
17211
17212         * Control.cs:
17213           - Duh!
17214
17215 2004-08-11 07:47  pbartok
17216
17217         * Control.cs:
17218           - Rewrote the collection stuff. Might not be as fast now, not
17219             keeping the number of children around and accessible directly, but
17220             it's more straightforward
17221
17222 2004-08-11 07:44  pbartok
17223
17224         * AccessibleObject.cs:
17225           - Fixed to match ControlCollection rewrite
17226
17227 2004-08-11 07:43  pbartok
17228
17229         * ImageList.cs:
17230           - Added missing creation of the collection list
17231
17232 2004-08-10 20:08  jackson
17233
17234         * StatusBar.cs: Get the paint message from WndProc
17235
17236 2004-08-10 19:31  jackson
17237
17238         * ThemeWin32Classic.cs: Create Brushes as little as possible
17239
17240 2004-08-10 19:20  jackson
17241
17242         * UICues.cs: Add Flags attribute
17243
17244 2004-08-10 19:19  jackson
17245
17246         * StatusBarPanel.cs: Signature cleanup
17247
17248 2004-08-10 19:10  jackson
17249
17250         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
17251           Initial implementation of status bar item drawing
17252
17253 2004-08-10 17:27  jordi
17254
17255         * TrackBar.cs: add missing methods, properties, and restructure to
17256           hide extra ones
17257
17258 2004-08-10 16:24  jackson
17259
17260         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
17261           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
17262           attribute
17263
17264 2004-08-10 13:21  jordi
17265
17266         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
17267           enhancements and standarize on win colors defaults
17268
17269 2004-08-10 12:52  jackson
17270
17271         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
17272           ThemeWin32Classic.cs: Implement DrawItem functionality
17273
17274 2004-08-10 12:47  jordi
17275
17276         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
17277
17278 2004-08-10 12:32  jordi
17279
17280         * Control.cs: throw ontextchange event
17281
17282 2004-08-10 11:43  pbartok
17283
17284         * Control.cs:
17285           - Added more to the still unfinished Dock/Anchor layout code
17286
17287 2004-08-10 11:39  pbartok
17288
17289         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17290           - Added GetWindowPos method
17291
17292 2004-08-10 11:36  pbartok
17293
17294         * XplatUIWin32.cs:
17295           - Implemented several methods
17296
17297 2004-08-10 09:47  jackson
17298
17299         * TrackBar.cs: Allow control to handle buffering
17300
17301 2004-08-10 09:41  jackson
17302
17303         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
17304
17305 2004-08-10 09:24  jackson
17306
17307         * Label.cs, LinkLabel.cs: Let Control handle buffering.
17308
17309 2004-08-10 09:09  jackson
17310
17311         * StatusBar.cs: Let Control handle all the buffering.
17312
17313 2004-08-10 09:08  jackson
17314
17315         * Control.cs: Control will now handle the buffering code, so each
17316           control does not have to implement this.
17317
17318 2004-08-10 08:34  jackson
17319
17320         * XplatUIDriver.cs: Use default colors from the theme
17321
17322 2004-08-09 17:12  pbartok
17323
17324         * ImageList.cs:
17325           - Fixed several bugs Ravindra pointed out
17326
17327 2004-08-09 16:11  pbartok
17328
17329         * Control.cs:
17330           - Added incomplete dock layout code
17331           - Added support for mouse wheel
17332
17333 2004-08-09 16:09  pbartok
17334
17335         * XplatUIX11.cs:
17336           - Added handling for middle and right mousebutton
17337           - Added handling for mouse wheel
17338           - Added handling for key state and mouse state and position
17339           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
17340           messages
17341
17342 2004-08-09 15:40  jackson
17343
17344         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
17345           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
17346           checkin
17347
17348 2004-08-09 15:37  jackson
17349
17350         * StatusBar.cs: Initial implementation of StatusBar
17351
17352 2004-08-09 15:36  jackson
17353
17354         * ITheme.cs: Add support for drawing status bar and getting status
17355           bar item sizes
17356
17357 2004-08-09 15:35  pbartok
17358
17359         * MouseButtons.cs:
17360           - Fixed values
17361
17362 2004-08-09 15:34  jackson
17363
17364         * ThemeWin32Classic.cs: Add support for drawing status bar and get
17365           status bar item sizes
17366
17367 2004-08-09 15:21  jackson
17368
17369         * ThemeWin32Classic.cs: Use known colors for default control
17370           colours
17371
17372 2004-08-09 15:12  jackson
17373
17374         * ThemeWin32Classic.cs: Make the default font static, it is static
17375           in control so this doesn't change functionality and creating fonts
17376           is sloooooow.
17377
17378 2004-08-09 14:56  pbartok
17379
17380         * X11Structs.cs:
17381           - Added GrabMode enum
17382
17383 2004-08-09 14:55  pbartok
17384
17385         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17386           - Removed Run method, was only required for initial development
17387
17388 2004-08-09 14:51  pbartok
17389
17390         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17391           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
17392           capture
17393
17394 2004-08-09 13:48  pbartok
17395
17396         * XplatUIX11.cs:
17397           - Fixed default sizing for child windows
17398
17399 2004-08-09 12:56  pbartok
17400
17401         * XplatUIX11.cs:
17402           - Added generation of WM_DESTROY message
17403           - Added handling of window manager induced shutdown
17404
17405 2004-08-09 11:31  jackson
17406
17407         * ThemeWin32Classic.cs: New names for control properties
17408
17409 2004-08-09 11:25  jackson
17410
17411         * Control.cs: Use new color names
17412
17413 2004-08-09 11:02  jackson
17414
17415         * XplatUI.cs: Get default window properties from the theme
17416
17417 2004-08-09 11:01  jackson
17418
17419         * ITheme.cs: The theme engine now controls default window
17420           properties
17421
17422 2004-08-09 11:00  jackson
17423
17424         * ThemeWin32Classic.cs: Add default window color properties
17425
17426 2004-08-09 10:17  jackson
17427
17428         * ThemeWin32Classic.cs: Use correct default back color
17429
17430 2004-08-09 10:05  jackson
17431
17432         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
17433           the theme now.
17434
17435 2004-08-09 09:56  jackson
17436
17437         * XplatUI.cs: Remove defaults, these are handled by the theme now.
17438
17439 2004-08-09 09:54  jackson
17440
17441         * Control.cs: Get default properties from the theme.
17442
17443 2004-08-09 09:53  jackson
17444
17445         * ITheme.cs: Themes now handle default control properties
17446
17447 2004-08-09 09:53  jackson
17448
17449         * ThemeWin32Classic.cs: Themes now handle default control
17450           properties so coloring will be consistent
17451
17452 2004-08-08 16:54  jordi
17453
17454         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
17455
17456 2004-08-08 15:08  jordi
17457
17458         * XplatUIX11.cs: fixes keyboard crash
17459
17460 2004-08-08 13:47  jordi
17461
17462         * Label.cs: add cvs header info
17463
17464 2004-08-08 12:09  jackson
17465
17466         * ThemeWin32Classic.cs: Add pen_buttonface
17467
17468 2004-08-08 11:52  jordi
17469
17470         * Label.cs, LinkLabel.cs: [no log message]
17471
17472 2004-08-08 11:34  jordi
17473
17474         * ThemeWin32Classic.cs: Use Windows Standard Colours
17475
17476 2004-08-07 17:32  jordi
17477
17478         * TrackBar.cs: throw exceptions of invalid enums values
17479
17480 2004-08-07 17:31  jordi
17481
17482         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
17483           draw method name
17484
17485 2004-08-07 16:56  jackson
17486
17487         * HorizontalAlignment.cs: Initial checkin
17488
17489 2004-08-07 13:16  jordi
17490
17491         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
17492           methods
17493
17494 2004-08-07 13:05  jordi
17495
17496         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
17497           GetSysColor defines
17498
17499 2004-08-06 18:01  pbartok
17500
17501         * ThemeWin32Classic.cs:
17502           - Fixed some rounding issues with float/int
17503
17504 2004-08-06 18:00  jackson
17505
17506         * DockStyle.cs, AnchorStyles.cs:
17507
17508                   Add flags and serializable attributes.
17509
17510 2004-08-06 17:46  pbartok
17511
17512         * XplatUIX11.cs:
17513           - Implemented GetParent
17514
17515 2004-08-06 17:18  pbartok
17516
17517         * TrackBar.cs:
17518           - Fixed some rounding issues with float/int
17519
17520 2004-08-06 17:17  pbartok
17521
17522         * X11Structs.cs, XplatUIX11.cs:
17523           - Fixed Refresh and Invalidate
17524
17525 2004-08-06 15:30  pbartok
17526
17527         * Control.cs, X11Structs.cs, XplatUIX11.cs:
17528           - Fixed recursive loop when resizing
17529           - Improved/fixed redrawing on expose messages
17530
17531 2004-08-06 09:53  jordi
17532
17533         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
17534           keyboard navigation
17535
17536 2004-08-06 08:02  pbartok
17537
17538         * X11Structs.cs, XplatUIX11.cs:
17539           - Fixed reparenting
17540           - Fixed window border creation
17541
17542 2004-08-05 15:38  pbartok
17543
17544         * XplatUIX11.cs:
17545           - Attempted fix for reparenting problems
17546
17547 2004-08-04 15:14  pbartok
17548
17549         * Control.cs:
17550           - Fixed Invalidation bug (calculated wrong client area)
17551           - Added ClientSize setter
17552
17553 2004-08-04 15:13  pbartok
17554
17555         * Form.cs:
17556           - Added AutoScale properties
17557
17558 2004-08-04 15:13  pbartok
17559
17560         * SWF.csproj:
17561           - Added latest files
17562
17563 2004-08-04 14:11  pbartok
17564
17565         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17566           XplatUIX11.cs:
17567           - Added Invalidate handling
17568
17569 2004-08-03 17:09  jordi
17570
17571         * XplatUIDriver.cs: fixes spelling mistake
17572
17573 2004-07-27 09:53  jordi
17574
17575         * TrackBar.cs: fixes trackbar events, def classname, methods
17576           signature
17577
17578 2004-07-27 09:29  jordi
17579
17580         * ScrollBar.cs: fixes scrollbar events
17581
17582 2004-07-27 04:38  jordi
17583
17584         * Control.cs: changes to be able to run winforms samples
17585
17586 2004-07-26 11:42  jordi
17587
17588         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
17589           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
17590
17591 2004-07-26 05:41  jordi
17592
17593         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
17594           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
17595           implementation
17596
17597 2004-07-22 09:22  jordi
17598
17599         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
17600           check link overlapping, implement events, and fixes
17601
17602 2004-07-21 10:28  jordi
17603
17604         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
17605
17606 2004-07-21 10:19  jordi
17607
17608         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
17609           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
17610           LinkLabelLinkClickedEventArgs.cs,
17611           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
17612           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
17613           implementation
17614
17615 2004-07-19 13:09  jordi
17616
17617         * Control.cs, Label.cs: label control re-written: added missing
17618           functionlity, events, and properties
17619
17620 2004-07-19 10:49  jordi
17621
17622         * Control.cs: fixes SetBounds logic
17623
17624 2004-07-19 01:29  jordi
17625
17626         * Control.cs: Call RefreshWindow only if the window has created
17627
17628 2004-07-15 14:05  pbartok
17629
17630         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
17631           - Implemented ImageList and ImageList.ImageCollection classes
17632           - Added ColorDepth enumeration
17633           - Updated SWF VS.Net project
17634
17635 2004-07-15 11:06  jordi
17636
17637         * XplatUIStructs.cs: added MsgButons enum
17638
17639 2004-07-15 11:03  jordi
17640
17641         * Control.cs: added basic mouse handeling events
17642
17643 2004-07-15 03:38  jordi
17644
17645         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
17646           Vertical TrackBar control implementation
17647
17648 2004-07-13 09:33  jordi
17649
17650         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
17651
17652 2004-07-13 09:31  jordi
17653
17654         * Control.cs, Form.cs: commit: new properties and fixes form size
17655           problems
17656
17657 2004-07-09 14:13  miguel
17658
17659         * ProgressBar.cs: Spelling
17660
17661 2004-07-09 11:25  pbartok
17662
17663         * ProgressBar.cs:
17664           - Removed usage of Rectangle for drawing. Miguel pointed out it's
17665           faster
17666
17667 2004-07-09 11:17  miguel
17668
17669         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17670
17671                 * ProgressBar.cs: Fixed spelling for `block'
17672
17673                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
17674                 style guidelines.
17675
17676                 Avoid using the += on rect.X, that exposed a bug in the compiler.
17677
17678 2004-07-08 23:21  pbartok
17679
17680         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
17681           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
17682           BaseCollection.cs, Binding.cs, BindingContext.cs,
17683           BindingMemberInfo.cs, BindingsCollection.cs,
17684           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
17685           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
17686           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
17687           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
17688           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
17689           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
17690           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
17691           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
17692           FrameStyle.cs, GiveFeedbackEventArgs.cs,
17693           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
17694           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
17695           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
17696           InputLanguageChangedEventArgs.cs,
17697           InputLanguageChangedEventHandler.cs,
17698           InputLanguageChangingEventArgs.cs,
17699           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
17700           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
17701           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
17702           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
17703           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
17704           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
17705           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
17706           QueryAccessibilityHelpEventArgs.cs,
17707           QueryAccessibilityHelpEventHandler.cs,
17708           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
17709           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
17710           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
17711           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
17712           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
17713           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
17714           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
17715           XplatUIX11.cs, lang.cs:
17716           - Initial check-in
17717