2006-10-17 Chris Toshok <toshok@ximian.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-10-17  Chris Toshok  <toshok@ximian.com>
2
3         * Form.cs: remove some debug spew, and collapse some duplicate
4         code at the end of SetClientSizeCore.
5
6         * XplatUIX11.cs: 
7         - add some more debug spew here too wrt Destroy handling.
8         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
9         in Control's handling of WM_DESTROY.
10         - Remove the handling of zombie window DestroyNotifies from the
11         event loop - we don't need it.  Now the only DestroyNotifies we
12         actually handle are ones generated by X.
13         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
14         match gtk's (functioning) handling of this. This keep metacity
15         from leaving droppings in the form of wm borders with no window
16         contents all over the place.
17
18         * Control.cs:
19         - add a bunch of debug spew wrt control recreation.
20         - fix a bug where we weren't tracking Visible properly on
21         recreated hwnds.
22         - fixed the WM_PAINT double buffer handling to support re-entrant
23         calls (yes, i know it's gross, but it's happening to us).
24
25 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
26         * ThemeWin32Classic.cs: changed drawing of selected days
27         to make them look better.
28
29 2006-10-16  Chris Toshok  <toshok@ximian.com>
30
31         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
32         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
33
34         * XplatUIX11.cs: move away from using hwnd.client_dc and
35         hwnd.non_client_dc and on to a stack of dc's (and in window's
36         case, PAINTSTRUCT's), so we can deal with nested Paint calls
37         without puking or not disposing of Graphics objects.
38
39         * XplatUIOSX.cs: same.
40
41         * XplatUIWin32.cs: same.
42
43 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
44
45         * FileDialog.cs: Don't call on_directory_changed inside
46           OnSelectedIndexChanged (it changes the SelectedIndex too).
47           Instead move it to OnSelectionChangeCommitted.
48
49 2006-10-13  Chris Toshok  <toshok@ximian.com>
50
51         * XplatUIX11.cs: more Destroy work.  the current code does the
52         following things, in order:
53
54         1. Enumerates all handles of all controls at or below the one
55         being destroyed, in pre-order.  As it is doing this, it marks the
56         handles as zombie and clears all references to them.
57         
58         2. calls XDestroyWindow on the window passed in.
59
60         3. SendMessage's WM_DESTROY to all he handles in the accumulated
61         list.
62
63 2006-10-13  Chris Toshok  <toshok@ximian.com>
64
65         * XplatUIX11.cs: set hwnd.zombie to true before calling
66         SendMessage (WM_DESTROY).  this keeps us from marking the new
67         window a zombie, and also keeps us from calling sendmessage at
68         all.
69
70 2006-10-13  Jackson Harper  <jackson@ximian.com>
71
72         * TextControl.cs: Do not show the caret and selection at the same
73         time.  Reduces ugliness by 35%.
74
75 2006-10-13  Chris Toshok  <toshok@ximian.com>
76
77         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
78         zombie after we do the recursive call, so we actually do call
79         SendMessage on the children controls.
80         (GetMessage): if we find a pending paint event for a zombie hwnd,
81         remove the hwnd from the paint queue, or else it will always be
82         there (and we'll effectively loop infinitely)
83
84 2006-10-13  Mike Kestner  <mkestner@novell.com>
85
86         * MenuItem.cs : add Selected format under keynav too.
87         Fixes #79528.
88
89 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
90
91         * PropertyGrid.cs: Fixed some NRE's and small difference between our
92         implementation and that of MS.
93
94 2006-10-13  Chris Toshok  <toshok@ximian.com>
95
96         * Control.cs (OnInvalidated) only futz with the invalid_region if
97         the control is double buffered.  this fixes the apparent hang in
98         the ListView unit tests.  Someone needs to make the
99         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
100
101 2006-10-13  Chris Toshok  <toshok@ximian.com>
102
103         * PropertyGridView.cs:
104
105         - do a little refactoring so that only one place calls
106         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
107         else call that.  Also make it Refresh, since there are redraw bugs
108         otherwise (we should take a look at that...)
109
110         - do a little more refactoring work to share the body of code
111         involved with the drop down.  it was duplicated in the code
112         dealing with the listbox handling and in the code dealing with the
113         UITypeEditors.
114
115         - add a Capture to the dropdown form's control once it's
116         displayed, and add a MouseDown handler that checks to make sure
117         the position is inside the control.  If it's not, close the
118         dropdown.  This fixes #78190.
119
120         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
121         if the value is different than the initial value.
122         
123 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
124
125         * Control.cs: see #78650
126         - Fixed GetNextControl for several cases:
127                 - Changed FindFlatForward to return 
128                 correct sibling control when more than one
129                 control has same TabIndex as the currently 
130                 focused one.
131                 - Changed FindFlatBackward to loop children
132                 from last to first and apply same logic as in
133                 FindFlatForward
134                 - Changed FindControlForward to search for
135                 children when control is not a container
136                 but has children, or search for siblings if
137                 control is a container...
138                 - Changed FindControlBackward   to continue
139                 searching for child controls when hitting 
140                 Panel-like parents
141                 
142         - Fixed Focus method to update ActiveControl
143         (FocusTest.FocusSetsActive failure)
144         
145         * TabControl.cs:
146         - Focus rectangle now refreshes when gaining
147         or losing focus
148         - Removed grab for Tab key on IsInputKey that 
149         was keeping tab navigation from working (#78650)
150
151 2006-10-13  Chris Toshok  <toshok@ximian.com>
152
153         * PropertyGridView.cs:
154         - Rewrite SetPropertyValue to loop over SelectedGridItem's
155         SelectedObjects.
156
157         - Deal with GridItem.Value == null a few places.
158
159         * PropertyGrid.cs: 
160         - replace the PopulateGridItemCollection with a pair of methods
161         which compute the intersection of all the properties in the
162         SelectedObjects array.  Fixes #79615.
163
164         - Throw ArgumentException from set_SelectedObjects if there's a
165         null in the array.
166
167         - Add GetTarget method which can be used to traverse up the
168         GridItem.Parent chain.  It depends on the assumption that
169         selected_objects for different GridEntries are always in the same
170         order (a safe assumption).  Use this method and loop over all the
171         selected objects in the entry when calling RemoveValueChanged and
172         AddValueChanged.
173         
174         * GridEntry.cs: Make this handle multiple selected objects.
175         .Value returns null if not all the selected objects share the same
176         value.
177
178 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
179         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
180           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
181           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
182           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
183           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
184         add additional functionality.
185
186 2006-10-12  Mike Kestner  <mkestner@novell.com>
187
188         * ErrorProvider.cs : new ToolTipWindow ctor sig.
189         * HelpProvider.cs : new ToolTipWindow ctor sig.
190         * ToolTip.cs : remove ToolTip param from Window sig since it is
191         not used.
192         * ToolBar.cs : add tooltip support.  Fixes #79565.
193
194 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
195
196         * ComboBox.cs: move the events in set_SelectedIndex to 
197         after the call to HighlightIndex in order to avoid 
198         possible recursion and subsequent problems with the call
199         to HighlightIndex and include a range check in 
200         set_HighlightIndex. Fixes #79588
201         
202 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
203
204         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
205         to ui thread's settings instead of sunday. 
206         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
207
208 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
209
210         * DateTimePicker.cs
211         * MonthCalendar.cs
212         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
213         and implement missing functionality (selecting different parts 
214         of the date and edit them individually with the keyboard).
215         
216 2006-10-11  Chris Toshok  <toshok@ximian.com>
217
218         * Control.cs (OnInvalidated): fix NRE relating to last change.
219
220 2006-10-11  Chris Toshok  <toshok@ximian.com>
221
222         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
223         atoms in _NET_WM_STATE here if the window is maximized.  We need
224         to do this because we're *replacing* the existing _NET_WM_STATE
225         property, so those atoms will be lost otherwise, and any further
226         call to GetWindowState will return Normal for a window which is
227         actually maximized.  Fixes #79338.
228
229 2006-10-11  Jackson Harper  <jackson@ximian.com>
230
231         * TextControl.cs: Special case for setting selection end to
232         selection start, we basically kill the anchor.
233         - some todo comments.
234
235 2006-10-11  Chris Toshok  <toshok@ximian.com>
236
237         * Control.cs: switch to using an "invalid_region" to track which
238         parts of the image buffer need updating.  This is more code than
239         the simple fix from r66532.  That version just attempted to always
240         fill the entire buffer on redraw, which turns out to be
241         inefficient when invalidating small rectangles.  This version
242         simply adds the invalid rectangle to the invalid region.  When we
243         get any WM_PAINT message we see if it can be filled using the
244         image buffer, and if it can't (if the paint event's clip rectangle
245         is visible in the invalid region) we first fill the image buffer.
246         So, the image buffer is still a cache, we just fill it lazily.
247
248         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
249         need it any longer.
250
251 2006-10-11  Chris Toshok  <toshok@ximian.com>
252
253         * XplatUIX11.cs (SetWindowPos): we need to update both position as
254         well as size after calling XMoveResizeWindow.  This keeps us from
255         ignoring future SetWindowPos calls.  Fixes the disappearing
256         DateTimePicker in the ToolBarDockExample from bug #72499.
257
258 2006-10-11  Chris Toshok  <toshok@ximian.com>
259
260         * TextBoxBase.cs: reorder things a bit when it comes to
261         resizing-causing-recalculation.  we were recalculating the
262         document when our position was changed, which shouldn't happen.
263         We only care about size changes.  Clear up some more redundant
264         recalculation calls while I'm at it.  This makes the toolbar dock
265         example snappy when you're just dragging toolbars around (since it
266         causes a relayout whenever you move one.)
267
268 2006-10-11  Chris Toshok  <toshok@ximian.com>
269
270         * ToolBarButton.cs (get_Rectangle): this only returns
271         Rectangle.Empty if Visible == false, or Parent == null.
272         Parent.Visible doesn't matter.
273
274 2006-10-10  Chris Toshok  <toshok@ximian.com>
275
276         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
277         by .net 1.1, so switch to an internal method instead.
278
279 2006-10-10  Chris Toshok  <toshok@ximian.com>
280
281         * Control.cs (WM_PAINT): when a control is double buffered we draw
282         initially to the ImageBuffer and then copy from there.  But when a
283         parent control which has child controls is double buffered, the
284         initial drawing doesn't encompass the entire ClientRectangle of
285         the parent control, so we end up with uninitialized bits (this is
286         easily seen by dragging the top toolbar in
287         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
288         manually set the ClipRectangle of the paint_event (only the one we
289         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
290         of the nastiness in bug #72499.
291
292         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
293         which we use in Control.cs's WM_PAINT handling.
294
295 2006-10-10  Jackson Harper  <jackson@ximian.com>
296
297         * TextBoxBase.cs: Finish off the autoscrolling stuff.
298
299 2006-10-10  Chris Toshok  <toshok@ximian.com>
300
301         * Cursor.cs: Apply a slightly different patch to the one suggested
302         in #79609.
303
304 2006-10-10  Jackson Harper  <jackson@ximian.com>
305
306         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
307         not the parent form.
308         * TextControl.cs: use difference in old line count vs new count to
309         calculate how many lines were added, this takes into account soft
310         line breaks properly.
311
312 2006-10-10  Chris Toshok  <toshok@ximian.com>
313
314         * LinkLabel.cs: don't call MeasureCharacterRanges against a
315         rectangle located at 0,0 and the size of the text.  Use
316         ClientRectangle instead.  This fixes rendering of non-left aligned
317         link labels.
318
319 2006-10-10  Jackson Harper  <jackson@ximian.com>
320
321         * TextBoxBase.cs: When we set the selection start position the
322         caret.
323         * TextControl.cs: Need to update the caret when we decrement it to
324         zero.
325         - Make sure that the selection_visible flag gets reset to false if
326         the selection isn't visible.  Before this you could get it set to
327         visible by changing the selection start, then changing the end to
328         equal the start.
329
330 2006-10-09  Jackson Harper  <jackson@ximian.com>
331
332         * TreeView.cs: Don't update scrollbars when we aren't visible.
333         * TreeNodeCollection.cs: Only need to update scrollbars if being
334         added to an expanded visible node or the root node.
335
336 2006-10-09  Chris Toshok  <toshok@ximian.com>
337
338         * XplatUIX11.cs (SendMessage): fix NRE.
339
340 2006-10-09  Jackson Harper  <jackson@ximian.com>
341
342         * TextBoxBase.cs: Implement horizontal autoscrolling.
343         * TextControl.cs: Add a movement types that allows moving forward
344         and backwards without wrapping.
345
346 2006-10-09  Mike Kestner  <mkestner@novell.com>
347
348         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
349         with focus "expansion" of labels.  Fixes #79532 and then some.
350         * ThemeWin32Classic.cs : add LineLimit to ListView label format
351         when wrapping.
352
353 2006-10-09  Jackson Harper  <jackson@ximian.com>
354
355         * TextBoxBase.cs: Set the default max values to MaxValue since
356         we use the scrollbar for autoscrolling and the default value is
357         100.  If we don't do this the caret won't keep up with typing
358         after about 18 characters.
359         * TextControl.cs: Make sure the selection is offset by the
360         viewport x.  This fixes selection when using auto scrolling.
361
362 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
363         
364         * Form.cs: The active control should be selected after the 
365         OnLoad so that any child control initialization that affects
366         the selection is done. Fixes #79406
367
368 2006-10-06  Chris Toshok  <toshok@ximian.com>
369
370         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
371         to have no evil effects.
372
373         - Stop selecting StructureNotifyMask on non-toplevel windows.
374
375           The only way children should be resized is by using the SWF api,
376           and we already send WM_WINDOWPOSCHANGED messages in those cases.
377           Toplevel windows can be interacted with via the window manager,
378           and so we keep the input mask there.
379
380           The other event StructureNotifyMask gives us (that we care
381           about) is DestroyNotify.  The code is already structured such
382           that it assumes we won't be getting a DestroyNotify event for
383           the window we pass to XDestroyWindow (which is what
384           StructureNotifyMask is supposed to guarantee.)  So, that code
385           shouldn't be affected by this either.
386
387         - Stop selecting VisibilityChangeMask altogether.
388
389           We weren't doing anything with the resulting events anyway.
390         
391         This vastly reduces the number of X requests and events we see
392         when resizing/laying out a large ui.
393
394 2006-10-06  Chris Toshok  <toshok@ximian.com>
395
396         * ScrollableControl.cs (DisplayRectangle): we need to take into
397         account the DockPadding regardless of whether or not auto_scroll
398         == true.  rework this slightly to this effect, and fix bug #79606,
399         and part of #72499 (you can now see the drag handles and drag
400         toolbars around).
401
402 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
403
404         * ListViewItem.cs: Collections of selected and checked items are now
405         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
406         we mark the collection "dirty".
407         * ListView.cs: Marked collections readonly. Modified UpdateSelection
408         to only clear SelectedItems when a new item is selected and MultiSelect
409         is enabled. CheckedItems and SelectedItems now subscribe to Changed
410         event of ListViewItemCollection, and mark its list dirty whenever
411         that event is fire. This allows us to return selected/checked items 
412         in the same order as they are in the Items collection. This matches
413         the MS behavior.
414
415 2006-10-06  Chris Toshok  <toshok@ximian.com>
416
417         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
418         right mouse clicks.  Fixes bug #79593.
419
420 2006-10-06  Chris Toshok  <toshok@ximian.com>
421
422         * Splitter.cs: doh, fix splitters that don't want to cancel the
423         movement when you drag them.  Also, impose the limits on the
424         values we send to the SplitterMovingEvent.  Fixes #79598.
425
426 2006-10-06  Jackson Harper  <jackson@ximian.com>
427
428         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
429         since we use this for auto scrolling also.
430
431 2006-10-05  Chris Toshok  <toshok@ximian.com>
432
433         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
434         beginning to think that most datagrid column types don't need this
435         method.  Fixes bug #79392.
436
437 2006-10-05  Chris Toshok  <toshok@ximian.com>
438
439         * DataGrid.cs: move back to a more lazy scheme for creating the
440         CurrencyManager, so we aren't updating it every time you set
441         either DataSource or DataMember.  Also, don't call
442         RecreateDataGridRows if the currency manager hasn't changed.
443
444 2006-10-05  Chris Toshok  <toshok@ximian.com>
445
446         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
447         emitted, SelectedIndex should already be updated.  Fixes bug
448         #78929.
449
450 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
451
452         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
453           ToolStripTextBox.cs: Initial commit.
454         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
455
456 2006-10-05  Jackson Harper  <jackson@ximian.com>
457
458         * TabControl.cs: We need to invalidate the tab control area when
459         new ones are added (duh).
460
461 2006-10-03  Chris Toshok  <toshok@ximian.com>
462
463         * Form.cs (ProcessDialogKey): if the focused control is in this
464         form and is a button, call its PerformClick method here.  Fixes
465         #79534.
466
467 2006-10-04  Jackson Harper  <jackson@ximian.com>
468
469         * TabPage.cs: Ignore setting of Visible, and add an internal
470         method for setting the controls visibility.  TabPage's Visible
471         property is a little strange on MS, this seems to make us
472         compatible, and fixes cases where people set all the tab pages to
473         visible.
474         * TabControl.cs: Use the new internal setting on tab pages
475         visibility.
476
477 2006-10-03  Mike Kestner  <mkestner@novell.com>
478
479         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
480
481 2006-10-03  Mike Kestner  <mkestner@novell.com>
482
483         * ListView.cs : use is_visible instead of Visible to check if 
484         scrollbars should be placed/sized.  Also some max_wrap_width
485         love for LargeIcon view.  [Fixes #79533]
486
487 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
488
489         * TextControl.cs :
490           Make set_TextAlign() do actually update the align. Fixed #78403.
491
492 2006-10-03  Chris Toshok  <toshok@ximian.com>
493
494         * DataGrid.cs: fix a crash when switching datasources if the
495         vertical scrollbar is at someplace other than Value = 0.  Also,
496         reduce the number of recalculation passes we do in SetDataSource
497         from 2 to 1.
498
499 2006-10-03  Jackson Harper  <jackson@ximian.com>
500
501         * TextBoxBase.cs: Move the if value the same bail check up, we
502         don't want to empty the document if it is already empty, this
503         seems to severly mess up the caret.  TODO: I should probably fix
504         the empty statement to update teh caret somehow.
505
506 2006-10-03  Chris Toshok  <toshok@ximian.com>
507
508         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
509         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
510         reflection, an internal row type, properties on said type, etc.)
511         will work with our datagrid.  Fixes #79531.
512
513 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
514
515         * FileDialog.cs: Don't crash if a path is not accessible
516           (System.UnauthorizedAccessException). Fixes #79569.
517         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
518           a ':' too. Return unknown icon for those paths/files.
519
520 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
521
522         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
523         GetContainerControl returns null.
524
525 2006-10-02  Chris Toshok  <toshok@ximian.com>
526
527         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
528         call to XGetWindowAttributes instead of "handle".  fixes an X
529         error using notifyicon after the NotifyIconWindow to Form base
530         class switch.
531
532 2006-10-02  Chris Toshok  <toshok@ximian.com>
533
534         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
535         server grab and looping we need to do to get down to the most
536         deeply nested child window.
537         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
538         QueryPointer again after the WarpPointer so we can generate a
539         proper (fake) MotionNotify event to be enqueued in the destination
540         window's queue.
541         (GetCursorPos): call QueryPointer.
542
543         Fixes #79556.
544
545 2006-10-02  Jackson Harper  <jackson@ximian.com>
546
547         * NotifyIcon.cs: Derive the notify icon from a form, so things
548         like FindForm work on it.
549         - Swallow the WM_CONTEXTMENU message, since that is generated on
550         mouse down, and context menu is a mouse up kinda guy.  I believe
551         the correct fix here is probably to make the notify icon entirely
552         NC area, but this seems to work fine for anyone not manipulating
553         WndProc.
554
555 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
556
557         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
558           ToolStripItemCollection.cs, ToolStripLabel.cs,
559           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
560           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
561           Initial implementation.
562         * TextRenderer.cs: Provide padding to MeasureText.
563
564 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
565
566         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
567         of ButtonBaseAccessibleObject. Fix bug #79552.
568
569 2006-10-02  Jackson Harper  <jackson@ximian.com>
570
571         * MdiWindowManager.cs: When maximizing use the containers client
572         rect, not it's bounds, so nc area is accounted correctly.
573         - Use the parent form's size for the menu position, since the
574         client isn't always the full form size.
575
576 2006-10-01  Chris Toshok  <toshok@ximian.com>
577
578         * ScrollableControl.cs: make sure neither right_edge or
579         bottom_edge are < 0, since they're used as LargeChange for the
580         horiz/vert scrollbars respectively.  Fixes #79539.
581
582 2006-10-01  Chris Toshok  <toshok@ximian.com>
583
584         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
585         the xplatuix11 code can cause us to destroy/recreate our handle.
586
587         * XplatUIX11.cs
588         (SystrayAdd):
589         - this code can be invoked many times for the same Hwnd.  Make
590           sure we only destroy the client window once (the first time this
591           method is called).  This fixes bug #79544.
592         - Remove the call to the improperly bound XSync.  why we had two
593           bindings to this, I will never know, but this call resulted in
594           events being discarded from the queue(!).
595         - correct a misunderstanding of _XEMBED_INFO - the second atom is
596           not our current state but the state we wish to be in.  So, 0 if
597           we don't want to be mapped.  Change it to 1.
598         (SystrayRemove): The XEMBED spec makes mention of the fact that
599         gtk doesn't support the reparent of client windows away from the
600         embedder.  Looking at gtksocket-x11.c seems to agree with this.
601         The only avenue we have for removing systray icons is to destroy
602         them.  We don't want the handle to go away for good, though, so
603         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
604         #79545.
605         
606 2006-10-01  Chris Toshok  <toshok@ximian.com>
607
608         * Form.cs (WndProc): inline the native_enabled variable usage into
609         the cases in which it's used.  Fixes #79536.
610
611 2006-09-29  Mike Kestner  <mkestner@novell.com>
612
613         * ListView.cs : toggle the selection state for ctrl clicks in 
614         multiselect mode. [Fixes #79417]
615
616 2006-09-29  Mike Kestner  <mkestner@novell.com>
617
618         * ListView.cs : kill CanMultiSelect and refactor the selection
619         code to support multiselection in the absence of mod keys. Steal
620         arrow/home/end keys by overriding InternalPreProcessMessage to
621         restore regressed keynav behavior.
622         [Fixes #79416]
623
624 2006-09-29  Jackson Harper  <jackson@ximian.com>
625
626         * MdiClient.cs: Repaint the titlebars when the active window is
627         changed.
628
629 2006-09-29  Chris Toshok  <toshok@ximian.com>
630
631         * Application.cs: when entering a runloop with a modal, make sure
632         the hwnd is enabled.  Fixes #79480.
633
634 2006-09-29  Chris Toshok  <toshok@ximian.com>
635
636         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
637         when ListManager.CanAddRows == false, bump us back one.
638
639         * DataGridColumnStyle.cs (ParentReadOnly): remove the
640         listmanager.CanAddRows check.  This makes ArrayLists uneditable
641         using a datagrid, which is not right.
642         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
643         is an IEditable, but call property_descriptor.SetValue regardless.
644         fixes #79435.
645
646 2006-09-29  Chris Toshok  <toshok@ximian.com>
647
648         * DataGridBoolColumn.cs: we need to test equality in the face of
649         possible null values (as is the case with the default NullValue).
650         This patch keeps us from crashing in that case.
651
652 2006-09-29  Jackson Harper  <jackson@ximian.com>
653
654         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
655         here, since it will get called for every node collection in the
656         tree. This is now done in the treeview once the sorting is
657         finished.
658         * TreeView.cs: Recalculate the visible order, and update the
659         scrollbars after sorting, set the top nope to the root so that the
660         recalc actually works.
661
662 2006-09-29  Chris Toshok  <toshok@ximian.com>
663
664         * LinkLabel.cs: more handling of the default link collection in
665         the face of LinkArea manipulation.  The default link collection
666         contains 1 element (start=0,length=-1).  If the user sets LinkArea
667         to anything and the links collection is the default, clear it.
668         Then only add the link if its nonempty.  Fixes #79518.
669
670 2006-09-29  Chris Toshok  <toshok@ximian.com>
671
672         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
673         piece correctly when we hit a '\n'.  Fixes #79517.
674
675 2006-09-29  Chris Toshok  <toshok@ximian.com>
676
677         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
678         change the binding of gdk_init_check to take two IntPtr's, and
679         pass IntPtr.Zero for both of them.  Fixes #79520.
680
681 2006-09-29  Mike Kestner  <mkestner@novell.com>
682
683         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
684         [Fixes #78779]
685
686 2006-09-28  Jackson Harper  <jackson@ximian.com>
687
688         * XplatUIX11.cs: When translating NC messages make sure we go from
689         whole window to screen, not client window to screen.
690         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
691         method doesn't exist
692         - Skip over controls that aren't forms when arranging.
693
694 2006-09-28  Jackson Harper  <jackson@ximian.com>
695
696         * XplatUIWin32.cs: Clip the rect to the parent window.
697         * XplatUIStructs.cs: Add clipping modes struct.
698         * InternalWindowManager.cs: New private method that factors title
699         bar heights in when calculating the pos of an NC mouse message.
700         - Use SendMessage to force a paint when the form's size is changed
701         instead of painting the decorations immediately.
702         - Don't let the NC button click messages get to DefWndProc,
703         because they will attempt to handle windowing themself, and this
704         messes up z-order (it will put them in front of the scrollbars).
705         * XplatUIX11.cs: Make sure that we don't reset window managers if
706         we already have one (ie the window is an MDI window).
707
708 2006-09-28  Chris Toshok  <toshok@ximian.com>
709
710         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
711         menu code really needs going over.
712
713 2006-09-27  Chris Toshok  <toshok@ximian.com>
714
715         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
716         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
717         window is maximizable.  So, we need to make sure that even if we
718         clear the border/wm frame of those functions, they're still
719         available (basically, we remove the decoration without removing
720         the function).  Half the fix for #79338.
721
722 2006-09-27  Chris Toshok  <toshok@ximian.com>
723
724         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
725         Fixes bug #79515.
726
727 2006-09-27  Chris Toshok  <toshok@ximian.com>
728
729         * Splitter.cs: reorder things a bit so that we don't actually
730         draw/move the splitter until after calling OnSplitterMoving.  This
731         lets users cancel/disallow the movement by explicitly setting
732         event.SplitX/SplitY.  Fixes #79372.
733
734 2006-09-27  Jackson Harper  <jackson@ximian.com>
735
736         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
737         because it is most likely on a window being destroyed, and that
738         will give us an X11 error.
739
740 2006-09-27  Chris Toshok  <toshok@ximian.com>
741
742         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
743         the dropdown button now toggles between showing and hiding the
744         dropdown.  Also, get rid of dropdown_form_showing and just use
745         dropdown_form.Visible.  We still don't do a grab, but I'll leave
746         that part to someone who has handled Capture-fu before.
747
748 2006-09-27  Chris Toshok  <toshok@ximian.com>
749
750         * DataGrid.cs: return false if alt isn't pressed when '0' is
751         pressed.  this keeps the '0' key from being swallowed, and fixes
752         bug #79350.
753
754 2006-09-27  Chris Toshok  <toshok@ximian.com>
755
756         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
757         Calling Refresh (in response to a scrollbar event) screws up the
758         scrollbar painting.  Fixes bug #78923.
759
760 2006-09-27  Chris Toshok  <toshok@ximian.com>
761
762         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
763         then insert into hashtable" blocks threadsafe.
764
765 2006-09-27  Chris Toshok  <toshok@ximian.com>
766
767         * MessageBox.cs (CreateParams): the styles should be |'ed with our
768         baseclass's, since otherwise the
769         ControlBox/MinimizeBox/MaximizeBox assignments above have no
770         effect.  This gets the close button back in messageboxes.
771
772 2006-09-27  Chris Toshok  <toshok@ximian.com>
773
774         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
775         flag, not just != 0.  this makes flags that are actually multiple
776         bits (like WS_CAPTION) work.  fixes bug #79508.
777
778 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
779
780         * PageSetupDialog.cs: add support for getting and settings the 
781         paper size, source and orientation.
782
783 2006-09-26  Chris Toshok  <toshok@ximian.com>
784
785         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
786         and caption == "", we need to remove the resize handles as well as
787         the title bar.
788
789         * Control.cs (set_Text): turns out that setting Text on a form
790         should change the WM styles on the window, since if ControlBox ==
791         false, the only way to get a window border is to have a non-""
792         Text property.  check winforms/forms/text.cs for an example.  so,
793         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
794         update both window styles and title.  This fixes a lot of dialogs
795         (including the preferences dialog in MonoCalendar.)
796
797 2006-09-26  Chris Toshok  <toshok@ximian.com>
798
799         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
800         control isn't a Form), call Win32ShowWindow to hide the window,
801         but don't update the control Visible property.  When we reparent
802         back to a parent control, call SetVisible in order for the
803         window's visibility to be reinstated.
804
805         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
806         the FosterParent.
807
808         * Control.cs (ControlCollection.Remove): remove that value.Hide()
809         call for good, since it breaks MonoCalendar (and other things I'm
810         sure.) Also, set all_controls to null *after* the owner calls,
811         which end up regenerating it.
812         (ChangeParent): allow new_parent to be == null, passing
813         IntPtr.Zero down to XplatUI.
814
815         this fixes #79294 the right way.
816
817 2006-09-26  Mike Kestner  <mkestner@novell.com>
818
819         * GridEntry.cs : internal SetParent method.
820         * PropertyGrid.cs : attach to property changed on the proper
821         target if we have a hierarchical grid with subobjects. Setup
822         GridItem.Parent for hierarchical items.
823         * PropertyGridView.cs : Set value on the correct target for
824         hierarchical grids. [Fixes #78903]
825
826 2006-09-26  Chris Toshok  <toshok@ximian.com>
827
828         * Control.cs (ChildNeedsRecreating): this should return true if
829         either we're being recreated and the child is in our list, or our
830         parent is waiting for our recreation.
831
832 2006-09-26  Chris Toshok  <toshok@ximian.com>
833
834         * Control.cs (ControlCollection.Remove): reinstate the
835         value.Hide() call as suggested in bug #79294.
836
837 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
838
839         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
840         coordinates (versus a relative move).
841
842 2006-09-26  Chris Toshok  <toshok@ximian.com>
843
844         * Control.cs: rework child recreation a little bit.  It turns out
845         that we race between the DestroyNotify the WM_DESTROY message.  If
846         the parent gets its DestroyNotify before the child gets the
847         WM_DESTROY message, the child ends up not recreating (since the
848         parent finishes its recreation on DestroyNotify, and the child
849         checks ParentIsRecreating.)
850
851         So, instead we store off a list of all the child controls which
852         need to be recreated when the parent control starts to recreate
853         itself.  Then, when child controls get their WM_DESTROY message we
854         check to see if they're in the parent's pending recreation list,
855         and if so, we recreate.  This removes all dependency on ordering
856         from the code and fixes the initial MonoCalendar upgrade dialog.
857         
858 2006-09-26  Jackson Harper  <jackson@ximian.com>
859
860         * TextControl.cs: Use the Line to get the length of the line,
861         since soft line breaks can change the end line.
862
863 2006-09-26  Chris Toshok  <toshok@ximian.com>
864
865         * Control.cs (ControlCollection.AddImplicit): don't add the
866         control again if it's already in one of our lists.  This keeps us
867         from adding controls over and over again for comboboxes when their
868         handle gets recreated (as the combobox adds implicit controls in
869         OnHandleCreated).  Fixes the X11 errors in bug #79480.
870
871 2006-09-26  Jackson Harper  <jackson@ximian.com>
872
873         * TextControl.cs: When deleting characters make sure that any
874         orphaned zero lengthed tags get deleted.
875         - Fix ToString for zero lengthed tags.
876
877 2006-09-25  Jackson Harper  <jackson@ximian.com>
878
879         * TextControl.cs: When getting a tag at the location there can be
880         multiple tags at the same spot, these are 0-lengthed tags that
881         appear when extra formatting has been stuck in a location.  We
882         need to pull out the last of these 0 lengthed tags.
883
884 2006-09-25  Jackson Harper  <jackson@ximian.com>
885
886         * TextControl.cs: Fix print out in debug method.
887         * TextBoxBase.cs: When text is set bail if we are setting to the
888         previous value.
889         
890 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
891
892         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
893           It is now possible to change the selected index in a FontXXXListBox
894           with the up and down arrow keys from the FontXXXTextBoxes.
895           Also, send the FontXXXTextBox mouse wheel event to the corresponding
896           FontXXXListBoxes to match ms.
897
898 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
899
900         * SystemInformation.cs: Return a clone of the theme's MenuFont because
901         anyone can dispose it, anytime. All other properties returns enums, 
902         structs or basic types so they don't need such tricks.
903
904 2006-09-22  Jackson Harper  <jackson@ximian.com>
905
906         * XplatUI.cs:
907         * XplatUIWin32.cs:
908         * Clipboard.cs:
909         * DataFormats.cs:
910         * XplatUIOSX.cs:
911         * XplatUIDriver.cs: Update interface to add a primary selection
912         flag, so the driver can use the primary selection buffer if
913         needed.
914         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
915
916         * RichTextBox.cs: We need to supply the data object to paste now
917         (so we can choose to supply CLIPBOARD or PRIMARY).
918         * TextBoxBase.cs: Supply data object to paste (see above).
919         - Middle click uses the primary selection data object.
920         
921 2006-09-21  Chris Toshok  <toshok@ximian.com>
922
923         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
924         of SetWMStyles.  It's still a rat's nest and is largely
925         order-dependent which I dislike immensely.  This also fixes the X
926         button disappearing from toplevel forms.
927
928 2006-09-21  Mike Kestner <mkestner@novell.com>
929
930         * ListBox.cs: move Jordi's click/dblclick raising code to the
931         mouse up handler.
932
933 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
934
935         * ListBox.cs: Fixes 79450
936
937 2006-09-21  Mike Kestner <mkestner@novell.com>
938
939         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
940         to deal with people updating the TreeNodeCollection after the tree
941         is disposed.  "Fixes" 79330.
942
943 2006-09-20  Jackson Harper <jackson@ximian.com>
944
945         * TextControl.cs: Push the cursor record onto the undo stack
946         before the delete action. This fixes 78651.
947
948 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
949
950         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
951         CreateParams. Fixes 79329.
952
953 2006-09-19  Chris Toshok  <toshok@ximian.com>
954
955         * XplatUIX11.cs: a couple of blanket code massage passes to clean
956         things up a bit.  First, get rid of the NetAtoms array (and the NA
957         enum), and just embed the atoms as static fields.  Also, add a
958         couple of functions (StyleSet and ExStyleSet) to clean up all the
959         bitmask testing of styles.
960
961         * X11Structs.cs: remove the NA enum, not needed anymore.
962         
963 2006-09-19  Chris Toshok  <toshok@ximian.com>
964
965         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
966         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
967         added cleanup to get MessageBox titles appearing again, which were
968         broken by my earlier fix for caption-less/ControlBox-less windows.
969
970 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
971
972         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
973           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
974           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
975           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
976           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
977           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
978           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
979           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
980           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
981           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
982           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
983             Inital import.
984         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
985           ToolStripButton.cs: Stubs needed for above.
986         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
987
988 2006-09-15  Chris Toshok  <toshok@ximian.com>
989
990         * XplatUIX11.cs:
991         - make the MessageQueues hashtable Synchronized.
992         
993         - SendMessage: if the Hwnd is owned by a different thread, use the
994         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
995         thread.  Fixes bug #79201.
996
997 2006-09-15  Chris Toshok  <toshok@ximian.com>
998
999         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
1000         ControlBox == false, we disallow maximize/minimize/close.  If the
1001         form Caption is "" we also disallow move (and get rid of the Title
1002         decoration).  Unfortunately, regardless of how things are set,
1003         we're stuck with the Title and WM menu.
1004
1005 2006-09-15  Chris Toshok  <toshok@ximian.com>
1006
1007         * Application.cs: add locking around the static message_filters
1008         ArrayList, part of #79196.
1009
1010 2006-09-15  Chris Toshok  <toshok@ximian.com>
1011
1012         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
1013         Form.ControlBox == false, the window has no titlebar nor resize
1014         handles.  fixes bug #79368.
1015
1016 2006-09-15  Chris Toshok  <toshok@ximian.com>
1017
1018         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
1019         >= 0.  Fixes bug #79370.
1020
1021 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
1022         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
1023         * Control.cs:
1024             Add properties: LayoutEngine, Margin, DefaultMargin.
1025             Add method: GetPreferredSize.
1026             Move layout logic from PerformLayout to layout engines. 
1027
1028 2006-09-13  Chris Toshok  <toshok@ximian.com>
1029
1030         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
1031         fix for #79326 broke #78718, so this change addresses that.
1032
1033         - in SendWMDestroyMessages remove the call to
1034         CleanupCachedWindows, since we might be recreating the control and
1035         need to maintain the references to right Hwnd handles.  Also, set
1036         the zombie flag to true for each of the children in the hierarchy
1037         instead of calling hwnd.Dispose.  This will cause GetMessage to
1038         ignore all events for the window except for DestroyNotify.
1039
1040         - In GetMessage, ignore messages except for DestroyNotify for
1041         zombie hwnds.
1042         
1043         * Control.cs: revert the is_recreating fix from the last
1044         ChangeLog.  It's definitely "right", but it breaks switching from
1045         an MDI form to a non-MDI form.  Will need to revisit that.
1046
1047         * Hwnd.cs: add a zombie flag, which means "the
1048         client_window/whole_window handles are invalid, but we're waiting
1049         for the DestroyNotify event to come in for them".  Set the flag to
1050         false explicitly if setting WholeWindow/ClientWindow, and also
1051         when Disposing.
1052         
1053 2006-09-13  Chris Toshok  <toshok@ximian.com>
1054
1055         * XplatUIX11.cs: rework window destruction slightly.
1056
1057         - when destroying the windows associated with a control, we don't
1058         need 2 separate XDestroyWindow calls.  Just the one for the
1059         whole_window (or for client_window if whole_window is somehow
1060         IntPtr.Zero -- can this happen?) is enough.
1061
1062         - reworked SendWMDestroyMessages slightly, so we always dispose
1063         the child control hwnd's after sending the messages.
1064         
1065         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
1066         the two places it was used (one was even using hwnd.Handle and the
1067         other hwnd.client_window.  ugh), adding another call in
1068         SendWMDestroyMessages.  We need this new call because now the
1069         DestroyNotify events in the queue will be ignored for the child
1070         controls (as their hwnd's were disposed, and the window id's
1071         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
1072
1073         - this fixes bug #79326.
1074
1075 2006-09-13  Chris Toshok  <toshok@ximian.com>
1076
1077         * Control.cs: don't always set is_recreating to false at the end
1078         of RecreateHandle, since sometimes we're not done (and won't be
1079         until WndProc handles the WM_DESTROY message).  Also, set
1080         is_recreating to false in the WM_DESTROY handling code.  Part of
1081         the fix for bug #79326.
1082
1083 2006-09-13  Miguel de Icaza  <miguel@novell.com>
1084
1085         * X11DesktopColors.cs: Start the droppage of debugging messages.
1086
1087         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
1088
1089 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
1090
1091         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
1092
1093 2006-09-12  Chris Toshok  <toshok@ximian.com>
1094
1095         * DataGrid.cs (get_ListManager): if the list_manager is null, try
1096         to create it using SetDataSource.  Fixes bug #79151.
1097
1098 2006-09-11  Chris Toshok  <toshok@ximian.com>
1099
1100         * XEventQueue.cs: add a DispatchIdle property.
1101
1102         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
1103         either the queue is null, or the queue has DispatchIdle set to
1104         true.
1105         (DoEvents): set queue.DispatchIdle to false around the
1106         peek/translate/dispatch message loop in this method.  This keeps
1107         Application.Doevents from emitting idle events.  Part of the fix
1108         for #78823.
1109
1110 2006-09-11  Chris Toshok  <toshok@ximian.com>
1111
1112         * DataGrid.cs (set_DataSource): make this work for both the
1113         winforms/datagrid test and ReportBuilder.  It seems as though when
1114         we've created a ListManager (or maybe it's if we have a
1115         BindingContext?), when we set the DataSource it clears the
1116         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
1117         #79333.
1118
1119 2006-09-11  Chris Toshok  <toshok@ximian.com>
1120
1121         * XplatUIX11.cs: deal with queue being null, which happens in all
1122         the Clipboard functions.  Fixes one of the two problems mentioned
1123         in #78612.
1124
1125 2006-09-11  Chris Toshok  <toshok@ximian.com>
1126
1127         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
1128         button on various spots (including outside the menu) works closer
1129         to MS, and doesn't crash.  Fixes #79343.
1130
1131 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
1132
1133         * ListView.cs: Do not initialize item_sorter in init. To match MS,
1134         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
1135         and the internal comparer is set. When a new ListViewItemSorter is set,
1136         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
1137         was specified. No further processing is necessary if SortOrder is set
1138         to it's current value. If Sorting is modified to None, and View is
1139         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
1140         (either custom or our internal ItemComparer) to null, on 1.0 profile
1141         only set item_sorter to null if its our internal IComparer. If Sorting
1142         is modified to Ascending or Descending, then use our internal IComparer
1143         if none is set, and if the current IComparer is our internal one then:
1144         on 2.0 profile always replace it with one for new Sorting, and on 1.0
1145         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
1146         Enum.IsDefined to verify whether a valid View value is specified in
1147         its setter. Automatically sort listview items when listview is
1148         created. In Sort, do nothing if ListView is not yet created, or if
1149         no item_sorter is set (no Sorting was set, Sorting was explicitly set
1150         to None or ListViewItemSorter was set to null). Added Sort overload
1151         taking a bool to indicate whether the ListView should be redrawn when
1152         items are sorted (we use this in ListViewItemCollection to avoid double
1153         redraws). Modified our internal IComparer to take the sort order into
1154         account. In Add and AddRange methods of ListViewItemCollection, also
1155         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
1156         view), but use overload with noredraw option to avoid double redraw.
1157         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
1158         true when View is Tile, and do the same when attempting to set View to
1159         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
1160         for selected/checked indices, as it involves overhead when sorting is
1161         done while these collections are not used all that often. Instead
1162         we'll build the indices on demand. Modified IList implementation of
1163         CheckedIndexCollection to use public methods if object is int.
1164         Modified CheckedListViewItemCollection to hide checked items if
1165         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
1166         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
1167         IList implementation in SelectedIndexCollection to use public methods
1168         if object is int. Modified SelectedListViewItemCollection to hide
1169         selected items if listview is not yet created.
1170         * ListViewItem.cs: CheckedIndices list no longer needs to be
1171         maintained separately (see ListView changes). Also clone font, fixes
1172         test failure.
1173
1174 2006-09-11  Mike Kestner  <mkestner@novell.com>
1175
1176         * ComboBox.cs: if we are updating the contents of the currently
1177         selected index, refresh the control or the textbox selection.
1178         [Fixes #79066]
1179
1180 2006-09-11  Mike Kestner  <mkestner@novell.com>
1181
1182         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
1183         the 'specified' logic has been moved there.  This seems like a bug 
1184         in Control.cs, since our current SetBoundsCore completely ignores 
1185         the specified parameter.  Peter's commit seems to indicate that is 
1186         the way the MS control implementation works.  [Fixes #79325]
1187
1188 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
1189
1190         * XplatUI.cs: Set default_class_name to be composed
1191         of current domain id. This allows MWF to be loaded in multiple
1192         domains on Win32.
1193
1194 2006-09-09  Miguel de Icaza  <miguel@novell.com>
1195
1196         * X11Keyboard.cs: If we are unable to obtain the input method, do
1197         not call CreateXic to create the input context.   Should fix
1198         #78944/79276.
1199
1200 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
1201
1202         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
1203           Simplified gnome support by adding more pinvokes to get the
1204           icon for a file or mime type.
1205
1206 2006-09-08  Jackson Harper  <jackson@ximian.com>
1207
1208         * MenuAPI.cs: Deslect popup context menu items before closing the
1209         window, so that you don't see the previously selected item
1210         selected when you reopen the menu.
1211         * TextControl.cs: Update the cursor position even if we don't have
1212         focus.  This fixes typing in things like the ComboBox.  I'm not
1213         totally sure we should always set the visibility if we don't have
1214         focus, but couldn't find any corner cases where the cursor showed
1215         up when it shouldn't.
1216
1217 2006-09-08  Chris Toshok  <toshok@ximian.com>
1218
1219         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
1220         our arrays are length 256.  & 0xff before indexing.  Fixes the
1221         crash in bug #78077.
1222         
1223 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1224
1225         * ThemeWin32Classic.cs: 
1226         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
1227         is true. Handle that check box too.
1228
1229 2006-09-07  Chris Toshok  <toshok@ximian.com>
1230
1231         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
1232         79244.
1233
1234 2006-09-07  Chris Toshok  <toshok@ximian.com>
1235
1236         * Control.cs: in set_BackColor only do the work if
1237         background_color != value.
1238
1239         * XplatUIX11.cs: move the clearing of invalid areas (both client
1240         and nc) to the same block of code where we set (nc_)expose_pending
1241         to false.  That is, move it from PaintEventEnd to PaintEventStart,
1242         so things that cause invalidates from within OnPaint will trigger
1243         another call to OnPaint.  Fixes bug #79262.
1244
1245 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
1246
1247         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
1248         * FileDialog.cs: Fix typo
1249
1250 2006-09-07  Jackson Harper  <jackson@ximian.com>
1251
1252         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
1253         for tab pages if they have any.
1254
1255 2006-09-06  Mike Kestner  <mkestner@novell.com>
1256
1257         * Splitter.cs: use the "current" rect when finishing drag handle
1258         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
1259
1260 2006-09-06  Mike Kestner  <mkestner@novell.com>
1261
1262         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
1263         support offset splitters. [Fixes #79298]
1264
1265 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
1266
1267         * Mime.cs: Fixed a bug that could override the global mime type
1268           result.
1269
1270 2006-09-05  Jackson Harper  <jackson@ximian.com>
1271
1272         * TabControl.cs: Better calculation method for setting the slider
1273         pos. Prevents crashes on really wide tabs.
1274         - Draw Image on tab pages if an image list is used.
1275
1276 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1277
1278         * MonthCalendar.cs: When Font changes, the Size should be
1279         updated to fit the new font's space requirements.
1280
1281 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
1282
1283         * ListBox.cs: If the items are cleared with Items.Clear set
1284           top_index to 0.
1285
1286 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1287
1288         * MonthCalendar.cs: Handle arrow keys as input keys. Also
1289         fire DateChanged event instead of DateSelected event when
1290         the date was changed by keyboard interaction.
1291
1292 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1293
1294         * DateTimePicker.cs: Handle DateChanged for the associated
1295         month_calendar control, and set month_calendar.Font from 
1296         OnFontChanged method, as well as resize the height of the
1297         control when needed. Make PreferredHeight proportional.
1298
1299 2006-09-01  Chris Toshok  <toshok@ximian.com>
1300
1301         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
1302         properties.
1303
1304         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
1305
1306 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
1307
1308         * FileDialog.cs: Set ClientSize instead of window size, to allow space
1309           for decorations (Fixes #79219)
1310
1311 2006-09-01  Mike Kestner  <mkestner@novell.com>
1312
1313         * ComboBox.cs: first stab at sorting plus some selection handling
1314         fixes to bring us more in line with MS behavior.  Also switches back
1315         to index based selection.  Alternative patches for index-based 
1316         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
1317         and latency@gmx.de on bug 78848.  I assume they were similar to this
1318         code I've had simmering in my tree forever.
1319         [Fixes #78848]
1320
1321 2006-09-01  Chris Toshok  <toshok@ximian.com>
1322
1323         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
1324         when setting list position guard against ending up with a -1 index
1325         (the other part of the fix for #78812).  Should probably make sure
1326         we don't need the analogous fix in the ItemDeleted case.
1327
1328         * DataGrid.cs:
1329         - in SetDataSource, work around the fact that the way
1330         OnBindingContextChanged is invoked will cause us to re-enter this
1331         method.  I'll remove the hack once I investigate
1332         OnBindingContextChanged.
1333
1334         - fix the logic in set_DataSource and set_DataMember (basically
1335         what to do if the other of the two is null.)
1336         
1337         - in OnListManagerItemChanged, we need to take into account the
1338         edit row when deciding whether or not to call RecreateDataGridRows
1339         (part of the fix for #78812).
1340
1341 2006-09-01  Jackson Harper  <jackson@ximian.com>
1342
1343         * Splitter.cs: Don't do anything if there is no control to affect
1344         (prevents us from crashing in weird tet cases).
1345         * TreeView.cs: Bounding box for the mouse movement reverting
1346         focus/selection back to previously selected node.  This matches
1347         MS, and makes the tree a lot more useable.
1348         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
1349         use clipping so they are not drawn.  This fixes when the control
1350         is set to have a transparent background, or if it was over an
1351         image.
1352
1353 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
1354
1355         * MimeIcon.cs: Improved handling for reading default icons when
1356           using gnome (2.16 made it necessary). Check and read svg icons
1357           first, then 48x48 and then 32x32 icons.
1358
1359 2006-08-31  Chris Toshok  <toshok@ximian.com>
1360
1361         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
1362         visible.
1363
1364         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
1365         ProcessKeyPreview.  Fixes part of #77806.
1366
1367         * DataGrid.cs: big patch.
1368
1369         - revert the queueing up of DataSource/DataMember if inside
1370         BeginInit/EndInit calls.  That's not the way the datagrid achieves
1371         its delayed databinding.  Instead, call SetDataSource in
1372         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
1373         #78811.
1374
1375         - Also, it wasn't mentioned in #78811, but the test case exhibits
1376         behavior that was lacking in our datagrid implementation - Columns
1377         that have mapping names that don't exist in the datasource's
1378         properties aren't shown.  Yuck.  To fix this I added the bound
1379         field to the column style, and basically any calculation to figure
1380         out anything about columns uses a loop to find the bound columns.
1381         still need to investigate if I can cache an array of the bound
1382         columns or if the indices must be the same.
1383
1384         - When setting CurrentCell, we no longer abort if the cell being
1385         edited was in the add row.  This fixes the other part of #77806.
1386
1387         - The new code also fixes #78807.
1388         
1389         * ThemeWin32Classic.cs: perpetrate the same disgusting
1390         column.bound field hack, and only render bound fields.
1391
1392 2006-08-31  Chris Toshok  <toshok@ximian.com>
1393
1394         * DataGridColumnStyle.cs: add bound field.  this field is true if
1395         the datasource has a property corresponding to the mapping name.
1396
1397         * DataGridTableStyle.cs: set the bound field on the column styles
1398         depending on whether or not we have a column for that property.
1399
1400 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
1401
1402         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
1403           splitter control (fixes #79228)
1404
1405 2006-08-31  Chris Toshok  <toshok@ximian.com>
1406
1407         * DataGridColumnStyle.cs: we need to delay the assignment of
1408         property descriptor until the last possible moment due to the lazy
1409         databinding stuff in the datagrid.  Also, fix the exceptions
1410         thrown by CheckValidDataSource to match MS.
1411
1412 2006-08-31  Jackson Harper  <jackson@ximian.com>
1413
1414         * Form.cs: When activated select the active control, if there is
1415         no active control, we select the first control.
1416         * XplatUIX11.cs: If there is no focus control when we get a
1417         FocusIn event, find the toplevel form and activate it.  This
1418         occurs when you popup a window, it becomes the focus window, then
1419         you close that window, giving focus back to the main window.
1420
1421 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1422
1423         * MonthCalendar.cs: 
1424         * ThemeWin32Classic.cs: Cache Font in bold style, as well
1425         as StringFormat with Center alignments in MonthCalendar,
1426         instead of creating new ones when drawing the control. 
1427         Also, draw the month name in bold style.
1428
1429 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
1430
1431         * Control.cs:
1432           - PerformLayout(): It would seem MS performs the fill even if the 
1433             control is not visible (part of #79218 fix)
1434           - ResetBackColor(): Use the setter to reset the color, to allow
1435             overriders to catch the change.
1436         * Form.cs:
1437           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
1438           - CreateHandle(): dito (part of $79218 fix)
1439           - Don't set an icon if we have a dialog
1440         * ScrollableControl.cs:
1441           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
1442           - ScrollIntoView(): No need to scroll if control is already visible
1443             (resolves fixme and fixes #79218)
1444
1445 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1446
1447         * MonthCalendar.cs: Change proportions in SingleMonthSize
1448         to match the aspect of the original control.
1449
1450 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
1451
1452         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
1453           get updated when they get maximized.
1454
1455 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
1456
1457         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
1458
1459 2006-08-29  Chris Toshok  <toshok@ximian.com>
1460
1461         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
1462
1463 2006-08-29  Jackson Harper  <jackson@ximian.com>
1464
1465         * TreeView.cs: Need to track selected node and highlighted node,
1466         they aren't always the same thing, when the mouse is down on a
1467         node it is hilighted, but not selected yet.
1468         - Do the HideSelection stuff right
1469         - Need to focus on rbutton mouse down. And redraw selection when
1470         right click is mouse upped.
1471
1472 2006-08-29  Mike Kestner  <mkestner@novell.com>
1473
1474         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
1475         when SubItems.Count < Columns.Count.  [Fixes #79167]
1476
1477 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
1478
1479         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
1480
1481 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
1482
1483         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
1484           from X. Only send based on ConfigureNotify if we don't have the
1485           correct location in hwnd (if the window manager moved us)
1486
1487 2006-08-28  Mike Kestner  <mkestner@novell.com>
1488
1489         * ListView.cs: remove a TODO. 
1490         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
1491         [Fixes ListView part of #79166]
1492
1493 2006-08-28  Mike Kestner  <mkestner@novell.com>
1494
1495         * ListView.cs: move wheel handler to parent since it is focused
1496         instead of the item_control now.  [Fixes #79177]
1497
1498 2006-08-28  Mike Kestner  <mkestner@novell.com>
1499
1500         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
1501         when the control is focused. [Fixes #79171]
1502
1503 2006-08-28  Mike Kestner  <mkestner@novell.com>
1504
1505         * ListView.cs: size the item and header controls for empty and
1506         unscrollable views.
1507         * ThemeWin32Classic.cs: draw disabled backgrounds.
1508         [Fixes #79187]
1509
1510 2006-08-28  Chris Toshok  <toshok@ximian.com>
1511
1512         * Form.cs: remove unused "active_form" static field.
1513
1514         * Hwnd.cs: lock around accesses to static windows collection.
1515
1516         * Application.cs: lock threads in Exit ().
1517
1518 2006-08-28  Chris Toshok  <toshok@ximian.com>
1519
1520         * NativeWindow.cs: lock around accesses to window_collection.
1521         
1522 2006-08-28  Chris Toshok  <toshok@ximian.com>
1523
1524         * Control.cs: err, fix this the right way, by locking on controls
1525         when using it.  not by making it synchronized.
1526
1527 2006-08-28  Chris Toshok  <toshok@ximian.com>
1528
1529         * Control.cs: make the static "controls" field synchronized, as it
1530         gets updated from multiple threads.
1531
1532 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1533
1534         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
1535           Prevent other threads from exiting when calling thread sets quit state.
1536         * XEventQueue.cs: Added PostQuitState property
1537
1538 2006-08-27  Chris Toshok  <toshok@ximian.com>
1539
1540         * AsyncMethodData.cs: add a slot for the window handle.
1541
1542         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
1543         window (the destination control's window, not the foster window).
1544
1545         * Control.cs (BeginInvokeInternal): store the window's handle in
1546         the AsyncMethodData.
1547         
1548
1549 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1550
1551         * XplatUIX11.cs:
1552           - PostQuitMessage: Removed resetting S.D display handle, we might have
1553             another loop started after calling PostQuitMessage (Fixes #79119)
1554           - Created destructor to reset S.D handle
1555
1556 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
1557
1558         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
1559
1560 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1561
1562         * TextControl.cs (Insert): Update the caret position even if we don't
1563           have a handle yet, just don't call the driver in that case.
1564         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
1565           to the end of the new selection text (Fixes #79184)
1566
1567 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1568
1569         * Form.cs (Activate): Only activate if the handle is created)
1570         * Control.c:
1571           - Mark window as invisible when it's disposed
1572           - Check if window handle is created when setting window visible, 
1573             instead of relying just on the is_created variable
1574           - Check if object is disposed when creating the control (Fixes #79155)
1575
1576 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1577
1578         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
1579           when allowing layout again. Otherwise we re-generate the anchoring 
1580           distance to the border again and actually alter what the user wanted
1581           This is ugly, it'd be better if we used DisplayRectangle instead of
1582           ClientRectangle for Control.UpdateDistances, but that causes us to
1583           have other problems (initial anchoring positons would be wrong)
1584           (Fixes #78835)
1585
1586 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1587
1588         * Control.cs:
1589           - The size and location setters shouldn't go directly to 
1590             SetBoundsCore, but to SetBounds, which triggers layout on the
1591             parent, then calls SetBoundsCore. (Related to fix for #78835)
1592           - SetBounds: Moved actual location update code into this function
1593             from SetBoundsCore, to match MS. Added call to PerformLayout if
1594             we have a parent (to trigger resizing of anchored parents if the 
1595             child size has changed (see testcase for #78835) 
1596         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
1597           new control code
1598         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
1599
1600 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1601
1602         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
1603           System.Drawing when a toplevel window gets closed; there might
1604           be other toplevel windows belonging to the same app (Fixes #78052)
1605
1606 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
1607
1608         * FileDialog.cs: After reading FileDialog settings from mwf_config
1609           use Desktop prefix only if a real folder doesn't exist anymore.
1610         * FontDialog.cs: Added char sets.
1611           It is now possible to select the font, size or style with the
1612           textboxes.
1613
1614 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
1615
1616         * PrintPreviewDialog.cs: Use assembly name constants.
1617
1618 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1619
1620         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
1621           scrollbar from whacking it's buttons)
1622
1623 2006-08-24  Chris Toshok  <toshok@ximian.com>
1624
1625         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
1626         in this patch (aggregating setting Left/Top/Width/Height to
1627         setting Bounds on the scrollbars), but the crux of the fix is in
1628         Recalculate, where we scroll by the remaining scroll_position if
1629         we're hiding a scrollbar.  The 2*$5 reward in the comment is
1630         serious.
1631
1632 2006-08-24  Jackson Harper  <jackson@ximian.com>
1633
1634         * MdiClient.cs:
1635         * MdiWindowManager.cs: If the form is made a non-mdi window we
1636         need to remove the form closed event so that closing forms works
1637         correctly.
1638
1639 2006-08-24  Jackson Harper  <jackson@ximian.com>
1640
1641         * Control.cs: Make IsRecreating internal so that the driver can
1642         check it
1643         - Temporarily remove the Hide when controls are removed, its
1644         making a whole bunch of things not work because visibility isn't
1645         getting reset elsewhere correctly
1646         * Form.cs: Need to do a full handle recreation when the mdi parent
1647         is set.
1648         * XplatUIX11.cs: If we are recreating handles don't dispose the
1649         HWNDs.  What was happening is the handles were being recreated in
1650         SendWMDestroyMessages, but then flow continued on in that method
1651         and destroyed the new handles.
1652
1653 2006-08-23  Jackson Harper  <jackson@ximian.com>
1654
1655         * Form.cs: MdiClient is always at the back of the bus
1656         * Control.cs: When the order of items in the collection is changed
1657         we need to reset the all_controls array
1658         - do the same sorta setup thats done when adding a control when a
1659         control is set on the collection.
1660
1661 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1662
1663         * TextBoxBase.cs (get_Text): Return an empty array if our document
1664           is empty (fixes #79052)
1665
1666 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1667
1668         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
1669           on WM_SYSCHAR messages (fixes #79053)
1670
1671 2006-08-23  Chris Toshok  <toshok@ximian.com>
1672
1673         * DataGrid.cs: fix flickering when scrolling vertically.
1674
1675 2006-08-23  Chris Toshok  <toshok@ximian.com>
1676
1677         * DataGrid.cs (EndEdit): only invalidate the row header when we
1678         need to.
1679
1680 2006-08-23  Chris Toshok  <toshok@ximian.com>
1681
1682         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
1683         methods.  fixes the flicker when scrolling around.
1684
1685 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1686
1687         * FileDialog.cs: Making sure the control is created before we get a 
1688           chance to use it with BeginInvoke (Fixes #79096)
1689
1690 2006-08-23  Chris Toshok  <toshok@ximian.com>
1691
1692         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
1693         width to use when painting the rows.
1694
1695 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1696
1697         * TextBoxBase.cs:
1698           - Throw ArgumentException if a negative value is passed to SelectionLength
1699           - Update the selection end if start is moved. end needs to be always
1700             after start. (Fixes #79095)
1701           - Track selection length; MS keeps the selection length even if start
1702             is changed; reset on all other operations affection selection
1703
1704 2006-08-22  Jackson Harper  <jackson@ximian.com>
1705
1706         * TreeView.cs: Make sure both scrollbars get displayed and sized
1707         correctly when the other bar is visible.
1708         - Use the original clip rectangle for checking if the area between
1709         the two scrollbars is visible, not the viewport adjusted clipping
1710         rectangle.
1711
1712 2006-08-22  Jackson Harper  <jackson@ximian.com>
1713
1714         * Binding.cs: We don't use IsBinding because it requires the
1715         control to be created, which really shouldn't be necessary just to
1716         set a property on the control.
1717
1718 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1719
1720         * ComboBox.cs: Some CB.ObjectCollection methods must throw
1721         ArgumentNullReferenceException when the argument is null.
1722
1723 2006-08-21  Jackson Harper  <jackson@ximian.com>
1724
1725         * Timer.cs: Track the thread that the timer is started in (NOT
1726         CREATED), this way messages for it will only be triggered on its
1727         queue.
1728         * XEventQueue.cs: Track the timers here, this makes timers per
1729         thread, like MS.
1730         * XplatUIX11.cs: The timers are moved to the XEventQueue.
1731
1732 2006-08-19  Chris Toshok  <toshok@ximian.com>
1733
1734         * XplatUIX11.cs: after further communication with pdb, we get the
1735         best of both worlds.  SetZOrder working for un-Mapped windows, and
1736         no X errors for un-mapped windows.
1737
1738 2006-08-19  Chris Toshok  <toshok@ximian.com>
1739
1740         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
1741         as it was causing pdn toolbars to not have the correct stacking.
1742
1743 2006-08-18  Mike Kestner  <mkestner@novell.com> 
1744
1745         * ListView.cs : guard against negative ClientArea.Width in scrollbar
1746         calculation.  Not sure why control should ever be setting a negative
1747         width though.  Fixes #78931.
1748
1749 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1750
1751         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
1752         null items in ObjectCollection class.
1753         * ListBox.cs.: Likewise.
1754
1755 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
1756
1757         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
1758           as the base method in ThemeWin32Classic should work fine.
1759           Fixed bug #78607.
1760
1761 2006-08-18  Jackson Harper  <jackson@ximian.com>
1762
1763         * Binding.cs: When validating if the value entered doesn't convert
1764         properly reset to the old value.
1765         * RadioButton.cs: Don't fire click when we get focus.
1766
1767 2006-08-18  Jackson Harper  <jackson@ximian.com>
1768
1769         * FileDialog.cs: Paint the selection on the directory combobox the
1770         same way as on MS. 
1771
1772 2006-08-17  Jackson Harper  <jackson@ximian.com>
1773
1774         * ErrorProvider.cs: Don't allow the error control to be selected.
1775         * Control.cs: Don't send the SetFocus messages, the control
1776         activation will do this, and if we do it blindly here validation
1777         does not work.
1778
1779 2006-08-17  Jackson Harper  <jackson@ximian.com>
1780
1781         * Control.cs:
1782         * ContainerControl.cs: Make validation events fire in the correct
1783         order.  TODO: For some reason the first validation event is not
1784         getting fired.
1785
1786 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1787
1788         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
1789
1790 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1791
1792         * ComboBox.cs : implement scroll wheel support for popped-down
1793         state. Fixes #78945. 
1794
1795 2006-08-17  Jackson Harper  <jackson@ximian.com>
1796
1797         * TreeView.cs: Specify treeview actions (old patch that didn't get
1798         committed for some reason).
1799         - Don't let the mouse wheel scroll us too far.  Just want to make
1800         the bottom node visible, not scroll it all the ways to the top.
1801
1802 2006-08-17  Jackson Harper  <jackson@ximian.com>
1803
1804         * XplatUIX11.cs: Mouse wheel events go to the focused window.
1805
1806 2006-08-17  Mike Kestner  <mkestner@novell.com> 
1807
1808         * ComboBox.cs : don't do mouseover selection in simple mode.
1809
1810 2006-08-16  Jackson Harper  <jackson@ximian.com>
1811
1812         * Form.cs: Fire the closing events for all the mdi child windows
1813         when a window is closed.  If the cancel args are set to true, the
1814         main window still gets the event fired, but it doesn't not close.
1815         * MdiWindowManager.cs: Do this closing cleanup in a Closed
1816         handler, instead of when the button is clicked, so cancelling the
1817         close works correctly.
1818         * ComboBox.cs: Send the mouse down to the scrollbar.
1819
1820 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1821
1822         * ListBox.cs: When passing 'null' to SelectedItem,
1823         set SelectedIndex to -1, to unselect items. This is the
1824         observed behaviour in .Net.
1825
1826 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
1827
1828         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
1829           MS flags saying there won't be any. (fixes #78800)
1830         * Control.cs (HandleClick): Made virtual
1831
1832 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
1833
1834         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
1835           cultures. Fixed bug #78399.
1836
1837 2006-08-16  Jackson Harper  <jackson@ximian.com>
1838
1839         * Form.cs: Use the MdiClients MdiChildren property to access
1840         MdiChildren instead of creating the array from the child controls.
1841         * MdiClient.cs: Maintain a separate array of the mdi children, so
1842         that insertion order is maintained when the Z-order is changed.
1843
1844 2006-08-16  Mike Kestner  <mkestner@novell.com> 
1845
1846         * ListView.cs : add an ItemComparer and default to it for sorting.
1847         Fixes #79076, but sorting needs a complete overhaul to be compat with
1848         MS.
1849
1850 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
1851
1852         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
1853
1854 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1855
1856         * Hwnd.cs (Mapped): Properly traverse the tree
1857
1858 2006-08-15  Chris Toshok  <toshok@ximian.com>
1859
1860         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
1861         pass manager.Current.GetType() to ParseData.  It has to be the
1862         property type.  So, hold off doing the ParseData until we're in
1863         SetPropertyValue where we know the type.  This fixes the crash in
1864         #78821 but the textbox is still empty.
1865
1866 2006-08-15  Chris Toshok  <toshok@ximian.com>
1867
1868         * DataGrid.cs:
1869         - when we're scrolling, only call Edit() again if the
1870         current cell is still unobscured. Fixes bug #78927.
1871         - when handling mousedown on a cell, ensure the cell is visible
1872         before calling Edit.
1873         - remove the properties from DataGridRow, and remove the
1874         DataGridParentRow class altogether.
1875         
1876
1877 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1878
1879         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
1880           fire OnTextChanged by ourselves. There's no point calling base,
1881           we don't set the base value anywhere else. Fixes #78773.
1882
1883 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1884
1885         * ListBox.cs: Call CollectionChanged when modifying
1886         an item from Items indexer, to update the actual items
1887         in the list box.
1888
1889 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1890
1891         * PrintDialog.cs: Small fixes for focus and a pair of checks,
1892         to match .Net behaviour.
1893
1894 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1895
1896         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
1897
1898 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
1899
1900         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
1901
1902 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
1903
1904         * MessageBox.cs: Prevent potential NRE exception.
1905         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
1906
1907 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
1908
1909         * MessageBox.cs: Calculate the owner of a messagebox, also make
1910           it topmost. Fixes #78753
1911
1912 2006-08-14  Chris Toshok  <toshok@ximian.com>
1913
1914         * XplatUIX11.cs: A couple of fixes so that metacity will let us
1915         programmatically move windows.  first, set the PPosition hint as
1916         well as the USPosition hint.  Second include some code from pdb
1917         that sets the window type to NORMAL when we set the transient for
1918         hint.  This is because, in the absence of a window type, metacity
1919         thinks any window with TransientFor set is a dialog, and refuses
1920         to let us move it programmatically.  fascists.
1921
1922 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
1923
1924         * XplatUIX11.cs: When setting normal hints, take into consideration
1925           an different hints previously set so we don't delete them (fixes #78866)
1926
1927 2006-08-12  Chris Toshok  <toshok@ximian.com>
1928
1929         * ToolBarButton.cs: make Layout return a boolean, if something to
1930         do with the button's layout changed.
1931
1932         * ToolBar.cs:
1933         - add another parameter to Redraw, @force, which all existing
1934           calls set to true.
1935         - make the Layout function return a boolean which is true if the
1936           layout has actually changed.  Redraw now uses this (and @force)
1937           to determine when to invalidate.  At present the only place
1938           where @force can be false is the call from OnResize, when
1939           background_image == null.  So, resizing a toolbar when the
1940           layout doesn't change results in no drawing.
1941
1942 2006-08-12  Chris Toshok  <toshok@ximian.com>
1943
1944         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
1945         the VScrollBar and HScrollbar reversed.  oops.
1946
1947         * DataGrid.cs: fix the logic that assigns sizes to the implicit
1948         scrollbars.  we were assigning them twice (once in
1949         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
1950         therefore causing two scrollbar resizes (and redraws?) to happen
1951         per grid resize.
1952
1953 2006-08-12  Chris Toshok  <toshok@ximian.com>
1954
1955         * ToolBarButton.cs: redraw the entire button if the theme tells us
1956         to.
1957
1958         * Theme.cs: add ToolBarInvalidateEntireButton.
1959
1960         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
1961         buttons, just the border.
1962
1963         * ThemeNice.cs: redraw the entire toolbar button since we need to
1964         draw the highlight image.
1965
1966         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
1967         we need to redraw the entire button (not just the border).
1968
1969 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
1970
1971         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
1972           for vertical bars. Fixes the mismatches shown by #78513
1973
1974 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
1975
1976         * FileDialog.cs: If a saved/remembered path doesn't exist
1977           anymore, fall back to "Desktop".
1978
1979 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
1980
1981         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
1982           parent. It's apparently legal to not have one
1983         * XplatUIX11.cs:
1984           - SetZOrder: Don't try to set Z-Order on an unmapped window
1985           - CreateWindow: 0,0 are legal coordinates for a window. don't move
1986             it unless the coordinates are negative
1987
1988 2006-08-10  Mike Kestner  <mkestner@novell.com>
1989
1990         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
1991         when setting to null per msdn docs.  Fixes #78854.
1992
1993 2006-08-10  Chris Toshok  <toshok@ximian.com>
1994
1995         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
1996         flickering by setting a clip rectangle on the Graphics when we
1997         need to redraw just a particular menuitem.  Also, rename "OnClick"
1998         to "OnMouseDown" to reflect what it actually is.
1999         
2000         * Form.cs: track the OnMouseDown change.
2001
2002 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
2003
2004         * CommonDialog.cs: Properly inherit the CreateParams from the form
2005           and only change what we need. Fixes #78865
2006
2007 2006-08-10  Chris Toshok  <toshok@ximian.com>
2008
2009         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
2010         flickering in flat mode (and most of the flickering in general) by
2011         only invalidating the button border (and not the entire rectangle)
2012         when the state changes.  A couple of cases still flicker:
2013         ToggleButtons, and the dropdown arrow case when the user mouse
2014         ups.
2015
2016 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
2017
2018         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
2019           for german keyboards. Numlock state shouldn't affect the behaviour
2020           of the Del key. Fixes bug #78291.
2021
2022 2006-08-10  Chris Toshok  <toshok@ximian.com>
2023
2024         * ListControl.cs: remove the items.Clear line from BindDataItems,
2025         as this is the first thing done by both subclasses in their
2026         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
2027         passed -1, refresh the list.  This gets databinding working when
2028         the datasource is set on the list before the datasource is
2029         populated (as in wf-apps/ReportBuilder.)
2030
2031         * ComboBox.cs: remove the argument to BindDataItems.  This call
2032         should really go away, and be initiated by the ListControl code.
2033
2034         * ListBox.cs: same.
2035
2036 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2037
2038         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
2039           if no data is in the document when the control is displayed
2040
2041 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
2042
2043         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
2044           yes (fixes #78806)
2045         * TextControl.cs: 
2046           - PositionCaret: Allow positioning of caret but don't call methods 
2047             requiring a handle if the window isn't created yet
2048           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
2049           - owner_HandleCreated: Don't position the caret, just update it's 
2050             location. User might have already set a different position
2051
2052 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2053
2054         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
2055           windows. Screws up the returned coordinates for child windows. 
2056           Fixes #78825. I'm hoping this doesn't break something, since the
2057           code was explicitly put in 8 months ago, but no bug was attached.
2058           Menus still seem to work properly.
2059
2060 2006-08-08  Chris Toshok  <toshok@ximian.com>
2061
2062         * DataGrid.cs: make BeginInit/EndInit actually do what they're
2063         supposed to do - delay data binding until the EndInit call.  Also,
2064         make the table style collection's CollectionChangeAction.Refresh
2065         work properly.
2066
2067         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
2068         (with action = Refresh) when a consituent table's MappingName is
2069         changed.
2070
2071 2006-08-08  Chris Toshok  <toshok@ximian.com>
2072
2073         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
2074         Invalidate, since changing the text can change the size of the all
2075         toolbar buttons.
2076
2077 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2078
2079         * Form.cs (AddOwnedForm): Still need to add the form to our listif
2080           we don't have it yet
2081
2082 2006-08-08  Chris Toshok  <toshok@ximian.com>
2083
2084         * PrintControllerWithStatusDialog.cs: don't .Close() the status
2085         dialog, as this causes X errors later on, since we actually
2086         destroy the window.  Instead, .Hide() it.
2087
2088 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2089
2090         * ComboBox.cs: Added focus reflection for popup window
2091         * XplatUIX11.cs: 
2092           - Removed transient setting for non-app windows for now, not sure it
2093             was needed
2094           - Fixed logic checking if we have captions when deciding 
2095             override_redirect, WS_CAPTION is two bits and a 0 check was not
2096             sufficient
2097           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
2098             complicated
2099         * Form.cs: 
2100           - AddOwnedForm: Don't just add the form to the list, call the property
2101             to ensure the driver is informed about the ownership as well
2102           - CreateHandle: Set the TopMost status in the driver if we have an owner
2103         * XplatUI.cs: Fixed debug statement
2104
2105 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
2106         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2107           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
2108           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
2109           TrackBarRenderer.cs: Make constructor private.
2110         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
2111         * ProfessionalColorTable.cs: Make properties virtual.
2112
2113 2006-08-06  Duncan Mak  <duncan@novell.com>
2114
2115         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
2116         is not changing.
2117
2118 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2119         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2120           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
2121           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
2122           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
2123           Initial import of new 2.0 classes.
2124
2125 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2126         * Application.cs: Add 2.0 VisualStyles properties.
2127
2128 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2129         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
2130           XplatUIX11.cs: Create property to allow access to existing private
2131           variable "themes_enabled"
2132
2133 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2134
2135         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
2136         file size, as otherwise our class libraries fail using windows. Fixes
2137         bug #78759.
2138
2139 2006-08-04  Jackson Harper  <jackson@ximian.com>
2140
2141         * Form.cs:
2142         * XplatUIX11.cs: Move the toolwindow window manager creation into
2143         the X11 driver, this way on win32 we can let windows create/handle
2144         the toolwindows.
2145
2146 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2147
2148         * PrintDialog.cs: Remove some redundant checks, add some others,
2149         clean some code, and move the focus to the text boxes when the
2150         values are incorrect.
2151
2152 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
2153
2154         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
2155
2156 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2157
2158         * NumericUpDown.cs: Setting the Minimum and Maximum is now
2159           handled correctly. Fixes bug #79001.
2160
2161 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2162
2163         * PrintDialog.cs: The "Copies" numeric up down must have
2164         set the Minimum property to 1; only if the value is bigger
2165         than 1, activate "Collate" check box. This is the behaviour of .Net.
2166         Also modify the Document elements only if it is not null.
2167
2168 2006-08-03  Jackson Harper  <jackson@ximian.com>
2169
2170         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
2171         length. (We have a larger array then actual node count).
2172                 
2173 2006-08-03  Jackson Harper  <jackson@ximian.com>
2174
2175         * ComboBox.cs: Don't show selection by default.
2176         - The SelectAll isn't needed here, since the focus code should do
2177         that
2178         - DDL style lists to manual selection drawing, so when they
2179         get/lose focus they have to invalidate.
2180
2181 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
2182
2183         * TextBoxBase.cs: Don't always show all selections by default.
2184
2185 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
2186         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
2187           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
2188           Fixed various typos.
2189
2190 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2191
2192         * Control.cs: Removing the controls in a ControlCollection with
2193           Clear now hides the controls as expected. Fixes bug #78804. 
2194
2195 2006-08-03  Jackson Harper  <jackson@ximian.com>
2196
2197         * Control.cs: Revert previous focus patch, it breaks reflector.
2198
2199 2006-08-03  Jackson Harper  <jackson@ximian.com>
2200
2201         * ComboBox.cs: Cleanup selection and focus with the combobox.
2202         This also eliminates some duplicated keyboard code, since now
2203         everything is handled by the main class.
2204         - Make list selection work on mouse up instead of down, to match
2205         MS.
2206
2207 2006-08-02  Jackson Harper  <jackson@ximian.com>
2208
2209         * Control.cs: Setting focus needs to go through the whole
2210         selection mechanism.
2211
2212 2006-08-02  Chris Toshok  <toshok@ximian.com>
2213
2214         * PrintPreviewDialog.cs: change MinimumSize to use
2215         base.MinimumSize so it works.
2216
2217 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
2218
2219         * TextControl.cs:
2220           - UpdateCaret: Added sanity check in case caret isn't defined yet
2221           - Line.Delete: Now updating selection and caret markers if we're
2222             transfering a node (Properly fixes #78323)
2223           - SetSelectionEnd: Added sanity check
2224         * TextBoxBase.cs: Removed broken attempt to fix #78323
2225
2226 2006-08-01  Chris Toshok  <toshok@ximian.com>
2227
2228         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
2229         Close() call is handled in Form, not here.
2230
2231 2006-08-01  Chris Toshok  <toshok@ximian.com>
2232
2233         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
2234         layout/rendering.
2235
2236         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
2237         for sizes < 100% zoom.  The code now aggressively attempts to keep
2238         from calling document.Print (), and tries not to use the scaling
2239         g.DrawImage whenever possible (it still does if you scale to >
2240         100%, since usually that involves huge images).
2241
2242         * PrintPreviewControl.cs: hook up the close button.
2243
2244 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
2245         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
2246           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
2247           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
2248           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
2249           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
2250           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
2251           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
2252           Removed [Serializable] for 2.0 Event Handlers.
2253
2254 2006-07-31  Jackson Harper  <jackson@ximian.com>
2255
2256         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
2257         * TextControl.cs: Uncomment out the body of this method.
2258
2259 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
2260
2261         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
2262           standard cursors.
2263
2264 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2265
2266         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
2267           that embed TextBox and need selections visible even if textbox is not
2268           focused to enforce that behaviour.
2269         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
2270           selection drawing
2271
2272 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2273
2274         * TextControl.cs:
2275           - Added new SetSelectionStart/SetSelectionEnd overloads
2276           - Fixed viewport width assignment to be accurate
2277           - Adjusted alignment line shift calculations to allow cursor on right
2278             aligned lines to be always visible at the right border (like MS)
2279         * TextBoxBase.cs:
2280           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
2281           - TextBoxBase_SizeChanged: recalculating canvas on size changes
2282           - CalculateScrollBars: Use ViewPort size instead of window size, to
2283             properly consider space occupied by the border and scrollbars 
2284             (Fixes #78661)
2285           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
2286             calculations; no longer leaves artifacts
2287           - CaretMoved: Adjusted window scrolling to match MS and fixed several
2288             calculation bugs (Still missing right/center align calculations)
2289
2290 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
2291
2292         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
2293           use of both scroll rect and clip rect, as they do the same.
2294
2295 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2296
2297         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
2298           in the event handler (fixes #78912)
2299
2300 2006-07-31  Chris Toshok  <toshok@ximian.com>
2301
2302         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
2303         grid.ListManager.Count, since grid.ListManager might be null.
2304         This of course begs the question "why are we drawing rows for a
2305         grid with no list manager (and therefor no rows)?"  Fixes the
2306         crash in bug #78929.
2307
2308 2006-07-31  Chris Toshok  <toshok@ximian.com>
2309
2310         * RelatedPropertyManager.cs: Don't always chain up to the parent
2311         ctor.  instead, call SetDataSource if the parent's position is !=
2312         -1.  Fixes the crash in #78822.
2313
2314 2006-07-31  Chris Toshok  <toshok@ximian.com>
2315
2316         * DataGrid.cs (get_ListManager): use field instead of property
2317         accessors for datasource and datamember.
2318         (RowsCount): make internal again.
2319         (OnMouseDown): end edits before resizing columns/rows.
2320         (OnMouseUp): restart edits after resizing columns/rows.
2321
2322 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
2323
2324         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
2325           This fixes the situation where the last set cursor is displayed
2326           whenever the mouse is over scrollbars.
2327
2328 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2329
2330         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
2331         Document properties, as well as initial values.
2332
2333 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
2334
2335         * XplatUIWin32.cs (SetBorderStyle): Setting both border
2336           and ClientEdge results in a 3-pixel border, which is
2337           wrong.
2338
2339 2006-07-28  Jackson Harper  <jackson@ximian.com>
2340
2341         * TreeNodeCollection.cs: Fix the clear method.
2342         - Fix the Shrink also
2343
2344 2006-07-27  Jackson Harper  <jackson@ximian.com>
2345
2346         * TreeView.cs: Make sure the visible order is computed when we
2347         attempt to size the scrollbars (for trees that mess with the
2348         scrolling when they shouldn't.
2349         - Make sure to give the scrollbars valid values.
2350
2351 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2352
2353         * XplatUIX11.cs: Move motion compression code to where it
2354           has less performance impact
2355
2356 2006-07-26  Jackson Harper  <jackson@ximian.com>
2357
2358         * UpDownBase.cs: When the control is selected make the child
2359         controls non selectable, so that a click on them won't do a
2360         focus/unfocus cycle.
2361         - Don't give focus to the text box when the spinner is selected.
2362         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
2363
2364 2006-07-26  Chris Toshok  <toshok@ximian.com>
2365
2366         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
2367         satisfied with this solution.  If the bitmaps are small, we should
2368         just cache them in the PrintPreviewDialog and draw them here.
2369         Also, the layout is broken for the 2-up and 3-up cases.
2370
2371         * Theme.cs: add PrintPReviewControlPaint.
2372
2373         * PrintPreviewDialog.cs: first pass implementation.
2374
2375         * PrintPreviewControl.cs: first pass implementation.  No
2376         scrollbars yet.
2377
2378         * PrintDialog.cs: only validate fields if that particular portion
2379         of the UI is enabled.  Also, set the document's controller to a
2380         PrintControllerWithStatusDialog wrapping the document's print
2381         controller.
2382
2383         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
2384         bring up a SaveFileDialog (i hope we don't want to match the
2385         behavior of the crappy windows file entry) and set the
2386         PrinterSettings.PrintFileName accordingly.
2387
2388 2006-07-26  Jackson Harper  <jackson@ximian.com>
2389
2390         * ContainerControl.cs: Add a field that disables auto selecting
2391         the next control in a container when the container is activated.
2392         * UpDownBase.cs: Don't select the text box when the up down is
2393         selected.
2394
2395 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2396
2397         * XEventQueue.cs: Added methods for peeking (used for compression
2398           of successive events)
2399         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
2400           mouse move events (fixes #78732)
2401
2402 2006-07-25  Jackson Harper  <jackson@ximian.com>
2403
2404         * UpDownBase.cs: Use an internal class for the textbox so that we
2405         can control focus.  the updown control should always have focus,
2406         if either the text area or the buttons are clicked.
2407         - Send the key messages to the textbox, since it never actually
2408         has focus
2409         - Activate and decativate the textbox caret.
2410
2411 2006-07-24  Jackson Harper  <jackson@ximian.com>
2412
2413         * Control.cs: Use the directed select when selecting a control,
2414         this way the container controls override will get called and the
2415         whole ActiveControl chain will get triggered.  TODO: probably need
2416         to make sure this gets done everywhere instead of the old
2417         Select(Control).
2418         * ContainerControl.cs: Implement the directed Select method to
2419         find and activate the correct child control.    
2420         
2421 2006-07-22  Mike Kestner  <mkestner@novell.com>
2422
2423         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
2424         menu handling code so that clicks without a grab work too.
2425         [Fixes #78914]
2426
2427 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
2428
2429         * FileDialog.cs: Enable the BackButton when dirstack has one element.
2430           Added some small optimizations.
2431
2432 2006-07-21  Matt Hargett  <matt@use.net>
2433
2434         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
2435
2436 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
2437
2438         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
2439           tests pass and match MS in some strange border cases.
2440
2441 2006-07-21  Chris Toshok  <toshok@ximian.com>
2442
2443         * ThemeWin32Classic.cs: handle drawing of the relation links and
2444         parent row buttons.
2445
2446         * Theme.cs: change args to DataGridPaintParentRow.
2447
2448         * DataGrid.cs: Don't use controls for the relation links and
2449         parent buttons, so we have to handle all their interactions in
2450         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
2451         when we're navigating through child tables, so we can reinstate
2452         selection, expanded state, current cell, etc.
2453
2454 2006-07-20  Chris Toshok  <toshok@ximian.com>
2455
2456         * ToolBar.cs: When we redraw a button, for whatever reason,
2457         there's no reason to redraw the entire toolbar.  Also, don't call
2458         Control.Refresh from within Redraw, as it's much heavier than
2459         Invalidate (which is really what we want).
2460
2461 2006-07-20  Chris Toshok  <toshok@ximian.com>
2462
2463         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
2464         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
2465         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
2466         traces from within a debug IBindingList datasource
2467         (in mono/winforms/datagrid) for *days*, I've finally gotten things
2468         to work in a similar fashion.
2469
2470 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2471
2472         * ListBox.cs: Don't call Sort () when setting 
2473         the Sorted property to false (avoid an unnecessary sort).
2474
2475 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2476
2477         * ListControl.cs: DataSource should throw an ArgumentException
2478         instead of a normal exception when the argument is not of the 
2479         correct type.
2480
2481 2006-07-20  Mike Kestner  <mkestner@novell.com>
2482
2483         * Control.cs: add InternalPreProcessMessage to allow us to steal
2484         key events before MWF gets its paws on them.  Adapted from a
2485         suggestion by eno.
2486         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
2487         up/down/left/right navigation. Override the new internal control
2488         method to steal the events since they never make it to WndProc.
2489         * ToolBarButton.cs: don't worry about pushed when setting hilight
2490         since the drawing code prefers pushed to hilight. Invalidate on 
2491         Hilight changes. Fixes #78547 and #78525.
2492
2493 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2494
2495         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
2496           the canvas size. Fixes #78868
2497
2498 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
2499
2500         * Splitter.cs: Track requested split position until first layout
2501           is performed. Fixes #78871
2502
2503 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2504
2505         * Application.cs: Removed code that forces 1.x for the version
2506           number if the version started with 0. Not sure why that code was
2507           there and I couldn't find any bugs that indicated we needed it.
2508           Fixes #78869
2509
2510 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
2511
2512         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
2513           ResetDefaults(), just write some output to the console until it's
2514           implemented. Fixes bug #78907 for now. Eliminated two warnings.
2515
2516 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
2517
2518         * PropertyGridView.cs: set StartPosition of drop down forms
2519         so they appear in correct initial spot.  Fixes #78190.
2520
2521 2006-07-19  Mike Kestner  <mkestner@novell.com>
2522
2523         * ThemeWin32Classic.cs: use parent background color when drawing
2524         flat toolbars.  Restructure the conditionals to make sure non-flat
2525         non-Divider toolbars are filled too.  Fixes #78837.
2526
2527 2006-07-19  Mike Kestner  <mkestner@novell.com>
2528
2529         * ListBox.cs: Sort on collection changes even if the handle
2530         isn't created yet.  Fixes #78813.
2531
2532 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2533
2534         * ListControl.cs: DisplayMember should never be null,
2535         and now we assign String.Empty when null is passed to it (this
2536         is the .Net way).
2537
2538 2006-07-17  Mike Kestner  <mkestner@novell.com>
2539
2540         * ListViewItem.cs: restructure Font and subitem Font handling 
2541         to hold a specific font and refer back to owner on null.
2542         Fixes #78761.
2543
2544 2006-07-17  Mike Kestner  <mkestner@novell.com>
2545
2546         * ToolBar.cs: bandaid for side-effect of previous patch which was
2547         discarding explicit heights for non-AutoSize toolbars.  Need to
2548         extend my format tester to deal with AutoSize=false. Fixes #78864.
2549
2550 2006-07-15  Jackson Harper  <jackson@ximian.com>
2551
2552         * LabelEditTextBox.cs:
2553         * TreeView.cs: Use a new LabelEdit class for node editing, this
2554         class automatically 'closes' itself when it gets the enter key or
2555         loses focus.
2556         - Use the client rectangle when setting the trees scrollbars, so
2557         border style is taken into account.
2558         
2559 2006-07-14  Jackson Harper  <jackson@ximian.com>
2560
2561         * TreeNode.cs:
2562         * TreeView.cs: Make the editing work similar to MSs, firing the
2563         events correctly and ending edits correctly.
2564
2565 2006-07-14  Mike Kestner  <mkestner@novell.com>
2566
2567         * ToolBarButton.cs:
2568         * ToolBar.cs: layout restructuring and redraw enhancements to support
2569         formatting changes gracefully, like setting TextAlign, ImageList, 
2570         ButtonSize, and Appearance.  Handles explicit button sizing quirks
2571         of the MS controls.  Things like flat toolbars ignoring button size
2572         but becoming constant sized at the largest button's size.  Normal
2573         toolbars with an image set cannot be shrunk smaller than the image,
2574         but text can be clipped/ignored.
2575         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
2576         is zero.  Seems like DrawString should be smart enough to not put
2577         anything on screen though. Also trim labels and ellipsize at the char
2578         boundary, not word.
2579         Fixes #78711 and #78483.
2580
2581 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2582
2583         * FolderBrowserDialog.cs: Disable "New Folder" button and
2584           "New Folder" contextmenu menuitem if a folder like "My Computer"
2585           is selected.
2586
2587 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2588
2589         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
2590         * FolderBrowserDialog.cs:
2591           - Use MWFConfig to store and read size and position settings
2592           - Added code to create a new folder (button or context menu).
2593             Use TreeView labeledit to change the name of the new folder.
2594
2595 2006-07-14  Jackson Harper  <jackson@ximian.com>
2596
2597         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
2598         when the tree is scrolled we end editing.
2599
2600 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2601
2602         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
2603           Down arrows
2604
2605 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
2606
2607         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
2608         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
2609         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
2610         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
2611         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
2612         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
2613         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
2614         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
2615         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
2616         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
2617         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
2618         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
2619         ListViewItemSelectionChangedEventHandler.cs,
2620         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
2621         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
2622         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
2623         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
2624         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
2625         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
2626         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
2627         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
2628         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
2629         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
2630         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
2631         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
2632         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
2633         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
2634         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
2635         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
2636         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
2637         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
2638         WebBrowserNavigatingEventHandler.cs, 
2639         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
2640
2641 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
2642
2643         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
2644         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
2645         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
2646         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
2647         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
2648         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
2649         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
2650         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
2651         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
2652         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
2653         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
2654         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
2655         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
2656         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
2657         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
2658         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
2659         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
2660         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
2661         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
2662         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
2663         ListViewItemStates.cs, MaskFormat.cs: Added
2664
2665 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
2666
2667         * PropertyGridView.cs: Fix keyboard navigation of drop down.
2668         Patch from eno for bug 78558.
2669         
2670 2006-07-13  Jackson Harper  <jackson@ximian.com>
2671
2672         * TreeView.cs: When an edit is finished make sure that the
2673         selected node is visible.
2674         - When setting the top/bottom use the scrollbars is_visible, so
2675         everything will be set correctly even if the tree isn't visible
2676         yet.
2677
2678 2006-07-13  Jackson Harper  <jackson@ximian.com>
2679
2680         * ComboBox.cs: Revert the item->index part of my previous patch.
2681         * TreeView.cs: Use LostFocus instead of Leave for detecting when
2682         the edit box has lost focus (duh).
2683         - Just make the edit box not visible when we get return, that will
2684         take the focus, which will call EndEdit
2685         * TreeNode.cs When we start editing, notify the treeview.
2686
2687 2006-07-12  Jackson Harper  <jackson@ximian.com>
2688
2689         * ComboBox.cs: Clear out old items before setting the item list.
2690         This prevents databound controls from having their items added
2691         twice.
2692         - Switch the combobox to use indices whereever possible instead of
2693         using Item's.  This allows usto navigate through lists that have
2694         more then one item with the same string value (ie a, b, b, a).
2695         - Scroll the listboxes scrollbar when a non visible item is
2696         highlighted
2697         - Allow keypress to cycle through all the possible values. For
2698         example if you have b1, b2, b3 and hold down the B key all the
2699         values will be cycled through.
2700         
2701 2006-07-12  Jackson Harper  <jackson@ximian.com>
2702
2703         * TextBoxBase.cs:
2704         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
2705         this using the internal methods.
2706         * Control.cs: Add OnGotFocusInternal.  A new method that allows
2707         controls to "override" OnGotFocus and change focus behavior if
2708         needed.
2709         - Same thing for LostFocus
2710         * ComboBox.cs: Pass off focus to the text control properly.
2711
2712 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
2713
2714         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
2715         * FolderBrowserDialog.cs: Almost a complete rewrite.
2716           - Better support for Environment.Specialfolders
2717           - Added support for MWFVFS
2718           - Made setting SelectedPath work
2719
2720 2006-07-12  Jackson Harper  <jackson@ximian.com>
2721
2722         * Control.cs: Optimze getting all the controls.
2723
2724 2006-07-11  Jackson Harper  <jackson@ximian.com>
2725
2726         * ContainerControl.cs: Override SETFOCUS in the container control,
2727         so that it is not selected on mouse click.
2728
2729 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
2730
2731         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
2732           Hopefully we will have a better way once all of focus is complete.
2733
2734 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
2735
2736         * ThemeWin32Classic.cs: Commented out some debug code and fixed
2737           a compile error with csc.
2738
2739 2006-07-11  Jackson Harper  <jackson@ximian.com>
2740
2741         * Control.cs: When hiding a control only select the next control
2742         if the current control was focused.
2743         - Don't handle enter/leave when setting/killing focus, this is
2744         done by the container control.
2745         - Remove is_selected, it's not needed anymore.
2746         - Add utility methods for selecting a child control, and for
2747         firing the Enter/Leave events.
2748         * ContainerControl.cs: When a control is activated fire the
2749         enter/leave events.
2750         - Don't wrap when processing the tab key, so that focus can be
2751         moved outside of the container.
2752         - Use the correct active control
2753
2754 2006-07-11  Jackson Harper  <jackson@ximian.com>
2755
2756         * ComboBox.cs: Remove some debug code that was blinding me.
2757         * UpDownBase.cs: These controls actually aren't implicit, they are
2758         visible to the user.
2759
2760 2006-07-10  Chris Toshok  <toshok@ximian.com>
2761
2762         * DataGrid.cs: move back to the is_adding boolean field.  god i
2763         hate this is_editing/is_adding/is_changing stuff.
2764
2765 2006-07-10  Chris Toshok  <toshok@ximian.com>
2766
2767         * DataGridTableStyle.cs: just check if the property type is bool.
2768         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
2769         Don't use CanRenderType.
2770
2771         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
2772         if our text == NullText.  Remove CanRenderType.
2773
2774         * DataGridBoolColumn.cs: nuke CanRenderType.
2775
2776         * DataGrid.cs: reenable some code to end the current edit inside
2777         of set_CurrentCell.  This fixes the other 1.1.16 regression.
2778         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
2779         Also, remove the visible_row_count arg from CalcRowHeaders, since
2780         we don't need to worry about the actual height of the area.
2781
2782 2006-07-10  Chris Toshok  <toshok@ximian.com>
2783
2784         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
2785         mode, just return.
2786
2787         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
2788         the real sense of the IsInEditOrNavigateMode property (true =
2789         navigate, false = edit).  Also, update OnKeyPress to reflect this.
2790
2791         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
2792         column style exists, we still need to set its property descriptor
2793         to match up with our list manager.
2794
2795 2006-07-10  Chris Toshok  <toshok@ximian.com>
2796
2797         * ThemeWin32Classic.cs: implement the new row/header painting
2798         approach.  The parent row painting will likely go away and
2799         replaced with label controls, but the rest seems to work ok (and
2800         efficiently).
2801
2802         * Theme.cs: change the way we draw datagrid rows.  we don't draw
2803         the row headers as a block now.  Instead we draw them in the
2804         normal draw-row loop.  Add some calls for drawing parent rows and
2805         relation rows.
2806
2807         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
2808         a default table style.  Set the defaults from ThemeEngine.Current,
2809         not SystemColors.  Fix lots of misc issues with property setters.
2810
2811         * DataGrid.cs: move loads of style information out of this class
2812         as it's being duplicated with DataGridTableStyle.  keep track of a
2813         special DataGridTableStyle for the properties we used to mirror
2814         here.  Switch all the style properties to access this table style
2815         instead of instance fields of this class.  Also add a internal
2816         class to represent parent rows (more needs to be stored here, like
2817         the selection state from the parent table, as well as the
2818         expansion state.)  Also, for datasources with relations, do the
2819         right thing for collapse/expand, and add support for the
2820         navigation/parent row buttons.
2821
2822         Lastly, fix the crash in the 1.1.16 build.
2823
2824         * GridTableStylesCollection.cs: make the explicit interface
2825         implementations call the class's methods as opposed to duplicating
2826         them.
2827
2828         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
2829         0 so the text doesn't jump around when we move the cursor.
2830
2831 2006-07-10  Jackson Harper  <jackson@ximian.com>
2832
2833         * TextBoxBase.cs:
2834         * ListBox.cs: Match MS's ToString (this makes debugging focus
2835         stuff infinitely easier).
2836
2837 2006-07-10  Jackson Harper  <jackson@ximian.com>
2838
2839         * Control.cs (SelectNextControl): When checking the control's
2840         parent use this instead of ctrl.parent so that null can be passed
2841         to SelectNextControl. (I have unit tests for this).
2842         - Remove unused var.
2843
2844 2006-07-10  Chris Toshok  <toshok@ximian.com>
2845
2846         * CurrencyManager.cs: correct one regression, the removal of the
2847         finalType field.  Also, add a MonoTODO on CanAddRows, implement
2848         Refresh() correctly, and fix some event emission in
2849         ListChangedHandler.
2850
2851 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
2852
2853         * FileDialog.cs: Don't use brackets for new folders if they exist
2854           under *nix. Instead use -(number of existing folders +1).
2855
2856 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
2857
2858         * FileDialog.cs:
2859           - Fixed really nasty bug #78771
2860           - Don't block the whole GUI when reading directories with a lot of
2861             entries. Use an other thread instead and call BeginInvoke to
2862             update the ListView in MWFFileView
2863
2864 2006-07-07  Chris Toshok  <toshok@ximian.com>
2865
2866         * Control.cs (Dispose): release any Capture when disposing.
2867
2868 2006-07-07  Chris Toshok  <toshok@ximian.com>
2869
2870         * LinkLabel.cs (Select): if we chain up to the parent, set
2871         focused_index to -1 so we'll search for the first available link
2872         the next time the user tabs into us.  Also, if the direction is
2873         backward and focused_index == -1, start the search from the last
2874         element.
2875
2876 2006-07-07  Chris Toshok  <toshok@ximian.com>
2877
2878         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
2879         is beyond the end of the text, don't do anything.
2880         (CreateLinkPieces): set our ControlStyles.Selectable based on
2881         whether or not we have any links.
2882         (Link.Invalidate): use a loop instead of foreach.
2883         (Link.set_Start): null out owner.sorted_links so it'll be
2884         recreated by CreateLinkPieces.
2885
2886 2006-07-06  Chris Toshok  <toshok@ximian.com>
2887
2888         * LinkLabel.cs: revert the SetStyle change.
2889
2890 2006-07-06  Chris Toshok  <toshok@ximian.com>
2891
2892         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
2893         (OnEnableChanged): s/Refresh/Invalidate
2894         (OnGotFocus): if we have a focused index already, refocus it (so
2895         if we mouse out/in to the window it'll focus the right link).
2896         (OnKeyDown): move the tab handling out of here.
2897         (OnLostFocus): don't set focused_index to -1, so we can refocus it
2898         when we lose focus.
2899         (OnMouseDown): don't Capture here - Control handles it.  Also,
2900         focus the active link.
2901         (OnMouseUp): don't deal with Capture.
2902         (OnPaintBackgroundInternal): remove.
2903         (OnTextAlignChanged): CreateLinkPieces before calling the
2904         superclass's method.
2905         (OnTextChanged): call CreateLinkPieces before calling superclass's
2906         method.
2907         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
2908         move around.
2909         (Select): implement this, moving the selection between different
2910         links, and call parent.SelectNextControl if we don't have another
2911         link to focus in the given direction.
2912         (CreateLinkPieces): call Invalidate instead of Refresh.
2913         
2914 2006-07-06  Chris Toshok  <toshok@ximian.com>
2915
2916         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
2917         new LinkLabel internals.
2918
2919         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
2920         over pieces looking for active/focused/etc links.  also, deal with
2921         runs of text (and links) with embedded \n's in them, and use
2922         MeasureCharacterRanges instead of MeasureString to figure out the
2923         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
2924         two-step.
2925
2926 2006-07-04  Jackson Harper  <jackson@ximian.com>
2927
2928         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
2929         XKB or key auto repeat, do it manually.  Without key auto repeat,
2930         when a key is held down we get key press, key release, key press,
2931         key release, ... with auto repeat we get key press, key press, key
2932         press ..., and then a release when the key is actually released.
2933
2934 2006-07-03  Jackson Harper  <jackson@ximian.com>
2935
2936         * TabControl.cs:
2937         * ThemeWin32Classic.cs: Tabs do not obey normal background color
2938         rules, they are always control color regardless of the background
2939         color.
2940
2941 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
2942
2943         * FileDialog.cs: Added internal class MWFConfig.
2944           Removed Registry support and replaced it with support for the new
2945           MWFConfig class. See MWFConfig comments for more information.
2946
2947 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
2948
2949         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
2950           rectangle. Added some patches from eno from bug #78490 and fixed
2951           the arrow position for small up and down CPDrawScrollButtons.
2952
2953 2006-06-30  Jackson Harper  <jackson@ximian.com>
2954
2955         * InternalWindowManager.cs: Remove some debug code.
2956         * Form.cs: When an MdiParent is set to null, the window is
2957         "detatched" and becomes a normal window.
2958         * MdiClient.cs: Don't bring the new child form to the front until
2959         it is activated (setting it as active does this), this makes the
2960         previously active forms titlebar get redrawn as inactive.
2961
2962 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
2963
2964         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
2965           with later controls
2966
2967 2006-06-29  Mike Kestner  <mkestner@novell.com>
2968
2969         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
2970         arrow in keynav state.  Fixes #78682.
2971
2972 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
2973
2974         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
2975           order (fixes #78393)
2976
2977 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
2978
2979         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
2980           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
2981           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
2982           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
2983           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
2984           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
2985           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
2986           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
2987           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
2988           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
2989           enumerations (FlagsAttribute, SerializableAttribute, added/removed
2990           values)
2991
2992 2006-06-28  Mike Kestner  <mkestner@novell.com>
2993
2994         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
2995
2996 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
2997
2998         * PropertyGrid.cs,
2999           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
3000           item lines from other area (It also makes BackColor consistent and
3001           compatible with .NET). Fixed bug #78564.
3002
3003 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
3004
3005         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
3006         Patch from Eno for #78555.
3007
3008 2006-06-27  Chris Toshok  <toshok@ximian.com>
3009
3010         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
3011
3012         * DataGridColumnStyle.cs: same.
3013
3014         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
3015         
3016         * DataGridDrawingLogic.cs: nuke.
3017
3018 2006-06-27  Chris Toshok  <toshok@ximian.com>
3019
3020         * DataGridTableStyle.cs: clean up the constructors, and build the
3021         list of child relations for this table.  I have no idea if this is
3022         where we should be doing it (it probably isn't), but since we're
3023         already iterating over the properties..
3024
3025         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
3026         struct and array for keeping track of row information, similar to
3027         what's shown in a hack on
3028         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
3029
3030         * Theme.cs: be consistent about the naming of DataGrid methods,
3031         prefering ColumnWidths and RowHeights over columnsWidths and
3032         RowsHeights.
3033
3034         * ThemeWin32Classic.cs: same, and also add support for variable
3035         sized rows (and the +/- expansion icons for related rows).
3036
3037 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3038
3039         * TextBoxBase.cs: Applied Eno's patch from #78660
3040
3041 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3042
3043         * Form.cs (ScaleCore): We don't want to scale our form if it's
3044           state is minimized or maximized, but we still need to scale our
3045           child windows. Also, added try/finally block to ensure layout
3046           gets reset (Fixes #78697)
3047
3048 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3049
3050         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
3051
3052 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3053
3054         * Form.cs: Fixed c+p error and added check to resize form if minimum
3055           size is bigger than current size (Fixes #78709)
3056
3057 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
3058
3059         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
3060
3061 2006-06-26  Mike Kestner  <mkestner@novell.com>
3062
3063         * ComboBox.cs: only do Keypress handling in the combo when there  
3064         are items in the collection. Fixes #78710.
3065
3066 2006-06-26  Chris Toshok  <toshok@ximian.com>
3067
3068         * Binding.cs: make this work bi-directionally.  also, clear up
3069         other mixups between Push/Pull Data (e.g. we're supposed to pull
3070         data when validating).
3071
3072         * BindingManagerBase.cs: trim some fully qualified collection
3073         types.
3074
3075         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
3076
3077 2006-06-23  Chris Toshok  <toshok@ximian.com>
3078
3079         * PropertyManager.cs: It appears (according to the unit tests)
3080         that PropertyManager doesn't use
3081         PropertyDescriptor.AddValueChanged to track propery value changes
3082         in its datasource, but uses the same scheme as Binding, where it
3083         looks for a <Property>Changed event and binds to it.
3084
3085         Also, according to the docs, IsSuspended always returns false for
3086         a property manager with a non-null datasource.
3087
3088 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
3089
3090         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
3091           need to update the actual DialogResult. (Fixes #78613)
3092
3093 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
3094
3095         * Form.cs (ShowDialog): Release any captures before running the
3096           new message pump (fixes #78680)
3097
3098 2006-06-22  Mike Kestner  <mkestner@novell.com>
3099
3100         * ListView.cs: Layout column widths properly in details mode even 
3101         if HeaderStyle.None is set.  Fixes #78691.
3102
3103 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
3104
3105         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
3106
3107 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
3108
3109         * Control.cs (ContainsFocus): Using new driver method to get focused
3110           window, instead of trying to use internal tracking var, which can
3111           recursion issues (Fixes #78685)
3112         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
3113           XplatUIWin32.cs: Added GetFocus method to return focused window
3114
3115 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3116
3117         * ColorDialog.cs: when the mouse button is pressed inside the color
3118         matrix, don't let the cursor move out of it until the button is
3119         released, which is the behavior on windows. Changed 'colours' by
3120         'colors' to use the same word consistently.
3121
3122 2006-06-21  Chris Toshok  <toshok@ximian.com>
3123
3124         * DataGrid.cs: add in some basic navigation stuff (navigating to a
3125         child relation and back, using a stack).  Also, remove
3126         GetDataSource and the code that calls it - it's not needed.  Also,
3127         track CurrencyManager.ListName's removal.
3128
3129 2006-06-21  Chris Toshok  <toshok@ximian.com>
3130
3131         * CurrencyManager.cs: push some of the original type checking from
3132         BindingContext.CreateBindingManager to here, and remove some of
3133         the finalType stuff.  Need more tests to make sure I've got the
3134         ListName part right, and we might need more in SetDataSource.
3135
3136         * PropertyManager.cs: add a ctor that takes just the datasource,
3137         and no property name.  Make SetDataSource work with a null
3138         property_name, and make Current return the data_source if the
3139         property descriptor is null.  this makes 'string foo = "hi";
3140         BindingContext[foo].Current' return "hi" as it should.
3141
3142         * RelatedCurrencyManager.cs: make this code more generic - there's
3143         no reason the parent manager has to be CurrencyManager, and
3144         there's no reason to pass the DataRelation.  It suffices to use a
3145         BindingManagerBase and PropetyDescriptor.
3146
3147         * RelatedPropertyManager.cs: make a similar change here.
3148         
3149         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
3150         flower I knew it could be.
3151
3152 2006-06-20  Chris Toshok  <toshok@ximian.com>
3153
3154         * PropertyManager.cs: the PropertyChangedHandler is invoked when
3155         data in the source has changed and we need to update the control,
3156         so s/PullData/PushData.
3157
3158         * CurrencyManager.cs: Refresh is meant to update the control from
3159         data in the datasource.  So, s/PullData/PushData.
3160
3161         * BindingContext.cs: add more ugliness (we weren't handling the
3162         case where data_source = DataTable and data_member = column_name).
3163
3164         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
3165         from the perspective of the datasource.  PullData pulls from the
3166         control, PushData pushes to the control.
3167
3168 2006-06-20  Chris Toshok  <toshok@ximian.com>
3169
3170         * BindingContext.cs: rewrite the CreateBindingManager code to
3171         handle navigation paths more or less properly.  This could
3172         definitely stand some more work, in particular to push the
3173         recursion up to the toplevel.  But that relies on fixes in other
3174         places (System.Data comes to mind).
3175
3176         Also, move to a flat hashtable (and encode the twolevel nature of
3177         the dictionary into the hash key).  This lets us implement the
3178         IEnumerable.GetEnumerator method.
3179
3180         * RelatedCurrencyManager.cs: new class.  Update our view based on
3181         our relation and our parent CurrencyManager's position.
3182
3183         * CurrencyManager.cs: split out some logic from the ctor into
3184         SetView, so it can be called from the new RelatedCurrencyManager
3185         subclass.
3186
3187         * RelatedPropertyManager.cs: new class.  Update our datasource
3188         based on the position of our parent CurrencyManager.
3189
3190         * PropertyManager.cs: split out some logic from the ctor into
3191         SetDataSource, so it can be called from the new RelatedDataSource
3192         subclass.  Also, make the Current getter return the value
3193         of the PropertyDescriptor, not the data_source.
3194
3195         * Binding.cs: no need to duplicate the string splitting code here.
3196
3197 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3198
3199         * Control.cs:
3200           - set_Enabled: OnEnabledChanged is not called if the inherited state 
3201             of the control is not altered, even though  we might be changing the
3202             internal state of the control (#78458)
3203           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
3204             OnEnabledChanged, to allow easy altering of any child window state
3205           - OnEnabledChanged: Added code to enable/disable driver window state
3206           - OnParentEnabledChanged: Instead of firing the event, call 
3207             OnEnabledChanged, which will fire the event and also a) set driver
3208             window state and pass the enabled state to any grandchildren (#78458)
3209
3210 2006-06-19  Jackson Harper  <jackson@ximian.com>
3211
3212         * InternalWindowManager.cs: We don't set the cursor explicitly
3213         thats done via the response to NCHITTESTs.
3214         - Don't need to adjust for titlebar heights anymore, the
3215         coordinates are coming in the correct coordinates now (see peters
3216         last patch).
3217
3218
3219 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3220
3221         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
3222           being translated relative to whole window, instead of client window.
3223           That caused broken offsets on mouseclick (and caused gas for our
3224           InternalWindowManager)
3225
3226 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3227
3228         * TextControl.cs:
3229           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
3230           - Undo(): Added replay of cursor move on DeleteChars action; added
3231             calling Undo() again if a recorded cursor move is invalid (to
3232             ensure that some action is performed on Undo)
3233         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
3234
3235 2006-06-16  Jackson Harper  <jackson@ximian.com>
3236
3237         * MdiClient.cs: Instead of just sizing maximized windows when
3238         there is a resize we also have to adjust the Y of minimized
3239         windows, so they stay pinned to the bottom of the mdi container.
3240         - Eliminate separate tracking of the active control, we can just
3241         get this from the controls collection.
3242         - Paint the decorations for the newly activated titlebar so we get
3243         a pretty blue bar.
3244         * InternalWindowManager.cs:
3245         * ThemeWin32Classic.cs: Minimized windows get all three buttons
3246         even if they are a tool window.
3247         
3248 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3249
3250         * TextControl.cs (Undo): Handle non-existent cursor locations in the
3251           undo buffer, these can happen when text was deleted and the cursor
3252           was recorded first. Since we will also have a recorded cursor
3253           after the delete this is not an issue. (Fixes #78651)
3254
3255 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
3256
3257         * AccessibleObject.cs: Remove dependence on Control.is_selected;
3258           instead properly track control states internally (allows us to
3259           remove is_selected from Control)
3260
3261 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3262
3263         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
3264         whose width is not a multiple of 8.
3265
3266 2006-06-13  Jackson Harper  <jackson@ximian.com>
3267
3268         * MdiClient.cs:  Only maximize the next child if the current one
3269         is maximized.
3270
3271 2006-06-13  Chris Toshok  <toshok@ximian.com>
3272
3273         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
3274         modified.  Also, guard against grid or grid_drawing being null in
3275         Invalidate.
3276
3277         * DataGrid.cs: Reformat tons of getters/setters.  In the
3278         DataMember setter, just call SetNewDataSource instead of
3279         duplicating some of its functionality.  In SetNewDataSource, don't
3280         check ListManager for null, since the property getter creates the
3281         object if needed.
3282
3283         * DataGridTableStyle.cs: don't set TableStyle or call
3284         SetDataGridInternal on the column here, it's done in
3285         GridColumnStylesCollection.Add.
3286
3287         * GridColumnStylesCollection.cs: fix all the explicit interface
3288         implementations to just call our methods.  Nuke AddInternal() and
3289         move the body of it to Add().  Also, add a call to
3290         column.SetDataGridInternal to Add().
3291
3292         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
3293         base()+duplicate code.  Also, use the Format property instead of
3294         format to generate an Invalidate ala MS.  Lastly, create the
3295         textbox here, unconditionally.
3296         (set_Format): call Invalidate.
3297         (get_TextBox): no need to call EnsureTextBox.
3298         (Commit): remove the message box.
3299         (Edit) remove the call to EnsureTextBox.
3300         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
3301         (EnterNullValue): no need to check textbox for null.
3302         (HideEditBox): no need to check textbox for null.
3303         (SetDataGridInColumn): add the textbox to the grid's controls.
3304         (EnsureTextBox): nuke.
3305         
3306 2006-06-13  Jackson Harper  <jackson@ximian.com>
3307
3308         * MdiWindowManager.cs: Hook up to the maximized menus paint event
3309         and redraw the buttons when needed. Unhook when the window is
3310         unmaximized.
3311         * MainMenu.cs: Add an internal Paint event, the mdi window manager
3312         needs this so that it can redraw its buttons when the menu is
3313         repainted.
3314         * InternalWindowManager.cs:
3315         * Form.cs: The method order has changed for DrawMaximizedButtons,
3316         so that it can be a PaintEventHandler.
3317         
3318 2006-06-13  Jackson Harper  <jackson@ximian.com>
3319
3320         * MdiClient.cs: When we close a maximized mdi window, the next mdi
3321         window is activated and maximized, even if it wasn't before.
3322         - When  a new window is activated repaint the decorations of the
3323         old one, so that it no longer has the Active "look" (the blue
3324         titlebar).
3325         * InternalWindowManager.cs: Open up CreateButtons to base classes
3326         so they can recreate the buttons on state changes.
3327         - If a window is maximized give it all three buttons
3328         * MdiWindowManager.cs: Create the titlebar buttons when the state
3329         is changed, this is needed because a toolwindow will not have all
3330         three buttons until it is maximized.
3331
3332 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
3333
3334         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
3335           Fixed bug #78609.
3336
3337 2006-06-12  Jackson Harper  <jackson@ximian.com>
3338
3339         * KeysConverter.cs: Make sure we handle the Ctrl special case
3340         if its the only key.
3341         
3342 2006-06-12  Jackson Harper  <jackson@ximian.com>
3343
3344         * Theme.cs: Add a method to get the size of a managed window
3345         toolbar button.
3346         * InternalWindowManager.cs: Remove the ButtonSize property, this
3347         should be retrieved from the theme.
3348         * MdiWindowManager.cs: Get the button size from the theme
3349         * ThemeWin32Classic.cs: Make the method to get the managed window
3350         titlebar button size public.
3351         - Handle the different button sizes of maximized toolwindows
3352         (should match any maximized window).
3353         - Get the titlebar height from the theme, not the WM (which gets
3354         it from the theme).
3355
3356 2006-06-12  Jackson Harper  <jackson@ximian.com>
3357
3358         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
3359         event down to the mdi window manager.
3360         - Expose some extra stuff to base classes
3361         - Make sure to end the Capture on an NC Mouse up, so that we can
3362         get double clicks properly, and the sizing doens't stick.
3363         - When doing PointToClient contain it in the workable desktop
3364         area, this prevents windows from changing size when the cursor is
3365         pulled outside of the working area while sizing.
3366         * MdiWindowManager.cs: When we get a double click maximize the
3367         window.
3368         - Reset the cursor after handling mode changes.
3369
3370 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
3371
3372         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
3373           current desktop, instead of just assuming a 0, 0 origin. This
3374           is needed for our internal window manager, to know the top
3375           margin of the desktop
3376
3377 2006-06-12  Chris Toshok  <toshok@ximian.com>
3378
3379         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
3380         we need this to get rid of the selected background in the bool
3381         column.
3382         (CancelEditing): move the ConcedeFocus call to above the Abort
3383         call.  Also, set is_changing to false and invalidate the row
3384         header if we were changing before.
3385         (ProcessKeyPreviewInternal): remove, since noone outside this
3386         class calls it anymore.  Roll the code into ProcessKeyPreview.
3387         (EndEdit): remove the internal version.
3388         (InvalidateCurrentRowHeader): make private.
3389
3390         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
3391         Keys.Escape handling (and with it the last call to
3392         DataGrid.EndEdit from outside the class.)
3393
3394
3395 2006-06-12  Chris Toshok  <toshok@ximian.com>
3396
3397         * DataGridTextBox.cs (.ctor): isedit defaults to false.
3398         (OnKeyPress): set isedit to true.
3399         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
3400         already handled by the grid.
3401
3402         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
3403         right.  ugh.
3404         (set_DataSource): SetDataSource always returns true, so stop
3405         putting it in an if statement.
3406         (EndEdit): get rid of some {}'s
3407         (ProcessGridKey): return true in case Keys.Escape.
3408         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
3409         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
3410         PositionChanged, stopped connecting to CurrentChanged.
3411         (GetDataSource): simplify this a bunch.
3412         (SetDataSource): change return type from bool to void.
3413         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
3414         to this, and make sure we don't set ListManager.Position inside
3415         set_CurrentCell.
3416         (OnListManagerItemChanged): if we're passed an actual index,
3417         redraw that row.
3418
3419         * CurrencyManager.cs (set_Position): don't call PullData here.
3420
3421 2006-06-09  Jackson Harper  <jackson@ximian.com>
3422
3423         * TreeNode.cs:  Recalculate the visible order before doing the
3424         Expand/Collapse Below calls, because those calls generate an
3425         expose.
3426         - Reduce calls to the TreeView property, which is mildly expensive
3427         by using a local var.
3428         * Form.cs: Layout the MDI child windows when creating the parent
3429         form.
3430         - Don't use the internal constructor anymore
3431         * MdiClient.cs: use the parent form width/height (if available)
3432         when laying out the child windows, we do this because the
3433         mdiclient isn't docked yet when the initial layout is done.
3434         - Don't need an internal constructor anymore.
3435
3436 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3437
3438         * FileDialog.cs: handle access errors when trying to create a folder
3439         or changing to a directory. No need to initialize out parameters.
3440
3441 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3442
3443         * FileDialog.cs: Append a number when creating a new folder if the
3444           folder already exists (use parenthesis instead of square brackets)
3445
3446 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3447
3448         * FileDialog.cs:
3449           - Disabled registry support for windows and added better registry
3450             error checking for other systems (need to investigate why it
3451             works perfectly on my system)
3452           - If a folder already exist show an error MessageBox instead of
3453             trying to create an indexed name.
3454           - Fixed a non intentional typo.
3455
3456 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3457
3458         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
3459
3460 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3461
3462         * FileDialog.cs: When creating a new folder don't crash if the
3463           folder already exists.
3464
3465 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3466
3467         * FileDialog.cs: Allmost a complete rewrite.
3468           - added a "virtual" file system that handles the differences
3469             between unix and windows file systems (especially the directory
3470             structure). Moved most of the directory and file handling code
3471             into the vfs.
3472             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
3473             UnixFileSystem and FSEntry.
3474           - Recently used folder/directory, size, location and used file names
3475             (file name ComboBox) are now stored in the registry and get read
3476             before the dialog shows up (fixes part 6 of bug #78446).
3477           - Creation of new folders/directories is now possible (context menu
3478             or ToolBar). Added TextEntryDialog for this that fills in the gap
3479             until ListView.LabelEdit works.
3480           - Fixed cursor handling (bug #78527) and focus handling for
3481             PopupButtonPanel
3482           - Various "Search in" ComboBox enhancements. The content of the
3483             dropdown listbox now almost matches ms.
3484           - Changed the behaviour when the user switches to SpecialFolder
3485             Recent to show the ListView in View.Details.
3486           - Beside using the ToolBar to change the View property of the
3487             file ListView it is now possible to use the context menu too.
3488
3489 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3490
3491         * ComboBox.cs: Don't create a new ObjectCollection when an item
3492           gets inserted. Just insert the item in the existing object_items
3493           ArrayList.
3494
3495 2006-06-08  Jackson Harper  <jackson@ximian.com>
3496
3497         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
3498         that the treeview and root node checks are done also, this fixes a
3499         regression i caused in the unit tests.
3500
3501 2006-06-07  Wade Berrier <wberrier@novell.com> 
3502
3503         * RichTextBox.cs: More ISO8859-1 -> unicode
3504
3505 2006-06-07  Mike Kestner  <mkestner@novell.com>
3506
3507         * ComboBox.cs : use items to hold highlight/selection so that
3508         collection insertions don't require synchronization.
3509
3510 2006-06-07  Jackson Harper  <jackson@ximian.com>
3511
3512         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
3513         routine.  We now always keep the sized edge at the cursor instead
3514         of computing movement and adjusting rects.  There is one buglet
3515         with this method though when the cursor is moved over area that
3516         the window can not expand too (such as the toolbars on the desktop).
3517
3518 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3519
3520         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
3521         here. Fixes crash on startup in AlbumSurfer.
3522
3523 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
3524
3525         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
3526           values
3527
3528 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3529
3530         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
3531         statement to avoid calling XNextEvent which will block if another thread
3532         took the event that we were expecting. Fixes bug #78605.
3533
3534 2006-06-07  Mike Kestner  <mkestner@novell.com>
3535
3536         * ListView.cs : isolated checkbox clicking from the selection logic.
3537         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
3538
3539 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3540
3541         * Form.cs: Check that the value passed to Form.DialogResult
3542         is a valid enum value.
3543
3544 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3545
3546         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
3547         Computer'. Clicking it in the network view goes to 'My Computer'.
3548         Added CIFS filesystem type. Display the mount point of filesystems.
3549         Avoid duplicate mount points (happens for me with CIFS);
3550
3551 2006-06-06  Jackson Harper  <jackson@ximian.com>
3552
3553         * InternalWindowManager.cs: Draw the maximized windows buttons
3554         when resizing.
3555
3556 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3557
3558         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
3559         all other dialogs. Fixes bug #78585.
3560
3561 2006-06-06  Mike Kestner  <mkestner@novell.com>
3562
3563         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
3564         Only invalidate checkbox on checkstate changes to avoid flicker.
3565         * ListBox.cs : avoid unselect/select when clicking selected item.
3566         avoid reselection flicker for already multiselected items.
3567         Fixes #78382.
3568
3569 2006-06-06  Jackson Harper  <jackson@ximian.com>
3570
3571         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
3572         the parent form so that the menu is removed if needed.
3573
3574 2006-06-06  Mike Kestner  <mkestner@novell.com>
3575
3576         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
3577         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
3578
3579 2006-06-06  Mike Kestner  <mkestner@novell.com>
3580
3581         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
3582
3583
3584 2006-06-06  Jackson Harper  <jackson@ximian.com>
3585
3586         * Control.cs: Use the property (instead of the field) to get the
3587         default cursor so it is instantiated correctly.
3588         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
3589         resizes so we need to manually repaint the window decorations here.
3590         - Set the titlebar button locations as soon as they are created,
3591         otherwise they are not set correctly on win32.
3592         
3593 2006-06-06  Chris Toshok  <toshok@ximian.com>
3594
3595         * CurrencyManager.cs (set_Position): call PullData before
3596         OnCurrentChanged.
3597         (AddNew): after calling IBindingList.AddNew, update our
3598         listposition, and call OnCurrentChanged/OnPositionChanged (without
3599         calling PullData).
3600         (OnCurrentChanged): remove the call to PullData from here.
3601         (OnItemChanged): remove the call to PushData from here.
3602         (OnPositionChanged): change the test from == null to != null to
3603         match the other methods.
3604         (ListChangedHandler): the grossest part of the patch.  Implement
3605         this such that it passes the unit tests in CurrencyManagerTest and
3606         the output more or less matches that of MS's implementation.
3607  
3608 2006-06-06  Mike Kestner  <mkestner@novell.com>
3609
3610         * ListView.cs : only update check state on single click.
3611         * ThemeWin32Classic.cs : fix focus drawing for details view without
3612         fullrowselect.  Fixes #78454.
3613         * XplatUIX11.cs : fix for double click emission.
3614
3615 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3616
3617         * PropertyGridView.cs : Applied Atsushi's patch to fix
3618         font dialog bug  (#78197).
3619
3620 2006-06-05  Jackson Harper  <jackson@ximian.com>
3621
3622         * TreeNode.cs: Compute the next node for expanding/collapsing
3623         correctly. We now factor in nodes without a NextNode
3624         correctly. (Fixes somes cases in nunit-gui).
3625         * InternalWindowManager.cs: Set the bounds when updating the
3626         virtual position of a tool window.
3627         
3628 2006-06-05  Chris Toshok  <toshok@ximian.com>
3629
3630         * DataGrid.cs: rename cached_currencymgr to list_manager.
3631         (set_CurrentCell): move SetCurrentCell code here, and clean it up
3632         some.
3633         (CurrentRow, CurrentColumn): single accessors so we can make the
3634         cursor movement code a lot easier to understand.
3635         (CurrentRowIndex): implement this in terms of CurrentRow.
3636         (BeginEdit): clean this up a bit.
3637         (CancelEditing): sort out the is_editing/is_changing/is_adding
3638         stuff a little.
3639         (EndEdit): minor changes.
3640         (OnKeyDown): add a comment about a (most likely) unnecessary
3641         check.
3642         (OnMouseDown): cancel editing when we click on a row header.  And
3643         use the CurrentRow setter, not CurrentCell.
3644         (ProcessDialogKey): directly call ProcessGridKey.
3645         (UpdateSelectionAfterCursorMove): factor out this common block of
3646         code (it's used everywhere that we move the cursor by updating row
3647         or column).
3648         (ProcessGridKey): pretty substantial overhaul.  Use the
3649         CurrentRow/CurrentColumn properties to make the code a lot more
3650         readable.  Only use the CurrentCell property when we have to
3651         modify both row and column at once.  Tab behavior is still broken,
3652         and Delete is untested.
3653         (Select): if we have no selected rows, set selection_start to
3654         @row.
3655         (EditCurrentCell): rename EditCell this.  It was only ever invoked
3656         with CurrentCell as the arg, so drop the arg and rename it.
3657
3658         * DataGridColumnStyle.cs: clean up the constructors a little, and
3659         drop CommonConstructor().
3660
3661         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
3662         actually get notified when the user hits it.
3663         (ProcessKeyMessage): *substantially* simplify this method.
3664         There's no reason (that I can see) for the textbox to be making
3665         calls into the datagrid at all.  Remove all of them but the ones
3666         for Enter handling.  those will take some more work.
3667
3668         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
3669         calling HideEditBox.
3670         (HideEditBox): if we have an active textbox, render it invisible
3671         without causing a re-layout of the datagrid.
3672
3673 2006-06-05  Mike Kestner  <mkestner@novell.com>
3674
3675         * ListView.cs : fix NRE crasher when focuseditem is cleared by
3676         collection changes by resetting it to Items[0].  Fixes #78587.
3677
3678 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3679
3680         * MessageBox.cs: if the height of the text is larger than the icon_size,
3681         use that. Fixes bug #78575.
3682
3683 2006-06-05  Jackson Harper  <jackson@ximian.com>
3684
3685         * TreeView.cs: Fix line drawing when scrolling.  To do this each
3686         node is basically responsible for drawing its entire horizontal
3687         area.  When drawing a node it draws its parent node lines if
3688         needed.
3689         - Adjust the clip area to the viewport rectangle
3690         - Fix Left/Right key handling to match MS. (It expand/collapses
3691         and moves to parents/first child but does not move selection to
3692         sibling nodes).
3693         - Fix SetTop to work with new bound calculation code
3694         - When scrollbars are no longer needed we need to reset scrolling
3695         vars and recalculate the visible order so the redraw is correct
3696         * TreeNode.cs: We can't expand/collapse nodes with no children.
3697
3698 2006-06-03  John Luke  <john.luke@gmail.com> 
3699
3700         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
3701         so the colors work without dev packages
3702         
3703 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
3704
3705         * Control.cs 
3706           - Select: Implemented to just use activate. Seems to match MS 
3707             behaviour closest. Documented to only do actual control walking 
3708             based on it's parameters if in a container control so I moved 
3709             the code there.
3710           - Removed selection check logic from our internal Select() method
3711         * ContainerControl.cs:
3712           - Select: Moved selection logic from Control here, since MS documents
3713             that containers obey the bool arguments. No longer calling base
3714
3715 2006-06-02  Jackson Harper  <jackson@ximian.com>
3716
3717         * TreeView.cs: If the selected node isn't changed when we get
3718         focus update the previously selected node so that we see the
3719         selection box.
3720
3721 2006-06-02  Mike Kestner  <mkestner@novell.com>
3722
3723         * ComboBox.cs: restructure grab and general mouse event handling.
3724         Make the composite control raise mouse events like it was a single
3725         control for leaves/enters/motion/up/down events.  fix dropdown list
3726         coordinate mangling and refactor it into the scrollbar subclass to
3727         reduce code duplication.  Fixes #78282 #78361 and #78457.
3728
3729 2006-06-02  Mike Kestner  <mkestner@novell.com>
3730
3731         * ScrollBar.cs: remove Capture setting/clearing, as it happens
3732         automatically in the Control.WndProc.
3733
3734 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3735
3736         * FileDialog.cs: fix crash when running SharpChess, which sets the
3737         FilterIndex to 2 with only one Filter.
3738
3739 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3740
3741         * ToolBar.cs: add SizeSpecified property.
3742         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
3743         try to figure out our real size, otherwise fallback to what the
3744         container says.
3745
3746 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
3747
3748         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
3749         * Control.cs (WndProc): MS always calls the DefWndProc to pass
3750           up the event
3751
3752 2006-06-01  Mike Kestner  <mkestner@novell.com>
3753
3754         * ListView.cs: revamp the focus management in ListView.  It still
3755         causes churn of LostFocus/GotFocus emissions on clicks, but it's
3756         better than not handling focus at all.  Will revisit when pdb feels
3757         the general focus handling is solid.  Fixes #78526.
3758
3759 2006-06-01  Jackson Harper  <jackson@ximian.com>
3760
3761         * TreeView.cs: Set the default border style in the constructor.
3762         - Move painting to use OnPaintInternal instead of capturing
3763         WM_PAINT, this is the correct way of doing things
3764         - UpdateBelow shouldn't invalidate the scrollbar area
3765         - Cap the top on update below in case the node was above the top
3766         of the viewport rectangle.
3767         - ExpandBelow and Collapse below need to obey Begin/End Update.
3768         * TreeNode.cs: Make is_expanded internal so the treenode
3769         collection can change it without firing the whole event chain.
3770         * TreeNodeCollection.cs: When clearing all the child nodes make
3771         sure to recalc the visible order.
3772         - Improve algo for remove the top node
3773
3774 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
3775
3776         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
3777           SendMessage directly calling window procedures, which in turn might
3778           call SetFocus()
3779
3780 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
3781
3782         * Control.cs: Don't handle WM_SETFOCUS if the same window already
3783           has focus (works around X11 sending a FocusIn after our SetFocus)
3784         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
3785
3786 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
3787
3788         * Mime.cs: Fix for the NET_2_0 build.
3789           NameValueCollection needs StringComparer now.
3790
3791 2006-05-31  Chris Toshok  <toshok@ximian.com>
3792
3793         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
3794         return (via an out parameter) the starting X of the column.
3795         (UpdateVisibleColumn): track change to FromPixelToColumn.
3796         (HitTest): add a ColumnResize case here.
3797         (DrawResizeLine): new function, probably poorly named.
3798
3799         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
3800         only need to keep one reference.
3801         (set_ListManager): same.
3802         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
3803         Also, add support for HitTestType.ColumnResize.
3804         (OnMouseMove): add column resize behavior here, and change the
3805         cursor to the correct one as we move around the datagrid.
3806         (OnMouseUp): terminate the column resize if we're resizing.
3807         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
3808         for the current cell.
3809         (ConnectListManagerEvents): use cached_currencymgr.
3810         (DisconnectListManagerEvents): fill this in, using
3811         cached_currencymgr.
3812         (SetCurrentCell): remove cached_currencymgr_events handling.
3813         (SetDataMember): only call DisconnectListManagerEvents if
3814         cached_currencymgr is != null.
3815         (SetDataSource): same.
3816         (OnListManagerCurrentChanged): cached_currencymgr_events ->
3817         cached_currencymgr.
3818
3819 2006-05-31  Jackson Harper  <jackson@ximian.com>
3820
3821         * BindingManagerBase.cs: Remove somedebug code that creeped into
3822         SVN.
3823         * TreeNode.cs: We get the indent level dynamically right now, so
3824         don't track it as a member.
3825         * TreeNodeCollection.cs: Make sure all nodes added to the list
3826         have parents, treeviews/topnodes setup properly.
3827         - Don't attempt to track indent level.
3828
3829 2006-05-30  Jackson Harper  <jackson@ximian.com>
3830
3831         * BindingContext.cs: Create the currency manager tables here.
3832         This allows us to more easily create null tables (when bad data
3833         members are used), and more easily create related currency
3834         managers.
3835         * CurrencyManager.cs: All the table creation stuff is done by the
3836         binding context now.
3837         - Current should throw an exception if listposition is -1.
3838         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
3839         been bound yet.
3840
3841 2006-05-30  Mike Kestner  <mkestner@novell.com>
3842
3843         * ListView.cs: allow reexpansion of zero-width column headers.
3844         Fixes #78528.
3845
3846 2006-05-28  Chris Toshok  <toshok@ximian.com>
3847
3848         * CurrencyManager.cs (get_Current): after the late binding
3849         listposition = -1 fix, we need to guard against it here and return
3850         null, otherwise we raise an exception (which is swallowed
3851         elsewhere, and breaks datagrid databinding.)
3852
3853 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
3854
3855         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
3856           than WM_SYSKEY, don't throw if get something unexpected (#78507)
3857
3858 2006-05-26  Jackson Harper  <jackson@ximian.com>
3859
3860         * ControlPaint.cs:
3861         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
3862         values, it's faster and it's all we care about (we don't care if
3863         the names aren't equal).
3864         * KeyboardLayouts.cs: Eliminate some dead code.
3865         - Lazy init things
3866         * X11Keyboard.cs: Lazy init keyboard detection.
3867         - Cleanup access modifiers a little.
3868
3869 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
3870
3871         * XplatUIX11.cs: Once again, attempting to get layout just right.
3872
3873 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
3874
3875         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
3876           the sizes of each link section, that will result in sizes that
3877           match DrawString's layout (Fixes #78391)
3878
3879 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
3880
3881         * FileDialog.cs: If AddExtension property is true autocomplete the
3882           extensions in SaveFileDialog correctly. Fixes bug #78453.
3883           Set MyNetwork and MyComputer to "C:\" for windows. This should
3884           fix part 8 of bug #78446 for now.
3885
3886 2006-05-26  Chris Toshok  <toshok@ximian.com>
3887
3888         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
3889         invalidate the current row header if we need to, but presumably
3890         we'll invalidate the row corrsponding to the bounds or
3891         editingControl.
3892         (GridHScrolled): switch back to this method, as it's part of the
3893         public api.  *sigh*.
3894         (GridVScrolled): same.
3895         (OnMouseWheel): hack up something that more or less works.  Call
3896         GridHScrolled/GridVScrolled directly, instead of duplicating much
3897         of their code here.
3898         (EnsureCellVisibility): reinstate a bunch of this code, since we
3899         can't just set the scrollbar Value and expect to do all the work
3900         in the ValueChanged handler.  Also, Call Update() after scrolling
3901         in one direction so the other XplatX11.ScrollWindow call has the
3902         proper stuff in the proper places.
3903         (EditCell): set is_editing to true before calling .Edit.
3904
3905         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
3906         don't bother comparing first.
3907         (OnKeyPress): call grid.ColumnStartedEditing before calling
3908         base.OnKeyPress.  this will set is_changing and invalidate the row
3909         header if necessary.
3910         (ProcessKeyMessage): for WM_CHAR messages, call
3911         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
3912         and WM_KEYDOWN.
3913         
3914         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
3915         it's done in the DataGrid.
3916         (NextState): call grid.ColumnStartedEditing, which takes care of
3917         invalidating the row header (and setting is_changing).
3918
3919         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
3920         here.  it's done in the DataGrid.
3921
3922 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3923
3924         * Control.cs: allow changing the cursor when the mouse position is
3925         out of bounds but Capture is set.
3926         * LinkLabel.cs: handle the case when the mouse button is pressed on the
3927         linklabel but released somewhere else.
3928
3929 2006-05-25  Jackson Harper  <jackson@ximian.com>
3930
3931         * TreeView.cs: When we get focus if there is no selected node make
3932         it the top node
3933         - Remove some uneeded setup code from Draw.
3934         * TreeNodeCollection.cs: If the tree doesn't have a top node when
3935         a new node is inserted make the new node the top.
3936         * XplatUIX11.cs:
3937         * Timer.cs: Use Utc time so that no local time zone stuff needs to
3938         be used (should be faster).
3939         
3940 2006-05-25  Chris Toshok  <toshok@ximian.com>
3941
3942         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
3943         problem with the last commit.
3944
3945 2006-05-25  Chris Toshok  <toshok@ximian.com>
3946
3947         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
3948         need the invalidate call here, while scrolling right-to-left via
3949         the left arrow key (i.e. moving the editing cell while scrolling).
3950
3951         * DataGrid.cs (.ctor): remove the initialization of
3952         ctrl_pressed/shift_pressed.  We no longer track them using key
3953         up/down handlers, but by using Control.ModifierKeys.  Also, switch
3954         to using ValueChanged handlers on the scrollbars instead of
3955         Scrolled event handlers.  This simplifies a bunch of the scrolling
3956         code.
3957         (GridHValueChanged): rename from GridHScrolled, and change it to
3958         work with the new event args.
3959         (GridVValueChanged): same.
3960         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
3961         (OnMouseWheel): actually scroll the datagrid.  Don't change the
3962         selected cell.
3963         (ProcessGridKey): correct all the keyboard navigation stuff I
3964         could find.  Ctrl up/down/left/right/home/end work now.
3965         (EnsureCellVisibility): correct method name spelling.  Also,
3966         simplify this a touch by not explicitly calling the
3967         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
3968         scrollbar value.
3969         (OnKeyUpDG): no need for this method now.
3970         
3971 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3972
3973         * LinkLabel.cs: display the OverrideCursor when hovering the label.
3974         Fixes bug #78392.
3975
3976 2006-05-25  Chris Toshok  <toshok@ximian.com>
3977
3978         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
3979         r61019.
3980
3981 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
3982
3983         * Application.cs: Moved setting of is_modal and closing to before
3984           we create the control, to allow the event handlers called as a
3985           result of creation affect closing. Also removed Gonzalo's previous
3986           change to setting DialogResult, the behaviour has been moved to 
3987           Form.ShowDialog()
3988         * Form.cs: 
3989           - ShowDialog(): Removed explicit creation of the form, let RunLoop
3990             handle it instead
3991           - ShowDialog(): If no dialog result is set, we need to return Cancel
3992           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
3993             the close is cancelled
3994
3995 2006-05-25  Jackson Harper  <jackson@ximian.com>
3996
3997         * StatusBar.cs: We only need to update the sizes of the other
3998         panels when we have auto size contents.  Also we are only updating
3999         the contents of the panel, not the borders, so compensate for the
4000         border width (TODO: get this width from the theme somehow).
4001         * TreeView.cs: Scrollable is true by default
4002         - Use invalidate instead of refresh where needed
4003         - Factor the scrollable value into scrollbar updating
4004         - Update the scrollbars if the Scrollable property is altered
4005         - Update the selected node if its ImageIndex is changed
4006         - Handle null nodes in UpdateNode (mainly so we don't have to
4007         check if selected is null when updating it
4008         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
4009         are factored into the visible count
4010         - Use VisibleCount for clarity in the code
4011         - When the font is changed we need to recurse through all the
4012         nodes and invalidate their sizes
4013         
4014 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4015
4016         * Application.cs: set the DialogResult to fixed when the main form is
4017         hidden or destroyed while being modal.
4018
4019 2006-05-25  Miguel de Icaza  <miguel@novell.com>
4020
4021         * Theme.cs: Use Tangoified messagebox icons. 
4022
4023         (GetSizedResourceImage): Also cope with width = 0 and do not
4024         trigger a warning in that case (0 means "give me your icon from
4025         the resouce, no special size needed).
4026
4027 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
4028
4029         * Application.cs: Leave runloop if the the main modal form is 
4030           hidden (fixes #78484)
4031
4032 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4033
4034         * BindingContext.cs : reject null datasource in Contains() and
4035           Item[].
4036         * CurrencyManager.cs : check data_member validity when data_source
4037           is dataset. When it is late binding, the initial position is -1.
4038
4039 2006-05-24  Jackson Harper  <jackson@ximian.com>
4040
4041         * TreeNodeCollection.cs: Dont't recalculate the visible order on
4042         inserted nodes that aren't visible.  This changes the
4043         max_visible_order which confuses scrollbar settings.
4044         - Use the enumerator to get the prev node instead of duplicating
4045         code.
4046         * TreeView.cs: Use new method for setting scrollbar values
4047         - Don't set the bounds every time the scrollbar is updated
4048         - When updating below the root node use an invalidate instead of a
4049         refresh to prevent the child controls (scrollbars) from being
4050         refreshed. (UpdateBelow still needs to be reworked anyways).
4051         - Reenable SetBottom now that visible orders are set correctly,
4052         added some debug code incase we ever get bad values there again.
4053         - Set the scrollbar max to 2 less then the max value, this
4054         compensates for the max value being one above the node count, and
4055         for scrollbars adding one extra "notch".
4056         - When drawing image nodes if there is an imagelist we draw the
4057         first image in the list if the supplied image index is out of the
4058         image list's bounds.
4059         
4060 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
4061
4062         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
4063           we receive a size change from the WM (Fixes #78503)
4064
4065 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
4066
4067         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
4068           rectangle (Fixes #78501)
4069
4070 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
4071
4072         * ButtonBase.cs: 
4073           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
4074             as a bitfield.
4075           - Fixed MouseMove to no longer switch pressed state unless the left
4076             mouse button is pressed. Atsushi provided the original patch (#78485)
4077           
4078 2006-05-24  Jackson Harper  <jackson@ximian.com>
4079
4080         * ScrollBar.cs: New internal methods that allow us to change a
4081         couple values on the scrollbar (the most common case is maximum
4082         and large change) without getting multiple invalidates.
4083
4084 2006-05-24  Chris Toshok  <toshok@ximian.com>
4085
4086         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
4087         (Edit): save off the original state in oldState, and set
4088         grid.is_editing to true.
4089         (OnKeyDown): abort editing if escape is pressed.  also, call
4090         NextState if space is pressed.
4091         (OnMouseDown): call NextState.
4092         (NextState): factor out shared code from OnKeyDown and OnMouseDown
4093         here.  Also, only invalidate the row header once (on the initial
4094         is_changing switch) to save on redraws.
4095
4096 2006-05-24  Chris Toshok  <toshok@ximian.com>
4097
4098         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
4099         if the value in the cell is different than it was before.  This
4100         keeps us from triggering a layout when we move around a datarid
4101         with a highlighted cell.
4102         (Edit): suspend layout when creating/positining the text box, and
4103         resume passing false so we don't ever actually re-layout.
4104         (ReleaseHostedControl): same.
4105         (EnsureTextBox): reformat slightly, and set WordWrap to false.
4106
4107         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
4108         control-key sequences should go to the datagrid - remove that
4109         lock.  Also, modify the conditions under which we move between
4110         cells when moving the cursor within a cell, and remove the "this"
4111         and "base" from field accesses.  We weren't even consistent, given
4112         they all were in the base class.
4113
4114 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
4115
4116         * Binding.cs : (.ctor)
4117           An obvious NRE fix for BindingTest.CtorNullTest().
4118
4119 2006-05-23  Chris Toshok  <toshok@ximian.com>
4120
4121         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
4122         them between lines.  This fixes some quirks editing cells in the
4123         datagrid.
4124
4125 2006-05-23  Jackson Harper  <jackson@ximian.com>
4126
4127         * TreeView.cs: Use begin/end update when doing expand/collapse all
4128         so that we don't get flicker on the scrollbar.
4129
4130 2006-05-23  Jackson Harper  <jackson@ximian.com>
4131
4132         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
4133         treenode calculations to be independant of the painting code. To
4134         do this nodes track a visible order which is calculated by the
4135         treeview.
4136         - Call new methods for expanding/collapsing nodes.  These methods
4137         use scrollwindow so we don't have to update everything below the
4138         node.
4139         * TreeView.cs: Refactored drawing and scrolling code.  We don't
4140         need to update nodes when drawing anymore or calculate scrollbar
4141         stuff.
4142         - Added new methods for expanding/collapsing nodes. These methods
4143         use ScrollWindow so as to not have to redraw all the nodes below.
4144         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
4145         we add/remove nodes or sort.
4146         - Handle removing the selected and the top node properly.
4147
4148 2006-05-23  Chris Toshok  <toshok@ximian.com>
4149
4150         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
4151         maybe this should actually happen in the datagrid code?
4152         (EndEdit): no need to invalidate anything, given that
4153         ReleaseHostedControl causes the datagrid to relayout, which
4154         invalidates everything anyway.
4155
4156         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
4157         in SetCurrentCell).
4158         (set_SelectionBackColor): call InvalidateSelection instead of
4159         Refresh.
4160         (set_SelectionForeColor): same.
4161         (BeginEdit): Flesh this out a bit.
4162         (CancelEditing): only do any of this if we're editing/adding.
4163         (EndEdit): same.
4164         (OnMouseDown): there's no need to cancel editing here, it's done
4165         in SetCurrentCell.
4166         (SetCurrentCell): only invalidate the current row header if it's a
4167         different row than the new one.
4168         (ShiftSelection): fix this to work like MS does.
4169         (ResetSelection): factor out the invalidation of selected_rows to
4170         InvalidateSelection.
4171         (SetDataSource): cancel any editing that's going on.
4172
4173         * DataGridColumnStyle.cs
4174         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
4175         call the non-interface version.
4176
4177         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
4178         header rectangle with the clip rectangle so we don't redraw the
4179         entire header for just a small area.  Gets rid of the last flicker
4180         when horizontally scrolling.
4181         (DataGridPaintRow): same.
4182
4183 2006-05-23  Mike Kestner  <mkestner@novell.com>
4184
4185         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
4186         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
4187         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
4188         Critical bug report.
4189
4190 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4191
4192         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
4193           and this fixes #78493
4194
4195 2006-05-23  Miguel de Icaza  <miguel@novell.com>
4196
4197         * Theme.cs (GetSizedResourceImage): Scale images if the proper
4198         size is not found.  
4199         
4200         * FileDialog.cs: Do not change the background for the side bar as
4201         it wont work nicely with the theme, and also reduces the artifacts
4202         in rendering the icons (which I want to fix too).
4203
4204         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
4205         resources, not resgen resources. 
4206
4207         (PlatformDefaultHandler): Pull images using the new API.
4208
4209 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4210
4211         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
4212           a reference to the hwnd and will not remove it unless there are
4213           no pending exposures (fixes #78341)
4214         * XplatUI.cs: Improved debug
4215
4216 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
4217
4218         * MenuAPI.cs : don't handle OnClick event when it was not the left
4219           button. Fixed bug #78487.
4220
4221 2006-05-23  Mike Kestner  <mkestner@novell.com>
4222
4223         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
4224         prefer submenus to the top menu for item lookup, to avoid popping down
4225         top-row items.
4226
4227 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
4228
4229         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
4230           Graphics.FillRectangle as the visual results are really bad (even
4231           on win). We now draw perfect arrows (and perfect shadows when the
4232           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
4233           Pen.DashPattern to draw the dots of each line.
4234
4235 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
4236
4237         * FileDialog.cs: Update the filename combobox when navigating through
4238           the ListView with the cursor keys. Fixes part 7 of bug #78446.
4239
4240 2006-05-22  Mike Kestner  <mkestner@novell.com>
4241
4242         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
4243         Fixes #78463.
4244
4245 2006-05-22  Mike Kestner  <mkestner@novell.com>
4246
4247         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
4248         requests. Fix a misspelled parameter and a copy paste exception error
4249         in Select.
4250
4251 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
4252
4253         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
4254           to get the same width/height (5/13) on X11 as the default font has on
4255           win32. This means that our DefaultFont emSize is smaller than the 
4256           the MS SWF equivalent (even thought the width/height stays the same)
4257
4258 2006-05-20  Jackson Harper  <jackson@ximian.com>
4259
4260         * MdiClient.cs:
4261         * MdiWindowManager.cs:
4262         * InternalWindowManager.cs: Make sure to use the border width from
4263         the theme.
4264
4265 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
4266
4267         * PrintDialog.cs: Implements printer details
4268
4269 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
4270
4271         * FileDialog.cs: Added focus handling for PopupButtonPanel.
4272           Fixes part 1 and 2 of bug #78446
4273
4274 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
4275
4276         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
4277           instead of sticking to the first ever calculated value
4278
4279 2006-05-19  Mike Kestner  <mkestner@novell.com>
4280
4281         * ComboBox.cs: fix mouse motion selection to use MousePosition and
4282         PointToClient, since Capture is set. Fixes #78344.
4283
4284 2006-05-19  Mike Kestner  <mkestner@novell.com>
4285
4286         * ListView.cs: match MS behavior in Details view where items are not
4287         drawn if Columns.Count == 0. 
4288         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
4289         Use a separate pen to draw the check, since changing the width affects
4290         the box as well.  Fixes #78454.
4291
4292 2006-05-18  Miguel de Icaza  <miguel@novell.com>
4293
4294         * ListView.cs: ArgumentOutOfRangeException, single versions of the
4295         exception should throw the name of the invalid argument.
4296
4297         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
4298         there are no files listed. 
4299
4300 2006-05-18  Jackson Harper  <jackson@ximian.com>
4301
4302         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
4303         up.
4304
4305 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4306
4307         * Control.cs: Brought back our old UpdateZOrder method as a private
4308           function and switched our calls from UpdateZOrder to the new one.
4309           This fixes the Paint.Net canvas disappearing bug.
4310
4311 2006-05-18  Jackson Harper  <jackson@ximian.com>
4312
4313         * Theme.cs:
4314         * ThemeWin32Classic.cs:
4315         * InternalWindowManager.cs: Move the drawing into the theme,
4316         expose everything the theme should need from the window manager.
4317
4318 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4319
4320         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
4321           from the call to NativeWindow to avoid walking up the parent chain
4322           further than needed (speeds up setting cursors and avoids setting
4323           the wrong cursor if a parent has another cursor defined)
4324         * Cursor.cs: When loading an icon as cursor, MS uses the center of
4325           the icon as hotspot, not what's contained as hotspot in the icon
4326           file. This fixes the perceived drawing offset seen with Paint.Net
4327         
4328 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4329
4330         * XplatUIX11.cs: 
4331           - Store the calculated rectangle in Hwnd object and use it when 
4332             setting the client size
4333           - Force Toolwindows to always be type Dock, to ensure they're on top
4334
4335 2006-05-18  Mike Kestner  <mkestner@novell.com>
4336
4337         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
4338         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
4339         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
4340         Substantial refactoring to remove confusing nested classes. Coding
4341         standard and Get+Set->property refactorings.  Shift to index based
4342         highlighting in ComboListBox instead of constantly using IndexOf and
4343         Items[]. Add invalidations on resize for DropDownList to fix ugliness
4344         in FileDialog growth.  Draw borders manually since Simple mode needs
4345         to look like two independent controls.  Make listbox border
4346         conditional to DropDownStyle.  Improved OwnerDraw support.
4347
4348 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
4349
4350         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
4351         Don't set the disposed graphics to null, so we can throw the "right"
4352         exception if the graphics is reused later (added a flag to avoid 
4353         double disposing). Some behaviours are different under 2.0 and are
4354         filled under bug #78448.
4355
4356 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4357
4358         * Control.cs: When double-buffering is enabled, we need to reset
4359           our graphics context between paint calls. Otherwise, any 
4360           transformations and other alterations on the context will 
4361           become cumulative (#77734)
4362
4363 2006-05-18  Mike Kestner  <mkestner@novell.com>
4364
4365         * ListView.cs: do focused item selection like MS on clicks. 
4366         Rework focus handling for ItemControl so LostFocus invalidates as
4367         well.
4368         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
4369         the ListView ItemControl has focus.
4370
4371 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
4372
4373         * XplatUIX11.cs: If client_window ends up being width or height zero
4374           due to border settings, move it off window inside whole_window (#78433)
4375
4376 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4377
4378         * Mime.cs: Shrink the mime file cache correctly.
4379
4380 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4381
4382         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
4383
4384 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4385
4386         * XplatUIX11.cs (AddExpose): More sanity checks
4387
4388 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4389
4390         * XplatUIX11.cs:
4391           - AddExpose: Don't add expose ranges outside the size of our
4392             window
4393           - Cast opacity values to Int32 to avoid crashes with certain
4394             values
4395           - Added disabled code paths that protect against illegal cross-
4396             thread painting (Developers.exe)
4397
4398 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4399
4400         * ProgressBar.cs: Invalidate the control when it's resized
4401           since block size is based on control size. (#78388)
4402
4403 2006-05-16  Miguel de Icaza  <miguel@novell.com>
4404
4405         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
4406         of setting the incoming argument to the "reset" value, we set the
4407         this.datamember to string.empty (before we were invalidating the
4408         incoming data).   
4409
4410         Fixes 78420
4411
4412 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4413
4414         * Form.cs: Only apply transparency settings after the form
4415           is created. (Fixes #77800)
4416
4417 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4418
4419         * ApplicationContext.cs: Grab the HandleDestroyed event so
4420           we know when to fire OnMainFormClosed 
4421
4422 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4423
4424         * Application.cs: Introduced sub-class to allow tracking of
4425           threads and centralized triggering of the event mess for
4426           ThreadExit, AppExit, etc..  (#76156)
4427
4428 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
4429
4430         * MimeIcon.cs:
4431           - Do not return a null icon index value for a mime subclass.
4432             Instead try the main mime type class too.
4433           - Seems that some newer distributions don't have a link to some
4434             gnome default icons anymore. So check the default gnome dir too.
4435           
4436
4437 2006-05-16  Jackson Harper  <jackson@ximian.com>
4438
4439         * MdiClient.cs: Don't paint the parent background image if we have
4440         our own background image.
4441
4442 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4443
4444         * Control.cs:
4445           - PerformLayout: Do not shrink space filled by DockStyle.Fill
4446             controls, all filled controls are supposed to overlap (#78080)
4447           - UpdateZOrder is supposed to update the control's z-order in the
4448             parent's z-order chain. Fixed to behave like that
4449           - BringToFront: Removed obsolete code
4450           - SendToBack: Simplyfied
4451           - SetChildIndex: Trigger layout calculations when Z-order changes
4452             since layout is done by z-order
4453
4454 2006-05-16  Chris Toshok  <toshok@ximian.com>
4455
4456         [ fixes bug #78410 ]
4457         * DataGrid.cs (set_AlternatingBackColor): use
4458         grid_drawing.InvalidateCells instead of Refresh().
4459         (set_BackColor): call grid_drawing.InvalidateCells.
4460         (set_BackgroundColor): use Invalidate instead of Refresh.
4461
4462         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
4463         invalidate the cell area.
4464
4465 2006-05-15  Chris Toshok  <toshok@ximian.com>
4466
4467         [ fixes bug #78011 ]
4468         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
4469         on to DataGridPaintRow.
4470         (DataGridPaintRow): take a clip argument, and only draw the cells
4471         which intersect it.  same with the not_usedarea.
4472
4473         * Theme.cs (DataGridPaintRow) add @clip parameter.
4474
4475         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
4476         XplatUI.ScrollWindow.
4477         (ScrollToRow): same.
4478
4479         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
4480         with last column which was causing a gray swath to appear with the
4481         XplatUI.ScrollWindow code.
4482
4483 2006-05-15  Chris Toshok  <toshok@ximian.com>
4484
4485         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
4486         use XplatUI.ScrollWindow.
4487         (VerticalScrollEvent): use XplatUI.ScrollWindow.
4488
4489 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
4490
4491         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
4492
4493 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4494
4495         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
4496           file since there are no equivalent X11 cursors
4497
4498 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4499
4500         * MonthCalendar.cs : DateTimePicker should reflect selected date
4501           on mouse*up*, not mouse*down*. Fixed originally reported part of
4502           bug #76474.
4503
4504 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4505
4506         * TabControl.cs : When argument index is equal or more than tab
4507           count, just ignore. Fixed bug #78395.
4508
4509 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4510
4511         * Control.cs: Dispose all child controls when control is diposed (#78394)
4512
4513 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4514
4515         * ColorDialog.cs: Finally it is possible to select the color with
4516           the text boxes
4517
4518 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4519
4520         * PrintDialog.cs: Fix typo
4521
4522 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4523
4524         * PrintDialog.cs: PrintDialog is not resizable
4525         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
4526           color. Made some ToolBar drawing methods protected virtual.
4527
4528 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
4529
4530         * PrintDialog.cs: Implementation of the PrintDialog
4531
4532 2006-05-12  Chris Toshok  <toshok@ximian.com>
4533
4534         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
4535         thumb, instead use MoveThumb.  This has the side effect of making
4536         most of the other thumb moving machinery use MoveThumb as well.
4537         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
4538         need to actually invalidate the rectangle where the new thumb will
4539         go.
4540         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
4541         We force an Update() after, so it's not as fast as it could be,
4542         but at least there's zero flicker and no droppings.
4543         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
4544         (UpdateThumbPos): add another argument (dirty), which says whether
4545         or not to calculate/add dirty regions which we later invalidate.
4546         For cases where we know we're going to use MoveThumb, we pass
4547         false for this.  Otherwise, pass true.
4548
4549 2006-05-12  Jackson Harper  <jackson@ximian.com>
4550
4551         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
4552         the status bar.
4553         
4554 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
4555
4556         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
4557           and GetClipRegion methods and UserClipWontExposeParent property.
4558         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
4559           overriding UserClipWontExposeParent property, setting to false, since
4560           Win32 handles the required expose messages to draw our clipped parent
4561           areas internally
4562         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
4563           PaintEventStart to set the user clip region if set.
4564         * Control.cs: 
4565           - Now internally tracking the Region for the control since we need to
4566             store it if the handle is not yet created and only set it when it
4567             becomes created. Before setting the region forced handle creation
4568           - Added code to draw the parents underneath a user-clipped region
4569         * Hwnd.cs: Added UserClip property
4570
4571 2006-05-12  Chris Toshok  <toshok@ximian.com>
4572
4573         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
4574         (set_Maximum): same.
4575         (set_Minimum): same.
4576         (set_SmallChange): same.
4577         (OnMouseUpSB): remove the call to refresh when releasing the
4578         thumb.  We shouldn't need it.
4579         
4580 2006-05-12  Miguel de Icaza  <miguel@novell.com>
4581
4582         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
4583         AutoSize set to None, we do not need to relayout everything, we
4584         just need to invalidate the current region.
4585
4586         (Draw): Do not draw the entire ClientArea, just redraw the
4587         clip area being passed.
4588
4589         * MdiClient.cs: Make MdiClient constructor with the Form argument
4590         internal. 
4591
4592 2006-05-12  Jackson Harper  <jackson@ximian.com>
4593
4594         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
4595         parents background image,  but strangely not their own.
4596         - (DrawStatusBarPanel): Take into account horizontal alignment
4597         when drawing the strings and icons.
4598
4599 2006-05-12  Mike Kestner  <mkestner@novell.com>
4600
4601         * ListBox.cs: avoid invalidations for focus when the collection is
4602         empty. 
4603
4604 2006-05-12  Chris Toshok  <toshok@ximian.com>
4605
4606         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
4607         invalidate the entire thumb area.  Call InvalidateDirty which
4608         limits the redraw to the thumb itself and surrounding pixels.
4609
4610         * XplatUIX11.cs (ScrollWindow): optimize copying.
4611         
4612 2006-05-12  Chris Toshok  <toshok@ximian.com>
4613
4614         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
4615         Figure out the positioning/layout in a single pass instead of
4616         multiple recursive invocations.  Speeds up the initial display of
4617         the data grid.  Also, make many things private that were
4618         originally public but unused outside this class.
4619
4620 2006-05-11  Jackson Harper  <jackson@ximian.com>
4621
4622         * MdiClient.cs: Improved layout code.
4623
4624 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
4625
4626         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
4627           not SelectedObject.
4628
4629 2006-05-11  Chris Toshok  <toshok@ximian.com>
4630
4631         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
4632         union of that will always be {0,0,width,height}.
4633
4634 2006-05-11  Jackson Harper  <jackson@ximian.com>
4635
4636         * Form.cs: Match MS's DefaultSize for forms (they must have
4637         changed the size in sp2).
4638
4639 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4640
4641         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
4642
4643 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4644
4645         * TextControl.cs : Fixed bug #78109. This incorrect position
4646           comparison caused crash on automatic line split.
4647         * TextBoxBase.cs : reduce duplicate code.
4648
4649 2006-05-10  Jackson Harper  <jackson@ximian.com>
4650
4651         * MdiClient.cs: Active form is only sent to the back when using
4652         the Next form functionality, when a form is clicked the current
4653         active shouldn't be sent to the back.
4654         - Layout the mdi windows when the container is first made visible.
4655         * Form.cs: Give the MdiClient a ref to the containing form when we
4656         create it.
4657         
4658 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4659
4660         * LinkLabel.cs : link_font could be uninitialized, so populate one
4661           before actual use. Fixed bug #78340.
4662
4663 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4664
4665         * XplatUIX11.cs : clipboard format native value is IntPtr.
4666           Fixed bug #78283.
4667
4668 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4669
4670         * Control.cs: 
4671           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
4672             which is passed up the parent chain by DefWndProc
4673           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
4674             to DefWndProc (#77956)
4675         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
4676
4677 2006-05-10  Jackson Harper  <jackson@ximian.com>
4678
4679         * MdiClient.cs: We need to remove the controls from the mdi
4680         collection, when we close the window.
4681         * MdiWindowManager.cs: Special handling of closing mdi windows.
4682         * InternalWindowManager.cs: Make the close method virtual so the
4683         mdi window manager can handle it specially.
4684
4685 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
4686
4687         * DataGrid.cs:
4688           - Recalculate grid when the data source has changed
4689           - Matches styles provided by user from all data sources types
4690         * DataGridTableStyle.cs: For columns that provided by the user set the
4691         with the preferred value is there was unassigned.
4692         * CurrencyManager.cs: throw OnItemChanged event
4693
4694 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
4695
4696         * PictureBox.cs: Don't animate until handle is created. Start animation
4697           when handle is created.
4698
4699 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4700
4701         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
4702           current codebase.
4703         * XEventQueue.cs: We don't need to provide the extra info
4704
4705 2006-05-10  Jackson Harper  <jackson@ximian.com>
4706
4707         * MdiClient.cs: If the mdi clients parent form has a background
4708         image set, we draw that background image for the mdi area's
4709         background.
4710
4711 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4712
4713         * TextBoxBase.cs: Set IBeam cursor (#78347)
4714
4715 2006-05-10  Mike Kestner  <mkestner@novell.com>
4716
4717         * ToolBar.cs: fix some text padding issues with ButtonSize
4718         calculation. Update the default size to match MS documentation.
4719         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
4720         button size. Fixes #78296.
4721
4722 2006-05-10  Mike Kestner  <mkestner@novell.com>
4723
4724         * ListBox.cs: use is_visible for scrollbar positioning in case the
4725         control isn't on screen yet.  Fix off by one with Right vs Width
4726         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
4727         
4728 2006-05-10  Jackson Harper  <jackson@ximian.com>
4729
4730         * X11Dnd.cs: Drop to a control with another control on top of it.
4731         * ToolBar.cs: Work on a copy of the buttons list, so that it can
4732         be modified in click handlers. TODO: Look for similar problems in
4733         other controls.
4734
4735 2006-05-09  Jackson Harper  <jackson@ximian.com>
4736
4737         * Form.cs: Window managers need the old window state when setting
4738         window state now.
4739         * InternalWindowManager.cs: Allow the base mdi window manager to
4740         handle more of the MDI only stuff (like maximize buttons).
4741         * MdiWindowManager.cs: Fix some snafus in changing the window
4742         state.  Add all the menu functionality, for both popup and
4743         maximized menus.
4744         * MdiClient.cs: When a new form is selected the currently
4745         activated form is sent to the back, this matches MS.
4746         - Implement a new method to activate the next mdi child window.
4747
4748 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
4749
4750         * Control.cs: 
4751           - Added new InternalCapture method to allow controls to prevent
4752             the capture behaviour on the click handlers
4753           - Switched to use InternalCapture
4754         * ComboBox.cs:
4755           - Using InternalCapture to prevent mouse captures from being released
4756             on mouse button release (Fixes #78100)
4757         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
4758           returns Form borders if a caption is present. (Fixes #78310)
4759
4760 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
4761
4762         * TreeNode.cs: Changed serialization .ctor to not require every field
4763           to be present. (#78265)
4764         * OwnerDrawPropertyBag.cs: Added serialization .ctor
4765
4766 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
4767
4768         * MimeIcon.cs: for is faster than foreach for strings.
4769
4770 2006-05-05  Mike Kestner  <mkestner@novell.com>
4771
4772         * CheckedListBox.cs: update check handling code to not use selected.
4773         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
4774         behavior for visual feedback, motion response, shift/ctrl handling,
4775         and properly deal with all 4 selection modes. Updates to bounds
4776         handling logic.  Add scroll wheel support. [Fixes #77842]
4777
4778 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
4779
4780         * ListView.cs:
4781           - Moved adding of Implicit controls into .ctor. That way, subsequent
4782             creation of the controls will not cause them to think they are 
4783             toplevel windows (fixes #78200 header problem)
4784           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
4785           - Switched visibility setting of header control to use internal field
4786             to avoid triggering handle creation
4787           - Now checking if handle is created before causing a refresh when items
4788             are added (This makes us now match handle creation time with MS)
4789         * Splitter.cs: Removed loading of private splitter cursor, switched to
4790           Cursors version now that that is loading the right ones
4791         * Cursors.cs: Load proper splitter cursors from resources
4792         * Cursor.cs: Added second method of loading resource cursors for the 
4793           VS.Net users amongst us
4794
4795 2006-05-05  Mike Kestner  <mkestner@novell.com>
4796
4797         * ListView.cs: give header_control a minimum size based on the
4798         ListView size.
4799
4800 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
4801
4802         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
4803           window seems to do that with metacity, so set that type. (#78120)
4804
4805 2006-05-05  Mike Kestner  <mkestner@novell.com>
4806
4807         * ListViewItem.cs: fix Details mode checkbox layout bug.
4808         * ThemeWin32Classic.cs: draw a ListView column header for unused space
4809         at the end of the header, if it exists. [Fixes for #78200]
4810
4811 2006-05-04  Jackson Harper  <jackson@ximian.com>
4812
4813         * MdiClient.cs: Add a helper property to get the container form.
4814         * MdiWindowManager.cs: We have to make sure to use the menu origin
4815         when drawing the icons and buttons, this fixes maximized window
4816         icons/buttons on win32.
4817         * InternalWindowManager.cs: Reset the restore captions when a
4818         window goes from Maximized to Minimized and vice versa. Move the
4819         DrawMaximizedButtons into the MdiWindowManager source, tool
4820         windows can't be maximized. NOTE: This could use a little
4821         refactoring if time ever permits.
4822         
4823 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
4824
4825         * TextBox.cs: Add MWFCategoryAttributes
4826         * TextBoxBase.cs: Add MWFCategoryAttributes
4827         * Form.cs: Add MWFCategoryAttributes
4828
4829 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
4830
4831         * Control.cs: Add MWFCategoryAttributes
4832         * ScrollableControl.cs: Add MWFCategoryAttributes
4833
4834 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
4835
4836         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
4837           Divider is true. Fix a little glitch in PropertyToolBar
4838           drawing code
4839
4840 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
4841
4842         * Control.cs:
4843           - Dispose: Call base.Dispose, this causes the disposed event
4844             to be fired (and probably other, more important stuff)
4845           - SetVisibleCore: Set is_visible to true after creating the
4846             window so that the window still gets created invisible (if
4847             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
4848             to generate a WM_ACTIVE message
4849         * Form.cs: Call Dispose when we want to destroy the window, instead of
4850           just destroying the handle (Dispose will do that for us)
4851         * XplatUIX11.cs:
4852           - RootWindow also needs a queue, so we can properly process the
4853             property change events from RootWindow (like Activate)
4854           - Generatic synthetic WM_ACTIVE message when the active window is
4855             being destroyed
4856
4857 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
4858
4859         * LinkLabel.cs: Trigger a recalc of our label dimensions when
4860           bounds are changed
4861
4862 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
4863
4864         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
4865           for determining width and height (image might not be assigned if
4866           we're drawing an imagelist)
4867
4868 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
4869
4870         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
4871         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
4872           height from system
4873         * Theme.cs: No longer returns hardcoded menu height, instead calls
4874           new driver method
4875         * Form.cs (OnLoad): Scaling happens before triggering Load events 
4876           on MS (# 78257)
4877
4878 2006-05-01  Mike Kestner  <mkestner@novell.com>
4879
4880         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
4881
4882 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
4883
4884         * TextBoxBase.cs: Removed Fixme
4885         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
4886
4887 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
4888
4889         * XplatUIX11.cs:
4890           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
4891             the rectangle relative to the parent, considering borders. We
4892             don't really want that.
4893           - ScrollWindow: Fixed warning to be more understandable
4894         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
4895           scrollbars and scroll only the visible area
4896         * RichTextBox.cs: Removed debug output
4897
4898 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4899
4900         * NumericUpDown.cs (Text): Just use base
4901         * UpDownBase.cs: Ensure txtView is created before using it
4902
4903 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
4904
4905         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
4906           casting to IntPtr to avoid 64bit overflow errors
4907
4908 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4909
4910         * Control.cs:
4911           - AllowDrop: Don't force handle creation.
4912           - CreateHandle: Added call to tell driver if we're allowed to drop
4913
4914 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
4915
4916         * FileDialog.cs: Remember the last directory not only for the
4917           current instance but also for new FileDialog instances.
4918
4919 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
4920         
4921         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
4922           broke sending async messages
4923
4924 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
4925
4926         * XplatUIX11.cs:
4927           - ScrollWindow: Fixed method. We finally generate expose events again
4928             for scrolled areas. This was causing 'garbage' when scrolling
4929             textbox and other controls that used ScrollWindow
4930           - Switched from using the regular queue for paint events to the MS 
4931             model of 'generating' paint events when the queue is empty.
4932             We use the new XQueueEvent.Paint subclass to store which windows
4933             need painting.
4934           - AddExpose now takes the x/y/width/height of the exposed area
4935             and inserts the window into the paint queue if not already there
4936           - InvalidateWholeWindow: Switched to use new AddExpose method
4937           - UpdateMessageQueue: Added which queue to monitor for paint events
4938           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
4939             the unlikely case nothing above handles it. We reset the expose
4940             pending states to get them off the queue.
4941           - GetMessage: Now pulls a paint event if no other events are in the
4942             queue
4943           - Invalidate: Switched to new AddExpose method
4944           - PeekMessage: Updated to understand pending paint events
4945           - UpdateWindow: Fixed logic bug. We were only updating if the window
4946             didn't need updating. Also switched to sending WM_PAINT directly,
4947             like MS does.
4948         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
4949           and random access Remove(). The random access is needed to handle
4950           UpdateWindow() where a WM_PAINT is sent directly without accessing
4951           the queue.
4952         * ScrollBar.cs: Added Update() calls to cause immediate updates to
4953           allow for better feedback when scrolling. Scrollbars are small and
4954           the immediate update should make it 'feel' more responsive without
4955           slowing things down. ScrollBar still needs it's invaliate logic
4956           updated to not always invalidate the whole bar on certain changes.
4957
4958 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4959
4960         * Control.cs:
4961         (BackColor): if the control does not support a transparent background,
4962         return the default backcolor when the parent backcolor is transparent.
4963
4964 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
4965
4966         * Application.cs: Updated to new StartLoop/GetMessage API
4967         * RichTextBox.cs: Provide some output on RTF parsing errors
4968         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
4969           new queue_id argument to GetMessage and PeekMessage to allow faster
4970           handling of per-thread queues in drivers.
4971         * Hwnd.cs: Added Queue tracking and property
4972         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
4973         * XEventQueue.cs: Added thread trackingA
4974         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
4975         * XplatUIX11.cs:
4976           - Implemented new per-thread queue
4977           - GetMessage: Fixed return/break behaviour on several cases. We were
4978             returning stale messages in some cases, instead of just processing
4979             the next message
4980
4981 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
4982
4983         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
4984
4985 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
4986
4987         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
4988           fixed off-by-one comparisons between Width/Height and Right/Bottom.
4989
4990 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
4991
4992         * PropertyGridView.cs: Fix drop down width.
4993
4994 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
4995
4996         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
4997           a mess in DrawToolBar, so I removed one of them.
4998
4999 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5000
5001         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
5002           needed (clip). Otherwise we get artifacts.
5003
5004 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5005
5006         * FixedSizeTextBox.cs: Added constructor to allow specifying which
5007           dimension is fixed
5008         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
5009           and switched FixedSizeTextBox to only be fixed vertical (#78116)
5010         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
5011           if it matches the scale base font (avoids unneeded scaling)
5012
5013 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5014
5015         * X11DesktopColors.cs: One gtk_init_check should be enough
5016
5017 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
5018
5019         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
5020           match MS behaviour
5021
5022 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5023
5024         * TextBoxBase.cs: 
5025           - Generate OnTextChanged for Backspace even if we're only deleting
5026             the current selection
5027           - When setting the Text property, only select all text if the
5028             control does not have focus when it is being set. Otherwise
5029             just place the cursor at the beginning of the control
5030
5031 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5032
5033         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
5034           Added a little helper to draw PropertyGrid ToolBar with a different
5035           border and a different BackColor.
5036         * PropertyGrid.cs: Some background parts didn't get painted with the
5037           correct background color. Added a class that helps us to draw the
5038           correct border for PropertyGridView and a class that helps us to
5039           draw ToolBars with a different backcolor
5040         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
5041
5042 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
5043
5044         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
5045         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
5046
5047 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5048
5049         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
5050           into the palette entries. Also, since we're working on a copy
5051           we needed to copy the palette back onto the bitmap.
5052         * Cursor.cs: Same fix as XplatUIWin32.cs.
5053
5054 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
5055
5056         * ImageListStreamer.cs: Need to read the var (or we're off)
5057
5058 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5059
5060         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
5061           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
5062           TextBoxBase.cs: Unused var fixes
5063         * AxHost.cs: Small 2.0 fix
5064         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
5065           as it seems that is what at least Metacity expects. This will make
5066           icons show up on 64bit platforms. We still have some 64bit size
5067           issues, though, since the startup app window size still won't match.
5068
5069 2006-04-25  Mike Kestner  <mkestner@novell.com>
5070
5071         * *.cs: cleanup newly reported exception var unused warnings.
5072
5073 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5074
5075         * ThemeWin32Classic.cs: Button image alignment now matches exactly
5076           ms
5077
5078 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5079
5080         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
5081           image. The image position is always the same, no matter if the
5082           button is pressed or not.
5083
5084 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5085
5086         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
5087           selection and set the correct filename for SaveFileDialog.
5088           Patch by Emery Conrad.
5089
5090 2006-04-24  Mike Kestner  <mkestner@novell.com>
5091
5092         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
5093         check for item.X outside the ClientRect instead of item.Y. Fixes
5094         #78151.
5095
5096 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5097
5098         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
5099         trust that value blindly and do some sanity check. Fixes bug #77814.
5100
5101 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5102
5103         * ImageListStreamer.cs: save the mask as a 1bpp image.
5104
5105 2006-04-21  Mike Kestner  <mkestner@novell.com>
5106
5107         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
5108         pass Checked and Indeterminate to the Theme Engine. Improve
5109         encapsulation with ListBox.
5110         * ListBox.cs: Keep a StringFormat instead of calculating it every item
5111         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
5112         nested types.  Move all CheckState functionality to CheckedListBox.
5113         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
5114         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
5115         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
5116         single base list. Fix scrollbar sizing and placement to mirror MS.
5117         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
5118         used.
5119         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
5120         for CheckedListBox by using new DrawItemState info.  Center the
5121         checkboxes on the items. Use new StringFormat property.
5122
5123 2006-04-18  Jackson Harper  <jackson@ximian.com>
5124
5125         * Form.cs: MdiChildren don't do default locations the same way as
5126         regular forms.  This prevents a crash when trying to position the
5127         mdi windows.
5128
5129 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
5130
5131         * PropertyGridTextBox.cs: Formatting, copyright
5132         * PropertiesTab.cs: Formatting
5133         * PropertyGrid.cs: Formatting
5134         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
5135           click toggling of values
5136           
5137 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
5138
5139         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
5140         * Control.cs (.ctor): verify_thread_handle is static, don't reset
5141           every time a control is created
5142         * Application.cs: Removed obsolete EnableRTLMirroring method
5143
5144 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
5145
5146         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
5147         SelectedIndex to -1. Fixes bug #78121.
5148
5149 2006-04-17  Jackson Harper  <jackson@ximian.com>
5150
5151         * Binding.cs: Handle null values for Current and BindingContext.
5152         This occurs when binding is a little delayed.
5153         * CurrencyManager.cs: return null for Current when there are no
5154         items in the list.
5155         - Hookup to the listchanged event on the DataView and update
5156         bindings when the list is changed.  This fixes late binding of
5157         controls.
5158
5159 2006-04-17  Jackson Harper  <jackson@ximian.com>
5160
5161         * X11Dnd.cs:
5162         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
5163         Ringenbach.
5164
5165 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
5166
5167         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
5168           place
5169         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
5170           with the correct ButtonState
5171
5172 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
5173
5174         * XplatUIX11.cs: Improved distinguishing between window types to
5175           tell the WM a type closer to what the app wants (Fixes #78107)
5176
5177 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5178
5179         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
5180           GrabHandle
5181
5182 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5183
5184         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
5185           drawing code to reflect the size grip changes
5186
5187 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5188
5189         * ImageListStreamer.cs: fix handling of the mask that follows the main
5190         bitmap when deserializing and serialize it properly. The generated mask
5191         should better be a 1bpp image, but I'll do that later.
5192
5193 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5194
5195         * FileDialog.cs: Show something in the DirComboBox on *nix if the
5196           path doesn't fit into some of our Current.Places
5197
5198 2006-04-13  Jackson Harper  <jackson@ximian.com>
5199
5200         * ComboBox.cs: Use borders instead of drawing our own decorations,
5201         try to obey correct rules for heights.
5202         * Theme.cs:
5203         * ThemeNice.cs:
5204         * ThemeClearLooks.cs:
5205         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
5206         this is now handled by borders.
5207         - Remove unused DrawListBoxDecorationSize method.
5208         
5209 2006-04-13  Mike Kestner  <mkestner@novell.com>
5210
5211         * MenuAPI.cs: null guarding for the disbled click check fixes crash
5212         reported by Alex.
5213
5214 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5215
5216         * ThemeWin32Classic.cs: 
5217           - Fixed CPDrawStringDisabled
5218           - Corrected drawing of disabled menu items
5219           - Fixed drawing of disabled radio buttons (bug #78095)
5220           - Draw check in a disabled CheckBox with color ControlDark 
5221
5222 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5223
5224         * Form.cs: Use the provided width when calculating the menu size;
5225           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
5226           and ClientSize.Width won't be updated yet
5227         * Application.cs: Use Visible instead of Show() to make form visible,
5228           this way we create the handle later and menusize is considered
5229
5230 2006-04-12  Mike Kestner  <mkestner@novell.com>
5231
5232         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
5233         reporting.
5234
5235 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5236
5237         * TextBox.cs: Implemented context menu
5238
5239 2006-04-12  Mike Kestner  <mkestner@novell.com>
5240
5241         * ListView.cs: implement box selection. fixes #77838.
5242         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
5243
5244 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5245
5246         * XplatUIX11.cs: Added setting of window type when transient window
5247           is created (metacity would move it otherwise)
5248         * X11Structs.cs: Added WINDOW_TYPE atoms
5249         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
5250           background (the control is Opaque but still wants transparent
5251           backgrounds)
5252
5253 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5254
5255         * Control.cs: Added OnPaintBackgroundInternal to allow controls
5256           that set Opaque but don't mean it (like all ButtonBase-derived
5257           controls) to still draw their background
5258         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
5259           the background
5260
5261 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5262
5263         * Control.cs (PaintControlBackground): Set the graphics object
5264           on our PaintEvent to null to prevent it from being disposed
5265           when the PaintEvent gets disposed
5266
5267 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
5268
5269         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
5270         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
5271
5272 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5273
5274         * Control.cs: 
5275           - Added transparency check to BackColor property. Transparent
5276             backgrounds are only allowed if the control styles permit it
5277           - Added recursive painting of parent control background and
5278             foreground if a control with a transparent backcolor is drawn
5279             (Thanks to Tim Ringenback for providing his 'hack' as a base
5280              for this patch) Fixes #77985 and #78026.
5281           - Added Opaque style check before calling OnPaintBackground, no
5282             need to draw the background if the control is opaque
5283           - Removed ControlAccessibleObject owner variable (inherited from
5284             base, no need to define again)
5285           - Added some documentation links explaining the drawing events
5286             and styles
5287
5288 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5289
5290         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
5291           that the affected control is the located at the left border of our
5292           parent (Fixes #77936)
5293
5294 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5295
5296         * TextBoxBase.cs: When rendering disabled or readonly controls,
5297           draw the background with 'Control' instead of 'Window' color as
5298           long as the user hasn't specifically set a color
5299
5300 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5301
5302         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
5303           since that won't be updated if the user types text (only if it's
5304           programatically set)
5305
5306 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5307
5308         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
5309           layout changes do to app-triggered resizes will have the proper
5310           display rectangle for layout
5311
5312 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
5313
5314         * ThemeWin32Classic.cs:
5315           - Make use of the SystemBrushes and SystemPens wherever possible
5316           - Corrected some highlight colors
5317           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
5318             drawing
5319         * Theme.cs: Added Empty field to CPColor struct
5320
5321 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5322
5323         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
5324           is displayed when calculating the display rectangle. Thanks to Mike
5325           for teaching me the err of my ways.
5326
5327 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
5328
5329         * ScrollableControl.cs:
5330           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
5331             (instead of 0,0) and we now return the real width/height instead of
5332             just the clientrectangle, adjusted for padding. The rectangle is
5333             now cached and created by the new CalculateDisplayRectangle method.
5334           - Created new CalculateDisplayRectange method, which basically does
5335             what get_DisplayRectangle() did originally, but now using the 
5336             right edge instead of DisplayRectangle to determine the size of
5337             our scrollbars
5338           - get_Canvas(): Fixed it to properly calculate canvas for 
5339             right/bottom controls which seem to be placed to the right/bottom
5340             of any controls that have a fixed location
5341           - Removed TODO that's taken care of
5342           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
5343             and SetDisplayRectLocation according to new MSDN2 docs
5344           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
5345             event when that is called, this is added for compatibility
5346           - ScrollControlIntoView(): Implemented.
5347           - Switched scrollbars to be implicit, they shouldn't be selectable
5348         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
5349           call it when the active control is set/changed
5350         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
5351         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
5352           implicit_control variable (used for native Win32 message generation)
5353         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
5354           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
5355         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
5356         * XplatUIStructs.cs: Added ScrollBarCommands enum
5357
5358 2006-04-10  Jackson Harper  <jackson@ximian.com>
5359
5360         * ButtonBase.cs:
5361         * CheckedListBox.cs:
5362         * ComboBox.cs:
5363         * DataGrid.cs:
5364         * DataGridView.cs:
5365         * Form.cs:
5366         * GroupBox.cs:
5367         * ListBox.cs:
5368         * PrintPreviewControl.cs:
5369         * ProgressBar.cs:
5370         * PropertyGrid.cs:
5371         * Splitter.cs:
5372         * StatusBar.cs:
5373         * TrackBar.cs:
5374         * UpDownBase.cs: Fixup base event overrides.
5375         
5376 2006-04-06  Mike Kestner  <mkestner@novell.com>
5377
5378         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
5379         all user-initiated value changes to min <= value <= max-thumbsz+1.
5380         (set_Value): check for vert/horiz when calculating new thumb position.
5381         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
5382         like MS does.
5383         (OnMouseMoveSB): refactor the thumb dragging code and refine
5384         invalidation logic to reduce flicker.
5385         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
5386         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
5387         (UpdateThumbPosition): small code readability cleanup
5388
5389 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
5390
5391         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
5392           different
5393
5394 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5395
5396         * ThemeNice.cs: Use a better graphics effect when a button is pressed
5397
5398 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5399
5400         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
5401         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
5402           This dramatically reduces the number of Pen.Dispose calls. 
5403           Where possible call ResPool methods only once instead of calling it
5404           over and over again (for example for the same color).
5405
5406 2006-04-06  Mike Kestner  <mkestner@novell.com>
5407
5408         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
5409         Also remove an unused private field on the collection. Fixes #77972.
5410
5411 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5412
5413         * ThemeNice.cs: Added ToolBar drawing code
5414
5415 2006-04-06  Mike Kestner  <mkestner@novell.com>
5416
5417         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
5418         I'm assuming that means we need to look up the toplevel for the
5419         provided control. Fixes the crash trace in #77911 but exposes another
5420         crash in some strange reflection usage in NDocGui.
5421
5422 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5423
5424         * ThemeNice.cs: Gave it a little silver touch and added Images
5425           method
5426         * FontDialog.cs: FontDialog is not resizable
5427         * FileDialg.cs: Added SizeGripStyle.Show
5428
5429 2006-04-05  Jackson Harper  <jackson@ximian.com>
5430
5431         * KeyboardLayouts.cs: Remove warning.
5432
5433 2006-04-05  Jackson Harper  <jackson@ximian.com>
5434
5435         * Control.cs: Enable OnPaintInternal so we can use it for drawing
5436         all of our controls instead of Paint +=.
5437         * ListBox.cs:
5438         * ListView.cs:
5439         * MenuAPI.cs:
5440         * MessageBox.cs:
5441         * NotifyIcon.cs:
5442         * ProgressBar.cs:
5443         * ScrollBar.cs:
5444         * Splitter.cs:
5445         * StatusBar.cs:
5446         * TabControl.cs:
5447         * TextBoxBase.cs:
5448         * ToolBar.cs:
5449         * TrackBar.cs:
5450         * UpDownBase.cs:
5451         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
5452         use OnPaintInternal. Remove Width/Height and Visible checks in
5453         paint handler, this is done at a higher level now.
5454         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
5455         * PaintEventArgs.cs: Add a handled flag so controls that don't
5456         want anymore painting after OnPaintInternal can make sure OnPaint
5457         isn't called.
5458
5459 2006-04-05  Mike Kestner  <mkestner@novell.com>
5460
5461         * Form.cs: fix the menu WndProc hacks to respect the native enabled
5462         state of the form, so that we don't process events when Modal dialogs
5463         are up. Fixes #77922.
5464
5465 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
5466
5467         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
5468           checking is done.
5469
5470 2006-04-05  Mike Kestner  <mkestner@novell.com>
5471
5472         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
5473
5474 2006-04-05  Mike Kestner  <mkestner@novell.com>
5475
5476         * ListView.cs (HeaderMouseMove): null guarding for the over column
5477         when setting up the drag_to_index.  Fixes #78015.
5478
5479 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
5480
5481         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
5482           in the taskbar. Transient windows seem to accomplish that.
5483
5484 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
5485
5486         * Form.cs:
5487           - Re-enabled CreateParams.X/Y code for FormStartPosition
5488           - Added code for manual placement when creating the Control
5489           - Incomplete patch to treat MDI forms differently when
5490             setting the ClientSizeCore. (Still need to figure out handling
5491             x/y coords there)
5492         * XplatUIX11.cs:
5493           - When we're explicitly setting the X/Y position of a non-Child
5494             window, let the WM know. Metacity really wants this.
5495
5496 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5497
5498         * ThemeNice.cs: Added CPDrawButton
5499
5500 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5501
5502         * ThemeNice.cs: Changed the color for focused buttons and activated
5503           the arrows for small scroll buttons.
5504
5505 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5506
5507         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
5508           anymore. Changed some method modifiers to protected (virtual)
5509         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
5510           changes
5511         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
5512           Updated drawing of menus, buttons and progressbars; added
5513           CPDrawBorder3D 
5514
5515 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5516
5517         * ImageListStreamer.cs: implemented serialization/deserialization
5518         of the images.
5519
5520 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
5521
5522         * ThemeWin32Classic.cs:
5523           - Removed all the DrawFrameControl stuff; CPDrawButton,
5524             CPDrawCheckBox and CPDrawRadioButton are now handled directly
5525             inside the methods
5526           - Updated and corrected the drawing code of CPDrawButton,
5527             CPDrawCheckBox and CPDrawRadioButton to better match ms
5528           - Updated theme checkbox and radiobutton code to use the CP*
5529             methods
5530
5531 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5532
5533         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
5534           bug is fixed
5535
5536 2006-03-31  Jackson Harper  <jackson@ximian.com>
5537
5538         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
5539         sometimes.
5540         * UpDownBase.cs: Don't CreateGraphics manually, use a
5541         Refresh. Ideally we would invalidate the correct areas here.
5542
5543 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5544
5545         * XplatUIX11.cs: 
5546           - We now track the mapping state of windows. If a window (or 
5547             one of it's parents) is not mapped we no longer permit
5548             WM_PAINT messages to be generated since we'd otherwise get 
5549             lots of BadMatch X errors. Jackson did all the work figuring
5550             out the problem.
5551           - Destroying the caret if the window it's contained in is 
5552             destroyed. Can't use regular DestroyCaret method since it
5553             might fall into a drawing function (trying to remove the
5554             caret) and with that generate new BadMatch errors. Again,
5555             Jackson tracked this down.
5556           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
5557             make sure we send the messages to all windows. (The old code
5558             would send the WM_DESTROY to the window, and then all child
5559             windows would be 'gone' because the WM_DESTROY handle lookup
5560             would no longer find the destroyed window)
5561         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
5562         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
5563
5564 2006-03-31  Jackson Harper  <jackson@ximian.com>
5565
5566         * ScrollableControl.cs: Dont recalc if we are not visible.
5567
5568 2006-03-31  Mike Kestner  <mkestner@novell.com>
5569
5570         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
5571         the visibility branch.
5572
5573 2006-03-31  Jackson Harper  <jackson@ximian.com>
5574
5575         * ScrollBar.cs: Cap values when incrementing/decrementing.
5576
5577 2006-03-31  Mike Kestner  <mkestner@novell.com>
5578
5579         * MenuAPI.cs: setup menu.tracker for popup/context menus.
5580         * ToolTip.cs: guard against timer expirations with no active control.
5581         Not sure why it happened.
5582
5583 2006-03-31  Mike Kestner  <mkestner@novell.com>
5584
5585         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
5586         text.
5587         * ToolTip.cs: Position the tooltip based on where the cursor is at
5588         popup time, not at MouseEnter time.  Add a Down state so that we don't
5589         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
5590         positioning offset. Lookup DisplaySize at positioning time, since it
5591         can theoretically change during invocation.
5592         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
5593         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
5594
5595 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5596
5597         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
5598           Fixes behaviour when the Text property of the box is String.Empty
5599
5600 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
5601
5602         * XplatUIX11.cs: Only send mouseleave for our client windows, not
5603           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
5604           a window)
5605
5606 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5607
5608         * FileDialog.cs: Visual enhancement for the popup buttons in 
5609           PopupButtonPanel
5610
5611 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5612
5613         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
5614           code
5615
5616 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
5617
5618         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
5619           highlighted menu items to match ms
5620
5621 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
5622
5623         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
5624
5625 2006-03-30  Mike Kestner  <mkestner@novell.com>
5626
5627         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
5628         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
5629         go active to account for HotLight to Selected transition.
5630         * MenuItem.cs: add internal Selected prop. Fill out the Status
5631         property by calculating it from item info. Add HotLight,
5632         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
5633
5634 2006-03-30  Mike Kestner  <mkestner@novell.com>
5635
5636         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
5637
5638 2006-03-29  Jackson Harper  <jackson@ximian.com>
5639
5640         * Form.cs: Implement TODO.
5641
5642 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
5643
5644         * PrintPreviewDialog.cs: Implemented missing methods and events; still
5645           missing proper dialog setup in the constructor
5646
5647 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
5648
5649         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
5650         * Control.cs:
5651           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
5652           - Fixed ResetBindings and removed TODO
5653           - Added check for cross-thread calls to get_Handle()
5654           - Added Marshaller attribute for set_Font to satisfy class status
5655         * FontDialog.cs: Removed TODOs that seemed implemented
5656         * UpDownBase.cs: Removed unneeded TODO and Fixme
5657         * MessageBox.cs: Implemented support for Default button and removed TODO
5658         * FileDialog.cs: Removed obsolete TODO
5659         * DomainUpDown.cs: Removed obsolete TODO
5660         * ButtonBase.cs: Removed obsolete TODO
5661         * XplatUIWin32.cs: Removed obsolete TODO
5662         * Form.cs:
5663           - Removed obsolete TODO
5664           - Calling CheckAcceptButton when the acceptbutton is changed to allow
5665             internal status updates
5666           - Making sure the active control is selected when the control is created
5667         * CurrencyManager.cs: Removed obsolete TODO
5668
5669 2006-03-29  Mike Kestner  <mkestner@novell.com>
5670
5671         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
5672         of PrintPreviewDialog and RichTextBox.
5673
5674 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5675
5676         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
5677           DarkDark, Light and LightLight colors for a specific color
5678         * ThemeWin32Classic.cs:
5679           - Use Button drawing code to draw RadioButtons and CheckBoxes with
5680             Appearance = Button 
5681           - Make use of the new ResPool helper CPColor
5682           - Draw ProgressBar and StatusBar with correct 3D borders
5683
5684 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5685
5686         * ColorDialog.cs: Return selected color. Fixes bug #77940.
5687
5688 2006-03-28  Mike Kestner  <mkestner@novell.com>
5689
5690         * ListView.cs: fix Icon layout to plan for scrollbar widths when
5691         calculating col/row counts.
5692
5693 2006-03-28  Mike Kestner  <mkestner@novell.com>
5694
5695         * ColumnHeader.cs:
5696         * ListView.cs:
5697         * ListViewItem.cs:
5698         * Menu.cs: 
5699         switch to explicit interface method implementation for some methods
5700         corcompare identifies as inconsistent with MS.
5701
5702 2006-03-28  Mike Kestner  <mkestner@novell.com>
5703
5704         * MainMenu.cs: 
5705         * Menu.cs:
5706         add a few missing methods from the class status output.
5707
5708 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
5709
5710         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
5711           correct.
5712
5713 2006-03-28  Mike Kestner  <mkestner@novell.com>
5714
5715         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
5716
5717 2006-03-27  Mike Kestner  <mkestner@novell.com>
5718
5719         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
5720         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
5721
5722 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
5723
5724         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
5725
5726 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5727
5728         * ThemeWin32Classic.cs:
5729           - GroupBox: Inserted a little gap between the text and the lines
5730             on the right side
5731           - Made the code in CPDrawBorder3D more readable
5732           - Corrected the drawing location of the up and down arrows in 
5733             CPDrawScrollButton
5734
5735 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5736
5737         * ControlPaint.cs: Corrected line widths in DrawBorder for
5738           ButtonBorderStyle Inset and Outset
5739
5740 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5741
5742         * ThemeWin32Classic.cs:
5743           - Rewrote the totally broken CPDrawBorder3D method. That was
5744             one of the main problems for the terrific ThemeWin32Classic
5745             look
5746           - Updated and corrected Button drawing
5747           - Correct the dimensions of the SizeGrip to match ms ones
5748           - Removed a small drawing glitch in DrawComboBoxEditDecorations
5749         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
5750           Border3DStyle.Sunken to match ms.
5751
5752 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5753
5754         * ThemeWin32Classic.cs: First small part of the "de-uglify
5755           ThemeWin32Classic" effort, SizeGrip
5756
5757 2006-03-24  Jackson Harper  <jackson@ximian.com>
5758
5759         * XplatUIX11.cs: Give a max idle time of one second, this matches
5760         MS and forces an Idle event every second when there are no other
5761         events in the queue.
5762
5763 2006-03-24  Mike Kestner  <mkestner@novell.com>
5764
5765         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
5766         * ListView.Item.cs: fix layout issues with null image lists and images
5767         smaller than checkbox size.
5768         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
5769         mode like MS does.  It's weird, but consistent.  ;-)
5770         Fixes #77890.
5771
5772 2006-03-24  Mike Kestner  <mkestner@novell.com>
5773
5774         * ListView.cs: Scroll wheel support for the item control.  Fixes
5775         #77839.
5776
5777 2006-03-23  Jackson Harper  <jackson@ximian.com>
5778
5779         * ScrollableControl.cs: Special case negative sized areas, not
5780         zero.
5781         * MonthCalendar.cs: Save the rect of the clicked date so we can
5782         use it for invalidation.
5783         - Try to cut down on the number of invalidates
5784         - Invalidate the rect the mouse is over and was over when moving
5785         the mouse, so we get the focus box following the cursor.
5786
5787 2006-03-23  Mike Kestner  <mkestner@novell.com>
5788
5789         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
5790         focus rectangle drawing. Fixes #77835.
5791
5792 2006-03-23  Mike Kestner  <mkestner@novell.com>
5793
5794         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
5795         the if and else if and reverting back to the original == check on the
5796         None conditional.
5797
5798 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
5799
5800         * FontDialog.cs: Update the example panel if the selected index of
5801           the fontListBox changes.
5802
5803 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
5804
5805         * FileDialog.cs: Make FileDialog remember which directory it was in
5806           last in the same execution.
5807
5808 2006-03-22  Mike Kestner  <mkestner@novell.com>
5809
5810         * FileDialog.cs: make the DropDownMenu on the toolbar display
5811         RadioChecks since they are mutually exclusive and that's what MS does.
5812
5813 2006-03-22  Mike Kestner  <mkestner@novell.com>
5814
5815         * Theme.cs: add Color param to CPDrawMenuGlyph.
5816         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
5817         checks and radio marks and arrows are visible on highlighted items.
5818         * ControlPaint.cs: update to use new Theme signature.
5819
5820 2006-03-22  Mike Kestner  <mkestner@novell.com>
5821
5822         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
5823         is active. Fixes #77870.
5824
5825 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
5826
5827         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
5828           to be focused/selected after startup
5829
5830 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
5831
5832         * ColorDialog.cs: 
5833           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
5834             CustomColors and ShowHelp properties
5835           - Some internal rewrites to get better results when using the
5836             ColorMatrix
5837
5838 2006-03-22  Mike Kestner  <mkestner@novell.com>
5839
5840         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
5841         HoverSelection.  Fixes #77836.
5842
5843 2006-03-22  Mike Kestner  <mkestner@novell.com>
5844
5845         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
5846         ToggleButtons.  (De)Sensitize the Back button around a stack count of
5847         1, not 0.  Update ButtonSize based on a pixel count of the win32
5848         control.  Adjust the toolbar size/location for new button size.
5849
5850 2006-03-22  Jackson Harper  <jackson@ximian.com>
5851
5852         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
5853         true.
5854         * ScrollBar.cs: When doing increments and decrements we need to
5855         set the Value property so that ValueChanged gets raised. A
5856         possible optimization here would be to make an internal SetValue
5857         that doesn't invalidate immediately.
5858         * ToolTip.cs: Tooltips get added to their container (when
5859         supplied) so they get disposed when the container is disposed.
5860         - Don't create tooltips for String.Empty. This prevents all these
5861         little 2-3 pixel windows from showing up when running nunit-gui
5862         and driving me mad.
5863         * Form.cs: Don't set topmost when setting the owner if the handles
5864         haven't been created yet.  The topmost set will happen when the
5865         handles are created.
5866
5867 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
5868
5869         * XplatUIX11.cs:
5870           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
5871           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
5872             visible (to allow them to recalculate their sizes)
5873
5874 2006-03-21  Mike Kestner  <mkestner@novell.com>
5875
5876         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
5877         methods. Removed a ton of redundant code.  Still not really happy with
5878         the border rendering, but I think that's mainly because of the
5879         ControlDarkDark being black instead of a dark grey. Depending on how 
5880         close we want to be, we might want to revisit those color choices.
5881         Among the new features added during the refactor were DropDownArrow
5882         pressed rendering, Disabled image rendering.  Proper flat appearance
5883         boundary rendering.  Removed the Divider and Wrapping dividers since I
5884         can't figure out any combination of themes and conditions to make the
5885         MS control draw a horizontal line on a toolbar despite what the
5886         Divider property docs indicate.
5887         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
5888         conditions and incorrect layout.  Updated to coding standard.
5889         * ToolBarButton.cs: refactored layout and positioning code from
5890         ToolBar to here.  Invalidate wherever possible instead of forcing
5891         redraws of the whole toolbar. 
5892         (Known remaining issues: explicit ButtonSize smaller than provided
5893         images.)
5894
5895 2006-03-21  Mike Kestner  <mkestner@novell.com>
5896
5897         * ContextMenu.cs (Show): use the position parameter instead of just
5898         showing at the MousePosition.
5899
5900 2006-03-21  Jackson Harper  <jackson@ximian.com>
5901
5902         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
5903         control handle this.
5904         * TreeNodeCollection.cs: If we are clearing the root node we need
5905         to reset top_node so calcs can still happen.
5906         * ThemeWin32Classic.cs: This is a Flags so we need to check
5907         properly.
5908         
5909 2006-03-21  Jackson Harper  <jackson@ximian.com>
5910
5911         * DataGrid.cs: Create columns when the binding context has been
5912         changed.
5913         * X11Structs.cs: Keysyms are uints.
5914         - Add size to fix build.
5915
5916 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
5917
5918         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
5919           XplatUIOSX.cs: 
5920           - Added ResetMouseHover method to allow controls to retrigger
5921             hovering if they need it more than once
5922           - Implemented MouseHoverTime and MouseHoverSize properties
5923         * Timer.cs: Start() must reset the interval
5924         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
5925           properties
5926
5927 2006-03-21  Jackson Harper  <jackson@ximian.com>
5928
5929         * X11Keyboard.cs: improved layout detection. Move the nonchar
5930         tables into this file.
5931         * KeyboardLayouts.cs: Move the tables into resource files.
5932
5933 2006-03-21  Mike Kestner  <mkestner@novell.com>
5934
5935         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
5936
5937 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
5938
5939         * Mime.cs: Various speed optimizations. Looking up mime types
5940           is now 2 times faster than before
5941
5942 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
5943
5944         * CreateParams.cs: Added internal menu field
5945         * Control.cs: 
5946           - Switched call order for UpdateBounds; now we always call
5947             the one that also takes ClientSize, and we're calculating the 
5948             client size via driver method in the others. The previous
5949             method of tracking client size by difference wasn't working
5950             for forms where even the starting client size wouldn't match
5951             the overall form size (due to borders) (Part of fix for #77729)
5952           - CreateParams(): Do not use parent.Handle unless the handle is
5953             already created. Causes havoc with Nexxia and throws off our
5954             creation of controls
5955         * XplatUIX11.cs:
5956           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
5957           - Switched handling of ConfigureNotify over to new PerformNCCalc 
5958             method (consolidates code)
5959           - Changed RequestNCRecalc to use new PerformNCCalc method
5960           - Added calls to RequestNCRecalc when menus and borders are changed
5961             to allow app to set NC size. (Part of fix for #77729) This matches
5962             when MS send a WM_NCRECALC on Win32 windows.
5963           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
5964             (Part of fix for #77729). This matches what MS does, they also
5965             send that message when the form is made visible.
5966           - XException.GetMessage: Improved usability of X errors by including
5967             a translation of the window into Hwnd and Control class
5968           - Improved debug info for window creation, reparenting and destruction
5969           - Created helper method WindowIsMapped() [Currently not used]
5970         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
5971         * Form.cs:
5972           - CreateParams: Now setting our menu on the new internal menu field
5973           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
5974             avoid calculating the same property twice
5975         * Hwnd.cs:
5976           - Improved usability of ToString() for debugging purposes
5977           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
5978             determine the height of the menu, instead of just the font. This
5979             required to also create a graphics context and to keep a bmp 
5980             around (for performance reasons)
5981
5982 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
5983
5984         * MenuAPI.cs: Added OnMouseUp method
5985         * Form.cs:
5986           - Now remembering the requested client size, avoids size errors
5987           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
5988             instead of base if the menu is active. This is required due to
5989             control now capturing and releasing on down/up and it would
5990             prematurely release our menu capture
5991
5992 2006-03-17  Jackson Harper  <jackson@ximian.com>
5993
5994         * KeyboardLayouts.cs: Add the czech layouts.
5995
5996 2006-03-16  Jackson Harper  <jackson@ximian.com>
5997
5998         * Control.cs: Use the viewport space when sizing not the controls
5999         client size, so things like ScrollableControl that effect the
6000         viewport size (when scrollbars are added) are computed correctly.
6001         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
6002         of ManagerEntrys.
6003         - Handle creating BindingManagers for null data sources.
6004         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
6005         source, otherwise when rows are added they are added to the 'fake'
6006         datasource and we will crash when trying to set the position in
6007         those rows.
6008         - Use Implicit scrollbars on the datagrid so they arent
6009         selectable.
6010         
6011 2006-03-16  Jackson Harper  <jackson@ximian.com>
6012
6013         * Binding.cs:
6014         * InternalWindowManager.cs:
6015         * MdiWindowManager.cs:
6016         * X11Keyboard.cs: I really want Mike to love me again (fix
6017         compiler warnings).
6018
6019 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
6020
6021         * DataGrid.cs:
6022           - OnMouseDown: Switch to editing mode when clicking on the cell
6023                          even if we're clicking on the cell that's currently 
6024                          selected
6025           - ProcessGridKey: Left/Right now wrap like MS.Net does
6026           - ProcessGridKey: Tab now knows to add a new row when tab is
6027                             pressed in the cell of the last column of the 
6028                             last row
6029           - ProcessGridKey: Enter now adds another row  if pressed in the last
6030                             row and selectes the new row, same column cell
6031           - ProcessGridKey: Home/End navigate columns, not rows, like 
6032                             originally implemented
6033           - Broke ProcessKeyPreview code out into an extra Internal method
6034             so it can be called from the edit code
6035         * DataGridTextBox.cs (ProcessKeyMessage):
6036           - Switched to accept Tab keypresses
6037           - Added F2 handling to allow jumping to the end of the edited cell
6038           - Added logic to allow moving caret left/right inside edited cell
6039             and making the edited cell jump when the caret hits cell borders
6040           - Tab and Enter are now passed to the datagrid after being handled
6041         * TextBoxBase.cs:
6042           - Removed capture code now that Control handles it
6043           - set_SelectionStart now ensures caret is visible
6044
6045 2006-03-16  Jackson Harper  <jackson@ximian.com>
6046
6047         * TrackBar.cs: Debackwards the increment/decrement for handling
6048         mouse clicks on the bar with vertical trackbars.
6049         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
6050         bottom to match MS.
6051
6052 2006-03-16  Mike Kestner  <mkestner@novell.com>
6053
6054         * ListView.cs: make shift/ctrl keyboard and mouse selection 
6055         consistent with the MS control. Fix a bug in
6056         SelectedListViewItemCollection.Clear that was pissing me off for the
6057         better part of a day because the collection was being altered
6058         underneath us as we walked the list.
6059
6060 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
6061
6062         * Control.cs: Not sure how we could miss this so long, but it seems
6063           that MS.Net has Capture set all the way from before calling 
6064           OnMouseDown through sending the mouse events until after
6065           OnMouseUp. This will fix DataGrid's selection being set to end
6066           at the location of the MouseUp.
6067
6068 2006-03-15  Jackson Harper  <jackson@ximian.com>
6069
6070         * BindingContext.cs: Check the binding after its added so that it
6071           can initialize the binding managers and hookup to events.
6072         * Binding.cs: Data members seem to sometimes include rows/cols in
6073           the format Row.Column we now take this into account.
6074           - Hookup to the position changed event so we can update the
6075           control when the position has changed in the data set.
6076         * CurrencyManager.cs: Take into account the row/col naming
6077           convention when creating dataset tables.
6078         * BindingContext.cs: Using a newer better way of storing
6079           datasource/datamember pairs.  Hopefully this better matches MS for
6080           looking up binding managers.
6081
6082
6083 2006-03-15  Jackson Harper  <jackson@ximian.com>
6084
6085         * BindingContext.cs: The currency manager needs the data member
6086         name, if the member is a data set we use the name to find the
6087         correct table.
6088         * CurrencyManager.cs: When creating the list prefer an IList over
6089         an IListSource.
6090         - Attempt to create a DataTable from a DataSet (TODO: might need
6091         some better error checking here, although MS doesn't seem to have much)
6092         - If we have a DataTable create a view and use it as our list.
6093
6094 2006-03-15  Mike Kestner  <mkestner@novell.com>
6095
6096         * ListView.cs: keep a matrix of the icon mode layout to facilitate
6097         keyboard navigation. Support Up/Down/Left/Right selection correctly
6098         for all 4 View modes.
6099         * ListViewItem.cs: add internal row/col fields for icon layouts.
6100
6101 2006-03-15  Jackson Harper  <jackson@ximian.com>
6102
6103         * TabControl.cs: Redraw the tabs when we resize so their newly
6104         calculated sizes are drawn on screen.
6105         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
6106         composite characters.
6107         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
6108         - filter events so that composite characters can be created
6109         patches by peter
6110         * X11Structs.cs: Add XIMProperties enum.
6111
6112 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6113
6114         * Control.cs (BringToFront, SendToBack): Don't use window or handle
6115           unless it's created
6116
6117 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6118
6119         * Control.cs (PerformLayout): We don't need to consider visiblity
6120           for anchoring, only for docking. This fixes 'whacky' alignment
6121           in listbox and other controls that use implicit scrollbars after
6122           the previous PerformLayout patch
6123         * ListBox.cs: Switched to use implicit scrollbars
6124           
6125 2006-03-14  Mike Kestner  <mkestner@novell.com>
6126
6127         * ToolBar.cs: 
6128         * VScrollBar.cs:
6129         - chain up the "new event" overrides to base and use
6130         OnEvent to raise them.  Part of fix for bug #76509.
6131
6132 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
6133
6134         * FileDialog.cs: Do not select an item in the parent directory
6135           on backspace
6136
6137 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6138
6139         * Control.cs (PerformLayout): It would seem that we considered
6140           invisible windows for our layout. Not quite the right thing
6141           to do. Now we don't any longer, thereby fixing bug #76889.
6142
6143 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6144
6145         * Control.cs (CanFocus): I goofed. A control can have focus 
6146           even though it's not selectable. Made it match MS docs.
6147
6148 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6149
6150         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
6151           center by default (fixes #76895)
6152         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
6153           all uses of Border3DSides.All with the explicit ORd together
6154           Left|Right|Top|Bottom because I assume that nobody was aware 
6155           that All also implies a center fill. Most places I checked had
6156           a fill right above.
6157         * ProgressBarStyle.cs: Added
6158
6159 2006-03-13  Mike Kestner  <mkestner@novell.com>
6160
6161         * ListView.cs: fix breakage in drag shadow header positioning 
6162         from Peter's csc compilation fix.
6163
6164 2006-03-13  Mike Kestner  <mkestner@novell.com>
6165
6166         * ListView.cs: fix NRE produced by backspacing twice in a focused
6167         FileDialog.
6168
6169 2006-03-13  Mike Kestner  <mkestner@novell.com>
6170
6171         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
6172
6173 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6174
6175         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
6176           be changed
6177         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
6178           the allowed size before making programmatic size changes
6179
6180 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
6181
6182         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
6183           set, metacity is broken and will still use the emty sizes in 
6184           the struct. (Fix for #77089)
6185
6186 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6187
6188         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
6189           WindowExStyles and marked both enums as Flags
6190         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
6191           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
6192           to match WindowStyles split
6193         * XplatUIX11.cs:
6194           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
6195           - Updated to match WindowStyles split
6196         * XplatUIWin32.cs:
6197           - Fixed FosterParent creation, was using ExStyle on the Style field
6198             (This should help with Popup focus issues)
6199           - Updated to match WindowStyles split
6200
6201 2006-03-13  Jackson Harper  <jackson@ximian.com>
6202
6203         * MdiWindowManager.cs: Use the system menu height. Fixes some
6204         strange sizing issues.
6205
6206 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6207
6208         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
6209         * TextBoxBase.cs:
6210           - Scroll to caret after inserting text (#77672)
6211           - Make scroll range one pixel higher, fixes off-by-one error (and
6212             makes underlines visible on the last line)
6213
6214 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
6215
6216         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
6217           the keyboard state from being stuck with keys in 'pressed' state when
6218           focus is switched away via keyboard
6219         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
6220           reset the keyboard if no X11 KeyUp events are expected to come
6221         * X11Structs.cs: Switched type of Visible to bool to match driver
6222
6223 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6224
6225         * TextControl.cs:
6226           - Switched caret to be just 1 pixel wide, matches MS and looks less
6227             clunky
6228           - Moved caret display 1 pixel down from the top of the control
6229             to improve view
6230           - InsertCharAtCharet: Update the selection start if moving the caret
6231             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
6232           - No longer always creating the caret when the caret methods are
6233             called. Only the actual ShowCaret/HideCaret will do that now
6234           - Only setting caret visible if the owner control has focus
6235           - UpdateView: Added invalidation-shortcut logic for center and right 
6236             aligned text. Previously we'd update all according to the left
6237             logic which caused drawing errors. Also fixed height of invalidated
6238             areas, now properly invalidating the whole area (was off-by-one)
6239           - owner_HandleCreated: Always generate the document when the
6240             handle is created; this ensures that 
6241         * TextBoxBase.cs:
6242           - Fixed situation where caret would disappear under the right
6243             window border, also improved scrolling behaviour on left-
6244             aligned textboxes
6245           - Fixed right-aligned textboxes to have a border to the
6246             right instead of the caret being under the right border
6247         * XplatUIX11.cs:
6248           - Switched from 'nested' to simple visible/not visible tracking 
6249             for caret (part of fix for #77671)
6250           - No longer passing through translated FocusIn/FocusOut messages
6251             since we were notifying too often and the wrong windows. Instead
6252             we just notify our focussed window of receiving or loosing focus
6253         * XplatUIWin32.cs: Switched from 'nested' show/hide 
6254           counting for caret to simple visible yes/no behaviour (part of 
6255           fix for #77671)
6256
6257 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6258
6259         * Mime.cs: Remove debug code...
6260
6261 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6262
6263         * MimeGenerated.cs: Removed
6264         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
6265           and subclasses) from /usr/(local/)share/mime and
6266           $HOME/.local/share/mime.
6267
6268 2006-03-10  Jackson Harper  <jackson@ximian.com>
6269
6270         * MdiWindowManager.cs: Recalc the NC area when a window is
6271         maximized/restored so that the menu area is drawn on forms that
6272         don't have a menu.
6273
6274 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6275
6276         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6277           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
6278           us to force a WM_NCCALCRESIZE message being sent. This is needed
6279           for MDI maximizing.
6280
6281 2006-03-10  Jackson Harper  <jackson@ximian.com>
6282
6283         * Form.cs: We need to use the ActiveMenu when calculating menu
6284         height.
6285         - Fix nullref when the window manager hasn't been created yet.
6286         * Control.cs: Fix nullref when we try to bring a control to the
6287         front that has no parent.
6288         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
6289         height.
6290         - Add a dummy item to the maximized menu so it always has the
6291         correct height. Otherwise when there are no menus we don't get our
6292         icon and buttons.
6293         
6294
6295 2006-03-10  Jackson Harper  <jackson@ximian.com>
6296
6297         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
6298         stuff.
6299         * Form.cs: Make the window_state internal so the window managers
6300         can track it.
6301         - When an MDI child is maximized let its window manager create the
6302         main menu (so it can add its icon).
6303         - Notify the window managers of state changes
6304         - Let the window manager paint its buttons and handle button
6305         clicks on the menu when it is maximized.
6306         * InternalWindowManager.cs: Move the prev_bounds into the mdi
6307         window manager, since tool windows don't use it, only mdi windows.
6308         - Tell the main form that we don't want it to handle NCPAINT
6309         itself to avoid extra painting.
6310         - Handle clicks on a maximized windows menu.
6311         - Handle window state changes
6312         - Handle minimize/maximize clicks correctly by setting the window state.
6313         * MdiWindowManager.cs: Add an icon menu that (the menu you get
6314         when clicking on the forms icon).
6315         - New method to create a forms maximized menu. This is its normal
6316         menu + an icon.
6317         - Handle window state changes.
6318         - Handle sizing of maximized windows.  Maximized windows are just
6319         drawn bigger then the parent visible area. All controls are still
6320         there, they are just outside the visible area (this matches windows).
6321         * MdiClient.cs: No scrollbars when a child window is maximized.
6322         - Let the children windows figure out how big they should be when
6323         sizing maximized windows.
6324         - Implement a version of ArrangeIconicWindows somewhat similar to
6325         Windows version.  There are some little differences, but I don't
6326         think any app will rely on the layout of minimized mdi windows.
6327
6328 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6329
6330         * Padding.cs: Several fixes to allow compiling with csc 2.0
6331
6332 2006-03-09  Jackson Harper  <jackson@ximian.com>
6333
6334         * Menu.cs:
6335         * MenuItem.cs: Cheap hack so we can add items to the list without
6336         the events being raised.  This allows adding mdi items during
6337         drawing. TODO: Should probably find a better time to add the items.
6338
6339 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6340
6341         * ThemeWin32Classic.cs:
6342           - CheckBox_DrawText: Added logic to not wrap if not enough space
6343             is available (Fix for bug #77727)
6344           - RadioButton_DrawText: Added logic not to wrap if not enough
6345             space is available (Fix for bug #77727). Also removed some
6346             duplicate code, DrawString always drawing the regular text
6347             before hitting the if statement.
6348
6349 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
6350
6351         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
6352
6353 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6354
6355         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
6356         * ContainerControl.cs: Partial implementation of some 2.0 scaling
6357           methods. Moved the new 2.0 properties into alphabetical order with
6358           other properties and added MonoTODO tags
6359
6360 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6361
6362         * AutoScaleMode.cs: Added. Fix build.
6363
6364 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6365
6366         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6367           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
6368           and was requiring premature handle creation for calls from above
6369         * Form.cs, Control.cs: Removed handle arguments from calls to
6370           CalculateClientRect()
6371
6372 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6373
6374         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
6375           drag_column.column_rect is MarshalByRef and can't be used that way
6376
6377 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6378
6379         * AxHost.cs: Added deserialization constructor for 
6380           AxHost+State (fixes 77743)
6381
6382 2006-03-09  Mike Kestner  <mkestner@novell.com>
6383
6384         * ListView.cs: 
6385         - Added column drag reordering for details view.
6386         - fixed behavior when mouse is dragged off column and
6387         AllowColumnReorder is false.
6388         * ColumnHeader.cs: clone the format too in Clone.
6389         * Theme.cs: add DrawListViewHeaderDragDetails method.
6390         * ThemeWin32Classic.cs:
6391         - impl new method for drawing drag column shadows and targets.
6392         - support column offset for details mode in DrawListViewItem.
6393
6394 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6395
6396         * TextControl.cs: Reset the char_count when the document is cleared
6397           (Fixes bug reported on mono-winforms mailing list)
6398
6399 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6400
6401         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
6402           of calling base we simply process the key ourselves, since both
6403           DefWindowProc and the handled method would set m.Result. 
6404           (Fixes #77732)
6405
6406 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6407
6408         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
6409           method also moves the window; instead implemented a copy of
6410           Control.ScaleCore (Part of fix for #77456)
6411         * TextBoxBase.cs: 
6412           - Created new CreateGraphicsInternal method to allow providing
6413             a graphics context when no handle is created without triggering
6414             handle creation. (Part of fix for #77456)
6415           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6416         * TextControl.cs: 
6417           - Switched Constructor to require TextBoxBase instead of Control (to
6418             allow uncast access to CreateGraphicsInternal)
6419           - Safeguarded use of owner.Handle property. No longer accessing it
6420             unless the handle is already created.
6421           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6422           - Now triggering a recalc when owning control becomes visible
6423         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
6424           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
6425           premature handle creation (Part of fix for #77456)
6426         * Control.cs:
6427           - We now only destroy our double-buffering buffers when the
6428             control is resized or disposed, but not when visibility
6429             changes. (The code even re-created them twice every time)
6430           - Now requiring a redraw of the buffer on visibility changes
6431             (fixes bug 77654 part 2)
6432           - Not passing OnParentVisibleChanged up unless the control
6433             is visible
6434           - CanFocus: Fixed to match MS documentation
6435           - Focus: Fixed to return actual focus state and to check if
6436             setting focus is legal before setting it
6437
6438 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
6439
6440         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
6441           when to draw focus rectangle by looking at parent focus and
6442           selected state instead. This fixes TabPages on Linux sometimes
6443           having none or multiple focus rectangles.
6444         * XplatUIX11.cs (SetFocus): 
6445           - Don't set the focus if the same window already has focus
6446           - Use SendMessage instead of PostMessage (like it's Win32
6447             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
6448             to match MS behaviour
6449         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
6450           are not selectable.
6451
6452 2006-03-07  Jackson Harper  <jackson@ximian.com>
6453
6454         * PictureBox.cs: Revert line I accidently committed last week.
6455
6456 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6457
6458         * Control.cs: 
6459           - Added new IsRecreating and ParentIsRecreating properties to
6460             allow testing if RecreateHandle has been called on ourselves
6461             or one of our parents
6462           - WndProc(WM_DESTROY): If our control handle is being recreated
6463             we immediately need to create the handle when receiving the
6464             destroy, that way our child windows find a valid parent handle
6465             when they themselves are being recreated upon WM_DESTROY receipt
6466             (fix for bug #77654 part 1)
6467         * XplatUIX11.cs:
6468           - DestroyWindow: WM_DESTROY must be sent to our own window before
6469             notifying any child windows. MS documents that child windows
6470             are still valid when WM_DESTROY is received. (Control now relies on
6471             this behaviour)
6472           - Added some fine-grain debug options
6473
6474 2006-03-06  Jackson Harper  <jackson@ximian.com>
6475
6476         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
6477         box and base calculations off this.
6478         * MdiChildContext.cs:
6479         * MdiWindowManager.cs: Don't need to ensure scrollbars here
6480         anymore.
6481         
6482 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
6483
6484         * Splitter.cs: In situations where the affected control is added
6485           to the parent's control list after the splitter, we would not
6486           populate affected. Now we try populating it on mousedown, if
6487           it's not already set, and force it to be re-set whenever our
6488           parent changes.
6489
6490 2006-03-03  Matt Hargett  <matt@use.net>
6491
6492         * Control.cs: implement Control.Padding
6493         * Padding.cs: -Padding.All returns -1 when constructing with the
6494         implicit default ctor
6495         -Padding.ToString() matches MS.NET
6496         * ContainerControl.cs: implement
6497         ContainerControl.AutoScaleDimensions
6498         * ListControl.cs: implement ListControl.FormattingEnabled
6499         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
6500         * ButtonBase.cs:
6501         * TabPage.cs: Implement UseVisualStyleBackColor.
6502         * PictureBox.cs: Implement PictureBox.InitialImage.
6503
6504 2006-03-03  Mike Kestner  <mkestner@novell.com>
6505
6506         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
6507         event declarations to proxy to base event.
6508         * ListViewItem.cs: update to use ItemControl.
6509         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
6510         * ThemeWin32Classic.cs: update to new ListView theme API and fix
6511         column header label rendering for 0 width columns.
6512
6513 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
6514
6515         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
6516           that causes the control to be created. Fixes #77476.
6517
6518 2006-03-02  Jackson Harper  <jackson@ximian.com>
6519
6520         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
6521         expose_pending.
6522
6523 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
6524
6525         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
6526           passed in for the EventArgs (fixes #77690)
6527
6528 2006-03-01  Jackson Harper  <jackson@ximian.com>
6529
6530         * ScrollBar.cs: Refresh afterbeing resized.
6531
6532 2006-02-28  Mike Kestner  <mkestner@novell.com>
6533
6534         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
6535         Clean up a tracker compile warning.
6536         * MenuItem.cs: add internal PerformPopup method.
6537         [Fixes #77457]
6538
6539 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6540
6541         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
6542           implicit expose) when the text is set to null
6543
6544 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
6545
6546         * RichTextBox.cs (FlushText): When newline is true, we always
6547           need to split the line, even if no text is on it and we may
6548           never eat newlines. (Fixes #77669)
6549
6550 2006-02-28  Mike Kestner  <mkestner@novell.com>
6551
6552         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
6553         and set Selected instead.
6554         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
6555         collections.
6556
6557 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6558
6559         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
6560
6561 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
6562
6563         * FontDialog.cs:
6564           - Got rid of the panel. All controls are now directly added to
6565             the dialog form
6566           - It is now possible to set a font with the Font property
6567           - MinSize and MaxSize property do now what they should
6568           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
6569           - Searching and selecting a font with the font textbox works now,
6570             the same applies to the style and size textbox
6571           - Draw the correct 3D border in the example panel
6572           - Fixed a little mem leak (unused fonts didn't get disposed)
6573           - Many other internal updates/rewrites...
6574           - Fix typo
6575
6576 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6577
6578         * TextControl.cs: 
6579           - InsertRTFFromStream: Added 'number of characters inserted' argument
6580           - set_SelectedRTF: Now using the number of characters to calculate
6581             the new location for the selection and cursor (x/y cannot be used
6582             due to potentially already wrapped text)
6583
6584 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
6585
6586         * TextControl.cs: Added property and implemented means to allow 
6587           disabling recalculation of a document (can be used to speed up
6588           multiple inserts and is needed to make RTF inserts predictable, see
6589           bug #77659)
6590         * RichTextBox.cs: Using the new NoRecalc property of Document to
6591           keep x/y insert locations predictable. Also makes it faster inserting
6592           large chunks of RTF
6593
6594 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6595
6596         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
6597           it's easier for a child control to handle the other messages without
6598           having to duplicate the special functionality
6599         * TextBoxBase.cs
6600           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
6601             code to handle processing the key ourselves, in order to get 
6602             access to the result of KeyEventArgs.Handled. We now only call 
6603             ProcessKey if they key hasn't been handled already. Fixes #77526.
6604           - set_Text: If null or empty string is given, just clear the 
6605             document. Fixes part of #77526
6606
6607 2006-02-27  Jackson Harper  <jackson@ximian.com>
6608
6609         * SizeGrip.cs: Paint the background color before painting the grip
6610         so things look right.
6611         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
6612
6613 2006-02-27  Mike Kestner  <mkestner@novell.com>
6614
6615         * ListView.cs:
6616           - Restructure layout and invalidation model to remove a ton of
6617           flicker from the control and speed up performance in general.
6618           - Add manual column resize, flickers like crazy, but I already have
6619           some ideas on how I'll fix that. (#76822)
6620           - Merge the three Icon-based views into a single layout method.
6621           - Move item selection interaction logic from the item since 
6622           interaction with the collections is more appropriate to the view.
6623           - Deselection on non-item clicks.
6624         * ListViewItem.cs:
6625           - Encapsulate most of the layout. Add some internal props to trigger
6626           layout.  Move to a model where Items invalidate themselves instead
6627           of just invalidating the whole control every time something changes.
6628           - Invalidate on Text/Caption changes.
6629           - switch to an offset based layout model to avoid having to absolute
6630           position every element on item moves.
6631           - correct checkbox layout to conform to MS layout.
6632         * ThemeWin32Classic.cs:
6633           - refactor some column header drawing code.
6634           - fix string justification for column headers (#76821)
6635           - make SmallIcon labels top justified for compat with MS impl.
6636         * ThemeClearlooks.cs:
6637           - adjust to new ListViewItem internal checkbox bounds api.
6638
6639 2006-02-27  Jackson Harper  <jackson@ximian.com>
6640
6641         * Control.cs:  Change where implicit controls fall in the zorder.
6642         They are now on top of all children.
6643         - Synced AddImplicit code with Add
6644         - Removed unused enumerator.
6645         * SizeGrip.cs: Remove the TODO as its been TODONE.
6646
6647 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
6648
6649         * TextControl.cs(Insert): Combine the last lines unless the insertion
6650           string ends with \n\n, otherwise we leave one line too many (Fixes
6651           something I noticed with the testapp for #77526; the bug itself was
6652           already fixed in the previous checkin)
6653
6654 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
6655
6656         * RichTextBox.cs:
6657           - SelectionColor and SelectionFont methods no longer set absolute
6658             styles. Instead, the keep font or color respectively (This 
6659             resolves a long-standing FIXME in the code)
6660           - When flushing RTF text, the insert code now considers text trailing
6661             behind the insertion point (Fixes the bug where when replacing
6662             the selected text via SelectedRTF the remainder of the line behind 
6663             the selection would stay on the first insertion line)
6664         * TextBoxBase.cs:
6665           - AppendText now updates the selection points after inserting text
6666           - AppendText now ensures that the last tag (sometimes 0-length) of
6667             the document is used for the style information (Fixes part of 
6668             bug #77220)
6669         * TextControl.cs:
6670           - Created new FontDefiniton class to allow describing partial style
6671             changes
6672           - StreamLine() now takes a lines argument, to allow it to decide
6673             whether an encountered zero-length tag is the last in the document
6674             (which must be kept to not loose the font/color contained in it,
6675             for later appends)
6676           - Created Combine() and Split() methods for Marker structs, to 
6677             support marker updates due to reformatted documents (soft line
6678             wraps)
6679           - Implemented Document.CaretTag setter
6680           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
6681             of the last line (Not the cause, but also exposed by bug #77220)
6682           - Added LineTag argument to InsertString method, to allow callers
6683             to force a certain tag to be used (required to force use of the
6684             trailing zero-length tag of a document)
6685           - Now updating markers in Combine(), to avoid stale tag markers
6686           - Added some method descriptions to aid maintenance
6687           - Implemented new FormatText concept, allowing additive/subtractive
6688             formatting by only specifying the components that are to be 
6689             changed. This was needed for resolving the RTB.SelectedColor/
6690             RTB.SelectedFont fixmes
6691           - Added Break() support method to allow breaking up linetags (used
6692             for partial formatting)
6693           - Added GenerateTextFormat() method. It is used for partial 
6694             formatting and allows to generate a full font/color from given
6695             attributes and an existing tag.
6696
6697 2006-02-26  Jackson Harper  <jackson@ximian.com>
6698
6699         * XplatUIX11.cs:  Use the correct caption height.
6700         - Translate hittest coordinates to screen coords to match MS.
6701         * XplatUIWin32.cs: When we create MDI windows we need to reset
6702         some of the style flags, so we get a nice blank window, and can
6703         draw all the decorations ourselves.
6704         - Set a clipping rectangle on the non client paint event, the
6705         window manager drawing code needs one.
6706         * Form.cs: The window manager needs to know when the window state
6707         has been updated.
6708         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
6709         don't need to factor in border and title sizes in these
6710         methods. TODO: Remove the args and fix the call points.
6711         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
6712         properly.
6713         - Let the driver set the cursors.
6714         - Improve active window handling
6715         - Correct sizes for title bars and buttons.
6716         - Match MS drawing better
6717         * MdiWindowManager.cs: We don't need to handle border style
6718         updates specially anymore.
6719         - Check for scrollbars when windows are done moving
6720         - Handle Active properly.
6721         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
6722         correctly. I am spewing the exception though, so we don't hide the
6723         bugs.
6724         
6725 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
6726
6727         * DataGridViewRowPostPaintEventArgs.cs,
6728           DataGridViewCellPaintingEventArgs.cs,
6729           DataGridViewRowCollection.cs,
6730           DataGridViewRowPrePaintEventArgs.cs,
6731           DataGridViewCell.cs: Clear a few warnings and implement a few
6732           exceptions that should be thrown.
6733
6734 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6735
6736         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
6737           'inheriting' our parent's (non-default) cursor. (Part of
6738            the fix for #77479)
6739
6740 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
6741
6742         * XplatUIX11.cs: Fixed cast to make csc happy
6743
6744 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6745
6746         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
6747           it's for the client area (part of fix for #77479 and needed
6748           for MDI window cursor handling)
6749         * XplatUIX11.cs
6750           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
6751             the appropriate default cursors and also passing the message
6752             up the parent chain 
6753           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
6754             for non-client areas
6755
6756 2006-02-15  Jackson Harper  <jackson@ximian.com>
6757
6758         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
6759         is a real MDI window
6760
6761 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
6762
6763         * X11DesktopColors.cs: Instead of checking the desktop session
6764           string for "KDE" check if it starts with "KDE"
6765
6766 2006-02-10  Jackson Harper  <jackson@ximian.com>
6767
6768         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
6769         systems).
6770
6771 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
6772
6773         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
6774           errors
6775         * ColorDialog.cs:
6776           - Got rid of the panel. All controls are now directly added to
6777             the dialog form
6778           - Changed to mono coding style
6779
6780 2006-02-10  Jackson Harper  <jackson@ximian.com>
6781
6782         * InternalWindowManager.cs: We don't need the set visibility to
6783         false hack anymore now that peter has written beautiful shutdown
6784         code.
6785
6786 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
6787
6788         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
6789           where already explicitly destroyed
6790
6791 2006-02-10  Jackson Harper  <jackson@ximian.com>
6792
6793         * MdiClient.cs: Handle the case where windows are too high or to
6794         the left and we need scrollbars.
6795
6796 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
6797
6798         * MimeIcon.cs: Added some icons
6799         * FileDialog.cs:
6800           - Fixed bug #77477
6801           - Got rid of the panel. All controls are now directly added to
6802             the dialog form
6803           - Changed to mono coding style
6804           - On Linux "My Computer" and "My Network" will now show some
6805             more usefull information. A new class, MasterMount, gathers
6806             this information from /proc/mount. Updated MWFFileView to make
6807             use of this information
6808           - Fixed a bug that caused FileDialog to crash when
6809             ".recently_used" file had a zero size
6810           - FilterIndex does now what it should
6811           - Some Refactoring
6812         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
6813             FileDialog changes
6814
6815 2006-02-09  Jackson Harper  <jackson@ximian.com>
6816
6817         * ComboBox.cs: Don't touch if null.
6818
6819 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
6820
6821         * Cursor.cs: 64bit safeness fix
6822         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
6823
6824 2006-02-09  Jackson Harper  <jackson@ximian.com>
6825
6826         * Form.cs: If a form is made into an MDI form update the styles so
6827         all the props can get set correctly.
6828         - Kill the mdi_container when we dont need it anymore.
6829         * InternalWindowManager.cs: Add missing NOT
6830
6831 2006-02-08  Jackson Harper  <jackson@ximian.com>
6832
6833         * InternalWindowManager.cs: Respek clipping when drawing MDi
6834         decorations.
6835
6836 2006-02-08  Jackson Harper  <jackson@ximian.com>
6837
6838         * Hwnd.cs: Add bits to track non client expose events.
6839         * XplatUIX11.cs: Track non client expose events on the hwnd. This
6840         gives us a proper invalid rect and will allow for some nice
6841         optimizations with NC client drawing
6842         - MDI windows are children windows, so move their style handling
6843         into the child window block.
6844         * InternalWindowManager.cs: Remove a state reset that was
6845         getting invoked at the wrong time. Fixes managed windows getting
6846         into a 'stuck' captured state.
6847
6848 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
6849
6850         * TextControl.cs (Document.ctor): Now initializing 
6851           selection_anchor. Fixes #77493
6852
6853 2006-02-07  Jackson Harper  <jackson@ximian.com>
6854
6855         * TrackBar.cs: The increment/decrements were backwards.
6856
6857 2006-02-07  Mike Kestner  <mkestner@novell.com>
6858
6859         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
6860         to the instance itself.
6861
6862 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
6863
6864         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
6865           on ulongs and pointers, the size differs between 32bit and 64bit
6866           systems. 
6867
6868 2006-02-07  Mike Kestner  <mkestner@novell.com>
6869
6870         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
6871         for 64 bit platforms to work around a metacity bug. 
6872
6873 2006-02-07  Jackson Harper  <jackson@ximian.com>
6874
6875         * TrackBar.cs: Process the input keys we need, and hookup to
6876         KeyDown instead of using WndProc, so we get key messages.
6877
6878 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
6879
6880         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
6881           machine we're on. 
6882         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
6883           we need to translate the XdndVersion atoms array before sending it
6884
6885 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
6886
6887         * XplatUIX11.cs: 
6888           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
6889             number of bits for the property, not the number of bytes. The
6890             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
6891             but would not crash since it specified 8 bits instead of 4 bits)
6892           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
6893             defined as XID -> long in the C headers)
6894           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
6895             references since those are now IntPtr to begin with
6896           - Switched all Atom.XXX 'int' casts to IntPtr casts
6897           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
6898           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
6899           - Added XChangeActivePointerGrab DllImport (for X11DnD)
6900         * X11Structs.cs:
6901           - Changed 'int' type for Atoms in XEvent structures to IntPtr
6902           - Changed atom in HoverStruct to be IntPtr
6903         * X11DnD.cs:
6904           - Removed local DllImports, switched code to use those from XplatUIX11
6905           - Removed/fixed casts related to the switch of Atom to be a IntPtr
6906
6907 2006-02-06  Mike Kestner  <mkestner@novell.com>
6908
6909         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
6910         method signatures in the import region.  There may still be some
6911         lingering struct marshaling issues, as I didn't drill down into those.
6912         Yet.
6913
6914 2006-02-06  Jackson Harper  <jackson@ximian.com>
6915
6916         * ComboBox.cs: Dont manually set the top_item, this is computed
6917         when the scrollbar position is set.
6918
6919 2006-02-06  Mike Kestner  <mkestner@novell.com>
6920
6921         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
6922         startup crashes on amd64.  There's other fixes needed.  All pinvoke
6923         usage of Atom needs to be mapped to IntPtr for example.  And there are
6924         likely other int/long issues to be addressed.
6925
6926 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
6927
6928         * FileDialog.cs: One more...
6929
6930 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6931
6932         * FileDialog.cs: Next try
6933
6934 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6935
6936         * FileDialog.cs: First part of fix for #77464
6937
6938 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
6939
6940         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
6941           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
6942           AcceptButton border drawing.
6943
6944 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
6945
6946         * Form.cs: Moved positioning of form after auto scaling is applied,
6947           otherwise it would possibly use wrong form size.
6948
6949 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
6950
6951         * Control.cs (RecreateHandle): No need to re-create any child
6952           controls, the child windows will get destroyed automatically by
6953           the windowing system or driver, and re-created when the handle
6954           is being accessed the first time. Fixes #77456
6955         * Form.cs: No longer setting the form to closing if the handle is 
6956           being recreated. This seems like the right thing to do, don't
6957           have a bug or testcase for this, though.
6958
6959 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
6960
6961         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
6962           controls to avoid unwanted side effects
6963
6964 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
6965
6966         * Control.cs: 
6967           - ScaleCore needs to scale the bounds, not the ClientSize of the 
6968             control. Fixes #77416.
6969           - DefaultSize is 0,0 for control
6970         * TextBoxBase.cs: 
6971           - DefaultSize is 100, 20
6972           - SetBoundsCore: Now enforcing the height, no matter if the provided
6973             height is more or less than the preferred one, as long as AutoSize
6974             is on
6975         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
6976
6977 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
6978
6979         * Control.cs:
6980           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
6981             call unless both performLayout is true *and* we have a pending
6982             layout change
6983           - ResumeLayout: MS does not completely nest Suspend and Resume,
6984             they bottom out at 0, fixed our code to match that.
6985           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
6986             SetBoundsCore, we were updating even when we shouldn't. This fixes
6987             swf-anchors mis-anchoring when resizing the app fast and lots.
6988           - UpdateDistances: Now only setting the left and top distance if 
6989             we have a parent and are not suspended, this is based on
6990             a suggestion by Don Edvaldson in bug #77355.
6991           - OnVisibleChanged: Fixed logic when to create the control. We may
6992             not create the control if we have no parent or if it's not visible;
6993             switched to using Visible property instead of is_visible field 
6994             since the property also considers parent states. This fixes a bug
6995             when starting Paint.Net
6996
6997 2006-02-02  Jackson Harper  <jackson@ximian.com>
6998
6999         * Form.cs: If the forms handle hasn't been created yet don't call
7000         into xplatui to make it top most, just set the topmost flag on the
7001         form in CreateParams
7002         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
7003
7004 2006-02-01  Jackson Harper  <jackson@ximian.com>
7005
7006         * ScrollableControl.cs: Refactored the Recalculate method a
7007         little, this wasn't handling all the variants of bottom and right
7008         bars needed to be added and added/removed based on their
7009         counterparts being added/removed (which changes the drawable
7010         size). Also we special case client widths and heights of 0 and
7011         don't add the scrollbar for those.
7012
7013 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
7014
7015         * XplatUIX11.cs: 
7016           - Added method to get AbsoluteGeometry(); currently unused, but might
7017             be used in the future, if we try again to figure out toplevel
7018             coordinates with some more crappy window managers
7019           - Added FrameExtents() method to retrieve the WM set decoration size
7020           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
7021             to deal with at least KDE, FVWM and metacity (Fixes #77092)
7022         * Hwnd.cs: 
7023           - Added whacky_wm tracking var for metacity
7024           - Added logic to have default menu height if the actual menu height
7025             has not yet been calculated (part of fix for #77426)
7026         * Form.cs: Keep track whether client size has been set and re-set 
7027           it if a menu is added/removed afterwards (Fixes #77426)
7028
7029 2006-01-31  Jackson Harper  <jackson@ximian.com>
7030
7031         * Control.cs: When a new Site is set on the component attempt to
7032         pull the AmbientProperties from it.
7033
7034 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
7035
7036         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
7037           in the background of the owning form. Fixes #77332
7038
7039 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7040
7041         * MimeIcon.cs: Fix for #77409
7042
7043 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7044
7045         * XplatUIX11GTK.cs: Initial import
7046
7047 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
7048
7049         * FixedSizeTextBox: fixes class signature
7050
7051 2006-01-30  Jackson Harper  <jackson@ximian.com>
7052
7053         * FixedSizeTextBox.cs: New internal class that represents a
7054         textBox that will not be scaled.
7055         * TreeView.cs:
7056         * ComboBox.cs:
7057         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
7058         standard TextBox.
7059                 
7060 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
7061
7062         * XplatUIX11.cs: Retrieve default screen number instead of
7063           assuming 0. Attempted fix for #77318
7064
7065 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
7066
7067         * XplatUIWin32.cs: 
7068           - GetWindowPos: When a window is parented by FosterParent, use 
7069             the desktop instead of FosterParent as the base to get coordinates
7070           - CreateWindow: Don't make FosterParent the parent window for Popups
7071             if we don't want a taskbar entry, Popups automatically don't get one
7072         * Hwnd.cs: Need to call remove to actually remove the key from the
7073           hash table
7074
7075 2006-01-30  Mike Kestner  <mkestner@novell.com>
7076
7077         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
7078
7079 2006-01-30  Jackson Harper  <jackson@ximian.com>
7080
7081         * TreeView.cs:
7082         * TreeNode.cs: Raise events no matter how the treenode is
7083         checked. Patch by Don Edvalson.
7084
7085 2006-01-30  Jackson Harper  <jackson@ximian.com>
7086
7087         * TreeNode.cs: Signature fix.
7088
7089 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
7090
7091         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
7092
7093 2006-01-20  Mike Kestner  <mkestner@novell.com>
7094
7095         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
7096         event forwarding when menus are active.
7097         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
7098         Most of the patch is pdb's with a little rework.
7099
7100 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7101
7102         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
7103           Removed GetMenuDC and ReleaseMenuDC methods; replaced
7104           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
7105         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
7106         * InternalWindowManager.cs: Added use of PaintEventStart/End to
7107           handling of WM_NCPAINT message, now passing the PaintEventArgs to
7108           the PaintWindowDecorations method
7109         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
7110         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
7111         * MenuAPI.cs: Made tracker window invisible
7112         * XplatUIWin32.cs:
7113           - Removed GetMenuDC and ReleaseMenuDC methods
7114           - Implemented the client=false path for PaintEventStart and
7115             PaintEventEnd
7116
7117 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7118
7119         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
7120         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
7121           styles
7122         * Form.cs: 
7123           - MaximizeBox, MinimizeBox: Recreate the handle when setting
7124             the style
7125           - CreateParams: Reworked the styles to match MS look'n'feel,
7126             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
7127             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
7128
7129 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7130
7131         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
7132           window is not mapped, since otherwise every form that's being 
7133           created is considered minimized, which is wrong.
7134         * Form.cs: Catching the exception and returning our internal value
7135           instead
7136
7137 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7138
7139         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
7140           SetWindowMinMax() to have means to tell the driver about the minimum,
7141           maximum and maximized state window sizes. (Part of the fix for #76485)
7142         * Form.cs:
7143           - Implemented tracking of minimum and maximum window size, now calling
7144             new SetWindowMinMax() driver method to tell the driver (Part of the
7145             fix for #76485)
7146           - Finished handling of WM_GETMINMAXINFO method, now setting all values
7147             (Completes fix for #76485)
7148           - Calling new SetWindowMinMax driver method when the handle for a 
7149             form is created, to make sure the driver knows about it even if
7150             the values have been set before the window was created
7151           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
7152             to avoid messing up our anchoring calculations (partial fix
7153             for #77355)
7154         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
7155         * XplatUIX11.cs:
7156           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
7157           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
7158             (and presumably other freedesktop.org compliant WMs). Left the
7159             assumption unmapped=minimized, needed for SetVisible to work.
7160           - Now setting the window state when creating windows
7161           - Fixed SetVisible to consider/set the window state when mapping
7162             a Form. We cannot set the state before it's mapped, and we cannot
7163             use Form.WindowState once it's mapped (since it would ask the
7164             driver and get 'normal'. Therefore, we grab the state before
7165             mapping, map, and then set state.
7166           - Implmemented SetWindowMinMax method; Metacity does not seem to
7167             honor the ZoomHints, though.
7168         * XplatUIWin32.cs:
7169           - Removed MINMAXINFO (moved to XplatUIStructs)
7170           - Added SetWindowMinMax stub (on Win32 the only way to set that
7171             information is in response to the WM_GETMINMAXINFO message, which
7172             is handled in Form.cs)
7173           - Added logic to SetVisible to set the proper window state when a 
7174             form is made visible (fixes #75720)
7175
7176 2006-01-26  Jackson Harper  <jackson@ximian.com>
7177
7178         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
7179         same way we handle them with Invoke.
7180
7181 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
7182
7183         * Form.cs:
7184           - Added tracking of window state so CreateParams can return
7185             the appropriate style
7186           - Moved setting of WS_CAPTION style in CreateParams to allow
7187             styles without caption
7188         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
7189           control if the TextBox property is accessed. Fixes #77345
7190         * Control.cs:
7191           - get_Created: now uses is_disposed and is_created to determine
7192             return value (suggested by Jackson)
7193           - CreateHandle: No longer exits if the handle is being recreated
7194           - RecreateHandle: If the handle is not yet created call the 
7195             appropriate method to create either control or handle. If the
7196             control is already created CreateHandle will simply exit instead
7197             of just creating the handle
7198         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
7199           now SendMessage WM_DESTROY directly to the control when DestroyWindow
7200           is called.
7201         * XplatUIX11.cs: 
7202           - When DestroyWindow is called, instead of waiting for the 
7203             DestroyNotification from X11, we directly post it to the WndProc
7204             and immediately dispose the hwnd object.
7205             Same applies to DestroyChildWindows, and this obsoletes the
7206             expose_pending tracking. Contrary to Win32 behaviour we destroy our
7207             child windows before our own, to avoid X11 errors.
7208           - Removed the direct sending of WM_PAINT on UpdateWindow
7209         * XplatUIWin32.cs:
7210           - Reworked DoEvents and GetMessage to allow access to internal queue
7211             even when trying non-blocking access to the queue.  Fixes #77335. 
7212             Based on a patch suggestion by Don Edvalson. The new private
7213             GetMessage can now also be used as a backend for a PeekMessage
7214             frontend version.
7215         * XplatUI.cs: Improved debug output for CreateWindow
7216
7217 2006-01-25  Jackson Harper  <jackson@ximian.com>
7218
7219         * Help.cs: Allow param to be null. Patch by Don Edvalson.
7220
7221 2006-01-24  Jackson Harper  <jackson@ximian.com>
7222
7223         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
7224         when we have a MaxDropItems lower then the selected index.
7225
7226 2006-01-24  Jackson Harper  <jackson@ximian.com>
7227
7228         * Control.cs: Don't allow selection of non visible controls, allow
7229         selection of controls without parents.
7230
7231 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7232
7233         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
7234         * DataGridDrawingLogic.cs: Add editing row only when is necessary
7235
7236 2006-01-23  Jackson Harper  <jackson@ximian.com>
7237
7238         * UpDownBase.cs: Make the textbox handle all the selection and
7239         tabbing. This fixes tabing to updown controls.
7240
7241 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7242
7243         * TextBoxBase.cs: fixes exception thown the object was null
7244
7245 2006-01-23  Jackson Harper  <jackson@ximian.com>
7246
7247         * ButtonBase.cs: Just use the base CreateParams. They set
7248         visibility and enabled correctly.
7249         * ComboBox.cs:
7250         * TrackBar.cs:
7251         * MonthCalendar.cs: Lets let the base set as much of the
7252         createparams as possible so we don't have duplicate code all over
7253         the place.
7254
7255 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
7256
7257         * ThemeGtk.cs: Added TrackBar and some experimental code to
7258           get double buffering back
7259
7260 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
7261
7262         * DataGrid.cs: Allows row number set internally higher than the last
7263         when creating a new row. Restores the editing functionality.
7264
7265 2006-01-20  Mike Kestner  <mkestner@novell.com>
7266
7267         * MimeIcon.cs: delay Image creation until the icons are accessed
7268         instead of creating 190 scaled images on GnomeHandler startup.
7269
7270 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
7271
7272         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
7273           first call base before processing the event. Fixes #77279
7274
7275 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
7276
7277         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
7278           that the stride for the GDI bitmap would match the stride of
7279           a DIB or a Cursor.
7280
7281 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
7282
7283         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
7284
7285 2006-01-19  Jackson Harper  <jackson@ximian.com>
7286
7287         * ComboBox.cs: Hookup the text controls keydown event so we get
7288         those when the text control has the focus.
7289
7290 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7291
7292         * Label.cs: Now using the base events instead of defining new ones;
7293           this allows us to just call the base properties without having to
7294           duplicate all base property logic 
7295
7296 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7297
7298         * Label.cs: A label by default is not a tabstop (Fixes one of our
7299           failing nunit tests)
7300
7301 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7302
7303         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
7304         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
7305
7306 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7307
7308         * Cursor.cs: Reimplemented creating cursor bitmaps without using
7309           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
7310           This fixes #77218
7311         * XplatUIWin32.cs: 
7312           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
7313             constructor creates images that can't be saved. Part of the fix
7314             for #76103
7315           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
7316           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
7317             bug fix for handling window state in forms properly)
7318
7319 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7320
7321         * ThemeGtk.cs: Simplify ScrollBar drawing
7322
7323 2006-01-18  Jackson Harper  <jackson@ximian.com>
7324
7325         * Splitter.cs: Set the default dock style for the splitter control
7326         in the constructor.
7327
7328 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7329
7330         * ThemeGtk.cs: Corrected StateType and ShadowType for
7331           gtk_paint_box
7332
7333 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7334
7335         * Control.cs: Make use of Theme.DoubleBufferingSupported
7336         * ThemeGtk.cs:
7337           - Added drawing for flat style buttons
7338           - Added ScrollBar drawing
7339
7340 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7341
7342         * ThemeClearlooks.cs: Removed some unneeded code.
7343         * ThemeGtk.cs: First part of ThemeGtk enhancements.
7344
7345 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7346
7347         * LinkLabel.cs: We need to update the hover drawing when
7348           leaving the control as well.
7349
7350 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
7351
7352         * DataGrid.cs: Clicking on non empty areas in the columns
7353            area was giving an exception
7354
7355 2006-01-17  Jackson Harper  <jackson@ximian.com>
7356
7357         * ThemeWin32Classic.cs:
7358         * ListView.cs: Do not draw/clip the headers when the header style
7359         is None.
7360
7361 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7362
7363         * DataGrid.cs: Fixes 77260
7364         
7365 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7366
7367         * DataGrid.cs: Clicking on a column on a empty grid was giving
7368           an exception
7369
7370 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7371
7372         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
7373           or any keypress will crash the grid.
7374
7375 2006-01-17  Mike Kestner  <mkestner@novell.com>
7376
7377         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
7378         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
7379         invisible/previously-visible items.
7380         [Fixes #76909]
7381
7382 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
7383
7384         * ThemeClearlooks.cs:
7385         - Added CL_Draw_Button method; now other theme controls that are 
7386           not derived from button or do not have a button can draw buttons
7387           too
7388         - Updated ComboBox drawing
7389         - Beautified RadioButton drawing
7390         - Corrected drawing of bottom and left tabs
7391         - Beautified DateTimePicker and MonthCalendar
7392         - Added CPDrawButton and CPDrawRadioButton
7393
7394 2006-01-16  Jackson Harper  <jackson@ximian.com>
7395
7396         * ComboBox.cs: Set the initial value of the scrollbar to the
7397         current index. Reduce the numbers of refreshs and IndexOfs called.
7398
7399 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
7400
7401         * FileDialog.cs: When the file listview is focused hitting the
7402           backspace key moves the fileview to the parent directory
7403
7404 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7405
7406         * Form.cs: 
7407           - Added RecreateHandle call when changing taskbar visibility to 
7408             trigger reparenting in Win32 driver (Fixes #75719)
7409           - If a window has minimize or maximize buttons, it cannot have
7410             a help button
7411         * XplatUIWin32.cs:
7412           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
7413             the toplevel form with FosterParent (A toolwindow not on the
7414             taskbar) (Fixes #75719)
7415           - Made FosterParent a toolwindow
7416
7417 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7418
7419         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
7420
7421 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7422
7423         * ToolTip.cs: If SetToolTip is called from a control and the mouse
7424           is currently over that control, make sure that tooltip_window.Text
7425           gets updated
7426
7427 2006-01-13  Mike Kestner  <mkestner@novell.com>
7428
7429         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
7430
7431 2006-01-13  Jackson Harper  <jackson@ximian.com>
7432
7433         * TreeView.cs: On MS GetNodeAt never actually factors in the X
7434         value passed.  Also redraw the selected node when we recieve
7435         focus, so tabbing between trees works correctly.
7436
7437 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7438
7439         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
7440           ~/.gconf/%gconf-tree.xml, so use
7441           .gconf/desktop/gnome/interface/%gconf.xml
7442
7443 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7444
7445         * TextControl.cs: Draw text in gray if control is disabled
7446
7447 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7448
7449         * TreeView.cs: Draw the focus rectangle outside the highlight, to
7450           make sure it's always visible. Fixes #76680.
7451
7452 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7453
7454         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
7455
7456 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
7457
7458         * PageSetupDialog.cs: Added.
7459         * PrintDialog.cs: Attributes.
7460         * PrintPreviewControl.cs: Updates.
7461         * PrintPreviewDialog.cs: Updates.
7462         
7463 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7464
7465         * Control.cs: Undid my selection check fix, since it's not needed
7466         * TextBoxBase.cs:
7467           - Now considering the presence of hscroll/vscroll when sizing
7468             vscroll/hscroll respectively. Fixed bug #77077
7469           - Added Left/Up/Down/Right to IsInputKey list to prevent
7470             ContainerControl from stealing them. This fixes what I broke
7471             with my last checkin.
7472
7473 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
7474
7475         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
7476           I finally understand how the property can be set without a setter :-)
7477
7478 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7479
7480         * Application.cs:
7481           - Switched RunLoop to use static Message.Create to create a 
7482             Message object
7483           - Added PreProcessMessage call in runloop for keyboard events; this
7484             is part of the fix for #77219, I overlooked this originally in the
7485             MSDN doc for PreProcessMessage
7486         * Control.cs:
7487           - Removed call to PreProcessMessage from handling of keyboard 
7488             messages; it's supposed to be done in the message pump
7489           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
7490             per MSDN documentation.
7491           - IsInputChar: All chars are input chars by default; removed the 
7492             parent calling chain, MS does not document that
7493           - PreProcessMessage: If IsInputChar is true, we want to return false
7494             to allow dispatching of the message
7495           - When selecting the next control, now also check that we're not
7496             selecting ourselves again and therefore return a false positive.
7497         * TextBoxBase.cs:
7498           - Tried to match return values for IsInputKey and ProcessDialogKey
7499             to what MS returns; moved processing of our special keys outside
7500             ProcessDialogKey since MS does not seem to return true on those.
7501           - Moved code that previously was in ProcessDialogKey into new private
7502             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
7503           - Reworked handling of WM_CHAR to not have to duplicate code from
7504             Control.cs anymore, instead we simply call down to base.
7505            
7506 2006-01-12  Jackson Harper  <jackson@ximian.com>
7507
7508         * ComboBox.cs: We always need to refresh the text area when
7509         EndUpdate is called. Fixes the combobox in the file dialog.
7510         * Control.cs: Don't create the creator_thread until the controls
7511         handle is created.  Also in InvokeRequired we check if the
7512         creator_thread is null. This gives the effect of InvokeRequired
7513         returning true if the controls handle is not created yet, and
7514         matches MS.
7515
7516 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7517
7518         * XplatUI.cs:
7519           - Added StartLoop() driver method. This is used to allow drivers to
7520             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
7521             loop for a particular thread
7522           - Added EndLoop() driver method. This is called once the message
7523             pump for the thread is shut down
7524           - Added SupportsTransparency method to allow the driver to indicate
7525             opacity support for windows
7526         * Form.cs:
7527           - Removed TODO attribute, completed AllowTransparency property
7528           - Added documented logic to Opacity
7529         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
7530           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
7531           versions of CompatibleTextRendering
7532         * X11Structs.cs: Added opacity atom to our atom enumeration
7533         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
7534           of a form might be set before it's reparented by the WM, and we need
7535           the opacity value without calling up to Form)
7536         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
7537           SupportsTransparency() driver methods
7538         * Application.cs: Now calling StartLoop and EndLoop driver methods
7539         * XplatUIX11.cs:
7540           - Added opacity atom registration
7541           - Added StartLoop()/EndLoop() methods. They're empty right now but
7542             will need to get implemented when we switch to a per-thread queue
7543           - Implemented SupportsTransparency() method
7544           - Implemented SetWindowTransparency() method
7545           - Added support for setting the opacity value when a window is
7546             reparented (since the opacity needs to be set on the WM frame)
7547         * XplatUIOSX.cs, XplatUIWin32.cs:
7548           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
7549
7550 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7551
7552         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
7553
7554 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7555
7556         * FileDialog.cs: Added ToolTip for MWFFileView
7557         * MimeIcon.cs: Rewrote GnomeHandler.
7558           - Get currently used gnome icon theme from
7559             ($HOME)/.gconf/%gconf-tree.xml
7560           - Make use of inherited icon themes
7561           - Support SVG icon themes like Tango via librsvg
7562
7563 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7564
7565         Revert's Jackson's revert which broke 2.0 builds.   Fix both
7566         builds. 
7567         
7568         * Application.cs: Move the use_compatible_text_rendering outside
7569         the NET_2_0 define.  If we ever need to use the
7570         use_compatible_text_rendering on the individual controls they will
7571         access the variable from the common shared code paths.
7572
7573 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7574
7575         * XplatUI.cs:
7576           - Added more granular debug options
7577           - Added method to print both window text and id
7578           - Switched debug output to use new Window() debug method
7579           - Added IsEnabled() driver method
7580           - Added EnableWindow() driver method
7581         * Form.cs:
7582           - Removed end_modal; no longer needed, new loop handles termination
7583             via 'closing' variable
7584           - If form is modal, setting DialogResult will now initiate loop
7585             termination via 'closing' variable
7586           - Added support for is_enabled/WS_DISABLED to CreateParams
7587           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
7588             does all the work
7589           - Removed code that's now in RunLoop from ShowDialog()
7590           - Added various documented sanity checks to ShowDialog()
7591           - Added handling of WM_DESTROY message; we set 'closing' on getting
7592             the message to indicate the message pump to terminate
7593           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
7594             send by the Application.ExitThread method. (We send the message
7595             to destroy the window after all other events have been
7596             processed through the queue, instead of destroying the handle 
7597             directly)
7598           - Moved code from Close() method to WM_CLOSE handler; added logic
7599             to only send close-related events if the form is not displayed
7600             modal
7601         * Splitter.cs (..ctor): Fixed typo in resource name
7602         * Control.cs:
7603           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
7604             brush now
7605           - set_Cursor: Now only setting calling into XplatUI if the handle for
7606             the control is already created; this avoids implict handle creation
7607             or crashes if it's not created
7608           - set_Enabled: Now setting the enabled state via the new driver method
7609             instead of just tracking it
7610           - CreateParams: Added logic to set WS_DISABLED based on enabled state
7611           - CreateControl: Reordered event firing and method calls to more
7612             closely fire events in the order MS does. Now setting the
7613             enabled state in the driver when creating the control.
7614           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
7615             match MS order
7616         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
7617           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
7618         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
7619         * Hwnd.cs:
7620           - Added tracking of window enabled state (get_Enabled/set_Enabled)
7621           - Added EnabledHwnd property to easily allow a driver to find the
7622             handle of the first enabled window in the parent chain (this is
7623             used by drivers to pass up input events of disabled windows)
7624         * XplatUIDriver.cs: Added IsEnabled() method
7625         * Application.cs:
7626           - Removed crude and obsolete exiting tracking variable
7627           - Removed internal ModalRun(); replaced by RunLoop()
7628           - Implemented private CloseForms() method to allow closing all 
7629             windows owned by a particular (or all) threads
7630           - Exit() now properly closes all windows without forcing the message
7631             pump to quit
7632           - Removed obsolete InternalExit() method
7633           - Changed Run() methods to use new RunLoop() message pump
7634           - Implemented new RunLoop() method for both modal and non-modal forms
7635         * CommonDialog.cs:
7636           - get_CreateParams: Added setting of WS_DISABLED
7637           - Simplified ShowDialog(); now all the work is done in RunLoop(),
7638             invoked via Form.ShowDialog()
7639         * NativeWindow.cs: We don't remove the window from the collection when
7640           the handle is destroyed; there might still be messages for it in the
7641           queue (mainly the resulting WM_DESTROY); instead it will be removed
7642           when Control calls InvalidateHandle in the WM_DESTROY handler
7643         * XplatUIX11.cs:
7644           - CreateWindow: Added logic to handle the WS_DISABLED window style
7645           - EnableWindow: Implemented based on Hwnd.Enabled
7646           - GetMessage: Reset PostQuitState so the method can be called again
7647           - Implemented support for disabled windows (passing messages to the
7648             first enabled parent) in handling all input messages
7649           - Added optimizations for handling Expose events
7650           - Implemeted new driver method IsEnabled()
7651           - Now always resetting paint pending tracking vars when we start paint
7652           - Re-implemented UpdateWindow via just sending a WM_PAINT message
7653         * XplatUIOSX.cs: Added IsEnabled method stub
7654         * XplatUIWin32.cs: Implemented new IsEnabled() method
7655
7656 2006-01-11  Jackson Harper  <jackson@ximian.com>
7657
7658         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7659         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
7660         variables a little.
7661         * ColorDialog.cs: Clear out the old form before adding the new
7662         panel.  
7663
7664 2006-01-11  Jackson Harper  <jackson@ximian.com>
7665
7666         * X11Dnd.cs: Make sure to add all the text formats when adding
7667         strings to the data object.
7668         * TreeNodeCollection.cs: When adding to a sorted tree we need to
7669         do some redrawing too.  Also change the UpdateNode to an
7670         UpdateBelow so the newly added node gets painted.
7671         
7672 2006-01-11  Miguel de Icaza  <miguel@novell.com>
7673
7674         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7675         LinkLabel.cs, PropertyGrid.cs: Implement the
7676         UseCompatibleTextRendering property for 2.x
7677
7678         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
7679
7680 2006-01-11  Jackson Harper  <jackson@ximian.com>
7681
7682         * TreeView.cs: Use the property for setting the selected node so
7683         the correct events get raised.
7684         * TreeNode.cs: Update the tree when the fore/back colours of a
7685         node are set.
7686
7687 2006-01-10  Jackson Harper  <jackson@ximian.com>
7688
7689         * TreeView.cs: Allow setting SelectedNode to null.
7690
7691 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7692
7693         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
7694
7695 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7696
7697         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
7698
7699 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7700
7701         * PrintDialog.cs: Added attributes and set default property values.
7702
7703 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7704
7705         * PrintControllerWithStatusDialog.cs: 
7706         Added PrintControllerWithStatusDialog.
7707
7708 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7709
7710         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
7711         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
7712
7713 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7714
7715         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
7716
7717 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7718
7719         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
7720         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
7721
7722 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7723
7724         * MimeIcon.cs: Added internal class SVGUtil.
7725
7726 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7727
7728         * FileDialog.cs: Don't crash if there are two files with the
7729           same name but different locations.
7730
7731 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
7732
7733         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
7734         dates across multiple month grids. Used to not highlight entire 
7735         month, but does now.
7736         
7737 2006-01-06  Jackson Harper  <jackson@ximian.com>
7738
7739         * MonthCalendar.cs: Removed DoEvents call to prevent a running
7740         message loop. Change timer intervals to numbers that seem more
7741         natural.
7742
7743 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
7744
7745         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
7746           object for location info since screen object is now implemented.
7747
7748 2006-01-05  Jackson Harper  <jackson@ximian.com>
7749
7750         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
7751         * AsyncMethodResult.cs: We no longer use a WeakReference for the
7752         AsyncMethodResult, this is because we ALWAYS want the
7753         ManualResetEvent to get set.
7754         * Control.cs: When disposing use an async invoke to call shutdown
7755         code, so that thigns don't block on the finalizer thread.  Also
7756         check if we even have a message loop before trying to send
7757         messages, if we don't then don't bother sending messages.
7758         - No more weak references for async methods
7759         * XplatUIDriver.cs: No more weak references for async methods.
7760
7761 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7762
7763         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
7764           returns two FontFamily with the same name
7765
7766 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
7767
7768         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
7769           drawing disabled text. Instead using the ColorGrayText color
7770
7771 2006-01-04  Jackson Harper  <jackson@ximian.com>
7772
7773         * TreeNode.cs: redraw the node when its image index is changed.
7774
7775 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
7776
7777         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
7778           time I checked there are no others like it.
7779
7780 2006-01-04  Jackson Harper  <jackson@ximian.com>
7781
7782         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
7783         this gives the behavoir I was looking for.
7784         * Control.cs: Special case Invoking EventHandlers, this matches MS
7785         and fixes part of bug #76326.
7786
7787 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7788
7789         * ThemeClearlooks.cs, FileDialog.cs:
7790           - Reflect the latest Theme class changes
7791           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
7792             with DateTime
7793             
7794 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
7795
7796         * Theme.cs: Cache UI resource images and resize them if needed
7797
7798 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
7799
7800         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
7801           is called. This fixes the crash in Nexxia when setting the font
7802           attributes in the chat. [However, RTF needs a look-over to make sure
7803           that all SelectionXXX methods handle the special case that selection
7804           is empty and therefore the change must be applied to all text starting
7805           at the cursor/selection start]
7806
7807 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
7808
7809         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
7810           XplatUIOSX.cs: Added SendMessage and PostMessage methods
7811         * X11Keyboard.cs: Switched to new way of calling PostMessage
7812
7813 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
7814
7815         * Theme.cs: Added theme interface for images to allow the theme to
7816           control what images are used for things like FileDialog, MessageBox
7817           icons, etc.
7818         * MessageBox.cs: Now uses the new Theme icon/image interfaces
7819
7820 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
7821
7822         * FileDialog.cs:
7823           - Removed some dead code
7824           - Opening a recently used file does work now
7825           - Small UI enhancements
7826           - Refactoring
7827
7828 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
7829
7830         * FileDialog.cs: Forgot too add __MonoCS__
7831
7832 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
7833
7834         * FileDialog.cs: We are able to read recently used files now let's
7835           go on and write them.
7836
7837 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
7838
7839         * FileDialog.cs: Breathe some life into "last open"/"recently used"
7840           button
7841         * MimeIcon.cs: Do a check for the top level media type also
7842
7843 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
7844
7845         * ThemeClearlooks.cs:
7846           - Added CPDrawStringDisabled
7847           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
7848             some chars if the text doesn't fit into text_rect
7849           - DrawListViewItem: If View = View.LargeIcon center the image;
7850             rewrote the drawing of ListViewItem.Text if View = 
7851             View.LargeIcon
7852
7853 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
7854
7855         * MimeIcon.cs: Use default KDE icon theme if there is no
7856           "48x48" directory for the current icon theme, fixes #77114
7857         * Mime.cs: Disable not working and actually not used code. 
7858         * ThemeWin32Classic.cs:
7859           - Replace "new SolidBrush" in GetControlBackBrush and
7860             GetControlForeBrush with ResPool.GetSolidBrush
7861           - Changed DrawListViewItem from private to protected virtual
7862         * FileDialog.cs:
7863           - Added form.MaximizeBox = true
7864           - Don't throw an exception if there is a broken symbolic link
7865
7866 2005-12-23  Jackson Harper  <jackson@ximian.com>
7867
7868         * TabControl.cs: Give the panels focus, keyboard navigation is
7869         fixed so this works correctly now.
7870         - We need these key events also.
7871         * ToolBar.cs: Remove some of the poor mans double buffering.
7872         
7873 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
7874
7875         * ComboBox.cs: The internal TextBox now returns the focus.
7876
7877 2005-12-23  Jackson Harper  <jackson@ximian.com>
7878
7879         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
7880
7881 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
7882
7883         * Control.cs: Removed debug code
7884         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
7885           implicit children
7886
7887 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
7888
7889         * Control.cs: When creating the control, update the Z-order after
7890           all it's children are created, too. (Fixes nexxia not showing
7891           picturebox bug)
7892
7893 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
7894
7895         * Control.cs: Do not update the anchoring distances if layout is
7896           suspended, instead do it once layout is resumed
7897
7898 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
7899
7900         * Control.cs: 
7901           - After many hours of debugging, for both Jackson and
7902             myself, it turns out that it helps to set the parent of a control
7903             if you want to actually see it onscreen. In the spirit of that
7904             discovery, we're now setting the parent of the control and
7905             it's children when the control's handle is created. This fix
7906             will make Lutz Roeder's Reflector run happily. 
7907           - now just creating the handle instead of the whole control when
7908             getting a graphics context for the control.
7909
7910 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
7911
7912         * ScrollableControl.cs: When calculating the canvas, don't consider
7913           the scrollbar widths. Instead, predict if horizontal scrollbar
7914           will affect canvas when deciding on vertical display and vice versa.
7915
7916 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
7917
7918         * RichTextBox.cs: Set default RTF font for documents that don't
7919           have a font table (Fixes #77076)
7920
7921 2005-12-22  Jackson Harper  <jackson@ximian.com>
7922
7923         * TextBoxBase.cs: It's difficult to do, but you can have an empty
7924         clipboard. This prevents a NullRef in that case.
7925         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
7926         clipboard. PRIMARY is for the currently selected text only. (We
7927         should implement PRIMARY at some point.
7928
7929 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7930
7931         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
7932           a Unicode function with a structure that was defined in Ansi way.
7933           This fixes #76942.
7934
7935 2005-12-21  Jackson Harper  <jackson@ximian.com>
7936
7937         * StatusBar.cs: Statusbar handles its fore/back colours on it's
7938         on. Because thats how it rolls. (and this avoids it using ambient
7939         colours).
7940         * ThemeWin32Classic.cs: Use the proper back color for filling.
7941         * Menu.cs: Use the system menu bar color for drawing menu
7942         bars. Using the window back color will bring ambient colours into
7943         the picture.
7944
7945 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
7946
7947         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
7948           Bitmaps were created and not disposed.
7949
7950 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7951
7952         * Control.cs (CreateControl): Don't do anything if the control is
7953           already created, otherwise we'd fire the OnCreated event more than
7954           once
7955
7956 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
7957
7958         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
7959           will always match. Instead return -1. Fixes #76464.
7960
7961 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
7962
7963         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
7964           neither the beginning nor the end of the line (Fixes bug #76479)
7965
7966 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
7967
7968         * Control.cs:
7969           - ControlNativeWindow.ControlFromHandle(): Now handling situation
7970             where handle is invalid
7971           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
7972             instead of slower linear search
7973         * NativeWindow.cs: Don't remove the window from the hashtable until
7974           after the driver has destroyed it (since the driver might use
7975           Control.FromHandle to lookup the control object
7976         * Hwnd.cs: Added DestroyPending property to track if a window is 
7977           already destroyed as far as the driver is concerned and only hasn't
7978           yet notified the control
7979         * XplatUIX11.cs:
7980           - Activate(): Check if the window is still valid before using the 
7981             handle
7982           - Implemented DestroyChildWindow() method to mark child windows as
7983             destroyed when a window is destroyed. This prevents situations 
7984             where we might call an X method based on queued events for a
7985             window that already has been destroyed but we haven't yet pulled
7986             the destroy method from the queue.
7987           - Added a call to the new DestroyChildWindow() method to the drivers
7988             DestroyWindow code. Also now marking the destroyed window itself
7989             as pending
7990
7991 2005-12-20  Jackson Harper  <jackson@ximian.com>
7992
7993         * StatusBar.cs:
7994         * StatusBarPanel.cs: Don't calculate panel sizes on draw
7995         anymore. Just do them when needed, also track the rects of panels
7996         so that we can optimize refreshing more in the future.
7997
7998 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
7999
8000         * ColorDialog.cs: Fixed focus drawing in small color controls
8001
8002 2005-12-19  Jackson Harper  <jackson@ximian.com>
8003
8004         * InternalWindowManager.cs:
8005         * MdiWindowManager.cs: Cleanup some coordinate system changes so
8006         moving windows works properly.
8007
8008 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
8009
8010         * Control.cs: 
8011           - Removed call to InitLayout() from SetBoundsCore(); doc says
8012             it's only called when a control is added to a container
8013           - Split InitLayout logic, moved to separate UpdateDistances() method
8014             since we need to perform those calculations more often than just
8015             when adding the control to a container. (Needed to fix #77022)
8016           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
8017           - Reduced the OnBindingContextChanged events count, don't send them
8018             unless the control is created, we still aren't totally matching
8019             MS, but I can't quite figure out some of their rules
8020
8021 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8022
8023         * ThemeClearlooks.cs: Corrected distance between ProgressBar
8024           stripes
8025
8026 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8027
8028         * ThemeClearlooks.cs:
8029           - Updated ProgressBar drawing
8030           - Corrected drawing of ScrollBars and scroll buttons
8031           - Some temporary fixes for minor pixel artefacts
8032
8033 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
8034
8035         * Control.cs:
8036           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
8037             cause events to be sent in the same order as MS does.
8038           - Added ChangeParent() method to trigger various OnXXXChanged events
8039             that need to be fired when a parent changes (This is a reworking
8040             of the patch from r54254, with the X11 errors fixed)
8041           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
8042             since on MS we get OnLayoutChanged events when calling Clear()
8043           - Changed Enabled property to consider parent state as well, if a
8044             parent is not enabled, the control will not be either
8045           - Changed Parent property to simply call Controls.Add() since that
8046             now does all the work required, this way we avoid code duplication
8047           - Threw in a few OnBindingsContextChanged calls to try and match
8048             when MS sends them. We seem to send a few too many, though.
8049           - Added call to CreateControl when adding the control to a parent.
8050             We were never calling CreateControl. Still needs some work, in
8051             some places we treat HandleCreated and ControlCreated as equal, 
8052             which is wrong
8053           - Removed obsolete commented out code from UpdateZOrder()
8054
8055 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8056
8057         * ThemeClearlooks.cs: Updated TrackBar drawing.
8058
8059 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
8060
8061         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
8062
8063 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
8064
8065         * FileDialog.cs: Add the Help button and the open readonly
8066           checkbox only if needed
8067
8068 2005-12-16  Jackson Harper  <jackson@ximian.com>
8069
8070         * Control.cs: Make sure we have an active menu before trying to
8071         process commands on it. Prevents menu-less forms from crashing
8072         when Alt is pressed.
8073         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
8074         Dieter Bremes.
8075         * RichTextBox.cs: Expand statement to help out gmcs and fix the
8076         2.0 build.
8077
8078 2005-12-16  Jackson Harper  <jackson@ximian.com>
8079
8080         * InternalWindowManager.cs: Don't translate tool windows screen
8081         coordinates. This fixes windows 'bouncing' around when being moved.
8082
8083 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8084
8085         * TextBoxBase.cs:
8086           - MaxLength now treats 2^31-1 equal to unlimited length (this is
8087             not quite MS compatible, MS uses that number only for single line
8088             and 2^32-1 for multi-line, but I figure it won't hurt keeping
8089             the limit at 2GB)
8090           - Now enforcing the MaxLength limit when entering characters
8091           - Added argument to internal Paste() method to track if it's called
8092             from programatically or via keyboard, since keyboard driven pastes
8093             need to enforce max-length
8094           - Added logic to Paste to only paste as many chars as MaxLength 
8095             allows
8096         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
8097         * TextControl.cs:
8098           - Added Length property to return number of characters in document
8099           - Added private CharCount property which only tracks actual chars
8100             in the document (no linefeeds) and fires event when CharCount
8101             changes
8102           - Added tracking of character count to all methods that alter it
8103           - Added LengthChanged event to allow applications to subscribe
8104             to any changes to the document
8105
8106 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8107
8108         * TextBox.cs: 
8109           - Removed local password_char field (moved to TextBoxBase)
8110           - Now setting the document's password var when password is
8111             set
8112         * TextBoxBase.cs:
8113           - Added password_char field (needed here so MultiLine can
8114             access it)
8115           - Added logic to MultiLine property setter to set the document's
8116             variable when password display is allowed
8117           - Removed debug code and made some debug code conditional
8118         * TextControl.cs:
8119           - Added RecalculatePasswordLine() method to handle special password
8120             char only lines
8121           - Added PasswordChar property, also added related tracking vars
8122           - Draw() method now uses local text var for grabbing text to draw,
8123             this var is set to line.text unless we're doing password display,
8124             then it is set to the pre-generated all-password-chars line
8125           - Added calling RecalculatePasswordLine() method for password lines
8126
8127 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8128
8129         * Hwnd.cs: 
8130           - Added Reparented property to allow tracking of Window Manager
8131             reparenting actions (which affect X/Y calculations of toplevel 
8132             windows)
8133           - Made ToString() print window handles in hex
8134         * XplatUIX11.cs:
8135           - AddConfigureNotify(): Now uses reparented state off Hwnd to
8136             determine if X/Y needs offsetting
8137           - AddConfigureNotify(): Fixed offset calculations
8138           - Now adds ReparentNotify messages into the queue
8139           - Now processes ReparentNotify messages and causes a 
8140             WM_WINDOWPOSCHANGED message to be sent upstream if a window
8141             is reparented (as most likely it's X/Y coordinates are changed
8142             due to that)
8143
8144 2005-12-14  Jackson Harper  <jackson@ximian.com>
8145
8146         * XplatUIX11.cs: Tool windows still need to respek focus.
8147
8148 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8149
8150         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
8151           have a working release
8152
8153 2005-12-13  Jackson Harper  <jackson@ximian.com>
8154
8155         * Form.cs: Update styles after setting the border style regardless
8156         of whether or not the window is using a window manager.
8157
8158 2005-12-13  Jackson Harper  <jackson@ximian.com>
8159
8160         * Form.cs: We now hook into an internal window manager instead of just an
8161         MDI subsystem, this is so we can have properly behaving tool windows.
8162         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
8163         * InternalWindowManager.cs: New internal class that acts as a
8164         window manager for tool windows and as a base for mdi windows.
8165         * MdiWindowManager.cs: New class that acts as a window manager for
8166         mdi windows.
8167
8168 2005-12-12  Jackson Harper  <jackson@ximian.com>
8169
8170         * Control.cs: Updates so we match behavoir for for implicit
8171         controls. Fixes explosions in MDI.
8172
8173 2005-12-12  Jackson Harper  <jackson@ximian.com>
8174
8175         * Control.cs: Implement Invalidate (Region).
8176
8177 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
8178
8179         * Control.cs: 
8180           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
8181             the same events as MS does. MS fires events for each property 
8182             except, for unknown reasons, Cursor, when the control is reparented. 
8183             I can't seem to totally match add/remove since MS also fires some 
8184             VisibleChanged events, which makes no sense. Consolidated the
8185             parenting code into a separate method so it can be called from
8186             both Add and Remove. set_Parent no longer needs any special logic
8187             as it calls the parent's add method which implicitly fires
8188             all events
8189           - Removed some obsolete code and debug output
8190           - Enabled state is inherited from parents, if this is enabled
8191
8192 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
8193
8194         * Form.cs: Removed commented out code
8195
8196 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
8197
8198         * Control.cs:
8199           - Added internal version of Invoke, with additional argument 
8200             indicating if we're calling it from a Dispose() handler. That
8201             way we can avoid BeginInvoke throwing an exception if we're
8202             calling for an already destroyed window.
8203           - Added a dispose argument to BeginInvokeInternal, and made the
8204             check if a valid window handle chain exists conditional on
8205             it not being a dispose call
8206           - Removed code in DestroyHandle to destroy our children. Since we
8207             now handle the WM_DESTROY message we will catch all our children
8208             being destroyed.
8209           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
8210         * Form.cs:
8211           - Added a field to track the application context of the form.
8212           - No need to set closing variable as response to WM_CLOSE, instead
8213             we destroy the window. We also call PostQuitMessage if the form
8214             has an application context (which makes it the main app form,
8215             which, when closed terminates the app)
8216         * XplatUI.cs:
8217           - Dropped Exit() method, it's naming was confusing
8218           - Added PostQuitMessage() which causes GetMessage to return false
8219             once the message queue is empty
8220         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
8221           PostQuitMessage()
8222         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
8223           no longer a valid XplatUI method, but left it in since it's used
8224           internally. Added empty PostQuitMessage() method.
8225         * MenuAPI.cs: Replaced call to Exit() with call to
8226           PostQuitMessage, even though this is probably no longer needed.
8227         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
8228         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
8229         * Application.cs:
8230           - Replaced call to XplatUI.Exit() with PostQuitMessage()
8231           - Removed old debug code that would call XplatUI for exception
8232             display, enabled standard exception handling (Still not enabled
8233             though, until NativeWindow's ExternalExceptionHandler define
8234             is removed
8235         * NativeWindow.cs:
8236           - Added internal method to allow control to update NativeWindow
8237             after a window has been destroyed
8238           - Added handling of already destroyed windows when calling i
8239             DestroyWindow
8240           - Added removal of handle from list on ReleaseHandle
8241         * XplatUIX11.cs:
8242           - Dropped GetMessageResult var and related code
8243           - Added PostQuitState to field to track if PostQuitMessage has been
8244             called
8245           - Dropped Exit() method
8246           - Added PostQuitMessage() method
8247           - GetMessage now will return false if PostQuitState is set and no
8248             more messages are in the queue.
8249           - Expose handler will no longer generate WM_PAINT messages if we are
8250             in PostQuitState since it's very likely any windows have already
8251             been destroyed, and since Hwnd won't get updated until we have
8252             processed the DestroyNotify we'd be causing X errors.
8253         
8254 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8255
8256         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
8257           Thanks to Mike for pointing out the err of my ways.
8258
8259 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8260
8261         * Control.cs(PreProcessMessage): Moved menu handling back, but
8262           after all other key handling, to match MS (who handles Menu in
8263           DefWndProc)
8264         * Menu.cs (WndProc): Removed my brainfart
8265
8266 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8267
8268         * Control.cs(PreProcessMessage): Removed special menu handling 
8269         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
8270
8271 2005-12-07  Mike Kestner  <mkestner@novell.com>
8272
8273         * Control.cs : special case SYSKEYUP so that we can adjust keynav
8274         state according in tracker.
8275         * Menu.cs : promote tracker field to base class and provide a tracker
8276         lookup capability.  Add/Remove shortcuts dynamically if the top menu
8277         has a tracker. Unparent items that are removed from the collection.
8278         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
8279         * Theme*.cs: add always_show_hotkeys field to support configurability
8280         of mnemonic display.  win32 doesn't show mnemonics until Alt is
8281         pressed.
8282
8283 2005-12-07  Jackson Harper  <jackson@ximian.com>
8284
8285         * MdiChildContext.cs: Use Control.ResetCursor.
8286         * Control.cs: ResetCursor needs to set the property so that the
8287         correct XplatUI call gets made.
8288
8289 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8290
8291         * Control.cs: More fixes to make our key events match MS. We
8292           were not setting the modifier state on KeyData, and we were
8293           not generating any events when Alt was pressed with a key
8294           since handling of WM_SYSxxx was missing for the OnKey methods.
8295
8296 2005-12-07  Jackson Harper  <jackson@ximian.com>
8297
8298         * MdiChildContext.cs: reenable the sizing code.
8299         - When the mouse leaves a window reset its cursor.
8300
8301 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8302
8303         * ThemeClearlooks.cs: Reflect latest Hwnd changes
8304
8305 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8306
8307         * Hwnd.cs: Now using the theme 3d bordersize to calculate
8308           widths of Fixed3D borders
8309
8310 2005-12-07  Jackson Harper  <jackson@ximian.com>
8311
8312         * MdiClient.cs: Fix warnings. Earn Mike's love.
8313
8314 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8315
8316         * ThemeClearlooks.cs:
8317           - Adjusted mouse over button color
8318           - Added first parts of CheckBox drawing
8319           - Added correct color for selected text background
8320           - Fixed ComboBox drawing
8321           - Added CPDrawBorder3D and CPDrawBorder
8322
8323 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8324
8325         * XplatUIX11.cs: Added call to XBell for AudibleAlert
8326
8327 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
8328
8329         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8330           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
8331           alert users via sound. We could add an enum arg with different
8332           types of alerts in the future
8333
8334 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8335
8336         * Control.cs: Fix behaviour problems pointed out by Mike
8337
8338 2005-12-05  Mike Kestner  <mkestner@novell.com>
8339
8340         * StatusBarPanel.cs: add Invalidate method and hook it into all the
8341         prop setters.  Calls parent.Refresh for now, but could be maybe be
8342         optimized with an internal method on StatusBar at some point.
8343         [Fixes #76513]
8344
8345 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
8346
8347         * RichTextBox.cs: Implemented get_SelectionColor
8348
8349 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
8350
8351         * ThemeClearlooks.cs:
8352           - Removed dead code
8353           - Draw black button border only if button is Form.AcceptButton
8354           - Draw correct button color for pressed RadioButton if the mouse 
8355             has entered the button
8356           - Updated ProgressBar drawing!
8357           - Updated CPDrawSizeGrip drawing
8358           - Updated StatusBarPanel drawing
8359
8360 2005-12-05  Mike Kestner  <mkestner@novell.com>
8361
8362         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
8363         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
8364
8365 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
8366
8367         * ThemeClearlooks.cs: Initial check-in, activate with
8368           export MONO_THEME=clearlooks
8369         * ThemeEngine.cs: Added ThemeClearlooks
8370
8371 2005-12-03  Mike Kestner  <mkestner@novell.com>
8372
8373         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
8374         [Fixes #76897]
8375
8376 2005-12-02  Jackson Harper  <jackson@ximian.com>
8377
8378         * Form.cs: If the child form has no menu the default main menu is
8379         used as the active menu.
8380
8381 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
8382
8383         * ListBox.cs: Check if any items exist before trying to resolve 
8384           coordinates into items
8385
8386 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8387
8388         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
8389           as the second color for the background hatch
8390
8391 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8392
8393         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
8394         * RichTextBox.cs: FormatText position arguments are 1-based, now making
8395           sure that what we pass to FormatText is always 1-based. Fixes #76885
8396
8397 2005-11-29  Miguel de Icaza  <miguel@novell.com>
8398
8399         * NumericUpDown.cs (EndInit): When we are done initializing,
8400         reflect any updates on the UI.
8401
8402 2005-12-02  Jackson Harper  <jackson@ximian.com>
8403
8404         * ImplicitHScrollBar.cs:
8405         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
8406         their container controls.
8407         * TreeView.cs: Use the new implicit scrollbars.
8408
8409 2005-12-02  Jackson Harper  <jackson@ximian.com>
8410
8411         * TreeView.cs: Make top_node internal so the TreeNodeCollections
8412         can play with it.
8413         * TreeNodeCollection.cs: If we remove the topnode we need to
8414         update topnode to the next node in line.
8415         - When clearing nodes go through the same process as removing
8416         them, so they get depareneted and checked if they are top node.
8417
8418 2005-12-01  Jackson Harper  <jackson@ximian.com>
8419
8420         * TreeView.cs: When imagelists are used the image area is
8421         selectable as well as the text.
8422         - If there are no selected nodes select the first one.
8423         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
8424         so don't do it more then we need to.
8425
8426 2005-12-01  Jackson Harper  <jackson@ximian.com>
8427
8428         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
8429         that arrows can be scaled.
8430
8431 2005-12-01  Jackson Harper  <jackson@ximian.com>
8432
8433         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
8434         fail. Patch by Dieter Bremes
8435
8436 2005-11-30  Jackson Harper  <jackson@ximian.com>
8437
8438         * Form.cs: Property is 2.0 only
8439         * PrintDialog.cs: Signature fix.
8440
8441 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8442
8443         * TextControl.cs: 
8444           - No longer artificially moves text 2 pixels down (now that we have
8445             borders this is no longer needed)
8446           - Added calcs for left, hanging and right indent
8447
8448 2005-11-23  Mike Kestner  <mkestner@novell.com>
8449
8450         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
8451
8452 2005-11-30  Jackson Harper  <jackson@ximian.com>
8453
8454         * MdiChildContext.cs: Set the cloned menus forms, as these don't
8455         get cloned as part of CloneMenu ().
8456         * Menu.cs: Make sure the parent of the items get set correctly
8457         when they are added.  And the owners are notified of the changes.
8458         * Form.cs: Create an ActiveMenu property, so that when MDI is used
8459         we can change the menu being displayed/handled by the form without
8460         changing the menu assosciated with the form.
8461         - Don't let Mdi children draw/handle menus.
8462         
8463 2005-11-30  Jackson Harper  <jackson@ximian.com>
8464
8465         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
8466         a MenuChanged event. Just to make the API a little more
8467         consistent.
8468         * MainMenu.cs:
8469         * MenuItem.cs: Use the new OnMenuChanged
8470         * MdiChildContext.cs: Handle menu merging.
8471         * Form.cs: Implement MergedMenu.
8472         
8473 2005-11-30  Jackson Harper  <jackson@ximian.com>
8474
8475         * Menu.cs: We were misusing Add. Add goes behind the specified
8476         index according to the docs, and does not replace the specified
8477         index. So I added an Insert method.
8478
8479 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8480
8481         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
8482           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
8483           is for Jackson
8484         * RichTextBox.cs: Added calls to base for DnD events
8485
8486 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
8487
8488         * TextControl.cs:
8489           - Fixed drag-selection related crash; style fixes
8490           - Implemented undo class
8491             o Implemented method to capture document state for specified
8492               range in document tree
8493             o Implemented method to restore captured document state
8494             o Implemented cursor tracking
8495             o Implemented basic undo stack
8496           - Added undo cursor tracking to methods altering cursor location
8497           - Added undo tracking to selection deletion (still missing
8498             other text-altering hookups)
8499         * RichTextBox.cs:
8500           - Added SelectionLength property
8501           - Implemented CanPaste()
8502           - Implemented Paste()
8503           - Added missing protected methods
8504           - Fixed RTF->Document conversion; now uses font index 0 and color 
8505             index 0 as the default font for the parsed text
8506           - Fixed RTF<->Document font size translation
8507           - Fixed RTF generation, now properly handles cross-tag boundaries
8508             for single line selection
8509           - No longer always appends blank line to generated RTF
8510           - Removed TODOs
8511           - Added missing attributes
8512           - Hooked up undo-related methods
8513         * TextBoxBase.cs:
8514           - Implemented Copy()
8515           - Implemented Paste()
8516           - Implemented Cut()
8517           - Fixed caret mis-behaviour on backspace across line-boundaries
8518
8519 2005-11-29  Jackson Harper  <jackson@ximian.com>
8520
8521         * MdiClient.cs: Add a method for activating mdi children. Very
8522         basic right now. I imagine someday it might need more girth.
8523         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
8524         children windows names are added to the menu item.
8525         * ThemeWin32Classic.cs: Draw the arrow if the item is an
8526         mdilist. This happens regardless of whether or not there are any
8527         mdi windows to see in the list, and according to my tests happens
8528         before the items are even added. Also happens if there isn't even
8529         an mdi client to get windows from.
8530
8531 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
8532
8533         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
8534         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
8535
8536 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
8537
8538         * DataGridTableStyle.cs:
8539           - Create always the styles for the missing columns even if they are
8540             provided by the user (not default table style)
8541         * DataGrid.cs:
8542           - Fixes bug 76770
8543           - Fixes SetDataBinding (always re-attach source)
8544           - Fixes SetNewDataSource (only clear styles if they are not for 
8545             this source)
8546          -  Expands OnTableStylesCollectionChanged to handle style refresh 
8547             and remove properly
8548
8549 2005-11-29  Jackson Harper  <jackson@ximian.com>
8550
8551         * FileDialog.cs: Implement missing bits, remove some dead
8552         code.
8553         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
8554         creation of the panel so that the options set on the dialog are
8555         seen when the panel is created.
8556         * TreeView.cs: raise a click when items are clicked.
8557         
8558 2005-11-29  Jackson Harper  <jackson@ximian.com>
8559
8560         * MdiClient.cs: Pass some signature methods through to base.
8561
8562 2005-11-28  Jackson Harper  <jackson@ximian.com>
8563
8564         * ListView.cs: Raise the click event when items are clicked.
8565
8566 2005-11-28  Jackson Harper  <jackson@ximian.com>
8567
8568         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
8569         a nullref.
8570
8571 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
8572
8573         * ThemeNice.cs: - Removed 1 pixel bitmaps
8574           - Use SmoothingMode.AntiAlias where it makes sense
8575             (ScrollButton arrow for example)
8576           - Enhanced Button focus drawing
8577           - Fixed ComboBox drawing (no artefacts anymore, focus
8578             rectangle is back again, reduced size of ComboButton, etc.)
8579           - Fixed RadioButton focus drawing for Appearence.Button
8580           - Slight ScrollButton redesign
8581           - Some LinearGradientBrush size fixes
8582           - GroupBoxes have now rounded edges
8583           - Fixed StatusBar drawing
8584
8585 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
8586
8587         * ThemeNice.cs: - Remove dead code
8588           - use correct background colors for menus, etc.
8589           - Fake pixel drawing with 1 pixel bitmaps
8590
8591 2005-11-24  Jackson Harper  <jackson@ximian.com>
8592
8593         * MdiClient.cs: Size the scrollbars when resizing the window.
8594         - Resize the maximized windows when the client is resized
8595         * Form.cs: Make the child context available
8596         
8597 2005-11-23  Jackson Harper  <jackson@ximian.com>
8598
8599         * MdiChildContext.cs: Don't size windows if they are maximized.
8600
8601 2005-11-23  Mike Kestner  <mkestner@novell.com>
8602
8603         * ContextMenu.cs: use MenuTracker.
8604         * Control.cs: remove menu handle usage.
8605         * Form.cs: remove menu handle usage.
8606         * Hwnd.cs: remove menu handle usage.
8607         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
8608         motion and clicks to the new Tracker handlers.
8609         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
8610         and handle usage.
8611         * MenuAPI.cs: refactored to combine popup and menubar event handling.
8612         Killed the MENU and MENUITEM data types and associated collections
8613         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
8614         MenuTracker class that exposes the leftovers from the old MenuAPI
8615         static methods. Restructured Capture handling so that only one grab is
8616         done for the entire menu hierarchy instead of handing off grabs to
8617         submenus. Tracker now has an invisible control to Capture when active.
8618         * MenuItem.cs: add sizing accessors, kill Create
8619         and handle usage.
8620         * Theme.cs: remove menu handle and MENU(ITEM) usage.
8621         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
8622         MENU(ITEM). remove menu handle usage, use Menu directly.
8623         * XplatUIDriver.cs: remove menu handle usage.
8624         * XplatUIOSX.cs: remove menu handle usage.
8625         * XplatUIWin32.cs: remove menu handle usage.
8626         * XplatUIX11.cs: remove menu handle usage.
8627
8628 2005-11-22  Jackson Harper  <jackson@ximian.com>
8629
8630         * Hwnd.cs: Don't compute the menu size for
8631         DefaultClientRectangle.
8632         - Reenable menu sizes being computed for GetClienRectangle.
8633         * Form.cs: Remove comment of trechery
8634         
8635 2005-11-22  Jackson Harper  <jackson@ximian.com>
8636
8637         * Hwnd.cs: The adjustments for the menu bar are made when it is
8638         attached to the form.
8639
8640 2005-11-19  Jackson Harper  <jackson@ximian.com>
8641
8642         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
8643         (just like on windows).
8644
8645 2005-11-19  Jackson Harper  <jackson@ximian.com>
8646
8647         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
8648         use real buttons anymore because they are in non client area. The
8649         one TODO here is that I need to somehow invalidate a section of
8650         the non client area.
8651
8652 2005-11-18  Jackson Harper  <jackson@ximian.com>
8653
8654         * Control.cs: Put the enum check back in now that MDI doesnt have
8655         to use this to set border styles.
8656         * Form.cs: Only set mdi child windows borders if the handle has
8657         been created.
8658         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
8659         this directly on to the driver.
8660         - Get the move start position before adjusting for the titlebar
8661         height, this fixes the windows "skipping" when they are first
8662         moved.
8663
8664 2005-11-18  Jackson Harper  <jackson@ximian.com>
8665
8666         * XplatUIX11.cs: Just compute the mdi borders separately as they
8667         don't totally match up with normal form borders.
8668
8669 2005-11-18  Jackson Harper  <jackson@ximian.com>
8670
8671         * Control.cs: Set WS_ styles for borders, so that the driver does
8672         not have to retrieve the control instance to figure out what kind
8673         of borders it should have.
8674         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
8675         driver can know its an mdi child easily.
8676         * XplatUIX11.cs: Get the border styles and whether the window is
8677         MDI from the Styles and ExStyles params instead of having to get a
8678         control. This prevents a chicken and egg problem.       
8679
8680 2005-11-18  Jackson Harper  <jackson@ximian.com>
8681
8682         * MdiClient.cs: Fix typo so scrollbars show up correctly.
8683
8684 2005-11-18  Jackson Harper  <jackson@ximian.com>
8685
8686         * MdiClient.cs: Calculate when to add and remove scrollbars
8687         correctly.
8688         * MdiChildContext.cs: Adjust the y position to take the titlebar
8689         into account.
8690         - No height for FormBorderStyle.None
8691
8692 2005-11-18  Jackson Harper  <jackson@ximian.com>
8693
8694         * Control.cs: Allow non enum values to be used for
8695         InternalBorderStyle.  MDI does this to set a special border style.
8696         - New utility methods for converting points to/from client coords
8697         - Add the newly created control to the Controls collection before
8698         updating its style. This way UpdateStyle can walk the control
8699         heirarchy to find the control if needed.
8700         so I don't need to create a new Point object all the time.
8701         * Form.cs: Let MDI windows handle their border styles.
8702         - Set styles on MDI windows so the correct title style is derived.
8703         * MdiChildContext.cs: Move all the painting and window handling
8704         into the non client area.
8705         - Use correct sizing and put correct buttons on frames based on
8706         the FormBorderStyle.
8707         - Notify the mdi client about scrolling
8708         - Need to handle the buttons ourselves now, because they are all
8709         in non client areas and we can't add controls there.
8710         * MdiClient.cs: Halfway to scrolling, this implementation is
8711         somewhat broken though, we need to check to make sure other
8712         windows aren't causing scrolling before removing the bars. Also
8713         the bars need to be drawn on top, maybe I can switch implicit
8714         controls to be on top.
8715         * Hwnd.cs: caption_height and tool_caption_height are now
8716         properties of an hwnd, this way they can be set by the driver
8717         based on the type of window they are.  In X11 the window manager
8718         handles the decorations so caption_height is zero unless its an
8719         MDI window.
8720         - Add 3 pixel borders for MDI windows (0xFFFF).
8721         - Get rid of some code duplication, have DefaultClientRectanle
8722         just call GetClientRectangle.
8723         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
8724         Hwnd now.
8725         - Set border styles differently for mdi windows.
8726         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
8727         Hwnd now.
8728         
8729 2005-11-15  Mike Kestner  <mkestner@novell.com>
8730
8731         * Menu.cs: when adding an item to the collection, if item is already 
8732         parented, remove it from the parent.
8733
8734 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
8735
8736         * X11DesktopColors.cs: Added KDE support
8737
8738 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
8739
8740         * XplatUIWin32.cs: 
8741           - Clipboard methods now can translate Rtf format
8742           - No longer removes clipboard contents whenever a new format is added
8743             to allow placing multiple formats on the clipboard
8744         * Clipboard.cs: Clipboard now supports getting a IDataObject and
8745           will place all formats contained in it onto the clipboard. Also
8746           now cleans the clipboard before placing a new object onto it
8747         * RichTextBox.cs:
8748           - Implemented set_Rtf
8749           - Implemented set_SelectedRtf
8750           - Created InsertRTFFromStream() method to allow single code base
8751             for all properties and methods that insert RTF into document
8752           - Removed debug output
8753         * TextControl.cs:
8754           - Fixed Delete(int) to fix up line numbers
8755           - Fixed ReplaceSelection to combine start and end line
8756           - Fixed serious DeleteChars bug that would leave the document tree
8757             broken
8758           - Improved DumpTree with several logic checks to detect broken
8759             document trees
8760           - Removed debug lines
8761           - Fixed Caret.WordForward/WordBack moving code, now always also 
8762             updates caret.tag (fixes crash when word-selecting across tag
8763             boundaries via keyboard)
8764           - Added Insert() method for inserting multiline text into documents
8765           - Fixed DeleteChars() calculation errors that would cause a broken
8766             tag chain with multiple tag lines
8767           - DeleteChars() no longer crashes on multi-tag lines if not all tags
8768           - Split() no longer moves caret if split is at caret location
8769           - ReplaceSelection() now updates the cursor and re-displays it
8770           - ReplaceSelection() now uses new Insert() method to avoid code
8771             duplication
8772           - FormatText() can now handle formatting partial lines
8773         * TextBoxBase.cs:
8774           - Append now uses new TextControl.Insert() method (this avoids 
8775             duplicate code)
8776           - Implemented Ctrl-X (Cut) (
8777           - Implemented Ctrl-C (Copy)
8778           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
8779             regeneration when pasting text; roundtripping Copy&Paste within
8780             edit control still fails due to some calculation bugs in GenerateRTF)
8781           - The Delete key will now remove the current selection if it is visible
8782         * TextBox.cs: Removed debug lines
8783         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
8784           driver to be initialized and can't therefore be done via a static ctor)
8785
8786 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
8787
8788         * TextControl.cs: Added backend code for finding char arrays and strings
8789         * TextBoxBase.cs:
8790           - Added mouse wheel scroll support
8791           - Added support for VScroll and HScroll events
8792         * RichTextBox.cs:
8793           - Implemented all seven Find() variants
8794           - Implemented GetCharFromPosition()
8795           - Implemented GetCharIndexFromPosition()
8796           - Implemented GetLineFromIndex()
8797           - Implemented GetPositionFromCharIndex();
8798           - Implemented SaveFile for PlainText and UnicodeText
8799           - Fixed set_Font, now setting a new font applies that font to
8800             the whole document
8801           - Implemented generic Document to RTF converter
8802           - Implemented SaveFile for RichText format (still missing unicode
8803             conversion for non-ansi chars)
8804           - Implemented get_Rtf
8805           - Implemented get_SelectedRtf
8806
8807 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
8808
8809         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
8810           to allow any captures to be released before triggering OnClick. This
8811           way a click handler may capture the mouse without interference.
8812         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
8813           This way we send them even though X may not allow a grab (if the window
8814           isn't visible, for example)
8815
8816 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
8817
8818         * DataGridViewRowEventArgs.cs: DataGridView implementation
8819         * DataGridViewElement.cs: DataGridView implementation
8820         * DataGridViewComboBoxCell.cs: DataGridView implementation
8821         * DataGridViewDataErrorContexts.cs: DataGridView implementation
8822         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
8823         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
8824         * ImageLayout.cs: DataGridView implementation
8825         * DataGridViewComboBoxColumn.cs: DataGridView implementation
8826         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
8827         * DataGridViewSelectionMode.cs: DataGridView implementation
8828         * IDataGridViewEditingControl.cs: DataGridView implementation
8829         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
8830         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
8831         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
8832         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
8833         * DataGridViewColumnSortMode.cs: DataGridView implementation
8834         * DataGridView.cs: DataGridView implementation
8835         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
8836         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
8837         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
8838         * Padding.cs: DataGridView implementation
8839         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
8840         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
8841         * DataGridViewRowEventHandler.cs: DataGridView implementation
8842         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
8843         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
8844         * DataGridViewButtonCell.cs: DataGridView implementation
8845         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
8846         * DataGridViewEditMode.cs: DataGridView implementation
8847         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
8848         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
8849         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
8850         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
8851         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
8852         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
8853         * DataGridViewCellEventHandler.cs: DataGridView implementation
8854         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
8855         * DataGridViewCellStyleConverter.cs: DataGridView implementation
8856         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
8857         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
8858         * DataGridViewColumnEventArgs.cs: DataGridView implementation
8859         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
8860         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
8861         * QuestionEventArgs.cs: DataGridView implementation
8862         * IDataGridViewEditingCell.cs: DataGridView implementation
8863         * DataGridViewTriState.cs: DataGridView implementation
8864         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
8865         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
8866         * DataGridViewColumnCollection.cs: DataGridView implementation
8867         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
8868         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
8869         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
8870         * DataGridViewColumn.cs: DataGridView implementation
8871         * DataGridViewCellBorderStyle.cs: DataGridView implementation
8872         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
8873         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
8874         * DataGridViewRow.cs: DataGridView implementation
8875         * DataGridViewImageCellLayout.cs: DataGridView implementation
8876         * DataGridViewImageCell.cs: DataGridView implementation
8877         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
8878         * DataGridViewCheckBoxCell.cs: DataGridView implementation
8879         * DataGridViewHeaderCell.cs: DataGridView implementation
8880         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
8881         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
8882         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
8883         * DataGridViewTextBoxColumn.cs: DataGridView implementation
8884         * QuestionEventHandler.cs: DataGridView implementation
8885         * DataGridViewCellStyleScopes.cs: DataGridView implementation
8886         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
8887         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
8888         * DataGridViewCell.cs: DataGridView implementation
8889         * DataGridViewCellEventArgs.cs: DataGridView implementation
8890         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
8891         * DataGridViewCellStyle.cs: DataGridView implementation
8892         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
8893         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
8894         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
8895         * TextFormatFlags.cs: DataGridView implementation
8896         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
8897         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
8898         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
8899         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
8900         * DataGridViewButtonColumn.cs: DataGridView implementation
8901         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
8902         * HandledMouseEventArgs.cs: DataGridView implementation
8903         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
8904         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
8905         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
8906         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
8907         * DataGridViewRowCollection.cs: DataGridView implementation
8908         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
8909         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
8910         * DataGridViewHitTestType.cs: DataGridView implementation
8911         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
8912         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
8913         * DataGridViewColumnEventHandler.cs: DataGridView implementation
8914         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
8915         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
8916         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
8917         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
8918         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
8919         * DataGridViewContentAlignment.cs: DataGridView implementation
8920         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
8921         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
8922         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
8923         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
8924         * DataGridViewPaintParts.cs: DataGridView implementation
8925         * DataGridViewCellCollection.cs: DataGridView implementation
8926         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
8927         * DataGridViewImageColumn.cs: DataGridView implementation
8928         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
8929         * DataGridViewElementStates.cs: DataGridView implementation
8930         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
8931         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
8932         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
8933         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
8934         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
8935         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
8936         * DataGridViewRowHeaderCell.cs: DataGridView implementation
8937         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
8938         * DataGridViewTextBoxCell.cs: DataGridView implementation
8939         * DataGridViewBand.cs: DataGridView implementation
8940         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
8941         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
8942         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
8943         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
8944         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
8945         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
8946         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
8947         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
8948         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
8949         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
8950         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
8951
8952 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
8953
8954         * ThemeWin32Classic.cs: 
8955           - Draw the outside focus rectangle around buttons
8956           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
8957             doesn't use end caps for every dash of a line anymore. This
8958             workaround ignores the forecolor.
8959
8960 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
8961
8962         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
8963           endian safe.
8964
8965 2005-11-07  Jackson Harper  <jackson@ximian.com>
8966
8967         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
8968
8969 2005-11-07  Jackson Harper  <jackson@ximian.com>
8970
8971         * ScrollableControl.cs: Calculate the maximum and change vars
8972         (more) correctly so that scrollbars appear as a sensible size.
8973
8974 2005-11-04  Jackson Harper  <jackson@ximian.com>
8975
8976         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
8977         collection.
8978         * TreeView.cs: When the tree is sorted null out the top_node so
8979         that it is recalculated.
8980         - Use dotted lines instead of dashed lines to match MS better.
8981
8982 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
8983
8984         * ListView.cs: 
8985           - Implements key search for items. Useful when browsing files with FileDialog
8986           - When changing view mode or when clear the items reset scrollbar positions
8987
8988 2005-11-04  Jackson Harper  <jackson@ximian.com>
8989
8990         * CurrencyManager.cs: Implement the MetaDataChanged event, the
8991         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
8992         as to what the method may do as there is no real way of creating a
8993         derived CurrencyManager and calling the method. 
8994
8995 2005-11-03  Jackson Harper  <jackson@ximian.com>
8996
8997         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
8998         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
8999         method which seems to just be used internally to refresh the tabs.
9000
9001 2005-11-03  Jackson Harper  <jackson@ximian.com>
9002
9003         * TabControl.cs: Implement the remove method. Fix some broken
9004         comments.
9005
9006 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9007
9008         * DateTimePicker.cs:
9009           - Added missing DateTimePickerAccessibleObject class
9010           - Added missing events
9011           - Added OnFontChanged method
9012         * Form.cs: Added missing attributes
9013         * TreeView.cs: Added missing attributes
9014
9015 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
9016
9017         * GridItemCollection.cs: Fix signatures
9018
9019 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9020
9021         * XplatUI.cs: Updated build rev/date
9022         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
9023           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
9024         * Application.cs: Trigger context-specific ExitThread events
9025
9026 2005-11-03  Jackson Harper  <jackson@ximian.com>
9027
9028         * Menu.cs:
9029         * MainMenu.cs:
9030         * GridTableStylesCollection.cs:
9031         * Timer.cs:
9032         * TabPage.cs:
9033         * HelpProvider.cs:
9034         * StatusBar.cs:
9035         * MonthCalendar.cs: Signature fixes
9036
9037 2005-11-03  Jackson Harper  <jackson@ximian.com>
9038
9039         * TreeNodeCollection.cs: Remove should not be virtual.
9040         * TreeView.cs: Implement the last of the missing methods.
9041
9042 2005-11-03  Jackson Harper  <jackson@ximian.com>
9043
9044         * TreeNodeConverter.cs: Implement to get off my class-status back.
9045
9046 2005-11-03  Jackson Harper  <jackson@ximian.com>
9047
9048         * TreeView.cs: Hookup the bits for drag and drop.
9049         * TreeNode.cs: Don't cache the tree_view or index anymore, now
9050         that nodes can be moved from tree to tree easily this just causes
9051         all sorts of problems.
9052         * TreeNodeCollection: Don't need to give treenodes an index and
9053         treeview anymore when they are added, these are computed on the
9054         fly. Also make sure to remove a node before its added.
9055
9056 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9057
9058         * TextControl.cs:
9059           - Added CaretSelection enum
9060           - Added comparison methods to Marker struct, makes selection code
9061             more readable
9062           - Added SelectionStart and SelectionEnd as 'moveable' location for
9063             the CaretDirection enum and handler
9064           - Added selection_prev variable to track optimized invalidation for
9065             word and line selection
9066           - Added SelectionVisible property (returns true if there is a valid 
9067             selection)
9068           - Switched CaretHasFocus to only display the caret if there is no
9069             visible selection
9070           - Avoiding StringBuilder.ToString to retrieve a single char, instead
9071             using the direct character index; should be much faster
9072           - Added various conditional debug statements
9073           - Fixed invalidation calculation for selection ranges
9074           - Added ExpandSelection() method to support word and line selection
9075           - Switched SetSelectionToCaret to use new Marker compare overloads
9076           - Added central IsWordSeparator() method to determine word 
9077             separators/whitespace and FindWordSeparator() to streamline common
9078             usage of IsWordSeparator()
9079         * TextBoxBase.cs:
9080           - Removed unneeded grabbed variable, it was just mirroring
9081             Control.Capture
9082           - No longer firing OnTextChanged event when Text setter is called,
9083             since the base will fire the event for us
9084           - Added handling of Ctrl-Up/Down selection
9085           - Added handling of Shift-Cursorkey selection
9086           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
9087             words
9088           - Added handling of Shift and Ctrl-Shift-Home/End selection
9089           - Removed some debug output
9090           - Added handling for single/double/tripple-click to place caret/
9091             select word/select line respectively (Fixes bug #76031)
9092           - Added support for drag expansion of word/line selection
9093         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
9094           current selection
9095
9096 2005-11-02  Jackson Harper  <jackson@ximian.com>
9097
9098         * X11Dnd.cs: If the drag is going to and from a MWF window just
9099         copy the data instead of sending it out through the X Selection
9100         mechanism.
9101
9102 2005-11-02  Jackson Harper  <jackson@ximian.com>
9103
9104         * X11Dnd.cs:
9105         * XplatUIX11.cs: When in a drag we don't want motion notify
9106         messages to get passed on to the other controls. This prevents
9107         mouse move messages from showing up in the drag source.
9108
9109 2005-11-02  Jackson Harper  <jackson@ximian.com>
9110
9111         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
9112         the correct button is release to end a drag.
9113         * XplatUIX11.cs: Make the button state internal so the drag system
9114         can access it.  Dragging needs to know about all button releases,
9115         not just left button.
9116
9117 2005-11-02  Miguel de Icaza  <miguel@novell.com>
9118
9119         * Form.cs (Icon): If the icon is null, reset the icon to the
9120         default value. 
9121
9122         * Cursor.cs: When writing the AND-mask bitmap do not include the
9123         number of colors, but hardcode those to two (black and white),
9124         fixes the loading of color cursors (Paint Dot Net).
9125
9126         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
9127         turn off autoscaling.
9128
9129         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
9130
9131 2005-11-02  Jackson Harper  <jackson@ximian.com>
9132
9133         * X11Dnd.cs: Make sure to send a status message if the pointer
9134         enters a control that can not accept a drop, otherwise the cursor
9135         isn't updated correctly. Also tried to compress the lines of code
9136         a bit.
9137
9138 2005-11-02  Jackson Harper  <jackson@ximian.com>
9139
9140         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
9141         set actions correctly.  This isn't perfect as XDND and win32 have
9142         some differences on how you allow actions. I'll clear this up by
9143         adding a path for drag from MWF to MWF windows.
9144         * XplatUIX11.cs: Hook into the dnd system.
9145
9146 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
9147
9148         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
9149         previously shown but they are no longer need it. Very obvious when 
9150         browsing files with FileDialog.
9151
9152 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
9153
9154         * Control.cs: We always need to call OnPaintBackground. We pretty much
9155           ignore AllPaintingInWmPaint and always do the painting there, whether 
9156           it's set or not, since we always ignore the WM_ERASEBKGND message 
9157           (which we don't generate on X11). This fixes #76616.
9158         * Panel.cs: Removed unneeded background painting. This happens properly
9159           in Control.cs already
9160
9161 2005-10-31  Mike Kestner  <mkestner@novell.com>
9162
9163         * Menu.cs: Add items to collection before setting their index.
9164         * MenuItem.cs : add range checking with ArgumentException like MS.
9165         [Fixes #76510]
9166
9167 2005-10-31  Jackson Harper  <jackson@ximian.com>
9168
9169         * ListBox.cs: Invalidate if the area is visible at all not just
9170         contained in the visible rect. Fixes unselection of semi visible
9171         items.
9172
9173 2005-10-31  Jackson Harper  <jackson@ximian.com>
9174
9175         * Control.cs: Consistently name the dnd methods. Make them
9176         internal so we can override them to match some MS behavoir
9177         internally.
9178         * Win32DnD.cs: Use the new consistent names.
9179
9180 2005-10-31  Jackson Harper  <jackson@ximian.com>
9181
9182         * TreeView.cs: Don't draw the selected node when we lose focus.
9183
9184 2005-10-31  Jackson Harper  <jackson@ximian.com>
9185
9186         * X11Dnd.cs: We still need to reset the state even though a full
9187         reset isn't being done, otherwise status's still get sent all over
9188         the place.
9189
9190 2005-10-31  Jackson Harper  <jackson@ximian.com>
9191
9192         * Control.cs: Make the dnd_aware flag internal so the dnd
9193         subsystem can check it. Catch exceptions thrown in dnd handlers to
9194         match MS behavoir.
9195         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
9196         * X11Dnd.cs: Handle null data in the converters. Set the XDND
9197         version when sending a XdndEnter. Use the control/hwnd dnd_aware
9198         flags to reduce the number of dnd enters/status's sent.
9199
9200 2005-10-31  Jackson Harper  <jackson@ximian.com>
9201
9202         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
9203
9204 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
9205
9206         * PictureBox.cs: Fixes 76512
9207
9208 2005-10-28  Jackson Harper  <jackson@ximian.com>
9209
9210         * X11Dnd.cs: Early implementation to support winforms being a drag
9211         source for data on X11. Also restructured the converters so they
9212         can go both ways now.
9213         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
9214         
9215 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
9216
9217         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
9218           clipboard requests
9219
9220 2005-10-27  Jackson Harper  <jackson@ximian.com>
9221
9222         * TreeNode.cs: Implement serialization so my DnD examples will work.
9223
9224 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
9225
9226         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
9227           TreeView.cs: Don't dispose objects that are not owned.
9228           
9229 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
9230
9231         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
9232           should retrieve the current cursor and report that, but XplatUI
9233           doesn't (yet) have an interface for that (and I'm not sure I even
9234           can, on X11)
9235         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
9236           until any message loop processing is done (and the WM_SETCURSOR
9237           replaces the cursor to the proper one)
9238         * XplatUIX11.cs: 
9239           - Fixed override behaviour, we can't set the cursor globally on X11, 
9240             just for our windows.
9241           - Invalidating the System.Drawing X11 display handle when we are
9242             shutting down
9243         * Control.cs: Fix to make csc happy
9244
9245 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
9246
9247         * TextBoxBase.cs: 
9248           - get_Text: Add last line (without trailing newline) to returned
9249             value (Fixes 76212)
9250           - get_TextLength: Count last line in returned length
9251           - ToString: Call Text property instead of duplicating code
9252
9253 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
9254
9255         * ImageList.cs: Dispose ImageAttributes objects.
9256
9257 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9258
9259         * ImageList.cs: Use attribute constructors with less arguments where
9260           possible.
9261
9262 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9263
9264         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
9265           Use typeof instead of strings when assembly is referenced. Added
9266           some more comments.
9267
9268 2005-10-21  Jackson Harper  <jackson@ximian.com>
9269
9270         * ListView.cs: Raise a double click event. Also tried to somewhat
9271         fix when the selectedindexchanged event is raised. Its still
9272         broken though.
9273
9274 2005-10-21  Jackson Harper  <jackson@ximian.com>
9275
9276         * TreeView.cs: New method to invalidate the plus minus area of a
9277         node without invalidating the whole node (maybe this can be used
9278         in some more places).
9279         * TreeNodeCollection.cs: When adding to an empty node we need to
9280         invalidate its plus minus area so the little block shows up.
9281         
9282 2005-10-21  Jackson Harper  <jackson@ximian.com>
9283
9284         * TreeView.cs: Make sure that when we invalidate a node the bounds
9285         are big enough to cover the selected box and the focus
9286         rectangle. Use a different colour for the lines connecting nodes
9287         so they show up with all themes.
9288
9289 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9290
9291         * NativeWindow.cs: Don't call anything that could call into the driver,
9292           we might be on a different thread.
9293
9294 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
9295
9296         * Control.cs(Dispose): Since Dispose might run on a different thread,
9297           make sure that we call methods that could call into the driver via
9298           invoke, to avoid thread issues
9299
9300 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9301
9302         * XplatUI.cs: Removed finalizer
9303         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
9304           not allowing to be called on the finalizer thread.
9305
9306 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
9307
9308         * ImageList.cs:
9309           - Reverted r51889 and r51891.
9310           - Added ImageListItem class that stores unmodified image items and image
9311             properties required to create list images until handle is created.
9312           - Added AddItem and moved image creation logic to AddItemInternal.
9313           - Added CreateHandle method that creates images based on unmodified items.
9314           - Added DestroyHandle that changes state to store unmodified items.
9315           - Add and AddStrip methods no more create handle.
9316           - ReduceColorDepth has no return value.
9317           - Dispose destroys handle.
9318           - Modified other methods to reflect the above changes.
9319           - Implemented key support.
9320           - Added profile 2.0 members and attributes.
9321           - Added private Reset and ShouldSerialize methods that provide the same
9322             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
9323             them as they are private.
9324           - Added some more comments about implementation details.
9325
9326 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9327
9328         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
9329
9330 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9331
9332         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
9333
9334 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9335
9336         * DataGridDrawingLogic.cs: Fixes column hit calcultation
9337         * DataGridColumnStyle.cs: Remove debug message
9338
9339 2005-10-20  Jackson Harper  <jackson@ximian.com>
9340
9341         * TreeView.cs: We can always get input keys regardless of whether
9342         or not editing is enabled. They are used for navigation.
9343
9344 2005-10-20  Jackson Harper  <jackson@ximian.com>
9345
9346         * TreeNode.cs: Use the viewport rect for determining if a node
9347         needs to be moved for visibility. Don't use Begin/End edit. This
9348         calls a full refresh when its done.
9349         * TreeView.cs: New SetBottom works correctly.  Make the viewport
9350         rect property internal so the treenodes can see it. When clicking
9351         on a node we need to ensure that its visible because it might just
9352         be partly visible when clicked.
9353
9354 2005-10-20  Jackson Harper  <jackson@ximian.com>
9355
9356         * TreeNodeCollection.cs: Remove debug code.
9357
9358 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9359
9360         * Datagrid.cs: Implements column sorting in Datagrid
9361         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
9362
9363 2005-10-20  Jackson Harper  <jackson@ximian.com>
9364
9365         * TreeNodeCollection.cs: Remove items properly. Update the correct
9366         area after removing them.
9367
9368 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9369
9370         * Datagrid.cs: Should not call base.OnPaintBackground
9371
9372 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9373
9374         * XplatUIX11.cs (GetMessage):
9375           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
9376             window instead of client window
9377           - Now properly calculates NC_xBUTTONUP message coordinates
9378           - ScreenToMenu now properly calculates it's coordinates of whole 
9379             window, since menus are in the whole window, not in the client
9380             window
9381           - Added WholeToScreen coordinate translation method
9382
9383 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
9384
9385         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
9386           want to return a message, loop back to the beginning of the function
9387           and grab the next real message to process instead.
9388
9389 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9390
9391         * Splitter.cs: Properly set limits if no filler control is used
9392
9393 2005-10-19  Jackson Harper  <jackson@ximian.com>
9394
9395         * ColorDialog.cs: Don't show the help button if it is not enabled
9396         instead of disabling it (this is what MS does). Don't create the
9397         panel until the dialog is run, otherwise the vars (such as
9398         ShowHelp) are not set yet.
9399
9400 2005-10-19  Jackson Harper  <jackson@ximian.com>
9401
9402         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
9403         are reduced when adding nodes.
9404         * TreeNode.cs:
9405         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
9406         tree.
9407         
9408 2005-10-19  Jackson Harper  <jackson@ximian.com>
9409
9410         * FolderBrowserDialog.cs: End editing our treeview so the window
9411         actually gets refreshed.
9412
9413 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9414
9415         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
9416           Obsoleted handling of WM_ERASEBKGND, now always draws our background
9417           inside of WM_PAINT
9418
9419 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9420
9421         * MenuAPI.cs: Returns after Hidding window
9422         * XplatUIX11.cs: Added TODO found while debugging menu issues
9423
9424 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9425
9426         * XplatUIX11.cs: Do not re-map the whole window when it's size
9427           becomes non-zero unless it's supposed to be actually visible
9428
9429 2005-10-18  Jackson Harper  <jackson@ximian.com>
9430
9431         * TreeView.cs: We don't need to keep a count anymore.
9432         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
9433         use the Grow method.
9434
9435 2005-10-18  Jackson Harper  <jackson@ximian.com>
9436
9437         * TreeNodeCollection.cs: Insert is not supported on arrays, so
9438         implement it manually here.
9439
9440 2005-10-18  Jackson Harper  <jackson@ximian.com>
9441
9442         * ImageList.cs: Dont kill the list when the colour depth is
9443         changed, just change the colour depth of all the images.
9444         - Same goes for setting the image size. Just resize them all
9445         instead of killing the list softly.
9446
9447 2005-10-18  Jackson Harper  <jackson@ximian.com>
9448
9449         * Control.cs: Don't invalidate empty rectangles.
9450
9451 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9452
9453         * ListViewItem.cs:
9454           - Adds checked item to the Checked/Item lists (where empty before)
9455           - Do not add items to the Selected lists if they are already present
9456         * ListView.cs:
9457           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
9458           - When deleting items make sure that we delete them for the Selected
9459           and Checked list also.
9460
9461 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9462
9463         * Label.cs: Dispose objects no longer used
9464         * ThemeWin32Classic.cs: Dispose objects no longer used
9465
9466 2005-10-18  Jackson Harper  <jackson@ximian.com>
9467
9468         * TabControl.cs: Don't refresh the whole control when the tabs are
9469         scrolled, we just need to refresh the tab area.
9470
9471 2005-10-17  Jackson Harper  <jackson@ximian.com>
9472
9473         * XplatUIX11.cs: Compress code a little bit. Only calculate the
9474         after handle when we need it.
9475
9476 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9477
9478         * Control.cs: When the parent size changes, recalculate anchor 
9479           positions. Partial fix for #76462
9480
9481 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9482
9483         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
9484           drawn. Fixes #76462
9485
9486 2005-10-17  Jackson Harper  <jackson@ximian.com>
9487
9488         * MonthCalendar.cs: Don't create the numeric up down until our
9489         handle is created. Otherwise our handle is created in the
9490         constructor and we don't know if we are a WS_CHILD or WS_POPUP
9491         yet.
9492
9493 2005-10-17  Jackson Harper  <jackson@ximian.com>
9494
9495         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
9496         correctly.
9497
9498 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
9499         * TreeNode.cs : small logical fix (was using local var instead of field)
9500         
9501 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9502
9503         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
9504
9505 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9506
9507         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
9508
9509 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
9510
9511         * Control.cs: 
9512           - Re-implemented anchoring code. My first version was really broken.
9513             This fixes bug #76033. Unlike the previous implementation we will
9514             no longer have round errors since all numbers are calculated from
9515             scratch every time. Removed various anchor-related obsolete vars.
9516           - InitLayout no longer causes layout event firing and layout to be 
9517             performed
9518
9519 2005-10-16  Jackson Harper  <jackson@ximian.com>
9520
9521         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
9522         which was broken).
9523
9524 2005-10-16  Jackson Harper  <jackson@ximian.com>
9525
9526         * TabControl.cs: Remove debug code.
9527
9528 2005-10-16  Jackson Harper  <jackson@ximian.com>
9529
9530         * XEventQueue.cs: Increase the default queue size (very simple
9531         apps needed to grow the queue).
9532         * Hwnd.cs: No finalizer so we don't need to suppress
9533         finalization. Compute the invalid area manually so a new rectangle
9534         does not newto be created.
9535         * ScrollableControl.cs: Don't set any params (otherwise visibility
9536         isn't set correctly).
9537         * MdiChildContext.cs: New constructor takes the mdi parent so it
9538         doesn't have to be computed and avoids a crash on windows. Draw
9539         the window icon properly, and allow the text to be seen.
9540         * Form.cs: Use new MdiChildContext constructor. Make sure the
9541         child context isn't null in wndproc.
9542         * TabControl.cs: Don't set focus, this is muddling keyboard
9543         behavoir. Expand the tab rows when a window size increase will
9544         allow extra tabs to be seen. Don't allow tabs smaller than the
9545         width of a window to be scrolled out of view.
9546         * TreeNode.cs:
9547         * TreeView.cs: Use measure string to calculate a nodes width, the
9548         width is cached and only updated when the text or the font is
9549         changed. Don't check for expand/collapse clicks on the first level
9550         nodes if root lines are disabled.
9551         
9552 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
9553
9554         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
9555
9556 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9557
9558         * DataGridBoolColumn.cs: fixes warning
9559
9560 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9561
9562         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
9563         to match more to match more precisely the MS Net behavior
9564
9565 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9566
9567         * Hwnd.cs: Added field to track if window is mapped
9568         * XplatUIX11.cs: 
9569           - Unmap windows if they become 0-size, re-map when 
9570             they are >0 again; fixes #76035
9571           - Re-set our error handler after initializing X11Desktop
9572             to override any error handlers Gtk or whatever was called
9573             may have set.
9574
9575 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9576
9577         * CheckedListBox.cs: Removed unused vars
9578         * ListView.cs: Fixed signatures
9579         * RichTextBox.cs: Removed unused vars
9580         * TextBoxBase.cs: Removed unused vars
9581         * XplatUIWin32.cs: Removed unused vars
9582         * XplatUIX11.cs: Removed unused vars
9583         * XplatUI.cs: Updated version and date to latest published
9584
9585 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9586
9587         * Cursor.cs: Added private .ctor to work around a bug in
9588           resourceset (Thanks to Geoff Norton for the help on this)
9589         * SplitterEventArgs.cs: Made fields accessible so we don't
9590           waste boatloads of objects and can reuse the same one
9591           in Splitter
9592         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
9593           any captions and borders when generating screen coordinates
9594         * Splitter.cs: Reimplemented control, now fully complete, uses
9595           rubberband drawing, supports and obeys all properties, has
9596           proper cursors
9597
9598 2005-10-13  Miguel de Icaza  <miguel@novell.com>
9599
9600         * Form.cs (Form): Setup default values for autoscale and
9601         autoscale_base_size;  Make these instance variables, not static
9602         variables. 
9603
9604         (OnLoad): on the first load, adjust the size of the form.
9605
9606 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9607
9608         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
9609           width argument to DrawReversibleRectangle()
9610         * XplatUIWin32.cs, XplatUIX11.cs: 
9611           - Implemented width for DrawReversibleRectangle()
9612           - Added logic to DrawReversibleRectangle that recognizes a zero
9613             width or height and only draws a line in that situation
9614         
9615 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
9616
9617         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
9618         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
9619         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
9620           method (it uses our FosterParent window to get a graphics context)
9621
9622 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
9623
9624         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
9625           and SetWindowBackground methods
9626         * Control.cs:
9627           - Setting proper ControlStyles
9628           - We no longer call XplatUI.SetWindowBackground and XplatUI.
9629             EraseWindowBackground, instead we draw the window background
9630             ourselves in PaintControlBackground. This behaviour is
9631             required to match MS, where, when OnPaintBackground is not
9632             called, the background is not drawn.
9633           - Removed unneeded Refresh() in set_Text
9634         * Hwnd.cs: Dropped the ErasePending support. No longer needed
9635         * XplatUIX11.cs:
9636           - Created DeriveStyles method to translate from CreateParams to
9637             FormBorderStyle and TitleStyle, also handles BorderStyle (which
9638             matches FormBorderStyle enum values)
9639           - Consolidated SetHwndStyles and CalculateWindowRect border/title
9640             style calculations into single DeriveStyles method
9641           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
9642             from redrawing the whole window on any resize or expose.
9643           - Fixed CreateWindow usage of SetWindowValuemask. Before not
9644             all styles were applied to our whole/client window appropriately
9645           - Removed EraseWindowBackground() and SetWindowBackground() methods
9646           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
9647             no longer clear/redraw the background through X
9648           - Removed handling of erase_pending bit, we have no use for it (or
9649             so it seems)
9650         * XplatUIOSX.cs:
9651           - Removed generation and handling of WM_ERASEBKGND message
9652           - Removed EraseWindowBackground() and SetWindowBackground() methods
9653           - Removed handling of hwnd.ErasePending flag
9654         * XplatUIWin32.cs:
9655           - Removed EraseWindowBackground() and SetWindowBackground() methods
9656           - We no longer call EraseWindowBackground on PaintEventStart, we 
9657             ignore the fErase flag, erasing is handled in Control in the
9658             background handler
9659         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
9660           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
9661           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
9662           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
9663           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
9664           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
9665           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
9666
9667 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
9668
9669         * PropertyGrids.cs: Get sub properties
9670         * PropertyGridView.cs: Fix drawing code
9671
9672 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9673
9674         * ListBox.cs: Fixes 76383
9675
9676 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9677
9678         * DataGridTextBoxColumn.cs: Sets location and size before attachment
9679         * ThemeWin32Classic.cs: Fixes border drawing and calculations
9680         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
9681
9682
9683 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9684
9685         * ComboBox.cs: Fixes border drawing
9686
9687 2005-10-10  Miguel de Icaza  <miguel@novell.com>
9688
9689         * MimeIcon.cs: Ignore errors if the file can not be read.
9690
9691 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9692
9693         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
9694          - Fixed border calculations
9695          - Fixed horizontal scrolling in single column listboxes
9696          - Fixed drawing issues
9697
9698 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
9699
9700         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
9701           FormBorderStyle enum
9702         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
9703           code to determine FormBorderStyles from CreateParams
9704         * Form.cs:
9705           - Fixed bug where we'd set the wrong window styles if we were
9706             not creating an MDI window
9707           - Added call to XplatUI.SetBorderStyle when form borders are set
9708         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
9709         * Hwnd.cs:
9710           - Removed obsolete edge style
9711           - Switched from BorderStyle to FormBorderStyle
9712         
9713 2005-10-10  Jackson Harper  <jackson@ximian.com>
9714
9715         * Form.cs: Use the property to get the window handle instead of
9716         accessing it directly. Prevents a null reference exception.
9717
9718 2005-10-10  Jackson Harper  <jackson@ximian.com>
9719
9720         * TreeView.cs: Don't adjust the rect given to DrawString now that
9721         our libgdiplus draws correctly.
9722
9723 2005-10-08  Jackson Harper  <jackson@ximian.com>
9724
9725         * TreeView.cs: Don't try to find the clicked on node if there are
9726         no nodes in the tree.
9727
9728 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9729
9730         * RichTextBox.cs:
9731
9732           restore
9733
9734 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9735
9736         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
9737           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
9738           ErrorProvider.cs:
9739           Use ResPool for brushes and dispose System.Drawing objects that
9740           are not used anymore.
9741
9742 2005-10-07  Jackson Harper  <jackson@ximian.com>
9743
9744         * MdiChildContext.cs: Use the new borders instead of drawing them
9745         ourselves.
9746
9747 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
9748
9749         * Calling UpdateBounds after changing the window's BorderStyle 
9750         since the style can change the ClientSize
9751
9752 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9753
9754         * Control.cs: Made PaintControlBackground virtual
9755         * Panel.cs: Overriding PaintControlBackground instead of using paint
9756           event; paint event method was interfering with 'real' users of the
9757           event.
9758
9759 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
9760
9761         * ThemeWin32Classic.cs: remove border drawing since it is handled
9762         by the base control class now and was causing double border drawing.
9763
9764 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9765
9766         * Panel.cs: Redraw our background on paint. Not a pretty solution,
9767           but it does seem to match MS behaviour. This fixes bug #75324
9768
9769 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9770
9771         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
9772           somewhat hackish looking
9773
9774 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9775
9776         * TextBoxBase.cs:
9777           - We now accept Enter even if AcceptEnter is false, if the containing
9778             form does not have an AcceptButton configured (fixes bug #76355)
9779           - Calculations are now fixed to no longer use Width/Height, but
9780             ClientSize.Width/Height, since we now support borders (this was
9781             a result of fixing borders and therefore bug #76166)
9782           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
9783             true (fixes bug #76354)
9784         
9785 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9786
9787         * Control.cs: 
9788           - Defaulting BorderStyle and setting it in XplatUI when our window 
9789             is created
9790           - Added enum check to InternalBorderStyle setter
9791         * XplatUIX11.cs: 
9792           - Added drawing of window borders
9793           - Now properly calculates WM decorations offset for toplevel 
9794             windows (fixes bug #74763)
9795         * XplatUIWin32.cs: 
9796           - Implemented BorderStyles for windows (we're letting win32 draw 
9797             the border for us)
9798           - Fixed the signature for SetWindowLong
9799         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
9800           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
9801           setting borders
9802         * UpDownBase.cs: Remove drawing of borders, this is handled by
9803           the driver, outside the client area
9804         * ListView.cs: Removed bogus border calculations. The control should
9805           be oblivious to borders, since those are not part of the client
9806           area. 
9807         * X11DesktopColors.cs: Commented out (currently) unneeded variables
9808         * ThemeWin32Classic.cs: Removed border calculations from ListView 
9809           drawing code
9810
9811 2005-10-06  Jackson Harper  <jackson@ximian.com>
9812
9813         * MdiChildContext.cs: Clear out the old virtual position remove
9814         all the unneeded calls to CreateGraphics.
9815
9816 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9817
9818         * TextControl.cs: Use proper color for highlighted text; fixes #76350
9819
9820 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
9821
9822         * Form.cs: 
9823           - Added loading and setting of our new default icon
9824           - Only set icon if window is already created
9825
9826 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
9827
9828         * Label.cs:
9829           - Do not explicitly set the foreground and background colors, to
9830             allow inheriting from parents (fixes #76302)
9831           - Use Control's InternalBorderStyle property to deal with borders
9832
9833 2005-10-06  Jackson Harper  <jackson@ximian.com>
9834
9835         * MdiChildContext.cs: Use the new xplatui function to draw a
9836         reversible rect.
9837
9838 2005-10-06  Jackson Harper  <jackson@ximian.com>
9839
9840         * Form.cs: Add the parent before creating the child context cause
9841         we need the parent when setting up the child.
9842
9843 2005-10-06  Jackson Harper  <jackson@ximian.com>
9844
9845         * FolderBrowserDialog.cs: redo the tree population code so a
9846         second thread isn't used. Should be a lot faster and more stable
9847         now.
9848
9849 2005-10-05  Jackson Harper  <jackson@ximian.com>
9850
9851         * TreeView.cs: There are no expand/collapse boxes if the node has
9852         no children.
9853
9854 2005-10-05  Jackson Harper  <jackson@ximian.com>
9855
9856         * X11DesktopColors.cs: Get menu colours for the gtk theme.
9857
9858 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
9859
9860         * FileDialog.cs: Fix InitialDirectory
9861
9862 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
9863
9864         * ComboBox.cs:
9865                 - Fixes changing between styles
9866                 - Fixes simple mode
9867                 - Fixes last item crashing when navigating with keyboard
9868
9869 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
9870
9871         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
9872
9873 2005-10-05  Jackson Harper  <jackson@ximian.com>
9874
9875         * TreeView.cs: If updating the root node do a full refresh.
9876         * TreeNode.cs: The root node should be expanded by default. Also
9877         added a utility prop to tell if we are the root node.
9878         * TreeNodeCollection.cs: Only refresh if the node we are being
9879         added to is expanded. Also added a comment on a potential
9880         optimization.
9881         
9882 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
9883
9884         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
9885           in dispose method. Fixes #76330
9886
9887 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
9888
9889         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
9890
9891                 - Implements vertical and horizontal scrolling using XplatUI
9892                 - Fixes keyboard navagation
9893                 - Fixes EnsureVisible
9894                 - Drawing fixes
9895                 - Handles and draws focus properly
9896
9897
9898 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
9899
9900         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
9901           Create handle. NET_2_0: Destroy handle when value is null.
9902
9903 2005-10-03  Jackson Harper  <jackson@ximian.com>
9904
9905         * ScrollBar.cs: My last scrollbar patch was broken. This is a
9906         revert and a new patch to prevent the thumb from refreshing so
9907         much.
9908
9909 2005-10-02  Jackson Harper  <jackson@ximian.com>
9910
9911         * ScrollBar.cs: Don't update position if it hasn't actually
9912         changed. This occurs when you hold down the increment/decrement
9913         buttons and the thumb gets to the max/min.
9914
9915 2005-10-01  Jackson Harper  <jackson@ximian.com>
9916
9917         * Form.cs:
9918         * MdiChildContext.cs:
9919         * MdiClient.cs: Implement ActiveMdiChild in Form.
9920
9921 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
9922
9923         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
9924
9925 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
9926
9927         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
9928           be found
9929
9930 2005-09-30  Jackson Harper  <jackson@ximian.com>
9931
9932         * ListBox.cs: Don't do a full refresh unless some data has
9933         actually changed.
9934
9935 2005-09-30  Jackson Harper  <jackson@ximian.com>
9936
9937         * TreeView.cs: Make sure that the checkboxes size is factored in
9938         even when not visible.
9939
9940 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
9941
9942         * FileDialog.cs: Fix Jordi's build break
9943
9944 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
9945
9946         * FileDialog.cs: 
9947                 - Use standard the Windows colours for the combobox as espected
9948                 - Dispose objects that use resouces when no longer need them
9949
9950 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
9951
9952         * X11DesktopColors.cs: Initial incomplete implementation
9953         * XplatUIX11.cs: Added call to initialize X11DesktopColors
9954
9955 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
9956
9957         * Theme.cs: 
9958           - Switched Theme color names to match the names defined in 
9959             System.Drawing.KnownColors. Life's hard enough, no need to make 
9960             it harder.
9961           - Added setters to all theme color properties so themes can set
9962             their color schemes. The setters also propagate the color changes
9963             to System.Drawing.KnownColors via reflection
9964         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
9965           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
9966           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
9967           use the new, more logical theme color names
9968         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
9969           post-NT colors
9970         * ThemeWin32Classic.cs:
9971           - Removed code to set the old classic Windows colors. Instead it
9972             now relies on the colors returned by System.Drawing.KnownColors
9973             which will be either modern static colors (Unix) or colors
9974             read from the user's configuration (Win32)
9975           - Updated to use the new, more logical theme color names
9976           - Switched DataGrid drawing code to use only Theme colors instead of
9977             a mix of System.Drawing.KnownColors and Theme colors
9978           - DrawFrameControl(): Removed code that fills the button area, the
9979             fill would overwrite any previous fill done by a control. This
9980             fixes bug #75338 
9981           - Added DrawReversibleRectangle() stub
9982         * ScrollableControl.cs: Set visible state to false when scrollbars
9983           are removed (pdn fix)
9984         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
9985           DrawReversibleRectangle() method to allow drawing primitive 
9986           'rubber bands'
9987         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
9988
9989 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
9990
9991         * ImageList.cs: Add(Icon): Create handle.
9992
9993 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
9994
9995         * ListView.cs:
9996         * ThemeWin32Classic.cs:
9997                 - Fixes detail mode
9998                 - Sets clippings
9999                 - Issues with drawing
10000
10001 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10002
10003         * ImageList.cs: Moved RecreateHandle back to ImageList as event
10004           source has to be the ImageList.
10005
10006 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10007
10008         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
10009
10010 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10011
10012         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
10013
10014 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10015
10016         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
10017
10018 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
10019         * GridItem.cs: Fixed TODOs
10020         * GridItemCollection.cs: Added ICollection interface
10021
10022 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10023
10024         * ImageList.cs: Resize icons when needed.
10025
10026 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
10027
10028         * ListViewItem.cs
10029                 - Fixes GetBounds and returns on screen rects
10030         * ListView.cs:
10031                 - Fixes vertical and horzintal scrolling of items
10032         * ThemeWin32Classic.cs:
10033                 - Fixes drawing
10034                 
10035 2005-09-29  Raja R Harinath  <harinath@gmail.com>
10036
10037         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
10038
10039 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
10040
10041         * ImageList.cs: Added comments about handle creation. Moved Handle,
10042           HandleCreated and OnRecreateHandle implementations to ImageCollection.
10043           Handle is created in Add methods.
10044
10045 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
10046          
10047         * DataGridDrawingLogic.cs: 
10048                 - Takes rows into account on Colum calculations
10049                 - Returns the column when clickig
10050         * DataGrid.cs:
10051                 - Fixes default HitTestInfo values
10052                 - Fixes HitTestInfo.ToString
10053                 - Fixes ResetBackColor          
10054         
10055 2005-09-28  Jackson Harper  <jackson@ximian.com>
10056
10057         * MdiChildContext.cs: Obey rules for fixed sized windows (no
10058         sizing or cursor changes). Also added some temp code to draw the
10059         titlebars text (Makes dev a little easier).
10060
10061 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
10062
10063         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
10064
10065 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
10066          
10067         * ListBox.cs: Fixes bug 76253
10068
10069 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
10070
10071         * ImageList.cs: Added comments about the current implementation. Added
10072           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
10073           Format32bppArgb to preserve transparency and can use Graphics.FromImage
10074           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
10075           with Bitmap.LockBits for better performance. Revised the whole file to
10076           match MS.NET behaviour and provide better performance. Non-public
10077           interface members are calling public members even when they throw
10078           NotSupportedException for better maintainability. Moved ColorDepth,
10079           ImageSize, ImageStream and TransparentColor implementations to
10080           ImageCollection for better performance as these properties are not used
10081           by ImageList.
10082         * ImageListStreamer.cs: Added a new internal constructor that takes an
10083           ImageList.ImageCollection and serializes Images based on
10084           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
10085           match ImageList property name.
10086
10087 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
10088
10089         * ListBox.cs: Fixes IndexFromPoint for last item
10090
10091 2005-09-27  Jackson Harper  <jackson@ximian.com>
10092
10093         * Form.cs: Set the position of new mdi children correctly.
10094
10095 2005-09-27  Jackson Harper  <jackson@ximian.com>
10096
10097         * MdiClient.cs: New mdi children need to be added to the back of
10098         the controls collection so the zorder is set correctly. Also add a
10099         count of all the child windows that have been created.
10100
10101 2005-09-27  Jackson Harper  <jackson@ximian.com>
10102
10103         * Form.cs (CreateParams): Setup MDI forms correctly.
10104
10105 2005-09-27  Jackson Harper  <jackson@ximian.com>
10106
10107         * MdiChildContext.cs:
10108         * MonthCalendar.cs:
10109         * UpDownBase.cs:
10110         * ListBox.cs:
10111         * ListView.cs:
10112         * TextBoxBase.cs:
10113         * TreeView.cs:
10114         * ScrollableControl.cs:
10115         * ComboBox.cs: Add implicit controls using the new implict control
10116         functionality in ControlCollection. Also try to block multiple
10117         control add in a suspend/resume layout to save some cycles.
10118         
10119 2005-09-27  Jackson Harper  <jackson@ximian.com>
10120
10121         * Control.cs: Add functionality to the controls collection to add
10122         'implicit controls' these are controls that are created by the
10123         containing control but should not be exposed to the user. Such as
10124         scrollbars in the treeview.
10125         * Form.cs: The list var of the ControlsCollection is no longer
10126         available because of the potential of implicit controls getting
10127         ignored by someone accessing the list directly.
10128
10129 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
10130
10131         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
10132           loose it's parent. (Fixed bug introduced in r49103 when we added
10133           setting the child parent to null on Remove)
10134
10135 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
10136
10137         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
10138         * Splitter.cs: Added missing attributes for BorderStyle property.
10139         * TextBoxBase.cs: Marked Calculate* methods internal.
10140         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
10141         MS.NET.
10142
10143 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
10144          
10145         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
10146
10147 2005-09-25  Jackson Harper  <jackson@ximian.com>
10148
10149         * TreeView.cs: Update the node bounds correctly regardless of
10150         whether the node is visible.
10151
10152 2005-09-25  Jackson Harper  <jackson@ximian.com>
10153
10154         * ImageList.cs: Don't dispose the image after it is added to the
10155         image list. Only reformat images that need to be resized.
10156
10157 2005-09-25  Jackson Harper  <jackson@ximian.com>
10158
10159         * ImageList.cs: Don't set the format when changing the image.
10160
10161 2005-09-25  Jackson Harper  <jackson@ximian.com>
10162
10163         * TreeView.cs: We can't just assume the node has a font. Use the
10164         treeviews font if no node font is available.
10165
10166 2005-09-25  Jackson Harper  <jackson@ximian.com>
10167
10168         * TreeView.cs: Allow the scrollbars to be reset with negative
10169         values.
10170         - Don't add scrollbars to negative sized windows.
10171
10172 2005-09-23  Jackson Harper  <jackson@ximian.com>
10173
10174         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
10175         old Mono.Posix. Also remove some stray code that shouldn't have
10176         been committed.
10177
10178 2005-09-23  Jackson Harper  <jackson@ximian.com>
10179
10180         * TreeView.cs: Attempt at proper sizing of the horizontal
10181         scrollbar. Also don't resize the scrollbars unless they are
10182         visible.
10183
10184 2005-09-23  Jackson Harper  <jackson@ximian.com>
10185
10186         * TreeView.cs: We don't need to expand the invalid area when the
10187         selection changes, as this is all drawn in the node's bounding
10188         box. The area needs to be expanded (previous typo was contracting
10189         it) when the focus rect moves.
10190
10191 2005-09-23  Jackson Harper  <jackson@ximian.com>
10192
10193         * TreeView.cs: Display the selection box under the correct
10194         circumstances. We were rendering white text with no selection box
10195         before.
10196
10197 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
10198
10199         * TextControl.cs(Split): Now updates selection start/end if it points 
10200           into a line that's being split. Fixes a FIXME and bug #75258
10201
10202 2005-09-23  Jackson Harper  <jackson@ximian.com>
10203
10204         * Binding.cs:
10205         * ListControl.cs: Don't use the path when retrieving binding
10206         managers from the binding context. My bat sense tells me that the
10207         path is only used on insertion.
10208
10209 2005-09-22  Jackson Harper  <jackson@ximian.com>
10210
10211         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
10212
10213 2005-09-22  Jackson Harper  <jackson@ximian.com>
10214
10215         * Splitter.cs: There are special cursors used for splitting.
10216         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
10217
10218 2005-09-22  Jackson Harper  <jackson@ximian.com>
10219
10220         * Splitter.cs: Change the cursor appropriately when the splitter
10221         is moused over, so the user actually knows there is a splitter
10222         there.
10223
10224 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10225
10226        * Label.cs : Fix ToString method to give same output as MS.NET
10227
10228 2005-09-22  Jackson Harper  <jackson@ximian.com>
10229
10230         * TreeView.cs: Create the scrollbars when the handle is created
10231         and add them right away, just make them invisble. Also account for
10232         the window being shrunk vertically to the point that the vert
10233         scrollbar needs to be added.
10234         - Remove some 0.5 adjustments to get around anti aliasing issues.
10235         
10236 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
10237          
10238         * MainMenu.cs: Fixes default value
10239         * MenuItem.cs: Fixes default value
10240
10241 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
10242
10243         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
10244
10245 2005-09-21  Jackson Harper  <jackson@ximian.com>
10246
10247         * Control.cs: Don't try to set the border style on the window if
10248         it hasn't been created. When the window is created the border
10249         style will be used.
10250
10251 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10252
10253         * Control.cs (Update): Don't call XplatUI if we don't have a
10254           window handle yet
10255
10256 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10257
10258         * ContainerControl.cs: Instead of throwing an exception, print
10259           a one-time warning about Validate not being implemented
10260         * XplatUIWin32.cs: Removed debug output
10261
10262 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10263
10264         * Control.cs: Only set XplatUI background if we expect the windowing
10265           system to handle the background. This stops controls that draw their
10266           own background from flickering
10267
10268         * XplatUIX11.cs: Support custom visuals and colormaps for window 
10269           creation. This allows, amongst other things, using MWF X11 windows 
10270           with OpenGL.
10271
10272 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10273
10274         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
10275           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
10276           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
10277           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
10278           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
10279           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
10280           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
10281           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
10282           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
10283           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
10284           GridColumnStylesCollection.cs, 
10285           IDataGridColumnStyleEditingNotificationService.cs,
10286           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
10287           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
10288           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
10289           TreeNodeCollection.cs, AmbientProperties.cs, 
10290           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
10291           DataObject.cs, ErrorProvider.cs, Splitter.cs,
10292           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
10293           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
10294           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
10295           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
10296           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
10297           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
10298           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
10299           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
10300           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
10301           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
10302           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
10303           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
10304           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
10305           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
10306           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
10307           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
10308           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
10309           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
10310           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
10311           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
10312           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
10313           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
10314           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
10315           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
10316           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
10317           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
10318           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
10319           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
10320           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
10321           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
10322           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
10323           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
10324           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
10325           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
10326           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
10327
10328 2005-09-21  Jackson Harper  <jackson@ximian.com>
10329
10330         * TreeNode.cs: Call Before/After Expand not Collapse when
10331         expanding.
10332
10333 2005-09-20  Jackson Harper  <jackson@ximian.com>
10334         
10335         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
10336
10337 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10338          
10339         * ListViewItem.cs:
10340                 - Fixes bug 76120
10341                 - Fixes proper storing of subitems
10342                 - Fixes not updated items
10343
10344 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
10345
10346         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
10347           things if our window handle isn't created yet. Also disabled 
10348           debug for TextBoxBase
10349
10350 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
10351
10352         * MenuAPI.cs: Remove filtering of events to allow menu usage
10353
10354 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10355
10356         * Cursor.cs: Allow null to be passed to Cursor.Current.
10357
10358 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
10359
10360         * ThemeWin32Classic.cs:
10361           - Change some private methods/fields to protected virtual so that 
10362             they can be accessed and overriden in derived classes
10363           - First refactoring of some methods. Derived themes now don't 
10364             need to duplicate the complete code from ThemeWin32Classic
10365         * ThemeNice.cs:
10366           - Added nice StatusBar
10367           - Derive from ThemeWin32Classic and not Theme
10368           - Removed duplicate ThemeWin32Classic code
10369
10370 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10371
10372         * Control.cs (ControlCollection.Add): If the value null is passed
10373         the control is ignored. 
10374
10375         Optimize this loop.
10376
10377 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
10378
10379         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
10380           PostQuitMessage state.
10381         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
10382
10383 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
10384
10385         * Application.cs: Our constructor will never get called, move 
10386           initialization to fields; fixes bug #75933
10387
10388 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10389
10390         * FileDialog.cs :
10391                 - Allow files to be selected properly using file name
10392                 combo box.
10393                 - Add ability to change diretory (absolute / relative)
10394                 using file name combo box.
10395
10396 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10397          
10398         * ListBox.cs: 
10399                 - Fixes Multicolumn listboxes item wrong calculations
10400                 - Allows to click when only one item is in the listbox
10401                 - Fixes crash when no items using keyboard navigation
10402
10403 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
10404
10405         * ComboBox.cs: Reverted almost everything from the latest patch which
10406           broke ComboBox
10407
10408 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
10409         
10410         * ToolTip.cs:
10411                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
10412         * ComboBox.cs:
10413                 - When DropDownStyle is Simple, it does not show scrollbar 
10414                 to the last item of the list.
10415                 - When DropDownStyle is Simple, it crashed when the list was 
10416                 scrolled down with the down cursor key.
10417                 - Fixed a bug that when DropDownStyle is DropDownList, the 
10418                 selected item was not shown.
10419                 - The position of the selected item was not preserved when 
10420                 the next dropdown happened.
10421         * ThemeWin32Classic.cs:
10422                 - Items were wrapped at the right end.
10423         * CheckedListBox.cs:
10424                 - Fixed Add method
10425         * ListBox.cs:
10426                 - Items should be fully shown.
10427                 - When resizing and vertical scrollbar disappeared, the item 
10428                 of index 0 should be on the top of the list.
10429                 - GetItemRectangle should consider the size of ver. scrollbar
10430         * StatusBar.cs:
10431                 - SizingGrip area should not be allocated when it is not 
10432                 displayed.
10433                 - Now it reflects MinWidth of the containing panel and 
10434                 fixed a crash that happens when its width becomes so small.
10435
10436 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10437
10438         * CheckedListBox.cs: Fixes bug 76028
10439         * ListBox.cs: Fixes bug 76028
10440
10441 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10442
10443         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
10444         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
10445
10446 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
10447
10448         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
10449
10450 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10451
10452         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
10453
10454 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10455
10456         * IRootGridEntry.cs: Added
10457         * PropertyGridCommands.cs: Added
10458         * PropertiesTab.cs: Added missing methods and property
10459         * PropertyGridView.cs: Made class internal
10460         * PropertyGridTextBox.cs: Made class internal
10461
10462 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10463
10464         * MimeIcon.cs: Try to check some other environment variables
10465           if "DESKTOP_SESSION" returns "default"
10466
10467 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10468
10469         * ThemeNice.cs: Corrected background colors (e.g. menus)
10470         * ColorDialog.cs: Use correct background colors for controls
10471
10472 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10473
10474         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
10475
10476 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
10477
10478         * RichTextBox.cs: Added initial implementation
10479         * lang.cs: Removed. Was accidentally checked in long time ago
10480         * TODO: Removed. Contents were obsolete
10481
10482 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10483                                                                                 
10484         * PropertiesTab.cs : Added
10485
10486 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10487                                                                                 
10488         * PropertyGrid.cs : Update
10489         * PropertyGridView.cs : Update
10490         * System.Windows.Forms.resx : Added images and strings
10491
10492 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
10493
10494         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
10495  
10496 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
10497
10498         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
10499           a busy loop right after the Ungrab the X11 display is otherwise 
10500           blocked
10501
10502 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
10503
10504         * ThemeWin32Classic.cs: Optimise the use of clipping
10505
10506 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
10507
10508         * DataGrid.cs: fixes recursion bug
10509
10510 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
10511
10512         * ThemeNice.cs: 
10513           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
10514           - Cleanup
10515
10516 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
10517
10518         * ThemeNice.cs: Draw nice ProgressBars
10519
10520 2005-09-01  Miguel de Icaza  <miguel@novell.com>
10521
10522         * VScrollBar.cs: Another buglet found by Aaron's tool. 
10523
10524         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
10525         bug finder.
10526
10527 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
10528
10529         * ThemeNice.cs:
10530           - Added nicer menu drawing
10531           - Updated DrawTab
10532           - some refactoring
10533
10534 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10535
10536         * CreateParams.cs (ToString): Made output match MS
10537         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
10538             handle is already created (to avoid forcing window creation)
10539         * XplatUIX11.cs: Set window text to caption after creating window,
10540           in case Text was set before window was created
10541         * Form.cs: Use this.Text instead of a static string as caption
10542
10543 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10544
10545         * NotifyIcon.cs: Don't set the window to visible; this screws
10546           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
10547           OnPaint without a bitmap)
10548         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
10549           happen very often anyway; we could add the check to the WM_PAINT 
10550           event generation code
10551
10552 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10553
10554         * NotifyIcon.cs: Fill the icon area with a background color, to 
10555           avoid 'residue' when transparent icons are drawn
10556         * XplatUIX11.cs:
10557           - Handle whole_window == client_window when destroying windows
10558           - SystrayAdd(): Set client_window to whole_window value to
10559             get mouse and other events passed to NotifyIcon
10560
10561 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10562
10563         * Form.cs: Set proper default for Opacity property
10564         * NotifyIcon.cs:
10565           - ShowSystray(): Don't bother creating telling the OS
10566             about the systray item if no icon is provided
10567           - Now handles WM_NCPAINT message to deal with whole/client window
10568             split
10569           - Create window as visible to not get caught by Expose optimization
10570         * Hwnd.cs: Removed debug message
10571         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
10572           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
10573             PaintEventStart/End to use new client argument
10574         * TextBoxBase.cs:
10575           - Commented out debug messages
10576           - Switched PaintEventStart/End to use new client argument
10577         * XplatUI.cs: Added client window bool to PaintEventStart()/
10578           PaintEventEnd() calls, to support drawing in non-client areas
10579         * XplatUIDriver.cs: 
10580           - Added client window bool to PaintEventStart()/PaintEventEnd() 
10581             calls, to support drawing in non-client areas
10582           - Added conditional compile to allow using MWF BeginInvoke 
10583             on MS runtime
10584         * XplatUIX11.cs:
10585           - Added some conditional debug output
10586           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
10587             whole/client window split
10588           - Implemented handling of client argument to PaintEventStart()/End()
10589         * Control.cs:
10590           - Throw exception if BeginInvoke() is called and the window handle
10591             or one of the window's parent handles is not created
10592           - Added conditional compile to allow using MWF BeginInvoke on
10593             MS runtime
10594           - get_Parent(): Only sets parent if handle is created. This avoids
10595             forcing window handle creation when parent is set.
10596           - Now fires Layout and Parent changed events in proper order
10597           - Switched to use Handle instead of window.Handle for Z-Order setting,
10598             the get_Parent() patch above causes us to possibly get null for 'window'
10599           - Implemented handling of client argument to PaintEventStart()/End()
10600           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
10601             default handling)
10602           - Now sends a Refresh() to all child windows when Refresh() is called
10603
10604 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10605
10606         * Form.cs: Added (non-functional) Opacity property
10607         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
10608
10609 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
10610         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
10611           use export MONO_THEME=nice to activate it.
10612           Currently supported controls:
10613           - Button
10614           - ComboBox
10615           - ScrollBar
10616           - TabControl (TabAlignment.Top only, other will follow)
10617         * ThemeEngine.cs: Add theme nice
10618         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
10619           if enabled
10620
10621 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
10622
10623         * Splitter.cs: Resize docked control and its neighbor.
10624
10625 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10626         -- Making Windows with Menus layout correctly --
10627         * Form.cs : The first leg of the fix
10628                 Menu setter - adjust Client Size as needed to make space for the menu
10629                 SetClientSizeCore - doesn't call base version to be able to pass the 
10630                         menu handle to XplatUI.CalculateWindowRect
10631         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
10632         * XplatUIX11.cs: The critical second leg of the fix
10633                 GetWindowPos needs to use a recalculated client_rect
10634                 so that resizing the window doesn't break layout of child controls. 
10635                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
10636                 Lots of \t\n killed
10637
10638 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10639
10640         * Label.cs: Now properly recalculates width and height on Font and Text
10641           changes if AutoSize is set
10642
10643 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10644         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
10645
10646 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
10647
10648         * ImageList.cs: Makes ToString method compatible with MS
10649
10650 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
10651
10652         * MenuAPI.cs: fixes bug 75716
10653
10654 2005-08-11 Umadevi S <sumadevi@novell.com>
10655         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
10656
10657 2005-08-11 Umadevi S <sumadevi@novell.com>
10658         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
10659
10660 2005-08-10  Umadevi S <sumadevi@novell.com>
10661         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
10662
10663 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
10664
10665         * Menu.cs: fixes bug 75700
10666         * MenuAPI.cs: fixes navigation issues
10667
10668 2005-08-09  Umadevi S <sumadevi@novell.com>
10669         * CheckedListBox.cs - simple fix for GetItemChecked.
10670
10671 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
10672
10673         * ComboBox.cs: Serveral fixes
10674         * ListBox.cs: Serveral fixes
10675
10676 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10677
10678         * ComboBox.cs: Fixes FindString methods and GetItemHeight
10679         * ListBox.cs: Fixes FindString methods
10680
10681 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10682
10683         * DataGrid.cs: fixes bugs exposed by new tests
10684
10685 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
10686
10687         * Mime.cs: Compile Mono assembly references only if compiling
10688           with Mono (Allows to build with VS.Net again)
10689
10690 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
10691
10692         * Control.cs (PaintControlBackground): Draw background image
10693         corrrectly.
10694         (CheckForIllegalCrossThreadCalls): Stubbed.
10695         
10696         * Form.cs (OnCreateControl): Center when should be centered.
10697         
10698         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
10699
10700 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
10701
10702         * Binding.cs: Binding to properties should be case unsensitive
10703
10704 2005-07-18 vlindos@nucleusys.com
10705
10706         * DataGrid.cs: fixes setmember order
10707
10708 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
10709
10710         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
10711         * FileDialog.cs: FileDialog is now resizable and uses the new
10712           MimeIconEngine
10713
10714 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
10715
10716         * DataGridTextBoxColumn.cs: default value
10717         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
10718         * GridTableStylesCollection.cs: fixes checking MappingName
10719         * DataGridDrawingLogic.cs: fixes drawing logic issues
10720         * DataSourceHelper.cs: rewritten to make compatible with more data sources
10721         * DataGrid.cs: fixes    
10722
10723 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
10724
10725         * MimeGenerated.cs: Use case sensitive comparer for
10726           NameValueCollections
10727
10728 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
10729
10730         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
10731         * ThemeWin32Classic.cs: bug fixes, code refactoring
10732         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
10733         * DataGrid.cs: bug fixes, code refactoring
10734         * DataGridTextBox.cs: bug fixes, code refactoring
10735         * DataGridColumnStyle.cs:  bug fixes, code refactoring
10736         * Theme.cs:  bug fixes, code refactoring
10737
10738 2005-07-01  Peter Bartok  <pbartok@novell.com> 
10739
10740         * TextControl.cs: Quick fix for the reported crash on ColorDialog
10741           and other text box usage
10742
10743 2005-07-01  Jackson Harper  <jackson@ximian.com>
10744
10745         * TabControl.cs: Make sure the bottom of the tab covers the pages
10746         border.
10747
10748 2005-06-30  Peter Bartok  <pbartok@novell.com> 
10749
10750         * Form.cs (ShowDialog): Assign owner of the dialog
10751         * TextBoxBase.cs: Always refresh caret size when deleting, caret
10752           might have been moved to a tag with different height
10753
10754 2005-06-30  Jackson Harper  <jackson@ximian.com>
10755
10756         * Form.cs: Don't create an infinite loop when setting focus
10757         * MenuItem.cs: Don't dirty the parents if we don't have any
10758
10759 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
10760
10761         * LibSupport.cs: Rename
10762
10763 2005-06-29  Peter Bartok  <pbartok@novell.com>
10764
10765         * TextBoxBase.cs: Re-align caret after deleting a character
10766         * TextControl.cs:
10767           - DeleteChars(): Ensure that tag covers the provided position
10768           - StreamLine(): Drop reference for dropped tag
10769
10770 2005-06-29  Peter Bartok  <pbartok@novell.com> 
10771
10772         * TextControl.cs: 
10773           - Selections now work properly, anchoring at the initial location
10774             and properly extending in either direction (SetSelectionToCaret(),
10775             SetSelectionStart() and SetSelectionEnd())
10776           - No longer redraws the whole control on selection change, now
10777             calculates delta between previous and new selection and only
10778             invalidates/redraws that area
10779           - Fixed FindPos() math off-by-one errors
10780           - Changed DeleteChars() to verify the provided tag covers the
10781             provided position, selections may have a tag that doesn't cover
10782             the position if the selection is at a tag border
10783           - Fixed off-by-one errors in DeleteChars()
10784           - Added missing streamlining check in DeleteChars() to remove
10785             zero-length tags
10786           - Implemented Invalidate() method, now properly calculates exposures
10787             between two given lines/positions
10788           - Implemented SetSelection()
10789           - Obsoleted and removed FixupSelection()
10790           - Improved RecalculateDocument() logic, removing code duplication
10791
10792 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10793
10794         * LibSupport.cs: changes to match different input/output arguments.
10795
10796 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10797
10798         * LibSupport.cs: added libsupport.so init routine.
10799
10800 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
10801         
10802         * ControlBindingsCollection.cs
10803                 - Throws an exception on null datasource when adding
10804                 - Checks for duplicated bindings when adding
10805
10806 2005-06-28  Jackson Harper  <jackson@ximian.com>
10807
10808         * TreeView.cs (OnKeyDown): Support left and right properly
10809         (navigates as well as expanding and collapsing.
10810         - Add support for Multiply, this expands all the selected nodes
10811         children.
10812         - Fix some tabbing.
10813
10814 2005-06-28  Jackson Harper  <jackson@ximian.com>
10815
10816         * TreeView.cs: Implement keyboard navigation, currently supports,
10817         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
10818         support for toggling checkboxes with the space bar.
10819
10820 2005-06-28  Jackson Harper  <jackson@ximian.com>
10821
10822         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
10823         tree.
10824
10825 2005-06-28  Jackson Harper  <jackson@ximian.com>
10826
10827         * TreeView.cs: Add missing event.
10828
10829 2005-06-27  Peter Bartok  <pbartok@novell.com> 
10830
10831         * TextControl.cs:
10832           - Made line ending size configurable (now allows for counting 
10833             lineendings as \n or \r\n)
10834           - Added margin to viewport to keep caret visible on right side
10835           - Fixed translation routines for line/pos to documentpos to consider
10836             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
10837           - Fixed some line-endings to be unix style
10838           - Fixed Document.FormatText to perform it's calculations 1-based
10839           - Added descriptions for a few methods that might otherwise get 
10840             used wrong
10841           - Added NOTE section with some basic conventions to remember at 
10842             the top of the file
10843           - Major fixup for RichTextBox selection drawing:
10844             * Fixed crashes when multiple tags on a single line were selected
10845             * fixed selection box drawing not overlaying text
10846             * fixed bogus offset calculation for tags not starting at index 1
10847             * Switched behaviour from using multiple Substrings of a 
10848               StringBuilder.ToString() to using multiple 
10849               StringBuilder.ToString(start, length) statements, hoping this is
10850               faster (kept original version commented out in the code, in case
10851               original version was faster)
10852         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
10853           alignment != Left
10854         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
10855           call it as well
10856
10857 2005-06-27  Jackson Harper  <jackson@ximian.com>
10858
10859         * TabControl.cs: Move to the left and right with the arrow
10860         keys. These keys don't cycle beyond first and last like
10861         tab. Refresh all the tabs when scrolling them to the left or
10862         right.
10863
10864 2005-06-27  Jackson Harper  <jackson@ximian.com>
10865
10866         * TabControl.cs:
10867           - ToString: Added method
10868           - CreateParams: Remove TODO and comment
10869           - OnKeyDown: Cycle through bounds properly.
10870           - SelectedIndex: Scroll to the right or left if we need to
10871           display the newly selected tab.
10872
10873 2005-06-23  Jackson Harper  <jackson@ximian.com>
10874
10875         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
10876         set.
10877
10878 2005-06-23  Jackson Harper  <jackson@ximian.com>
10879
10880         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
10881         CTRL-SHIFT-TAB, and HOME, END are there any others?
10882
10883 2005-06-23  Jackson Harper  <jackson@ximian.com>
10884
10885         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
10886
10887 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
10888         
10889         * DataGridTextBoxColumn.cs: fixes and enhancements
10890         * ThemeWin32Classic.cs: fixes and enhancements
10891         * DataGridBoolColumn.cs:  fixes and enhancements
10892         * DataGridDrawingLogic.cs:  fixes and enhancements
10893         * CurrencyManager.cs: fixes and enhancements
10894         * DataGrid.cs: fixes and enhancements
10895         * DataGridColumnStyle.cs:  fixes and enhancements
10896
10897 2005-06-22  Jackson Harper  <jackson@ximian.com>
10898
10899         * TabControl.cs: Add some missing methods that just call into the
10900         base. Make the TabPageCollection's IList interface behave in the
10901         same manner as the MS implementation.
10902
10903 2005-06-22  Peter Bartok  <pbartok@novell.com> 
10904
10905         * TextControl.cs: Added sanity check
10906         * TextBoxBase.cs: 
10907           - Fixed wrapping behaviour, don't set wrap on single line controls
10908             (this fixes the breakage of colordialog introduced in an earlier
10909              checkin)
10910           - Added rudimentary support for autoscrolling right-aligned controls
10911             (still needs fixing, also, center alignment scroll is missing)
10912
10913 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
10914         
10915         * ScrollBar.cs: Fixes thumbpos on Maximum values
10916
10917 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
10918         
10919         * PropertyGridView.cs: Pass context information to UITypeEditors 
10920
10921 2005-06-21  Peter Bartok  <pbartok@novell.com> 
10922
10923         * TextBoxBase.cs:
10924           - Now calling PositionCaret with absolute space coordinates
10925           - Enabled vertical scrolling
10926           - Better tracking of scrollbar changes, tied into WidthChange
10927             event
10928           - Improved cursor tracking
10929           - Removed debug output
10930         * TextControl.cs:
10931           - PositionCaret coordinates are now works in absolute space, not 
10932             the canvas
10933           - Improved tracking of document size
10934           - Added events for width and height changes
10935
10936 2005-06-21  Peter Bartok  <pbartok@novell.com>
10937
10938         * Form.cs: Set focus to active control when form is activated
10939         * TextControl.cs: 
10940           - Added word-wrap functionality to RecalculateLine() 
10941           - Added some short function descriptions for VS.Net to aid in
10942             writing dependent controls
10943           - Added Caret property, returning the current coords of the caret
10944           - Added ViewPortWidth and ViewPortHeight properties
10945           - Added Wrap property
10946           - Added CaretMoved event
10947           - Removed some old debug code
10948           - Split() can now create soft splits
10949           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
10950           - Added method to format existing text
10951           - Fixed size/alignment calculations to use viewport
10952           - RecalculateDocument now can handle changing line-numbers while
10953             calculating lines
10954
10955         * TextBox.cs:
10956           - Added some wrap logic, we don't wrap if alignment is not left
10957           - Added casts for scrollbar var, base class switched types to
10958             also support RichTextBoxA
10959           - Implemented handling of scrollbar visibility flags
10960
10961         * TextBoxBase.cs:
10962           - Switched scrollbars type to RichTextBoxScrollBars to support
10963             RichTextBox
10964           - Added tracking of canvas width/height
10965           - Switched scrollbars to be not selectable (to keep focus on text)
10966           - Added central CalculateDocument() method to handle all redraw
10967             requirements
10968           - Added ReadOnly support
10969           - Added WordWrap support
10970           - Fixed handling of Enter key (we now treat it as a DialogKey)
10971           - Fixed caret positioning when h or v scroll is not zero
10972           - Fixed placing/generation of vertical scrollbar
10973           - Added CalculateScrollBars() method to allow updating scrollbar
10974             limits and visibility
10975           - Fixed handling of horizontal scroll
10976           - Added handling of vertical scroll
10977           - Implemented auto-'jump' when caret moves to close to a left or
10978             right border and there is text to be scrolled into view (currently
10979             there's the potential for a stack overflow, until a bug in
10980             scrollbar is fixed)
10981
10982 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
10983         
10984         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
10985
10986 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
10987
10988         * Mime.cs:
10989         - added inodes.
10990         - return application/x-zerosize for files with size zero
10991           (if no extension pattern matches).
10992         - check matches collection for strings too.
10993         - return only the first mime type if the name value
10994           collection has more than one mime type.
10995
10996 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
10997         
10998         * PropertyGrid.cs: Cleaned up some TODOs
10999         * PropertyGridView.cs: Added support for UITypeEditors
11000
11001 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11002         
11003         * DataGrid.cs: clears cached value
11004
11005 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11006
11007         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
11008         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
11009         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
11010         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
11011         
11012 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
11013
11014         * ThemeWin32Classic.cs: fixes colour
11015
11016 2005-06-15  Peter Bartok  <pbartok@novell.com>
11017
11018         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
11019         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
11020         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
11021         * Control.cs: Added some MWFCategory and MWFDescription attributes
11022         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
11023
11024 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
11025
11026         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
11027         usage
11028
11029 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
11030
11031         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
11032         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
11033         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
11034         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
11035         * DataGrid.cs: default datagrid settings for Default Styles, fixes
11036         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
11037
11038 2005-06-13  Jackson Harper  <jackson@ximian.com>
11039
11040         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
11041         isn't printed when the user enables dropping. (X11 does accept
11042         drops).
11043         
11044 2005-06-13  Jackson Harper  <jackson@ximian.com>
11045
11046         * TreeView.cs: Remove some TODOS.
11047
11048 2005-06-13  Jackson Harper  <jackson@ximian.com>
11049
11050         * Form.cs: Hook into the mdi framework.
11051         * MdiClient.cs: Use the base control collections add method so
11052         parents get setup correctly. Set the default back colour and dock
11053         style.
11054         * MdiChildContext.cs: New class, this bad actor handles an
11055         instance of an MDI window. Right now there is only basic
11056         support. You can drag, close, and resize windows. Minimize and
11057         Maximize are partially implemented.
11058
11059 2005-06-13  Jackson Harper  <jackson@ximian.com>
11060
11061         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
11062         freaky when both vals are negative. NOTE: There are probably other
11063         places in XplatUIX11 that this needs to be done.
11064
11065 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
11066
11067         * DataGrid.cs: implement missing methods, move KeyboardNavigation
11068         * DataGridColumnStyle.cs: fixes signature
11069
11070 2005-06-12  Jackson Harper  <jackson@ximian.com>
11071
11072         * XplatUIX11.cs: Use sizing cursors similar to the ones on
11073         windows.
11074
11075 2005-06-11  Jackson Harper  <jackson@ximian.com>
11076
11077         * StatusBarPanel.cs: Signature cleanups. Implement
11078         BeginInit/EndInit.
11079
11080 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
11081
11082         * DataGridTextBoxColumn.cs: Honors aligment
11083         * GridColumnStylesCollection.cs: Contains is case unsensitive
11084         * GridTableStylesCollection.cs: several fixes
11085         * DataGridTableStyle.cs: default column creation
11086         * DataGridDrawingLogic.cs: fixes
11087         * CurrencyManager.cs: ListName property
11088         * DataGrid.cs: multiple styles support
11089         * DataGridColumnStyle.cs: fixes
11090         
11091
11092 2005-06-10  Peter Bartok  <pbartok@novell.com>
11093
11094         * Control.cs(Select): Moved SetFocus call to avoid potential
11095           loops if controls change the active control when getting focus
11096         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
11097           the up/down buttons
11098
11099 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
11100
11101         * ImageListConverter.cs: Implemented
11102
11103 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11104
11105         * MonthCalendar.cs: Wired in NumericUpDown control for year
11106
11107 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11108
11109         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
11110           DoubleClick events, since they are not meant to be fired.
11111
11112 2005-06-09  Peter Bartok  <pbartok@novell.com>
11113
11114         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
11115           Jonathan's standalone controls into MWF, implemented missing
11116           events, attributes and methods; added xxxAccessible classes
11117         * AccessibleObject.cs: Made fields internal so other classes
11118           can change them if needed
11119
11120 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
11121
11122         * UpDownBase.cs: Complete implementation
11123         * NumericUpDown.cs: Complete implementation
11124         * DomainUpDown.cs: Complete implementation
11125
11126 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
11127
11128         * DataGridTextBoxColumn.cs: drawing fixes
11129         * DataGridCell.cs: fixes ToString method to match MSNet
11130         * DataGridTableStyle.cs: fixes
11131         * DataGridBoolColumn.cs: fixes, drawing
11132         * DataGridDrawingLogic.cs: fixes, new methods
11133         * DataGridTextBox.cs: Keyboard and fixes
11134         * DataGrid.cs:
11135                 - Keyboard navigation
11136                 - Scrolling fixes
11137                 - Row selection (single, multiple, deletion, etc)
11138                 - Lots of fixes
11139         
11140 2005-06-07  Jackson Harper  <jackson@ximian.com>
11141
11142         * ThemeWin32Classic.cs: Clear the background area when drawing
11143         buttons.
11144
11145 2005-06-06  Peter Bartok  <pbartok@novell.com>
11146
11147         * ImageListStreamer.cs: Fixed signature for GetData
11148         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
11149         * ComboBox.cs:
11150           - Added missing ChildAccessibleObject class
11151           - Added missing OnXXXFocus overrides, switched to using those
11152             instead of the event handler
11153         * Control.cs:
11154           - Added Parent property for ControlAccessibleObject
11155           - Fixed signatures
11156           - Fixed attributes
11157           - Added ResetBindings()
11158         * ListBindingConverter.cs: Implemented some methods
11159         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
11160         * ImageList.cs: Implemented basic handle scheme, removed TODOs
11161         * ContainerControl.cs: Fixed signature, now subscribing to the
11162           ControlRemoved event instead of overriding the handler, LAMESPEC
11163         * CurrencyManager.cs: Added missing attribute
11164         * MonthCalendar.cs: Added missing properties
11165
11166 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11167
11168         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
11169         
11170 2005-06-06  Gaurav Vaish and Ankit Jain
11171
11172         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
11173         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
11174         
11175 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11176
11177         * Control.cs: fixes CreateParams Width / Height.
11178
11179 2005-06-05  Peter Bartok  <pbartok@novell.com>
11180
11181         * Win32DnD.cs: Removed compilation warnings
11182
11183 2005-06-05  Peter Bartok  <pbartok@novell.com>
11184
11185         * Control.cs (CreateParams): Since we don't know if one of the
11186           properties we use is overridden, lets make sure if we fail accessing
11187           we continue with a backup plan
11188
11189 2005-06-05  Peter Bartok  <pbartok@novell.com>
11190
11191         * Win32DnD.cs:
11192           - Removed debug output
11193           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
11194             struct
11195           - Plugged resource leak
11196         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
11197           MS size
11198
11199 2005-06-05  Peter Bartok  <pbartok@novell.com>
11200
11201         * XplatUIWin32.cs: Removed DnD code
11202         * Win32DnD.cs: Implemented drop source and drop target functionality
11203
11204 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11205
11206         * UpDownBase.cs: remove duplicate addition of event, enable some code
11207         that was commented out.
11208         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
11209         Validate input when a key is pressed. It works fine now for every
11210         combination of Hexadecimal. Only missing some drawing love when sharing
11211         space with other controls.
11212
11213 2005-06-04  Peter Bartok  <pbartok@novell.com>
11214
11215         * Control.cs:
11216           - We need to pass a window for DragDrop, so enable callback events
11217           - Added DnD callback events when being a DragSource
11218         * XplatUI.cs (StartDrag): Added window handle argument
11219         * XplatUIDriver.cs (StartDrag): Added window handle argument
11220         * QueryContinueDragEventArgs: Made fields internally accessible so
11221           drivers can set them
11222         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
11223           can set them
11224
11225 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
11226
11227         * DataGridTextBoxColumn.cs: column text editing
11228         * DataGridTableStyle.cs: Respect columns styles created by the user
11229         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
11230         * DataGridBoolColumn.cs: bool column editing
11231         * DataGrid.cs: fixes to scrolling, properties, etc
11232         * DataGridTextBox.cs: handle keyboard
11233         * DataGridColumnStyle.cs: fixes
11234
11235 2005-06-02  Jackson Harper  <jackson@ximian.com>
11236
11237         * ImageListStreamer.cs: Somewhat broken implementation of
11238         GetObjectData. The RLE needs some work to match MS properly.
11239
11240 2005-06-02  Jackson Harper  <jackson@ximian.com>
11241
11242         * X11Dnd.cs: Attempting to keep at least one file in MWF
11243         monostyled.
11244
11245 2005-06-02  Peter Bartok  <pbartok@novell.com>
11246
11247         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
11248           that way
11249
11250 2005-06-02  Peter Bartok  <pbartok@novell.com>
11251
11252         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
11253         * XplatUI.cs: Added DoDragDrop() method
11254         * XplatUIDriver.cs: Added DoDragDrop() method
11255
11256 2005-06-02  Jackson Harper  <jackson@ximian.com>
11257
11258         * Splitter.cs: Implement BorderStyle.
11259
11260 2005-06-02  Jackson Harper  <jackson@ximian.com>
11261
11262         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
11263         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
11264         X11 using XDND.
11265
11266 2005-06-02  Peter Bartok  <pbartok@novell.com>
11267
11268         * DataObject.cs:
11269           - Added Data setter
11270           - Fixed broken insertion code for SetData, now also
11271             overwrites any existing entry of the same format name
11272         * Hwnd.cs: Added list of pointers that automatically gets
11273           freed when the window is disposed
11274         * XplatUI.cs: Call driver initialization method when loading
11275           a driver
11276         * Control.cs:
11277           - OnDragLeave takes EventArgs, not DragEventArgs
11278           - Added setting of WS_EX_ACCEPTFILES style when dropping is
11279             supported
11280           - Forces style update when drop state changes
11281         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
11282           not perfect since we cannot (yet) call the IDataObject.GetData()
11283           method, we keep getting 0x80004005 error, dunno why)
11284
11285 2005-06-02  Peter Bartok  <pbartok@novell.com>
11286
11287         * DragEventArgs.cs: Make fields internal so we can cache the
11288           object and re-set the fields from XplatUI
11289
11290 2005-06-02  Jackson Harper  <jackson@ximian.com>
11291
11292         * Control.cs: Add some internal methods so the DnD subsystem can
11293         raise DnD events. Also call into the driver when AllowDrop is set.
11294         * XplatUI.cs:
11295         * XplatUIDriver.cs: New method for setting whether or not a window
11296         is allowed to accept drag and drop messages.
11297                 
11298 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
11299         
11300         * ScrollBar.cs: Make sure that values sent in Scroll events
11301         are always between Maximum and Minimum.
11302
11303 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
11304
11305         * Menu.cs: Call MenuChanged when menuitem visibility has been
11306         changed.
11307         * MenuItem.cs: Rebuild menu when item is (not) visible.
11308         * MainMenu.cs: MainMenu has special MenuChanged.
11309         * Theme.cs: Caption and FrameBorderSize are not fixed.
11310         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
11311         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
11312         * XplatUIX11.cs,
11313         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
11314         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
11315
11316 2005-05-30  Jackson Harper  <jackson@ximian.com>
11317
11318         * DataFormat.cs: We can't statically initialize this stuff because
11319         it calls into the xplatui and could create a loop. So we lazy init
11320         it.
11321
11322 2005-05-28  Jackson Harper  <jackson@ximian.com>
11323
11324         * Control.cs: Proper implementation of Product(Name/Version).
11325
11326 2005-05-27  Jackson Harper  <jackson@ximian.com>
11327
11328         * DataObject.cs: Dont crash if no data is found.
11329
11330 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
11331         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
11332                 as per status page, guessing it should be set to true
11333
11334 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
11335
11336         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
11337         * DataGridTableStyle.cs: set proper formatting text, def header text
11338         * ThemeWin32Classic.cs: new themable paramaters
11339         * DataGridBoolColumn.cs: paint check box, get data, fixes
11340         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
11341         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
11342         * DataGridColumnStyle.cs: fixes
11343         * Theme.cs: new themable paramaters
11344                 
11345 2005-05-26  Peter Bartok  <pbartok@novell.com>
11346
11347         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
11348
11349 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11350         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
11351
11352 2005-05-24  Peter Bartok  <pbartok@novell.com>
11353
11354         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
11355           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
11356           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
11357           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
11358           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
11359           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
11360           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
11361           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
11362           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
11363           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
11364           missing attributes, etc
11365         * DataGridPreferredColumnWidthTypeConverter.cs: Added
11366
11367 2005-05-24  Peter Bartok  <pbartok@novell.com>
11368
11369         * Help.cs: Added, implemented trivial functions, throws up MessageBox
11370           when user tries to get help
11371         * DataObject.cs, DataFormats.cs, LinkArea.cs,
11372           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
11373           to suppress warnings
11374         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
11375           avoid unreachable code warning
11376
11377 2005-05-20  Peter Bartok  <pbartok@novell.com>
11378
11379         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
11380
11381 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11382
11383         * DataGridTextBoxColumn.cs: Basic painting methods
11384         * DataGridTableStyle.cs: Set table style in the column
11385         * ThemeWin32Classic.cs: Use Theme for colors
11386         * DataGridDrawingLogic.cs: Implement more drawing
11387         * DataGrid.cs: drawing, theming, enhacements, fixes
11388         * DataGridColumnStyle.cs: fixes, drawing
11389         * Theme.cs: theming for Datagrid
11390
11391 2005-05-20  Peter Bartok  <pbartok@novell.com>
11392
11393         * Cursor.cs: Implemented GetObjectData() method
11394
11395 2005-05-20  Peter Bartok  <pbartok@novell.com>
11396
11397         * Cursors.cs: Added setting of cursor name
11398         * Cursor.cs:
11399           - Implemented constructors
11400           - Implemented Draw and DrawStretched
11401           - Implemented Current property
11402           - Implemented == and != operators
11403           - Implemented Dispose()
11404           - Implemented ToString
11405           - Added missing attributes
11406         * XplatUIX11.cs:
11407           - Added missing reset for OverrideCursor when DoEvents is called
11408           - Fixed creation of cursor, logic was wrong
11409         * XplatUIWin32.cs:
11410           - Added missing reset for OverrideCursor when DoEvents is called
11411           - Fixed creation of cursor, bit arrays were swapped
11412         * Clipboard.cs: Removed obsolete MonoTODO attribute
11413
11414 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11415
11416         * ComboBox.cs: fixes OnSelectedItemChanged
11417         * ControlBindingsCollection.cs: fixes item range check
11418
11419 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11420
11421         * UpDownBase.cs:
11422                 - Calc preferred height properly
11423                 - Implement missing properties
11424                 
11425         * NumericUpDown.cs: Implement missing events
11426
11427 2005-05-19  Jackson Harper  <jackson@ximian.com>
11428
11429         * TabControl.cs: New method that resizes the tab pages before
11430         redrawing them. This as needed as the control is double buffered
11431         and sizing will not be recalculated unless ResizeTabPages is
11432         called.
11433         * TabPage.cs: Set base.Text instead of Text in the constructor so
11434         that UpdateOwner does not get called. Use the new Redraw method of
11435         TabControl instead of Refresh so the sizing is recalculated.
11436         * ThemeWin32Classic.cs: Draw the text for button tabs.
11437
11438 2005-05-19  Jackson Harper  <jackson@ximian.com>
11439
11440         * Control.cs: Paint control background images. Fix typo where
11441         PaintControlBackground was not getting called correctly.
11442
11443 2005-05-19  Peter Bartok  <pbartok@novell.com>
11444
11445         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
11446           I can investigate, apparently I broke FileDialog
11447
11448 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
11449
11450         * AxHost.cs: Some simple properties.
11451         * Control.cs: window must be accessible after ctor.
11452         * Form.cs: Added TransparencyKey property.
11453         * TextBoxBase.cs: Implemented Clear. Text property can be null.
11454         * XplatUIWin32.cs: SetBorderStyle implemented.
11455
11456 2005-05-18  Peter Bartok  <pbartok@novell.com>
11457
11458         * DataObject.cs: Entries are not global but particular to the
11459           DataObject, now it behaves that way
11460         * XplatUIWin32.cs: Implemented Clipboard methods
11461         * Clipboard.cs: Implemented
11462         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
11463         * XplatUIOSX.cs: Updated to final clipboard prototypes
11464         * XplatUIX11.cs: Implemented Clipboard methods
11465         * XplatUIDriver.cs: Updated to final clipboard prototypes
11466         * XplatUIStructs.cs:
11467           - Added BITMAPINFOHEADER struct
11468           - Added ClipboardFormats enum
11469         * X11Structs.cs:
11470           - Added ClipboardStruct
11471           - Added Atom enum items for clipboard types
11472           - Fixed atom types for Selection event structures
11473         * DataFormats.cs:
11474           - Added internal properties and methods for drivers to enumerate
11475             all known formats
11476           - Switched initialization method to allow drivers to assign their
11477             own IDs even for the MS predefined clipboard IDs
11478         * XplatUI.cs: Updated to final clipboard interface
11479
11480 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11481         * PropertyGridView.cs: Fixed compiler warnings.
11482
11483 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11484         * PropertyGrid.cs: Added some event calls
11485         * PropertyGridView.cs: Change drawing code to use double buffering
11486         * PropertyGridTextBox.cs: Changed Text property name
11487         * GridItem.cs: Added Bounds property.
11488         * GridEntry.cs: Added Bounds property.
11489
11490 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
11491
11492         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
11493         since GetType() may not return the correct type if the object is
11494         a remoting proxy.
11495
11496 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
11497
11498         * TreeNodeCollection.cs: fixes get/set item ranges
11499         
11500 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11501
11502         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
11503                 
11504 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11505
11506         * ComboBox.cs: Fix item range comparation
11507         * ListView.cs: Fix item range comparation
11508
11509 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11510
11511         * FontDialog.cs:
11512           - Clear example panel when OnPaint is called
11513           - Better solution for displaying the example panel text
11514           - Select default indexes in the ListBoxes
11515
11516 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11517
11518         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
11519
11520 2005-05-11  Peter Bartok  <pbartok@novell.com>
11521
11522         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
11523         * SelectionRangeConverter.cs: Implemented
11524         * PropertyGrid.cs: Fixed attribute value
11525         * Control.cs:
11526           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
11527           - Added Sebastien Pouliot's CAS Stack Propagation fixes
11528         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
11529           that's common to all drivers. First methods to go there are
11530           Sebastien Pouliot's CAS Stack Propagation helper methods
11531         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
11532           Sebastien Pouliot for CAS Stack Propagation
11533
11534 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11535
11536         * OSXStructs.cs:
11537           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
11538
11539 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
11540
11541         * DataGridTextBoxColumn.cs: fixed some members
11542         * GridColumnStylesCollection.cs: indexed column is case insensitive
11543         * DataGridTableStyle.cs: fixes
11544         * ThemeWin32Classic.cs: add new theme parameter
11545         * Theme.cs: add new theme parameter
11546         * DataGridDrawingLogic.cs: Datagrid's drawing logic
11547         * DataGrid.cs: fixes, new internal properties, etc.
11548         * DataGridColumnStyle.cs: allows to set grid value
11549         *
11550
11551 2005-05-10  Peter Bartok  <pbartok@novell.com>
11552
11553         * AccessibleObject.cs:
11554           - Removed MonoTODO attribute on help, method is correct
11555           - Fixed Bounds property
11556         * AxHost.cs: Moved MonoTODO
11557         * ButtonBase.cs: Now setting AccessibleObject properties
11558         * RadioButton.cs: Setting proper AccessibleObject role
11559         * CheckBox.cs: Setting proper AccessibleObject role
11560         * ControlBindingsCollection.cs: Added properties, methods and attributes
11561         * DataFormats.cs: Fixed awkward internal API, and changed to enable
11562           userdefined DataFormats.Format items as well
11563         * ListControl.cs: Removed data_member from the public eye
11564         * OpenFileDialog.cs:
11565           - Made class sealed
11566           - Added missing attributes
11567         * SaveFileDialog.cs: Added missing attributes
11568         * ImageListStreamer.cs: Fixed code that caused warnings
11569         * LinkLabel.cs: Removed unreachable code
11570         * TreeView.cs: Fixed code that caused warnings
11571         * PropertyGridView.cs: Fixed code that caused warnings
11572         * GridColumnStylesCollection.cs: Added missing attributes
11573         * GridTableStylesCollection: Added missing attribute
11574         * PropertyManager: Added .ctor
11575         * SecurityIDType: Added
11576         * DataObject.cs: Implemented class
11577         * LinkArea.cs: Added missing attribute
11578
11579 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
11580
11581         * RadioButton.cs: call base method to allow to fire OnClick event
11582         * UpDownBase.cs: OnMouseUp call base method
11583         * CheckedListBox.cs: call base method before returning
11584         * TrackBar.cs: call base method before returning
11585         
11586
11587 2005-05-10  Peter Bartok  <pbartok@novell.com>
11588
11589         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
11590           for messages
11591
11592 2005-05-10  Peter Bartok  <pbartok@novell.com>
11593
11594         * DataFormats.cs: Implemented
11595         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
11596           XplatUIX11.cs: Added Clipboard APIs
11597         * XplatUIWin32.cs: Implemented Clipboard APIs
11598         * FolderBrowserDialog.cs: Added missing event, attributes
11599
11600 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
11601
11602         * CheckBox.cs: call base method to allow to fire OnClick event
11603
11604 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
11605
11606         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
11607
11608 2005-05-06  Peter Bartok  <pbartok@novell.com>
11609
11610         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
11611         * Screen.cs: Implemented
11612         * HelpNavigator.cs: Added
11613         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
11614           property
11615         * HelpProvider.cs: Implemented all we can do until we have a CHM
11616           help library (which means that "What's This" does work now)
11617
11618 2005-05-06  Jackson Harper  <jackson@ximian.com>
11619
11620         * XplatUIX11.cs: Fix waking up the main loop.
11621                 
11622 2005-05-05  Peter Bartok  <pbartok@novell.com>
11623
11624         * XplatUI.cs: Updated revision
11625         * Form.cs: Removed enless loop
11626         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
11627         * Label.cs (OnPaint): Added call to base.OnPaint()
11628         * ToolTip.cs: Made ToolTipWindow reusable for other controls
11629         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
11630         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
11631         * AxHost.cs: Added
11632         * ButtonBase.cs: Moved base.OnPaint() call to end of method
11633         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
11634           to ToolTip.ToolTipWindow for drawing and size methods; this allows
11635           reuse of ToolTipWindow by other controls
11636         * SizeGrip.cs: Moved base.OnPaint() call to end of method
11637         * XplatUIX11.cs: Now clipping drawing area (experimental)
11638         * PictureBox.cs: Moved base.OnPaint() call to end of method
11639         * Theme.cs: Fixed ToolTip abstracts to match new format
11640         * ErrorProvider.cs: Implemented
11641
11642 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
11643
11644         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
11645         * LinkLabel.cs:
11646                 - Adds cursors
11647                 - Handles focus
11648                 - Implements LinkBehavior
11649                 - Fixes many issues
11650
11651 2005-05-03  Jackson Harper  <jackson@ximian.com>
11652
11653         * ListView.cs: Calculate the scrollbar positioning on resize and
11654         paint, so they get put in the correct place.
11655
11656 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11657
11658         * ColorDialogs.cs: The small color panels are now handled by
11659           SmallColorControl. This fixes drawing of the focus rectangle
11660           and adds a 3D border.
11661
11662 2005-05-03  Peter Bartok  <pbartok@novell.com>
11663
11664         * Control.cs: Modified version of Jonathan Chamber's fix for
11665           double-buffering
11666
11667 2005-05-03  Jackson Harper  <jackson@ximian.com>
11668
11669         * ListView.cs: Remove redraw variable. Control now handles whether
11670         or not a redraw needs to be done, and will only raise the paint
11671         event if redrawing is needed.
11672
11673 2005-05-03  Jackson Harper  <jackson@ximian.com>
11674
11675         * Splitter.cs: No decorations for the splitter form. Cache the
11676         hatch brush.
11677
11678 2005-05-03  Jackson Harper  <jackson@ximian.com>
11679
11680         * TreeView.cs: Use dashed lines to connect nodes. Use the
11681         ControlPaint method for drawing the focus rect instead of doing
11682         that in treeview.
11683
11684 2005-05-02  Peter Bartok  <pbartok@novell.com>
11685
11686         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
11687
11688 2005-04-29  Jackson Harper  <jackson@ximian.com>
11689
11690         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
11691         entire image buffer. Just clear the clipping rectangle.
11692
11693 2005-04-29  Jackson Harper  <jackson@ximian.com>
11694
11695         * ThemeWin32Classic.cs: Don't draw list view items that are
11696         outside the clipping rectangle.
11697
11698 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
11699
11700         * ListBox.cs: added horizontal item scroll
11701
11702 2005-04-29  Jackson Harper  <jackson@ximian.com>
11703
11704         * ThemeWin32Classic.cs: Remove some old debug code that was
11705         causing flicker with the new double buffering code.
11706
11707 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
11708
11709         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
11710         behave like combobox and comboboxlist (still not sure if this is
11711         correct though).
11712
11713 2005-04-28  Jackson Harper  <jackson@ximian.com>
11714
11715         * ThemeWin32Classic.cs: Don't fill the middle of progress
11716         bars. This fills areas outside of the clip bounds that don't need
11717         to be filled.
11718
11719 2005-04-28  Jackson Harper  <jackson@ximian.com>
11720
11721         * Control.cs: Don't expose functionality to touch the image buffers.
11722         * ProgressBar.cs:
11723         * ListView.cs: We do not need to (and no longer can) manipulate
11724         the image buffers directly. All of this is handled by Control.
11725
11726 2005-04-28  Peter Bartok  <pbartok@novell.com>
11727
11728         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11729           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
11730           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
11731
11732 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11733
11734         * Combobox:
11735                 - Adjust control's height for non-simple comboboxes (bug fix)
11736                 - Remove dead code
11737         * MenuAPI.cs: remove unused var
11738         * ScrollBar.cs: remove unsed var
11739                  
11740         * ListBox.cs: unselect items when clearing
11741
11742 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11743
11744         * ListControl.cs: honors OnPositionChanged and default Selected Item
11745         * ListBox.cs: unselect items when clearing
11746
11747 2005-04-27  Jackson Harper  <jackson@ximian.com>
11748
11749         * X11Keyboard.cs: Initialize a default keyboard and give a warning
11750         if a "correct" keyboard is not found. This will make us not crash,
11751         but might give some users bad keyboard layouts...seems to be the
11752         same thing rewind does.
11753
11754 2005-04-27  Jackson Harper  <jackson@ximian.com>
11755
11756         * BindingManagerBase.cs: Attach the current/position changed
11757         handlers to their respective events.
11758
11759 2005-04-27  Jackson Harper  <jackson@ximian.com>
11760
11761         * Control.cs: Make sure that the first WM_PAINT does a full draw,
11762         not just a blit.
11763         * ThemeWin32Classic.cs: Don't fill the background for picture
11764         boxes. This could overright user drawing.
11765         * ComboBox.cs: Just fill the clipping rect not the entire client
11766         rect when drawing the background. This prevents pieces of the
11767         image buffer from getting overwritten and is theoretically faster.
11768
11769 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
11770
11771         * ComboBox.cs: Databinding support fixes, fire missing events
11772         * ListControl.cs: implement missing methods and properties, fixes
11773         * ThemeWin32Classic.cs: Databiding support on Drawing
11774         * CheckedListBox.cs: Databinding support fixes, fire missing events
11775         * ListBox.cs: Databinding support fixes, fire missing events
11776         
11777 2005-04-25  Peter Bartok  <pbartok@novell.com>
11778
11779         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
11780
11781 2005-04-25  Jackson Harper  <jackson@ximian.com>
11782
11783         * TreeView.cs: Use the horizontal scrollbars height not width when
11784         determining how much of the client area is available.
11785
11786 2005-04-25  Jackson Harper  <jackson@ximian.com>
11787
11788         * Control.cs: Double buffering is handled differently now. As per
11789         the spec, the extra buffer is created in the WM_PAINT message and
11790         passed down to the control's drawing code.
11791         * GroupBox.cs:
11792         * Label.cs:
11793         * CheckBox.cs:
11794         * ProgressBar.cs:
11795         * RadioButton.cs:
11796         * ColorDialog.cs:
11797         * ComboBox.cs:
11798         * PropertyGridView.cs:
11799         * UpDownBase.cs:
11800         * MessageBox.cs:
11801         * MenuAPI.cs:
11802         * ListView.cs:
11803         * ButtonBase.cs:
11804         * SizeGrip.cs:
11805         * ScrollBar.cs:
11806         * ListBox.cs:
11807         * TrackBar.cs:
11808         * ToolBar.cs:
11809         * PictureBox.cs:
11810         * DateTimePicker.cs:
11811         * StatusBar.cs:
11812         * TreeView.cs: Update to new double buffering system.
11813         * MonthCalendar.cs: Uncomment block, as Capture is now
11814         working. Update to new double buffering
11815         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
11816         * PaintEventArgs.cs: New internal method allows us to set the
11817         graphics object. This is used for double buffering.
11818         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
11819         rectangle. The internal paint_area var has been removed from
11820         StatusBar. The clipping rect should be used instead.
11821         * Theme.cs: Give the PictureBox drawing method a clipping rect.
11822         * TabPage.cs: The RefreshTabs method was removed, so just call the
11823         tab controls Refresh method now.
11824         * TabControl.cs: Update to new double buffering. Make sure the
11825         handle is created before sizing the tab pages, otherwise we will
11826         get stuck in a loop.
11827
11828 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
11829
11830         * LinkLabel.cs: Fix typo, bug #74719; patch
11831           from Borja Sanchez Zamorano
11832
11833 2005-04-22  Jackson Harper  <jackson@ximian.com>
11834
11835         * TreeNode.cs: Implement Handle stuff.
11836         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
11837
11838 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
11839
11840         * DataGridTextBoxColumn.cs: call base constructors, fixes
11841         * GridColumnStylesCollection.cs: missing events, methods, and functionality
11842         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
11843         * DataGridTableStyle.cs: implements create default column styles
11844         * DataGridBoolColumn.cs: which types can handle
11845         * DataGrid.cs: missing methods, fixes, new functionality
11846         * DataGridColumnStyle.cs: fixes
11847
11848 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
11849         * FolderBrowserDialog.cs:
11850         - Use a thread to fill the TreeView
11851         - Adjusted some sizes
11852
11853 2005-04-19  Peter Bartok  <pbartok@novell.com>
11854
11855         * LinkLabel.cs: (Re-)create the pieces when setting the Text
11856           property. Fixes #74360.
11857
11858 2005-04-19  Jackson Harper  <jackson@ximian.com>
11859
11860         * XEventQueue.cs: Lock when getting the lockqueue size.
11861         * PictureBox.cs: Call base OnPaint
11862         
11863 2005-04-19  Peter Bartok  <pbartok@novell.com>
11864
11865         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
11866           messages were no longer being processed (this broke BeginInvoke)
11867
11868           
11869 2005-04-18  Jackson Harper  <jackson@ximian.com>
11870
11871         * TreeView.cs: buglet that caused node images to get drawn
11872         regardless of whether or not they were in the clipping rectangle.
11873
11874 2005-04-18  Jackson Harper  <jackson@ximian.com>
11875
11876         * CurrencyManager.cs: There are four rules for GetItemProperties:
11877         - If the type is an array use the element type of the array
11878         - If the type is a typed list, use the type
11879         - If the list contains an Item property that is not an object, use
11880         that property
11881         - use the first element of the list if there are any elements in
11882         the list.
11883         
11884 2005-04-17  Jackson Harper  <jackson@ximian.oom>
11885
11886         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
11887         click. This handles offsets for scrolling properly and reduces
11888         memory. Also fixed GetNode to not offset now that TopNode works
11889         properly.
11890         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
11891         
11892 2005-04-17  Jackson Harper  <jackson@ximian.com>
11893
11894         * CursorConverter.cs: Initial implementation.
11895
11896 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
11897
11898         * ListControl.cs: work towards complex data binding support on ListControl
11899         * CurrencyManager.cs: work towards complex data binding support on ListControl
11900         * ListBox.cs: work towards complex data binding support on ListControl
11901
11902
11903 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
11904
11905         * GridTableStylesCollection.cs: fixes name and constructor
11906         * DataGridTableStyle.cs: fixes
11907         * DataGridBoolColumn.cs: fixes names and constructors
11908         * DataGrid.cs: define methods and properties. Some init implementations
11909         * DataGridCell.cs: define methods and properties. Some init implementations
11910         * GridTablesFactory.cs: Define methods and properties
11911
11912 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
11913
11914         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
11915         graphics port changes.  We still want the coordinates in global screen
11916         coordinates.
11917
11918 2005-04-14  Jackson Harper  <jackson@ximian.com>
11919
11920         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
11921         check plus minus or checkbox clicks unless those features are enabled.
11922
11923 2005-04-14  Jackson Harper  <jackson@ximian.com>
11924
11925         * TreeView.cs: Add methods for setting the top and bottom visible
11926         nodes. TreeNode::EnsureVisible uses these methods.
11927         * TreeNode.cs: Implement EnsureVisible
11928
11929 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
11930
11931         * Form.cs: Pospone menu assignation if the window has not been created yet
11932         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
11933         size and position
11934
11935 2005-04-12  Jackson Harper  <jackson@ximian.com>
11936
11937         * TreeView.cs: Set the TopNode properly when scrolling
11938         occurs. This has the added benifit of reducing the amount of
11939         walking that needs to be done when drawing. Also removed an old
11940         misleading TODO.
11941         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
11942         
11943 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
11944
11945         * Timer.cs: fixes interval setting when the timer is already enabled
11946         
11947 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
11948
11949         * FolderBrowserDialog.cs: First approach
11950
11951 2005-04-09  Peter Bartok  <pbartok@novell.com>
11952
11953         * FolderBrowserDialog: Added
11954
11955 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
11956
11957         * LinkLabel.cs: move drawing code into the theme
11958         * ThemeWin32Classic.cs: drawing code and painting background bugfix
11959         * Theme.cs: define DrawLinkLabel method
11960
11961 2005-04-05  Jackson Harper  <jackson@ximian.com>
11962
11963         * BindingContext.cs: Use weak references so these bad actors don't
11964         stay alive longer then they need to.
11965
11966 2005-04-05  Jackson Harper  <jackson@ximian.com>
11967
11968         * ListControl.cs: Basic implementation of complex databinding.
11969         * ComboBox.cs:
11970         * ListBox.cs: Add calls to ListControl databinding methods.
11971
11972 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
11973
11974         * FileDialog.cs:
11975           - Don't change PopupButtonState to Normal when the
11976             PopupButton gets pressed several times.
11977           - Renamed ButtonPanel to PopupButtonPanel
11978
11979 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
11980
11981         * ColorDialog.cs: Use cached objects instead of creating them
11982         * LinkLabel.cs: Use cached objects instead of creating them
11983         * Splitter.cs: Use cached objects instead of creating them
11984         * FontDialog.cs: Use cached objects instead of creating them
11985         * PropertyGridView.cs: Use cached objects instead of creating them
11986         * MessageBox.cs: Use cached objects instead of creating them
11987         * FileDialog.cs: Use cached objects instead of creating them
11988         * ThemeWin32Classic.cs: Use cached objects instead of creating them
11989         * TreeView.cs: Use cached objects instead of creating them
11990         
11991 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
11992
11993         * Control.cs: use Equals to compare the font since no == op
11994         * ScrollBar.cs: use Equals to compare the font since no == op
11995
11996 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
11997
11998         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
11999
12000 2005-04-01  Jackson Harper  <jackson@ximian.com>
12001
12002         * Binding.cs: Implement IsBinding.
12003         * BindingManagerBase.cs:
12004         * PropertyManager.cs:
12005         * CurrencyManager.cs: Add IsSuspended property.
12006
12007 2005-04-01  Jackson Harper  <jackson@ximian.com>
12008
12009         * Binding.cs: Had some IsAssignableFrom calls backwards.
12010
12011 2005-04-01  Jackson Harper  <jackson@ximian.com>
12012
12013         * Binding.cs: Handle null data members when pulling data.
12014         * PropertyManager.cs: Handle the data member being a property that
12015         does not exist.
12016
12017 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12018
12019         * DataGridTextBoxColumn.cs: fixes signature
12020         * DataGrid.cs: calls right constructor
12021
12022 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12023
12024         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
12025         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
12026         * GridTableStylesCollection.cs: implements GridTableStylesCollection
12027         * DataGridTableStyle.cs: implements DataGridTableStyle
12028         * DataGridBoolColumn.cs: implements DataGridBoolColumn
12029         * DataGridTextBox.cs: implements DataGridTextBox
12030         * DataGridColumnStyle.cs: implements DataGridColumnStyle
12031
12032 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
12033
12034         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
12035
12036 2005-03-29  Peter Bartok  <pbartok@novell.com>
12037
12038         * Application.cs:
12039           - Properly implemented CompanyName property
12040           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
12041             returns a path that includes CompanyName, ProductName and
12042             Version (fixes bug #70330)
12043
12044 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
12045
12046         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
12047           fixes bug #72588.
12048
12049 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12050
12051         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
12052         
12053           - Added ReadOnly CheckBox
12054           - Further refactoring: moved some code from Open-/SaveFileDialog
12055             to FileDialog
12056
12057 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12058
12059         * OpenFileDialog.cs: Fixed CheckFileExists
12060         * FileDialog.cs:
12061           Moved FileView and DirComboBox outside FileDialog class.
12062           They can now be used outside FileDialog
12063
12064 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
12065
12066         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
12067         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
12068
12069 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
12070
12071         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
12072           - Added missing CreatePrompt property in SaveDialog
12073           - Overall SaveDialog handling should be better now
12074           - Added non standard ShowHiddenFiles property
12075           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
12076           - Added InitialDirectory and RestoreDirectory support
12077
12078 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
12079
12080         * FileDialog.cs: Made dirComboBox usable
12081
12082 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
12083
12084         * FileDialog.cs: Added Filter support (case sensitiv)
12085
12086 2005-03-24  Jackson Harper  <jackson@ximian.com>
12087
12088         * TabControl.cs: Need a couple more pixels for the lines.
12089
12090 2005-03-23  Jackson Harper  <jackson@ximian.com>
12091
12092         * TabControl.cs: Give the tab page focus when it is selected.
12093
12094 2005-03-23  Jackson Harper  <jackson@ximian.com>
12095
12096         * TabControl.cs: Account for the drawing of tabs borders when
12097         invalidating. If the slider was clicked dont do click detection on
12098         the tabs.
12099
12100 2005-03-23  Jackson Harper  <jackson@ximian.com>
12101
12102         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
12103
12104 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
12105
12106         * CategoryGridEntry.cs: Added
12107         * GridItem.cs: Added helper properties
12108         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
12109         * GridEntry.cs: Updated code for collection
12110         * PropertyGrid.cs: Cleaned up some formatting
12111         * PropertyGridView.cs: Added drop down functionality for enums.
12112         * GridItemCollection.cs: Added enumerator logic
12113         * PropertyGridEntry.cs: Added
12114
12115 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12116
12117         * FileDialog.cs:
12118           - Removed unnecessary commented code
12119           - Fixed handling for entering the filename manually in the combobox
12120
12121 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12122
12123         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
12124
12125 2005-03-18  Peter Bartok  <pbartok@novell.com>
12126
12127         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
12128           them being touching the border
12129
12130 2005-03-18  Peter Bartok  <pbartok@novell.com>
12131
12132         * TextControl.cs: Quick hack to center text better
12133
12134 2005-03-18  Peter Bartok  <pbartok@novell.com>
12135
12136         * ControlPaint.cs:
12137           - Don't throw NotImplemented exceptions, just print a notice once
12138             instead (requested by Miguel). This makes running existing SWF
12139             apps a bit easier
12140         * Control.cs:
12141           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
12142           - Added context menu trigger on right click
12143         * Panel.cs: Trigger invalidate on resize
12144         * StatusBar.cs:
12145           - Removed old double-buffer drawing
12146           - Added ResizeRedraw style to force proper update of statusbar
12147         * ListView.cs:
12148           - Removed debug output
12149         * ThemeWin32Classic.cs:
12150           - Fixed drawing of status bar, now draws Text property if there
12151             are no defined panels
12152
12153 2005-03-18  Jackson Harper  <jackson@ximian.com>
12154
12155         * ImageList.cs: When the image stream is set pull all the images
12156         from it.
12157         * ImageListStreamer.cs: Implement reading image list streams.
12158
12159 2005-03-18  Peter Bartok  <pbartok@novell.com>
12160
12161         * ThemeWin32Classic.cs (DrawPictureBox):
12162           - Fixed calculations for centered drawing
12163           - Fixed drawing for normal mode, not scaling the image on normal
12164
12165 2005-03-18  Peter Bartok  <pbartok@novell.com>
12166
12167         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
12168           textbox
12169         * FileDialog.cs:
12170           - Made Open/Save button the accept button for FileDialog
12171           - Tied the cancel button to the IButtonControl cancel button
12172           - Save/Open now properly builds the pathname
12173           - Now handles user-entered text
12174           - Preventing crash on right-click if no item is selected
12175           - Fixed Text property, now uses contents of textbox
12176           - Fixed SelectedText property, now just returns the text part that
12177             is selected in the text box
12178
12179 2005-03-18  Jackson Harper  <jackson@ximian.com>
12180
12181         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
12182         rect, make sure to de-adjust the interior rect after drawing the
12183         tab text.
12184
12185 2005-03-18  Peter Bartok  <pbartok@novell.com>
12186
12187         * MenuAPI.cs: Remove menu *before* executing selected action to
12188           prevent the menu from 'hanging around'
12189           
12190 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
12191
12192         * XplatUIOSX.cs: Implemented WorkingArea property
12193
12194 2005-03-17  Peter Bartok  <pbartok@novell.com>
12195
12196         * XplatUIX11.cs: Fixed menu coord calculations
12197         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
12198           for calculating offsets
12199
12200 2005-03-17  Peter Bartok  <pbartok@novell.com>
12201
12202         * Hwnd.cs: Do not consider menu presence for default client
12203           rectangle location/size
12204         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
12205           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
12206           translation functions
12207         * FileDialog.cs: Fixed (what I presume is a) typo
12208
12209 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
12210
12211         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
12212           X access (avoids X-Async errors)
12213
12214 2005-03-16  Jackson Harper  <jackson@ximian.com>
12215
12216         * TabControl.cs: Raise the SelectedIndexChanged event.
12217
12218 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
12219
12220         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
12221           - Removed vertical ToolBar and replaced it with a custom panel
12222             (desktop and home button already work)
12223           - Added Help button (some controls get resized or relocated then)
12224           - Draw correct text depending on Open or Save.
12225           - Fixed some typos...
12226
12227 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
12228
12229         * ScrollBar.cs:
12230           - Only change Maximum and Minimum when need it (bug fix)
12231
12232 2005-03-15  Peter Bartok  <pbartok@novell.com>
12233
12234         * Form.cs: Use Handle for icon, to trigger creation if
12235           the window does not yet exist
12236         * Control.cs:
12237           - CanSelect: Slight performance improvement
12238           - Focus(): Preventing possible recursion
12239           - Invalidate(): Removed ControlStyle based clear flag setting
12240           - WM_PAINT: fixed logic for calling OnPaintBackground
12241           - WM_ERASEBKGND: Fixed logic, added call to new driver method
12242             EraseWindowBackground if the control doesn't paint background
12243         * XplatUIWin32.cs:
12244           - Moved EraseWindowBackground() method to internal methods
12245           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
12246             is sent via SendMessage on BeginPaint call on Win32
12247         * XplatUIX11.cs:
12248           - Added EraseWindowBackground() method
12249           - No longer sends WM_ERASEBKGND on .Expose, but on call to
12250             PaintEventStart, which more closely matches Win32 behaviour
12251           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
12252           - Fixed SetFocus() to properly deal with client and whole windows
12253         * Hwnd.cs: Added ErasePending property
12254         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
12255         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
12256
12257 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
12258
12259         * XplatUIOSX.cs:
12260           - Fix hard loop when timers exist.
12261           - Fix bugs with middle and right click for 3 button mice.
12262
12263 2005-03-11  Peter Bartok  <pbartok@novell.com>
12264
12265         * XplatUIX11.cs:
12266           - get_WorkingArea: Need to call X directly, GetWindowPos only
12267             returns cached data now
12268           - Added sanity check to GetWindowPos hwnd usage
12269
12270 2005-03-11  Jackson Harper  <jackson@ximian.com>
12271
12272         * BindingManagerBase.cs: This method isn't used anymore as
12273         PullData now updates the data in the control.
12274
12275 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
12276
12277         * Form.cs: fixes menu drawing on X11
12278         * MenuAPI.cs:  fixes menu drawing on X11
12279
12280 2005-03-11  Peter Bartok  <pbartok@novell.com>
12281
12282         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
12283           from Jonathan Gilbert; should fix bug #73606
12284         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
12285           in Screen coordinates. Thanks, Jordi.
12286         * Form.cs: Added missing attribute
12287
12288 2005-03-11  Peter Bartok  <pbartok@novell.com>
12289
12290         * Form.cs:
12291           - Rudimentary Mdi support
12292           - Removed outdated FormParent code
12293           - Implemented lots of missing properties and methods, still missing
12294             transparency support
12295           - Added missing attributes
12296           - Implemented support for MaximumBounds
12297           - Added firing of various events
12298         * XplatUI.cs: Added SetIcon() method
12299         * XplatUIDriver.cs: Added SetIcon() abstract
12300         * XplatUIOSX.cs: Stubbed out SetIcon() method
12301         * XplatUIX11.cs:
12302           - Implemented SetIcon() support
12303           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
12304           - Switched to unix line endings
12305         * XplatUIWin32.cs:
12306           - Made POINT internal so for can access it as part of MINMAX
12307           - Implemented SetIcon() support
12308           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
12309             native Mdi support again, might have to go managed)
12310         * Control.cs: Now fires the StyleChanged event
12311         * MdiClient.cs: Added; still mostly empty
12312
12313 2005-03-10  Peter Bartok  <pbartok@novell.com>
12314
12315         * SaveFileDialog.cs: Added emtpy file
12316
12317 2005-03-08  Peter Bartok  <pbartok@novell.com>
12318
12319         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
12320           in turn triggers OnCreateContro) when creating a handle for the
12321           first time.
12322         * TextControl.cs: Fixed endless loop in certain cases when
12323           replacing the current selection
12324
12325 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
12326
12327         * ScrollBar.cs:
12328           - Honors NewValue changes in Scroll events allowing apps to change it
12329           - Adds First and Last Scroll events
12330           - Fixes Thumb events
12331
12332 2005-03-07  Peter Bartok  <pbartok@novell.com>
12333
12334         * Hwnd.cs: Added DefaultClientRectangle property
12335         * XplatUI.cs: Now using the X11 driver Where() method, which provides
12336           more detailed debug information
12337         * XplatUIX11.cs:
12338           - Fixed size-change feedback loop, where we would pull an old size
12339             off the queue and mistakenly change our window's size to an
12340             earlier value
12341           - Now compressing ConfigureNotify events, to reduce looping and
12342             redraw issues
12343         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
12344           is called
12345
12346 2005-03-07  Jackson Harper  <jackson@ximian.com>
12347
12348         * Binding.cs: Push data pushes from data -> property. Check if the
12349         property is readonly when attempting to set it.
12350
12351 2005-03-07  Jackson Harper  <jackson@ximian.com>
12352
12353         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
12354         instead of IsSubclassOf. Pulling data now sets the value on the
12355         control.
12356         * PropertyManager.cs:
12357         * CurrencyManager.cs: Just need to pull data when updating now,
12358         because PullData will set the value on the control.
12359
12360 2005-03-04  Jackson Harper  <jackson@ximian.com>
12361
12362         * Binding.cs: Implement data type parsing and converting on pulled
12363         data. TODO: Are there more ways the data can be converted?
12364
12365 2005-03-04  Jackson Harper  <jackson@ximian.com>
12366
12367         * Binding.cs: Support <Property>IsNull checks. Also bind to the
12368         controls Validating method so we can repull the data when the
12369         control loses focus.
12370
12371 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
12372
12373         * ColumnHeader.cs:
12374           - Fixes null string format
12375           
12376         * ListView.cs:
12377           - Adds enum type checks
12378           - Fixes redrawing and recalc need after changing some properties
12379           - Fixes on focus_item set after the event
12380           - Fixes adding columns after the control has been created
12381           
12382         * ThemeWin32Classic.cs:
12383           - Fixes CheckBox focus rectangle
12384           - Fixes ColumnHeader drawing
12385
12386
12387 2005-03-03  Jackson Harper  <jackson@ximian.com>
12388
12389         * Binding.cs: Bind to <Property>Changed events so we can detect
12390         when properties are changed and update the data.
12391
12392 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
12393
12394         * ImageList.cs:
12395           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
12396           - Fixes ImageList constructor with ImageList container
12397           - Fixes image scaling (wrong parameters at DrawImage)
12398
12399 2005-02-02  Jackson Harper  <jackson@ximian.com>
12400
12401         * Binding.cs: Make property searches case-insensitive. Eliminate
12402         some duplicated code.
12403
12404 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
12405
12406         * ComboBox.cs:
12407                 - Handle focus event
12408                 - Fix scrollbar events
12409                 - Discard highlighted item if remove it
12410                 - Fixes SelectedItem with strings
12411
12412 2005-03-01  Peter Bartok  <pbartok@novell.com>
12413
12414         * Control.cs:
12415           - Fixed Visible property, now follows (once again) parent chain
12416             to return false if any control in the chain is visible=false
12417           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
12418           - Fixed several places where is_visible instead of Visible was used
12419           - Implemented FIXME related to focus selection when setting focused
12420             control to be invisible
12421
12422         * XplatUIWin32.cs: Now using proper method to find out if window is
12423           visible. Thanks to Jordi for pointing it out
12424
12425 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
12426
12427         * ComboBox.cs: show/hide scrollbar instead of creating it
12428
12429 2005-02-27  Jackson Harper  <jackson@ximian.com>
12430
12431         * CurrencyManager.cs: Add PositionChanged stuff.
12432
12433 2005-02-27  Peter Bartok  <pbartok@novell.com>
12434
12435         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
12436         * XplatUIOSX.cs: Added GetMenuOrigin() stub
12437         * XplatUIWin32.cs: Implemented GetMenuOrigin()
12438         * XplatUIX11.cs:
12439           - Implemented GetMenuDC()
12440           - Implemented GetMenuOrigin()
12441           - Implemented ReleaseMenuDC()
12442           - Implemented generation of WM_NCPAINT message
12443           - Implemented generation and handling of WM_NCCALCSIZE message
12444         * Form.cs: Added debug helper message for Jordi's menu work
12445         * Hwnd.cs:
12446           - Modified ClientRect property; added setter, fixed getter to handle
12447             setting of ClientRect
12448           - Added MenuOrigin property
12449
12450 2005-02-26  Peter Bartok  <pbartok@novell.com>
12451
12452         * XplatUIX11.cs:
12453           - Destroys the caret if a window that's being destroyed contains it
12454           - Ignores expose events coming from the X11 queue for windows that
12455             already are destroyed
12456           - Now uses the proper variable for handling DestroyNotify, before we
12457             marked the wrong window as destroyed
12458           - Improved/added some debug output
12459
12460 2005-02-26  Peter Bartok  <pbartok@novell.com>
12461
12462         * X11Keyboard.cs: Fixes to work on 64bit systems
12463
12464 2005-02-26  Peter Bartok  <pbartok@novell.com>
12465
12466         * Control.cs:
12467           - Now calling OnHandleDestroyed from DestroyHandle()
12468             instead of Dispose()
12469           - Removed bogus call to controls.Remove() from DestroyHandle()
12470
12471 2005-02-26  Peter Bartok  <pbartok@novell.com>
12472
12473         * Control.cs: Properly destroy child windows when our handle is
12474           destroyed
12475
12476 2005-02-25  Peter Bartok  <pbartok@novell.com>
12477
12478         * XplatUI.cs:
12479           - Added 'DriverDebug' define to allow tracing XplatUI API calls
12480           - Alphabetized Static Methods and Subclasses
12481
12482         * XplatUIX11.cs:
12483           - Added XException class to allow custom handling of X11 exceptions
12484           - Created custom X11 error handler, tied into XException class
12485           - Added support for MONO_XEXCEPTIONS env var to allow the user
12486             to either throw an exception on X errors or continue running
12487             after displaying the error
12488           - Added handling of DestroyNotify message
12489           - Added handler for CreateNotify message (still disabled)
12490           - Improved (tried to at least) Where method to provide file and lineno
12491         * X11Structs.cs:
12492           - Added XErrorHandler delegate
12493           - Added XRequest enumeration (to suppor translation of errors)
12494
12495 2005-02-25  Jackson Harper  <jackson@ximian.com>
12496
12497         * PropertyManager.cs: Implement editing features
12498         * CurrencyManager.cs:
12499         * Binding.cs: First attempt at UpdateIsBinding
12500         * BindingManagerBase.cs: Call UpdateIsBinding before
12501         pushing/pulling data.
12502
12503 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
12504
12505         * MenuAPI.cs: Respect disabled items
12506         * ThemeWin32Classic.cs
12507                 - Caches ImageAttributes creation for DrawImageDisabled
12508                 - Fixes vertical menu line drawing
12509                 - Draws disabled arrows in disable menu items
12510
12511 2005-02-24  Peter Bartok  <pbartok@novell.com>
12512
12513         * Hwnd.cs:
12514           - Added UserData property to allow associating arbitrary objects
12515             with the handle
12516           - Fixed leak; now removing Hwnd references from static windows array
12517         * XplatUIWin32.cs:
12518           - Fixed Graphics leak in PaintEventEnd
12519           - Removed usage of HandleData, switched over to Hwnd class
12520         * HandleData.cs: Removed, obsoleted by Hwnd.cs
12521
12522 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12523
12524         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
12525         * ScrollBar.cs: Fixes bug
12526         * TrackBar.cs: removes death code, clipping, mimize refreshes,
12527          keyboard navigation enhancements
12528
12529 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12530
12531         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
12532         * GroupBox.cs: Add control styles
12533         * Label.cs: Add control styles
12534         * UpDownBase.cs: Add control styles
12535         * ListBox.cs: Add control styles
12536         * XplatUIWin32.cs: Fixes wrong parameter order
12537
12538
12539 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
12540
12541         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
12542
12543 2005-02-23  Jackson Harper  <jackson@ximian.com>
12544
12545         * PropertyManager.cs: Implement property binding. This doesn't
12546         seem to work yet though as (I think) there are some bugs in
12547         System.ComponentModel.PropertyDescriptor.
12548         * BindingContext.cs: Use new PropertyManager constructor.
12549
12550 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
12551
12552         * ProgressBar.cs: use clip region in ProgressBar
12553         * ThemeWin32Classic.cs: use clip region in ProgressBar
12554
12555 2004-02-22  Jackson Harper  <jackson@ximian.com>
12556
12557         * BindingsCollection.cs: Remove some debug code.
12558
12559 2005-02-22  Jackson Harper  <jackson@ximian.com>
12560
12561         * BindingContext.cs:
12562         * ControlBindingsCollection.cs:
12563         * CurrencyManager.cs:
12564         * Binding.cs:
12565         * BindingManagerBase.cs: Initial implementation
12566         * BindingsCollection.cs: Add an internal contains method that the
12567         BindingManagerBase uses to ensure bindings aren't added twice to
12568         the collection.
12569         * PropertyManager.cs: Stubbed out.
12570         * Control.cs:
12571         * ContainerControl.cs: Hook up databinding
12572         
12573 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
12574
12575         * XplatUIOSX.cs:
12576           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
12577           Fixed Invalidate/Update chain.
12578           Fixed tons of other minor bugs (this is almost a complete rewrite).
12579
12580 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
12581
12582         * ComboBox.cs: do subcontrol creation when the control is created
12583
12584 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12585
12586         * Label.cs: fixes image drawing (image and imagelist)
12587         * ThemeWin32Classic.cs: cache brushes
12588         
12589 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12590
12591         * Form.cs: Move menu drawing code to Theme class
12592         * ComboBox.cs: Move ComboBox drawing code to Theme class
12593         * MenuItem.cs: Move menu drawing code to Theme class
12594         * MenuAPI.cs: Move menu drawing code to Theme class
12595         * ThemeWin32Classic.cs: New methods
12596         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
12597         * ListBox.cs: Move Listbox drawing code to Theme class
12598         * Theme.cs: New methods
12599
12600 2005-02-20  Peter Bartok  <pbartok@novell.com>
12601
12602         * Control.cs:
12603           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
12604             only process mnemonics on those)
12605           - Fixed event sequence for key handling; first calling
12606             ProcessKeyEventArgs now
12607         * TextBoxBase.cs:
12608           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
12609             for processing non-character keys
12610           - Fixed WM_CHAR to generate proper event sequence before processing
12611         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
12612           generation
12613
12614 2005-02-19  Peter Bartok  <pbartok@novell.com>
12615
12616         * UserControl.cs: Added TextChanged event; added attributes
12617         * SizeGrip.cs: Implemented resizing and optional display of grip
12618         * Form.cs: Fixed attribute
12619         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
12620           Changed meaning of ScrollWindow bool argument; instead of the
12621           clear attribute (which will be true usually anyway), it gives the
12622           option of moving child controls as well.
12623         * XplatUIX11.cs:
12624           - Changed to match new ScrollWindow argument
12625           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
12626             now handles the implicit parent window a WM puts around us
12627         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
12628           to work)
12629         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
12630         * TreeView.cs: Adjusted to new ScrollWindow arguments
12631
12632 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12633
12634         * Form.cs: Menu integration with non-client area
12635         * MenuItem.cs: Menu integration with non-client area
12636         * MenuAPI.cs: Menu integration with non-client area
12637
12638 2005-02-18  Peter Bartok  <pbartok@novell.com>
12639
12640         * MethodInvoker.cs: Added
12641         * MdiLayout.cs: Added
12642         * SendKeys.cs: Started implementation
12643         * ErrorIconAlignment.cs: Added
12644
12645 2005-02-18  Peter Bartok  <pbartok@novell.com>
12646
12647         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
12648         * Form.cs: Added handling for Menu-related Non-client messages
12649
12650 2005-02-17  Peter Bartok  <pbartok@novell.com>
12651
12652         * UpDownBase.cs: Fixed typo, compilation errors
12653         * DomainUpDown.cs: Fixed attribute value
12654
12655 2005-02-16  Miguel de Icaza  <miguel@novell.com>
12656
12657         * UpDownBase.cs: Attach entry events.
12658         Propagate events.
12659         Add ForeColor property, Focused, InterceptArrowKeys (interception
12660         does not work yet).
12661
12662 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
12663
12664         * Form.cs:
12665                 - Redraw non client are on Setmenu
12666                 - Calc proper menu starting point
12667
12668 2005-02-17  Peter Bartok  <pbartok@novell.com>
12669
12670         * Application.cs: Fixed message_filter check
12671
12672 2005-02-17  Peter Bartok  <pbartok@novell.com>
12673
12674         * Application.cs: Now calls registered message filters
12675         * DockStyle.cs: Fixed attribute
12676         * Form.cs: Fixed attribute
12677         * Menu.cs: Fixed attribute
12678         * ToolTip.cs: Fixed attribute
12679         * TreeNode.cs: Added missing attributes and arranged in regions
12680         * PropertyGrid.cs: Fixed signatures
12681         * TreeNodeCollection.cs: Added attributes
12682         * Splitter.cs: Added missing attributes; arranged into regions
12683         * TabPage.cs: Added missing attributes; arranged into regions
12684         * TextBoxBase.cs: Added missing attributes
12685         * TextBox.cs: Added missing attributes
12686         * ArrangeDirection.cs: Added missing attributes
12687         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
12688         * ToolBarButton.cs: Fixed attributes
12689         * AnchorStyles.cs: Fixed attribute
12690         * TrackBar.cs: Fixed attributes
12691         * TabControl.cs: Added missing attributes and arranged into regions
12692         * ToolBar.cs: Fixed attribute
12693         * StatusBar.cs: Fixed signature, organized into regions and added
12694           attributes
12695         * StatusBarPanel.cs: Fixed attributes
12696         * ContentsResizedEventArgs.cs: Implemented
12697         * ContentsResizedEventHandler.cs: Implemented
12698         * DateBoldEventArgs.cs: Implemented
12699         * DateBoldEventHandler.cs: Implemented
12700         * UpDownEventArgs.cs: Implemented
12701         * UpDownEventHandler.cs: Implemented
12702         
12703 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
12704
12705         * Form.cs: first Menu NC refactoring
12706         * MenuAPI.cs: first Menu NC refactoring
12707         
12708 2005-02-16  Peter Bartok  <pbartok@novell.com>
12709
12710         * ImeMode.cs: Added missing attributes
12711         * Menu.cs: Fixed attribute
12712         * GroupBox.cs: Fixed attribute
12713         * Label.cs: Fixed attribute
12714         * ColorDialog.cs (RunDialog): Removed TODO attribute
12715         * ComboBox.cs: Fixed attributes
12716         * ListControl.cs: Added missing attributes
12717         * PropertyGrid.cs: Fixed attributes
12718         * Control.cs: Fixed attributes
12719         * ListViewItem.cs: Added TypeConverter attribute
12720         * NotifyIcon.cs: Fixed attributes
12721         * ListView.cs: Fixed attributes
12722         * ButtonBase.cs: Fixed attribute
12723         * ImageList.cs: Added missing attributes
12724         * ContainerControl.cs: Fixed signature
12725         * CheckedListBox.cs: Fixed attribute; added missing attributes
12726         * Panel.cs: Fixed attributes
12727         * PropertyTabChangedEventArgs.cs: Added missing attribute
12728         * PropertyValueChangedEventArgs.cs: Added missing attribute
12729         * Binding.cs: Fixed attribute
12730         * ListViewItemConverter: Implemented ListViewSubItemConverter class
12731         * ListBox.cs: Fixed attribute; added missing attributes;
12732         * ScrollableControl.cs: Added missing attributes
12733         * PictureBox.cs: Added missing attributes; implemented missing property
12734         * DateTimePicker.cs: Added missing attributes
12735         * Theme.cs (ToolWindowCaptionHeight): Fixed type
12736         * MonthCalendar.cs: Fixed attributes
12737         * StatusBarPanel.cs: Added missing attributes
12738         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
12739
12740 2005-02-16  Peter Bartok  <pbartok@novell.com>
12741
12742         * TextBoxBase.cs: The previous method to enforce height yet remember
12743           the requested high was less than ideal, this is an attempt to do
12744           it better.
12745         * Control.cs: Added comment about possible problem
12746         * Copyright: Updated format
12747         * GridItemType.cs: Fixed swapped values
12748
12749 2005-02-15  Jackson Harper  <jackson@ximian.com>
12750
12751         * BaseCollection.cs: Use property so we never access an
12752         uninitialized list. Also initialize the list in the property.
12753
12754 2005-02-15  Peter Bartok  <pbartok@novell.com>
12755
12756         * GroupBox.cs (ProcessMnemonic): Implemented
12757         * Label.cs (ProcessMnemonic): Implemented
12758         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
12759           hotkeys
12760
12761 2005-02-15  Peter Bartok  <pbartok@novell.com>
12762
12763         * RadioButton.cs (ProcessMnemonic): Implemented
12764         * CheckBox.cs (ProcessMnemonic): Implemented
12765         * Control.cs:
12766           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
12767             handling
12768           - Added internal method to allow calling ProcessMnemonic from other
12769             controls
12770         * ContainerControl.cs:
12771           - Started support for handling validation chain handling
12772           - Implemented ProcessMnemonic support
12773           - Added Select() call to Active, to make sure the active control
12774             receives focus
12775         * Form.cs: Setting toplevel flag for Forms (this was lost in the
12776           FormParent rewrite)
12777         * ThemeWin32Classic.cs:
12778           - DrawCheckBox(): Fixed stringformat to show hotkeys
12779           - DrawRadioButton(): Fixed stringformat to show hotkeys
12780         * CommonDialog.cs: Removed WndProc override, not needed
12781
12782 2005-02-14  Peter Bartok  <pbartok@novell.com>
12783
12784         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
12785           missed those in the rewrite
12786
12787 2005-02-14  Miguel de Icaza  <miguel@novell.com>
12788
12789         * NumericUpDown.cs (Increment, ToString): Add.
12790         (DecimalPlaces): implement.
12791         
12792         Add attributes.
12793         
12794         * UpDownBase.cs: Add the designer attributes.
12795
12796 2005-02-13  Peter Bartok  <pbartok@novell.com>
12797
12798         * Panel.cs: Removed border_style, now in Control
12799         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
12800           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
12801
12802 2005-02-13  Peter Bartok  <pbartok@novell.com>
12803
12804         * MouseButtons.cs: Added missing attributes
12805         * XplatUIStructs.cs: Added enumeration for title styles
12806         * LeftRightAlignment.cs: Added missing attributes
12807         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
12808           it compatible with Graphics.FromHwnd()
12809         * SelectedGridItemChangedEventArgs.cs: Fixed property type
12810         * Keys.cs: Added missing attributes
12811         * SelectionRange.cs: Added missing attributes
12812         * SelectionRangeConverter.cs: Added
12813         * XplatUI.cs:
12814           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
12815             ReleaseMenuDC methods
12816           - Renamed ReleaseWindow to UngrabWindow
12817           - Added proper startup notice to allow version identification
12818         * Form.cs:
12819           - Added missing attributes
12820           - Removed FormParent concept
12821         * Label.cs: Removed border_style field, now in Control
12822         * RadioButton.cs: Now properly selects RadioButton when focus is
12823           received
12824         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
12825         * Control.cs:
12826           - Added missing attributes
12827           - Added borderstyle handling
12828           - Removed FormParent concept support
12829           - Fixed calls to XplatUI to match changed APIs
12830           - Fixed bug that would case us to use disposed Graphics objects
12831           - Removed unneeded internal methods
12832           - PerformLayout(): Fixed to handle DockStyle.Fill properly
12833           - SelectNextControl(): Fixed to properly check common parents
12834         * TextBoxBase.cs: Removed border_style field (now in Control)
12835         * MessageBox.cs:
12836           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
12837             fixed calculations for form size
12838           - Added support for localized strings and icons
12839           - Improved form size calculations, added border
12840         * ListView.cs: Removed border_style field (now in Control)
12841         * X11Structs.cs: Moved several structs from X11 driver here
12842         * X11Keyboard.cs: Changed debug message
12843         * Application.cs: Removed FormParent concept support
12844         * CommonDialog.cs:
12845           - Resetting end_modal flag
12846           - Removed FormParent concept support
12847         * NativeWindow.cs: Removed FormParent concept support
12848         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
12849           Client area and Non-Client whole window to allow support for WM_NC
12850           messages
12851         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
12852           prevent using it until it supports Hwnd as per Geoff Norton's request
12853         * ToolBar.cs: Fixed drawing, was not doing proper drawing
12854         * PictureBox.cs: Removed border_style field, now in Control
12855         * XplatUIWin32.cs: Added new driver methods
12856
12857 2005-02-12  Peter Bartok  <pbartok@novell.com>
12858
12859         * OpacityConverter.cs: Implemented
12860         * Hwnd.cs: Internal class to support drivers that need to emulate
12861           client area/non-client area window behaviour
12862
12863 2005-02-11  Peter Bartok  <pbartok@novell.com>
12864
12865         * KeysConverter.cs: Implemented
12866
12867 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
12868
12869         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
12870         * LinkLabel: Added missing attributes
12871         * MainMenu.cs: fixes ToString
12872         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
12873         * ListBox.cs: fixes event position
12874         * TrackBar.cs: adds missing attributes and events
12875         
12876 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
12877
12878         * MenuItem.cs: Use SystemInformation and bug fixes
12879         * MenuAPI.cs: Use SystemInformation and bug fixes
12880
12881 2005-02-09  Jackson Harper  <jackson@ximian.com>
12882
12883         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
12884         their keystate otherwise things like VK_MENU get stuck "on".
12885
12886 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
12887
12888         * ListBox.cs: Fixes AddRange bug
12889         
12890 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
12891
12892         * ProgressBar.cs
12893                 - Add missing attributes
12894                 - Add missing method
12895                 
12896         * CheckedListBox.cs: Added missing attributes
12897                 - Add missing attributes
12898                 - Remove extra method
12899         
12900         * ComboBox.cs: Added missing attributes
12901         * VScrollBar.cs: Added missing attributes
12902         * ScrollBar.cs:  Added missing attributes
12903         * ListBox.cs: Fixes signature, add missing consts
12904         * LinkArea.cs:   Added missing attributes
12905         
12906
12907 2005-02-08  Peter Bartok  <pbartok@novell.com>
12908
12909         * Menu.cs: Added missing attributes
12910         * MainMenu.cs: Added missing attributes
12911         * GroupBox.cs: Added missing attributes
12912         * Label.cs: Added missing attributes
12913         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
12914         * ColorDialog.cs:
12915           - Added Instance and Options properties
12916           - Added missing attributes
12917         * Cursor.cs: Made Serializable
12918         * NotifyIcon: Added missing attributes
12919         * MenuItem.cs: Added missing attributes
12920         * TextBoxBase.cs: Implemented AppendText() and Select() methods
12921         * Panel.cs: Added Missing attributes
12922         * MonthCalendar.cs: Fixed CreateParams
12923
12924 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
12925         
12926         * LinkLabel.cs:
12927                 - Fixes signature
12928                 - Fixes issues with links
12929                 - Adds the class attributes
12930
12931 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
12932         
12933         * ComboBox.cs:
12934                 - Fixes button when no items available in dropdown
12935                 - Fixes repainting problems
12936                 - Adds the class attributes
12937                 
12938 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12939
12940         * XplatUIOSX.cs: Detect the menu bar and title bar height from
12941         the current theme.  Cache these on startup.
12942
12943 2005-02-07  Jackson Harper  <jackson@ximian.com>
12944
12945         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
12946         the scrollbar buttons when they are depressed.
12947
12948 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12949
12950         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
12951         Get the display size from the main displayid.  We currently dont
12952         support multiple display configurations.
12953
12954 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
12955
12956         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
12957
12958 2005-02-07  Miguel de Icaza  <miguel@novell.com>
12959
12960         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
12961
12962 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
12963
12964         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
12965
12966 2005-02-04  Jackson Harper  <jackson@ximian.com>
12967
12968         * ThemeWin32Classic.cs: Respect the clipping rect when
12969         drawing. Only fill the intersection of clips and rects so there
12970         isn't a lot of large fills.
12971         * ScrollBar.cs: Pass the correct clipping rect to the theme
12972         engine. Remove some debug code.
12973
12974 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
12975         
12976         * DateTimePicker.cs:
12977                 - Fixed crash on DateTime.Parse, use Constructor instead
12978
12979 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
12980         
12981         * MenuItem.cs:
12982         * MenuAPI.cs:
12983                 - Owner draw support (MeasureItem and DrawItem)
12984
12985 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
12986         
12987         *  Menu.cs:
12988                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
12989                 - Fixes MenuItems.Add range
12990         * MenuItem.cs:
12991                 - MergeMenu and Clone and CloneMenu functions
12992
12993 2005-02-03  Jackson Harper  <jackson@ximian.com>
12994
12995         * ScrollBar.cs: Make abstract
12996         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
12997         is abstract.
12998
12999 2005-02-03  Jackson Harper  <jackson@ximian.com>
13000
13001         * ScrollBar.cs: First part of my scrollbar fixups. This removes
13002         all the unneeded refreshes and uses invalidates with properly
13003         computed rects.
13004
13005 2005-02-03  Peter Bartok  <pbartok@novell.com>
13006
13007         * ComponentModel.cs: Added
13008         * IDataGridEditingService.cs: Added
13009         * Timer.cs: Added missing attributes
13010         * ToolTip.cs: Added missing attributes
13011
13012 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
13013
13014         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
13015
13016 2005-02-03  Peter Bartok  <pbartok@novell.com>
13017
13018         * ListBox.cs: Added missing attributes
13019
13020 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
13021         
13022         * ListBox.cs:
13023                 - Fixes font height after font change
13024                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
13025                 
13026 2005-02-02  Peter Bartok  <pbartok@novell.com>
13027
13028         * HandleData.cs: Introduced static methods to allow class
13029           to be more self-contained and track it's own HandleData objects
13030         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
13031           HandleData to use new static methods
13032
13033 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
13034
13035         * Combobox.cs:
13036                 - Fixes default size and PreferredHeight
13037                 - Missing events
13038                 - ObjectCollection.Insert implementation
13039                 
13040         * ListControl.cs
13041                 - Fixes signature
13042         * ListBox.cs:
13043                 - Several fixes
13044                 - ObjectCollection.Insert implementation
13045                 - No selection after clean
13046                 - Small fixes
13047
13048 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13049
13050         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
13051
13052 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
13053
13054         * Combobox.cs:
13055                 - Caches ItemHeight calculation for OwnerDrawVariable
13056                 - Handles dropdown properly
13057                 - Fixes several minor bugs
13058
13059 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13060
13061         * ListBox.cs:
13062                 - Fixes 71946 and 71950
13063                 - Fixes changing Multicolumn on the fly
13064                 - Fixes keyboard navigation on Multicolumn listboxes
13065
13066 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13067         
13068         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
13069         crash reporter log.
13070
13071 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13072
13073         * XplatUIOSX.cs: Allow applications to actually exit.
13074
13075 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13076
13077         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
13078         their parent at creation time rather than lazily later.  Fixes a major
13079         regression we were experiencing.
13080
13081 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13082
13083         * ThemeWin32Classic.cs: more date time picker painting fixes
13084         * DateTimePicker.cs: more monthcalendar drop down fixes
13085         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
13086
13087 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13088
13089         * ScrollBar.cs:
13090                 - When moving the thumb going outside the control should stop the moving
13091                 - Adds the firing of missing events
13092                 - Fixes no button show if Size is not specified
13093                 - End / Home keys for keyboard navigation
13094
13095 2005-01-30  Peter Bartok  <pbartok@novell.com>
13096
13097         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
13098           sanity check to prevent theoretical loop
13099         * XplatUIWin32.cs (SetVisible): Removed debug output
13100         * XplatUIX11.cs (SystrayChange): Added sanity check
13101         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
13102         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
13103           behaviour, valid until the X11 client window rewrite is done
13104         * TextBox.cs (ctor): Setting proper default foreground and background
13105           colors
13106
13107 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
13108
13109         * Theme: Added DrawDateTimePicker to interface
13110         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
13111         * DateTimePicker.cs: Created (still needs keys and painting code)
13112         * DateTimePickerFormat.cs: added
13113         * MonthCalendar.cs: fixed CreateParams for popup window mode
13114           
13115 2005-01-29  Peter Bartok  <pbartok@novell.com>
13116
13117         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
13118           this should also the calculations for ligher/darker
13119         * Theme.cs: Fixed defaults for ScrollBar widths/heights
13120
13121 2005-01-29  Peter Bartok  <pbartok@novell.com>
13122
13123         * ArrangeDirection.cs: Added
13124         * ArrangeStartingPositon.cs: Added
13125         * SystemInformation.cs: Implemented
13126         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13127           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
13128           used by SystemInformation class
13129         * X11Strucs.cs: Added XSizeHints structure
13130         * MenuAPI.cs:
13131           - Fixed CreateParams to make sure the menu window is always visible
13132           - TrackPopupMenu: Added check to make sure we don't draw the
13133             menu offscreen
13134
13135 2005-01-29  Peter Bartok  <pbartok@novell.com>
13136
13137         * HandleData.cs: Added method for altering invalid area
13138         * TextBoxBase.cs: Implemented TextLength
13139
13140 2005-01-28  Peter Bartok  <pbartok@novell.com>
13141
13142         * XplatUIX11.cs: Improvement over last patch, not sending
13143           the WM_PAINT directly anymore, instead we scroll any pending
13144           exposed areas and let the system pick out the WM_PAINT later
13145
13146 2005-01-28  Peter Bartok  <pbartok@novell.com>
13147
13148         * SWF.csproj: Deleted, no longer used. Instead,
13149           Managed.Windows.Forms/SWF.csproj should be used
13150         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
13151           directly, to avoid a potential race condition with the next
13152           scroll
13153
13154 2005-01-28  Peter Bartok  <pbartok@novell.com>
13155
13156         * XplatUI.cs: Made class internal
13157
13158 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
13159
13160         * CheckedListBox.cs:
13161                 - Draw focus
13162                 - Fixed Drawing
13163                 - Missing methods and events
13164
13165 2005-01-27  Peter Bartok  <pbartok@novell.com>
13166
13167         * Application.cs (Run): Don't use form if we don't have one
13168
13169 2005-01-27  Peter Bartok  <pbartok@novell.com>
13170
13171         * TextBoxBase.cs (get_Lines): Fixed index off by one error
13172
13173 2005-01-27  Peter Bartok  <pbartok@novell.com>
13174
13175         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
13176         * GridItem.cs: Added; Patch by Jonathan S. Chambers
13177         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
13178         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
13179         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
13180         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
13181         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13182         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13183         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13184         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13185         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13186         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13187
13188 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13189
13190         * Combobox.cs:
13191                 - Draw focus on Simple Combobox
13192                 - Fixes drawing issues
13193                 - fixes 71834
13194
13195 2005-01-27  Peter Bartok  <pbartok@novell.com>
13196
13197         * Form.cs:
13198           - Place window in default location, instead of hardcoded 0/0
13199           - Send initial LocationChanged event
13200         * Control.cs:
13201           - UpdateBounds after creation to find out where the WM placed us
13202           - Make sure that if the ParentForm changes location the Form
13203             is notified
13204         * XplatUIX11.cs: XGetGeometry will not return the coords relative
13205             to the root, but to whatever the WM placed around us.
13206             Translate to root coordinates before returning toplevel
13207             coordinates
13208         * XplatUIWin32.cs: Removed debug output
13209         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
13210           flag to GetWindowPos, to allow translation of coordinates on X11
13211
13212 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13213
13214         * ListBox.cs: connect LostFocus Event
13215
13216 2005-01-27  Peter Bartok  <pbartok@novell.com>
13217
13218         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
13219           XplatUIX11.cs: Extended the Systray API
13220         * Form.cs: Removed debug output
13221         * Application.cs: Fixed focus assignment, always need to call
13222           XplatUI.Activate() since Form.Activate() has rules that may
13223           prevent activation
13224         * NotifyIcon.cs: Should be complete now
13225         * ToolTip.cs: Worked around possible timer bug
13226
13227 2005-01-27  Jackson Harper  <jackson@ximian.com>
13228
13229         * TabControl.cs:
13230         - Only invalidate the effected tabs when the
13231         selected index changes. This reduces drawing and gets rid of some
13232         flicker.
13233         - Only refresh if the tabs need to be shifted, otherwise only
13234         invalidate the slider button.
13235         - On windows the tabs are not filled to right if the slider is
13236         visible.
13237         
13238 2005-01-27  Jackson Harper  <jackson@ximian.com>
13239
13240         * TabControl.cs: Only refresh on mouseup if we are showing the
13241         slider. Also only invalidate the button whose state has changed.
13242
13243 2005-01-26  Peter Bartok  <pbartok@novell.com>
13244
13245         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
13246         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
13247           and SystrayRemove() methods
13248         * XplatUIOSX.cs: Stubbed Systray methods
13249         * XplatUIX11.cs:
13250           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
13251             methods
13252           - Fixed broken XChangeProperty calls (marshalling messed up things)
13253         * X11Structs.cs: Added enums and structs required for Size hinting
13254         * NotifyIcon.cs: Added & implemented
13255
13256 2005-01-26  Jackson Harper  <jackson@ximian.com>
13257
13258         * TabControl.cs: Space vertically layed out tabs properly.
13259
13260 2005-01-26  Peter Bartok  <pbartok@novell.com>
13261
13262         * Form.cs (CreateClientParams): Always set the location to 0,0
13263           since we're a child window.
13264
13265         * Control.cs (SetVisibleCore): Always explicitly setting the location
13266           of a toplevel window, apparently X11 doesn't like to move windows
13267           while they're not mapped.
13268
13269 2005-01-26  Jackson Harper  <jackson@ximian.com>
13270
13271         * TabControl.cs: Implement FillToRight size mode with vertically
13272         rendered tabs.
13273
13274 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13275
13276         * ControlPaint.cs, ThemeWin32Classic.cs
13277                 - Fixes DrawFocusRectangle
13278
13279 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13280
13281         * MenuAPI.cs:
13282                 - MenuBar tracking only starts when item is first clicked
13283                 - Fixes menu hidding for multiple subitems
13284                 - Unselect item in MenuBar when item Executed
13285                 - Fixes bug 71495
13286
13287 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
13288
13289         * ListControl.cs:
13290                 - IsInputKey for ListBox
13291         * ListBox.cs:
13292                 - Focus item
13293                 - Shift and Control item selection
13294                 - Implement SelectionMode.MultiExtended
13295                 - Fixes RightToLeft
13296         * ComboBox.cs:
13297                 - IsInputKey implemented
13298                 - Do not generate OnTextChangedEdit on internal txt changes
13299                 
13300 2005-01-23  Peter Bartok  <pbartok@novell.com>
13301
13302         * AccessibleObject.cs: Partially implemented Select()
13303         * MonthCalendar.cs: Added missing attributes and events
13304         * Form.cs: Fixed CreateParams behaviour, now controls derived from
13305           form can properly override CreateParams.
13306         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13307           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
13308           Control performs Invalidate & Update
13309         * NativeWindow (CreateHandle): Added special handling for Form
13310           and Form.FormParent classes to allow overriding of From.CreateParams
13311         * Control.cs:
13312           - ControlNativeWindow: Renamed 'control' variable to more intuitive
13313             name 'owner'
13314           - ControlNativeWindow: Added Owner property
13315           - Removed usage of Refresh() on property changes, changed into
13316             Invalidate(), we need to wait until the queue is processed for
13317             updates, direct calls might cause problems if not all vars for
13318             Paint are initialized
13319           - Added call to UpdateStyles() when creating the window, to set any
13320             styles that CreateWindow might have ignored.
13321           - Added support for Form CreateParent overrides to UpdateStyles()
13322         * MessageBox.cs: Removed no longer needed FormParent override stuff,
13323           CreateParams are now properly overridable
13324         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
13325           CreateParams are now properly overridable
13326
13327 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
13328
13329         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
13330         OnTextBoxChanged.
13331
13332         Capture LostFocus and OnTextBoxChanged.  The later introduces a
13333         recursive invocation that I have not figured out yet.
13334
13335         Reset the timer when not using (it was accumulating).
13336
13337
13338         (OnTextBoxChanged): Set UserEdit to true here to track whether the
13339         user has made changes that require validation.
13340
13341         Reset changing to avoid loops.
13342
13343 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
13344
13345         * NumericUpDown.cs: Display value at startup.
13346
13347         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
13348         ValidateEditText.
13349
13350         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
13351         filled in.  Added some basic parsing of text.
13352
13353         Still missing the OnXXX method overrides, and figuring out the
13354         events that must be emitted.
13355
13356         * UpDownBase.cs: Handle UserEdit on the Text property.
13357         
13358 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
13359
13360         * ComboBox.cs:
13361           - Fixes IntegralHeight
13362           - ToString method
13363
13364 2005-01-21  Jackson Harper  <jackson@ximian.com>
13365
13366         * TabControl.cs: Set the SelectedIndex property when SelectedTab
13367         is set so that the page visibility is updated and the tabs are
13368         sized correctly.
13369
13370 2005-01-21  Jackson Harper  <jackson@ximian.com>
13371
13372         * TabControl.cs: Use cliping rectangle for blitting. Give the
13373         theme the clipping rect so we can do clipping while
13374         drawing. Remove some debug code.
13375
13376 2005-01-21  Jackson Harper  <jackson@ximian.com>
13377
13378         * TabPage.cs: Add a new method so tab pages can force the tab
13379         control to recalculate the tab page sizes.
13380         * TabControl.cs: UpdateOwner needs to make the tab control recalc
13381         sizes.
13382
13383 2005-01-20  Jackson Harper  <jackson@ximian.com>
13384
13385         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
13386
13387 2005-01-20  Jackson Harper  <jackson@ximian.com>
13388
13389         * TreeView.cs: Set the bounds for nodes properly. They were
13390         getting screwed up when checkboxes were not enabled, but images
13391         were.
13392
13393 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
13394
13395         * ListBox.cs:
13396                 - Owner draw support
13397                 - Fixes
13398                 
13399 2005-01-20  Jackson Harper  <jackson@ximian.com>
13400
13401         * XplatUIStructs.cs: More misc keys
13402         * X11Keyboard.cs: Ignore some control keys.
13403
13404 2005-01-20  Jackson Harper  <jackson@ximian.com>
13405
13406         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
13407         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
13408
13409 2005-01-19  Peter Bartok  <pbartok@novell.com>
13410
13411         * Control.cs: Un-selecting the control when it is loosing focus
13412
13413 2005-01-19  Jackson Harper  <jackson@ximian.com>
13414
13415         * TreeView.cs: Hook up to the text controls leave event so we can
13416         end editing when the users clicks outside the text box.
13417         
13418 2005-01-19  Jackson Harper  <jackson@ximian.com>
13419
13420         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
13421         get set in the conversion array.
13422
13423 2005-01-19  Peter Bartok  <pbartok@novell.com>
13424
13425         * Application.cs (ModalRun): Added a call to CreateControl to ensure
13426           focus is properly set
13427         * Button.cs:
13428           - Added missing attributes
13429           - removed styles, those are already set in the base class
13430         * ButtonBase.cs:
13431           - Added missing attributes
13432           - Added clip window styles
13433         * CheckBox.cs: Added missing attributes
13434         * CommonDialog.cs:
13435           - FormParentWindow.CreateParams: Added required clip styles
13436         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
13437           also filters modifier keys
13438         * MessageBox.cs:
13439           - Added assignment of Accept and Cancel button to enable Enter
13440             and Esc keys in MessageBox dialogs
13441           - FormParentWindow.CreateParams: Added required clip styles
13442         * RadioButton.cs: Added missing attributes
13443         * TextControl.cs: No longer draws selection if control does not
13444           have focus
13445         * TextBoxBase.cs:
13446           - Now draws simple rectangle around test area to make it obvious
13447             there's a control. This is a hack until we properly support borders
13448           - A few simple fixes to support selections better, now erases selected
13449             text when typing, and resets selection when using movement keys
13450
13451 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13452
13453         * UpDownBase.cs: Added some new properties.
13454
13455         * DomainUpDown.cs: Implement a lot to get my test working.
13456
13457 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13458
13459         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
13460
13461 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13462
13463         * OSXStructs (WindowAttributes): Fixed csc complaints
13464
13465 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13466
13467         * XplayUIOSX.cs:
13468           OSXStructs.cs: Initial refactor to move enums and consts into
13469           OSXStructs and use them in the driver for greater readability.
13470
13471 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13472
13473         * XplatUIOSX.cs: Initial support for Standard Cursors.
13474         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
13475
13476 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
13477
13478         * ComboBox.cs: ability to change style when the ctrl is already
13479         created, missing methods and events, bug fixes, signature fixes
13480
13481 2005-01-19  Peter Bartok  <pbartok@novell.com>
13482
13483         * Cursors.cs (ctor): Added ctor to fix signature
13484
13485 2005-01-18  Peter Bartok  <pbartok@novell.com>
13486
13487         * Button.cs: Implemented DoubleClick event
13488         * ButtonBase.cs:
13489           - Fixed keyboard handling to behave like MS, where the press of
13490             Spacebar is equivalent to a mousedown, and the key release is
13491             equivalent to mouseup. Now a spacebar push will give the same
13492             visual feedback like a mouse click.
13493           - Added missing attributes
13494           - Added ImeModeChanged event
13495           - Added support for generating DoubleClick event for derived classes
13496         * CheckBox.cs:
13497           - Implemented DoubleClick event
13498           - Added missing attributes
13499         * CommonDialog.cs: Added missing attribute
13500         * ContextMenu.cs: Added missing attributes
13501         * RadioButton.cs:
13502           - AutoChecked buttons do not allow to be unselected when clicked
13503             (otherwise we might end up with no selected buttons in a group)
13504           - Added missing attributes
13505           - Implemented DoubleClickEvent
13506         * ThreadExceptionDialog.cs: Enabled TextBox code
13507
13508 2005-01-18  Peter Bartok  <pbartok@novell.com>
13509
13510         * Form.cs: Removed debug output
13511         * Button.cs: Added support for DoubleClick method
13512
13513 2005-01-18  Peter Bartok  <pbartok@novell.com>
13514
13515         * Form.cs:
13516           - Added method to parent window that allows triggering size
13517             calculations when a menu is added/removed
13518           - set_Menu: Cleaned up mess from early days of Form and Control,
13519             now properly triggers a recalc when a menu is added/removed
13520           - Added case to select form itself as focused form if no child
13521             controls exist
13522           - Added PerformLayout call when showing dialog, to ensure properly
13523             placed controls
13524         * Control.cs:
13525           - Select(): Made internal so Form can access it
13526           - Focus(): Only call Xplat layer if required (avoids loop), and sets
13527             status
13528         * Application.cs (Run): Removed hack and calls PerformLayout instead
13529           to trigger calculation when Form becomes visible
13530
13531 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
13532
13533         * ComboBox.cs: fixes for ownerdraw
13534
13535 2005-01-18  Peter Bartok  <pbartok@novell.com>
13536
13537         * TextControl.cs:
13538           - Sentinel is no longer static, each Document gets it's own, this
13539             avoids locking or alternatively overwrite problems when more
13540             than one text control is used simultaneously.
13541           - Switched to use Hilight and HilightText brushes for text selection
13542
13543         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
13544
13545 2005-01-18  Peter Bartok  <pbartok@novell.com>
13546
13547         * Control.cs:
13548           - Hooked up the following events:
13549                 o ControlAdded
13550                 o ControlRemoved
13551                 o HandleDestroyed
13552                 o ImeModeChanged
13553                 o ParentChanged
13554                 o TabStopChanged
13555                 o Invalidated
13556                 o SystemColorsChanged
13557                 o ParentFontChanged
13558                 o Move
13559           - Removed debug output
13560           - Added a call to the current theme's ResetDefaults when a color change
13561             is detected
13562         * Form.cs: Now setting the proper ImeMode
13563         * Theme.cs: Defined a method to force recreation of cached resources
13564           and rereading of system defaults (ResetDefaults())
13565         * ThemeWin32Classic.cs: Added ResetDefaults() stub
13566
13567 2005-01-17  Peter Bartok  <pbartok@novell.com>
13568
13569         * Control.cs: Added missing attributes
13570
13571 2005-01-17  Jackson Harper  <jackson@ximian.com>
13572
13573         * TreeNode.cs: Implement editing. Add missing properties selected
13574         and visible.
13575         * TreeView.cs: Implement node editing. Also some fixes to use
13576         Invalidate (invalid area) instead of Refresh when selecting.
13577
13578 2005-01-17  Peter Bartok  <pbartok@novell.com>
13579
13580         * Control.cs:
13581           - Implemented InvokeGotFocus() method
13582           - Implemented InvokeLostFocus() method
13583           - Implemented InvokePaint() method
13584           - Implemented InvokePaintBackground() method
13585           - Implemented InvokeClick() method
13586           - Implemented FindForm() method
13587           - Implemented RectangleToClient() method
13588           - Implemented ClientToRectangle() method
13589           - Implemented ResetBackColor() method
13590           - Implemented ResetCursor() method
13591           - Implemented ResetFont() method
13592           - Implemented ResteForeColor() method
13593           - Implemented ResetImeMode() method
13594           - Implemented ResetLeftToRight() method
13595           - Implemented ResetText() method
13596           - Implemented Scale() methods
13597           - Implemented ScaleCore() method
13598           - Implemented Update() method
13599           - Removed unused variables
13600           - Stubbed AccessibilityNotifyClients and
13601             ControlAccessibleObject.NotifyClients() methods (dunno what to do
13602             with those yet)
13603           - Now setting proper default for RightToLeft property
13604           - Fixed bug in SetClientSizeCore that would cause windows to get
13605             really big
13606           - Now sending Click/DoubleClick events
13607           - Now selecting controls when left mouse button is clicked on
13608             selectable control
13609         * AccessibleEvents.cs: Added
13610         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
13611         * XplatUIOSX.cs: Stubbed UpdateWindow() method
13612         * XplatUIWin32.cs: Implemented UpdateWindow() method
13613         * XplatUIX11.cs: Implemented UpdateWindow() method
13614         * Form.cs: Removed stray semicolon causing CS0162 warning
13615         * ThemeWin32Classic.cs: Fixed unused variable warnings
13616         * ScrollableControl.cs: Now calls base method for ScaleCore
13617         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
13618           style to avoid interference with internal click handler (which is
13619           different than standard Control click handling)
13620         * RadioButton.cs:
13621           - Now unchecks all sibling radio buttons when control is
13622             selected (Fixes #68756)
13623           - Removed internal tabstop variable, using the one inherited from
13624             Control
13625
13626 2005-01-17  Jackson Harper  <jackson@ximian.com>
13627
13628         * NavigateEventArgs.cs: Fix base type.
13629         * LinkLabel.cs: Sig fix
13630         
13631 2005-01-17  Jackson Harper  <jackson@ximian.com>
13632
13633         * TreeView.cs: Only invalidate the effected nodes bounds when
13634         selecting nodes.
13635
13636 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13637
13638         * XplatUIWin32.cs: fixes Win32 marshaling
13639         * XplatUIX11.cs: fixes method signature
13640
13641 2005-01-17  Peter Bartok  <pbartok@novell.com>
13642
13643         * XplatUIX11.cs: Clean up resources when we no longer need them
13644
13645 2005-01-17  Peter Bartok  <pbartok@novell.com>
13646
13647         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
13648           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
13649           and DestroyCursor() methods.
13650         * Cursor.cs: Partially implemented, now supports standard cursors;
13651           still contains some debug code
13652         * Cursors.cs: Implemented class
13653         * Control.cs:
13654           - WndProc(): Added handling of WM_SETCURSOR message, setting the
13655             appropriate cursor
13656           - Implemented Cursor property
13657           - Replaced break; with return; more straightforwar and possibly
13658             faster
13659           - Now properly setting the result for WM_HELP
13660         * X11Structs.cs: Added CursorFontShape enum
13661         * XplatUIStructs.cs:
13662           - Added StdCursor enum (to support DefineStdCursor() method)
13663           - Added HitTest enum (to support sending WM_SETCURSOR message)
13664         * XplatUIX11.cs:
13665           - Now sends the WM_SETCURSOR message
13666           - Implemented new cursor methods
13667         * XplatUIOSX.cs: Stubbed new cursor methods
13668         * XplatUIWin32.cs:
13669           - Implemented new cursor methods
13670           - Added GetSystemMetrics function and associated enumeration
13671
13672 2005-01-15  Peter Bartok  <pbartok@novell.com>
13673
13674         * Control.cs:
13675           - WndProc(): Now handles EnableNotifyMessage
13676           - SelectNextControl(): Fixed bug where if no child or sibling
13677             controls exist we looped endlessly
13678
13679 2005-01-14  Jackson Harper  <jackson@ximian.com>
13680
13681         * TreeView.cs: Recalculate the tab pages when a new one is added
13682         so that the proper bounding rects are created.
13683
13684 2005-01-14  Jackson Harper  <jackson@ximian.com>
13685
13686         * TreeView.cs: Draw a gray box instead of a grip in the lower
13687         right hand corner when there are both horizontal and vertical
13688         scroll bars.
13689
13690 2005-01-14  Jackson Harper  <jackson@ximian.com>
13691
13692         * Control.cs: When erasing backgrounds use FromHwnd instead of
13693         FromHdc when there is a NULL wparam. This occurs on the X driver.
13694         * XplatUIX11.cs: Set the wparam to NULL.
13695
13696 2005-01-13  Jackson Harper  <jackson@ximian.com>
13697
13698         * PictureBox.cs: Implement missing methods (except ToString, need
13699         to test that on windows) and events. When visibility is changed we
13700         need to redraw the image because the buffers are killed. When size
13701         is changed refresh if the sizemode needs it.
13702
13703 2005-01-13  Peter Bartok  <pbartok@novell.com>
13704
13705         * Control.cs (SelectNextControl): Was using wrong method to select
13706           a control
13707
13708 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13709
13710         * ComboBox.cs: fixes dropstyle
13711
13712 2005-01-13  Peter Bartok  <pbartok@novell.com>
13713
13714         * Form.cs:
13715           - Implemented Select() override
13716           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
13717           - Now sets keyboard focus on startup
13718         * Control.cs (SelectNextControl): Now properly handles directed=true
13719         * TextBoxBase.cs:
13720           - WndProc: Now passes tab key on to base if AcceptTabChar=false
13721           - Added (really bad) focus rectangle (mostly for testing)
13722         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
13723           to enforce redraw on focus changes
13724         * ContainerControl.cs:
13725           - Fixed detection of Shift-Tab key presses
13726           - Fixed traversal with arrow keys
13727         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
13728           gonna keep this or if it's complete yet
13729         
13730 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13731
13732         * ComboBox.cs: missing properties, fixes
13733
13734 2005-01-13  Peter Bartok  <pbartok@novell.com>
13735
13736         * Panel.cs (ctor): Setting Selectable window style to off
13737         * Splitter.cs (ctor): Setting Selectable window style to off
13738         * GroupBox.cs (ctor): Setting Selectable window style to off
13739         * Label.cs (ctor): Setting Selectable window style to off
13740
13741 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
13742
13743         * UpDownBase.cs (InitTimer): If the timer has been already
13744         created, enable it.
13745
13746         Use a TextBox instead of a Label.
13747
13748 2005-01-12  Jackson Harper  <jackson@ximian.com>
13749
13750         * TreeView.cs: Refresh the tree after sorting the nodes. Always
13751         draw the connecting node lines (when ShowLines is true).
13752         * TreeNode.cs: The nodes index can now be updated. This is used
13753         when a node collection is sorted.
13754         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
13755         insert or an existing unsorted node collection can be sorted.
13756         
13757 2005-01-12  Peter Bartok  <pbartok@novell.com>
13758
13759         * ContainerControl.cs: Implemented ProcessDialogKeys()
13760
13761 2005-01-12  Peter Bartok  <pbartok@novell.com>
13762
13763         * Control.cs:
13764           - Implemented SelectNextControl() method
13765           - Several focus related bug fixes
13766           - Fixed Docking calculations to match MS documentation and
13767             behaviour
13768
13769 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
13770
13771         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
13772         bug fixes
13773
13774 2005-01-12  Peter Bartok  <pbartok@novell.com>
13775
13776         * Control.cs:
13777           - Fixed broken Contains() method
13778           - Implemented GetNextControl() method. Finally. This is the pre-
13779             requisite for focus handling.
13780
13781 2005-01-12  Peter Bartok  <pbartok@novell.com>
13782
13783         * OSXStrucs.cs: Added
13784
13785 2005-01-12  Peter Bartok  <pbartok@novell.com>
13786
13787         * XplatUIWin32.cs:
13788           - Removed PeekMessageFlags
13789           - Implemented SetWindowStyle() method
13790         * XplatUIStructs.cs: Added PeekMessageFlags
13791         * X11Structs: Added missing border_width field to XWindowChanges struct
13792         * XplatUIX11.cs:
13793           - PeekMessage: Now throws exception if flags which are not yet
13794             supported are passed
13795           - Implemented SetWindowStyle() method
13796           - Fixed SetZOrder to handle AfterHwnd properly
13797         * XplatUI.cs: Added SetWindowStyle() method
13798         * XplatUIDriver.cs: Added SetWindowStyle() abstract
13799         * Control.cs:
13800           - Implemented UpdateStyles() method
13801           - Implemented UpdateZOrder() method
13802         * XplatUIOSX.cs: Added SetWindowStyle() stub
13803
13804 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
13805
13806         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
13807         button mouse).
13808
13809
13810 2005-01-11  Jackson Harper  <jackson@ximian.com>
13811
13812         * TreeView.cs: Still need to draw lines to siblings even if out of
13813         the current node is out of the clip.
13814
13815 2005-01-11  Jackson Harper  <jackson@ximian.com>
13816
13817         * TreeView.cs: When setting the hbar/vbar/grip position use
13818         SetBounds so that perform layout is only called once. Also suspend
13819         and resume layout so layout is only done once for all controls.
13820         - Removed some debug fluff
13821         * SizeGrip.cs: Call base implmentation in overriding methods.
13822         - When visibility is changed the drawing buffers are killed so we
13823         need to redraw.
13824
13825 2005-01-11  Jackson Harper  <jackson@ximian.com>
13826
13827         * TreeView.cs: Calculate the open node count while drawing. This
13828         saves us an entire tree traversal for every paint operation. Use
13829         a member var for the open node count so less vars are passed around.
13830
13831 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
13832
13833         * MonthCalendar.cs:
13834         - fixed selection to use mousemove, not mouse polling on timer
13835         * ThemeWin32Classic.cs
13836         - removed redundant unused variable "no_more_content"
13837         
13838 2005-01-11  Peter Bartok  <pbartok@novell.com>
13839
13840         * XplatUIX11.cs (DoEvents): Needs to return when no more events
13841           are pending, so it now calls PeekMessage instead of GetMessage;
13842           implemented a incomplete version of PeekMessage
13843         
13844 2005-01-11  Peter Bartok  <pbartok@novell.com>
13845
13846         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
13847           I18n issues
13848         * TextBoxBase.cs: Added sending of TextChanged event
13849
13850 2005-01-10  Jackson Harper  <jackson@ximian.com>
13851
13852         * TreeView.cs: Try not to draw outside the clipping rectangle on
13853         each node element.
13854
13855 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
13856
13857         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
13858
13859 2005-01-10  Jackson Harper  <jackson@ximian.com>
13860
13861         * TreeView.cs:
13862         - Implement fast scrolling. Now only the newly
13863         exposed nodes are drawn and the old image is moved using the
13864         XplatUI::ScrollWindow method.
13865         - Factor in height of nodes when calculating whether or not the
13866         node is in the clipping rect.
13867
13868 2005-01-10  Jackson Harper  <jackson@ximian.com>
13869
13870         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
13871
13872 2005-01-10  Peter Bartok  <pbartok@novell.com>
13873
13874         * Application.cs: Added temporary hack to resolve all our resize
13875           required issues on startup. This will get fixed properly at
13876           some point in the future
13877
13878 2005-01-10  Jackson Harper  <jackson@ximian.com>
13879
13880         * SizeGrip.cs: New internal class that is used as a sizing
13881         grip control...hence the name.
13882
13883 2005-01-10  Peter Bartok  <pbartok@novell.com>
13884
13885         * Control.cs: Implemented proper TabIndex handling, now assigning
13886           a tabindex when a control is added to a container
13887         * GroupBox.cs (ctor): Now sets the Container style bit, required
13888           for Control.GetNextControl()
13889
13890 2005-01-09  Jackson Harper  <jackson@ximian.com>
13891
13892         * TextBoxBase.cs: Clear window when scrolling (fixes build).
13893
13894 2005-01-09  Peter Bartok <pbartok@novell.com>
13895
13896         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
13897           XplatUIX11.cs: Added ability to control ScrollWindow expose and
13898           an overload for ScrollWindow to allow only scrolling a rectangle
13899
13900 2005-01-09  Peter Bartok <pbartok@novell.com>
13901
13902         * Form.cs:
13903           - Implemented SetDesktopBounds method
13904           - Implemented SetDesktopLocation method
13905
13906 2005-01-08  Jackson Harper  <jackson@ximian.com>
13907
13908         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
13909         the node count has changed, this removes to VScroll::Refresh calls
13910         when drawing.
13911
13912 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
13913
13914         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
13915
13916 2005-01-07  Jackson Harper  <jackson@ximian.com>
13917
13918         * TreeNode.cs: Just update the single node when it is
13919         checked. Don't refresh after toggling, the Expand/Collapse already
13920         handles this.
13921         * TreeView.cs: Respect clipping a little more when drawing. Try
13922         not to redraw things that don't need to be redrawn. Just hide the
13923         scrollbars when they are no longer needed instead of removing
13924         them, so they don't have to be created again and again.
13925         
13926 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
13927
13928         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
13929         coordinates to window space to place the caret properly, FIXED.
13930         Implement GetWindowState & SetWindowState
13931
13932 2005-01-06  Peter Bartok <pbartok@novell.com>
13933
13934         * Form.cs:
13935           - Implemented ClientSize property
13936           - Implemented DesktopBounds property
13937           - Implemented DesktopLocation property
13938           - Implemented IsRestrictedWindow property
13939           - Implemented Size property
13940           - Implemented TopLevel property
13941           - Implemented FormWindowState property
13942         * Control.cs:
13943           - Implemented GetTopLevel() method
13944           - Implemented SetTopLevel() method
13945         * X11Structs.cs (Atom):
13946           - Added AnyPropertyType definition
13947           - Added MapState definiton and updated XWindowAttribute struct
13948         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
13949         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
13950         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
13951         * XplatUIWin32.cs:
13952           - Implemented GetWindowState() and SetWindowState() methods
13953           - Fixed Win32GetWindowLong return type
13954         * XplatUIX11.cs:
13955           - Introduced central function for sending NET_WM messages
13956           - Implemented GetWindowState() and SetWindowState() methods
13957         * TextBoxBase.cs (set_Lines):
13958           - Now uses Foreground color for text added via Text property (Duh!)
13959           - Added code to remember programmatically requested size (fixes
13960             behaviour when Multiline is set after Size)
13961           - Added AutoSize logic
13962
13963 2005-01-06  Jackson Harper  <jackson@ximian.com>
13964
13965         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
13966
13967 2005-01-06  Jackson Harper  <jackson@ximian.com>
13968
13969         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
13970         set to less then 0.
13971
13972 2005-01-06  Jackson Harper  <jackson@ximian.com>
13973
13974         * ScrollableControl.cs: Lazy init the scrollbars.
13975         
13976 2005-01-06  Jackson Harper  <jackson@ximian.com>
13977
13978         * Theme.cs: Speed up getting pens and solid brushes, by using
13979         their ARGB as a hash instead of tostring and not calling Contains.
13980
13981 2005-01-06  Peter Bartok <pbartok@novell.com>
13982
13983         * Form.cs:
13984           - Implemented OnActivated and OnDeactivate event trigger
13985           - Implemented Activate() method
13986           - Fixed ShowDialog() to activate the form that was active before
13987             the dialog was shown
13988         * XplatUIX11.cs:
13989           - Added global active_window var that tracks the currently active
13990             X11 window
13991           - Now always grabs Property changes from the root window to always
13992             catch changes on the active window property
13993           - Added code to PropertyNotify handler to send Active/Inactive
13994             messages when state changes. This puts X11 and Win32 en par on
13995             WM_ACTIVATE notifications (except for double notifications when
13996             the user clicks away from our modal window to another one of our
13997             windows)
13998
13999 2005-01-05  Jackson Harper  <jackson@ximian.com>
14000
14001         * ImageList.cs: Implment ctor
14002
14003 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14004
14005         * XplatUIOSX.cs: Implement Activate/SetTopmost
14006
14007 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14008
14009         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
14010
14011 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14012
14013         * XplatUIOSX.cs: Implement GetActive/SetFocus.
14014
14015 2005-01-05  Peter Bartok <pbartok@novell.com>
14016
14017         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
14018           XplatUIOSX.cs: Added GetActive method to return the currently
14019           active window for the application (or null, if none is active)
14020         * Form.cs:
14021           - Implemented ActiveForm
14022           - Commented out owner assignment for modal dialogs (causes problems
14023             on Win32, since the owner will be disabled)
14024           - Reworked some Active/Focus handling (still incomplete)
14025         * CommonDialog.cs: Commented out owner assignment for modal dialogs
14026           (causes problems on Win32, since the owner will be disabled)
14027         * IWin32Window: Added ComVisible attribute
14028
14029 2005-01-05  Peter Bartok <pbartok@novell.com>
14030
14031         * ToolTip.cs (WndProc): Enable setting focus now that we have the
14032           required XplatUI functions.
14033
14034 2005-01-05  Peter Bartok <pbartok@novell.com>
14035
14036         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
14037           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
14038           to implement focus and activation handling; still incomplete and
14039           with debug output
14040
14041 2005-01-04  Peter Bartok <pbartok@novell.com>
14042
14043         * TextBoxBase.cs: Changed access level for Document property to
14044           match switch to internal for TextControl
14045
14046 2005-01-04  Peter Bartok <pbartok@novell.com>
14047
14048         * AccessibleObject: Added ComVisible attribute
14049
14050 2005-01-04  Jackson Harper  <jackson@ximian.com>
14051
14052         * X11Keyboard.cs: Remove unneeded var.
14053
14054 2005-01-04  Jackson Harper  <jackson@ximian.com>
14055
14056         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
14057         but PAINT.
14058         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
14059         ClientMessage. This makes apps exit cleanly (more often).
14060         
14061 2005-01-04  Jackson Harper  <jackson@ximian.com>
14062
14063         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
14064         handling focus, return correct colors and fonts,
14065         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
14066         handle selection, horizontal scrolling, and mouse interaction.
14067
14068 2005-01-04  Peter Bartok <pbartok@novell.com>
14069
14070         * ICommandExecutor.cs: Added
14071         * IDataGridColumnStyleEditingNotificationService.cs: Added
14072         * IFeatureSupport.cs: Added
14073         * IFileReaderService.cs: Added
14074         * IDataObject.cs: Added ComVisible attribute
14075         * AmbientProperties.cs: Added
14076         * BaseCollection.cs: Added missing attributes
14077         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
14078         * BaseCollection.cs: Added missing attributes
14079         * Binding.cs: Added TypeConverter attribute
14080         * BindingContext.cs: Added DefaultEvent attribute
14081         * BindingsCollection.cs: Added DefaultEvent attribute
14082         * Button.cs: Added DefaultValue attribute
14083         * DragEventArgs.cs: Added ComVisible attribute
14084         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
14085         * KeyEventArgs.cs: Added ComVisible attribute
14086         * KeyPressEventArgs.cs: Added ComVisible attribute
14087         * MouseEventArgs.cs: Added ComVisible attribute
14088         * NavigateEventArgs.cs: Added
14089         * NavigateEventHandler.cs: Added
14090         * FeatureSupport.cs: Added
14091         * OSFeature.cs: Added
14092         * Theme.cs: Added abstract Version property to support OSFeature
14093         * ThemeWin32Classic.cs: Added Version property to
14094           support OSFeature.Themes
14095         * ProgressBar.cs: Removed OnPaintBackground override, not required since
14096           the proper styles to avoid background drawing are set, also doesn't
14097           match MS signature
14098         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
14099         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
14100         * ScrollEventArgs.cs: Added ComVisible attribute
14101         * SplitterEventArgs.cs: Added ComVisible attribute
14102         * AccessibleSelection.cs: Added Flags attribute
14103         * Appearance.cs: Added ComVisible attribute
14104         * Border3DSide.cs: Added ComVisible attribute
14105         * Border3DStyle.cs: Added ComVisible attribute
14106         * BorderStyle.cs: Added ComVisible attribute
14107         * DragAction.cs: Added ComVisible attribute
14108         * ErrorBlinkStyle.cs: Added
14109         * ScrollEventType.cs: Added ComVisible attribute
14110         * AnchorStyles.cs: Added Editor attribute
14111         * DockStyle.cs: Added Editor attribute
14112         * HorizontalAlignment.cs: Added ComVisible attribute
14113         * HelpEventArgs.cs: Added ComVisible attribute
14114         * PaintEventArgs.cs: Added IDisposable
14115
14116 2005-01-04  Peter Bartok <pbartok@novell.com>
14117
14118         * TextControl.cs: Switched Line, LineTag and Document classes to
14119           internal
14120
14121 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14122
14123         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
14124         Simple mode, fixes, IntegralHeight, etc.
14125
14126 2005-01-04  Peter Bartok <pbartok@novell.com>
14127
14128         * TextBoxBase.cs: Using proper font variable now
14129
14130 2005-01-04  Peter Bartok <pbartok@novell.com>
14131
14132         * Form.cs (ShowDialog): Set parent to owner, if provided
14133         * GroupBox.cs: Removed unused vars
14134         * TextControl.cs:
14135           - Added GetHashCode() for Document and LineTag classes
14136           - Removed unused variables
14137           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
14138             to allow translation between continuous char position and line/pos
14139         * CheckBox.cs: Removed vars that are provided by base class
14140         * RadioButton.cs: Removed vars that are provided by base class, added
14141           new keyword where required
14142         * LinkLabel.cs: Added new keyword where required
14143         * Control.cs (WndProc): Removed unused variable
14144         * TextBoxBase.cs:
14145           - Finished SelectionLength property
14146           - Implemented SelectionStart property
14147           - Implemented Text property
14148           - Removed unused vars
14149         * MessageBox.cs: Added new keyword where required
14150         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
14151           WndProc signature
14152         * MenuAPI.cs: Added new keyword where required
14153         * ButtonBase.cs: Removed vars that are provided by base class, added
14154           new keyword where required
14155         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
14156           argument to double, to allow compiling with csc 2.0 (Atsushi ran
14157           into this)
14158         * Application.cs (Run): Now triggers the ThreadExit event
14159         * CommonDialog.cs: Added new keyword where required; now properly sets
14160           parent (owner) for dialog
14161         * XplatUIX11.cs: Commented out unused vars
14162         * StatusBar.cs: Fixed signature for Text property
14163         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
14164
14165 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14166
14167         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
14168         TrackBar.cs, MonthCalendar.cs: remove unused vars
14169
14170 2005-01-03  Jackson Harper  <jackson@ximian.com>
14171
14172         * ThemeWin32Classic.cs:
14173         * X11Keyboard.cs: Remove unused vars.
14174
14175 2005-01-03  Peter Bartok  <pbartok@novell.com>
14176
14177         * TextBox.cs:
14178           - set_Text: Tied into TextControl
14179           - set_TextAlignment: Tied into TextControl
14180         * TextControl.cs:
14181           - Added alignment properties and implemented alignment handling
14182             and drawing (still has a bug, not generating proper expose events)
14183           - Added new Line() constructor to allow passing the line alignment
14184           - Fixed selection setting, properly handling end<start now
14185           - Added aligment considerations to RecalculateDocument()
14186         * TextBoxBase.cs:
14187           - Now properly enforces control height for single line controls
14188           - Added support for CharacterCasing
14189           - Added IsInputKey override
14190           - Fixed Keys.Enter logic
14191           - Added SetBoundsCore override
14192           - Fixed mouse selection handling
14193
14194 2005-01-03  Jackson Harper  <jackson@ximian.com>
14195
14196         * TreeView.cs:
14197           - Collapse and uncheck all nodes when CheckBoxes is disabled.
14198           - Checkboxes are always aligned to the bottom of the node,
14199           regardless of item height.
14200           - Use the node bounds to draw the text so we can center it when
14201           the item height is greater then the font height.
14202           - Node::Bounds are only the text part of the node.
14203         * TreeNode.cs: New method to combine collapsing and unchecking all
14204           nodes recursively.
14205
14206 2005-01-02  Jackson Harper  <jackson@ximian.com>
14207
14208         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
14209         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
14210         tree when a check is changed. TODO: Only refresh the checked node.
14211
14212 2004-12-30  Jackson Harper  <jackson@ximian.com>
14213
14214         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
14215         * TreeNode.cs: When collapsing make sure to never collapse the
14216         root node.
14217
14218 2004-12-29  Jackson Harper  <jackson@ximian.com>
14219
14220         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
14221         
14222 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
14223
14224         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
14225
14226 2004-12-28  Peter Bartok  <pbartok@novell.com>
14227
14228         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
14229           not yet assigned
14230
14231 2004-12-28  Peter Bartok  <pbartok@novell.com>
14232
14233         * Control.cs (WndProc): Added WM_HELP handler, now generates
14234           HelpRequested event
14235         * Form.cs: Added HelpButton property and required support code
14236         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
14237
14238 2004-12-28  Peter Bartok  <pbartok@novell.com>
14239
14240         * CommonDialog.cs:
14241           - Made DialogForm.owner variable internal
14242           - Added check to ensure owner form is set before setting
14243             owner properties in CreateParams
14244
14245 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
14246
14247         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
14248           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
14249           GetCursorPos.  Fix major visibility issues.  Rework the windowing
14250           system to support borderless/titleless windows (implements menus).
14251           Fix GetWindowPos.  Implement initial background color support for
14252           views.
14253
14254 2004-12-28  Peter Bartok  <pbartok@novell.com>
14255
14256         * Form.cs (get_CreateParams): Make sure we have an owner before using
14257           the owner variable. Implement proper default if no owner exists
14258
14259 2004-12-28  Peter Bartok  <pbartok@novell.com>
14260
14261         * In preparation for making Managed.Windows.Forms the default build target
14262           for System.Windows.Forms, the following stubbed files were added.
14263           Dialogs are currently being implemented by contributors and are only
14264           short-term place holders.
14265         * ColorDialog.cs: Initial check-in (minmal stub)
14266         * DataGrid.cs: Initial check-in (minimal stub)
14267         * DataGridLineStyle.cs: Initial check-in (minimal stub)
14268         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
14269         * DataGridTableStyle.cs: Initial check-in (minimal stub)
14270         * FontDialog.cs: Initial check-in (minimal stub)
14271         * FileDialog.cs: Initial check-in (minimal stub)
14272         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
14273         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
14274         * OpenFileDialog: Initial check-in (minimal stub)
14275         * IComponentEditorPageSite.cs: Initial check-in
14276         * Splitter.cs: Initial check-in (for Jackson)
14277         * SplitterEventArgs.cs: Initial check-in (for Jackson)
14278         * SplitterEventHandler.cs: Initial check-in (for Jackson)
14279         * TextBox.cs: Initial check-in; still needs some wiring to
14280           TextControl backend
14281         * Form.cs: Implemented ControlBox property
14282         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
14283         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
14284         * TextControl.cs: Added selection functionality; added todo header
14285         * TextBoxBase.cs:
14286           - Implemented Lines property
14287           - Implemented TextHeight property
14288           - Implemented SelectedText property
14289           - Implemented SelectionLength property
14290           - Implemented SelectAll method
14291           - Implemented ToString method
14292           - Removed and cleaned up some debug code
14293           - Implemented (still buggy) mouse text selection
14294
14295 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
14296
14297         * ComboBox.cs: Complete DropDownList implementation, fixes.
14298
14299 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
14300
14301         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
14302         * ComboBoxStyle.cs: ComboBoxStyle enum
14303         * ComboBox.cs: Initial work on ComboBox control
14304
14305 2004-12-21  Peter Bartok  <pbartok@novell.com>
14306
14307         * Control.cs (ctor, CreateParams): Moved setting of is_visible
14308           forward so that anything that creates a window gets the default,
14309           also no longer uses Visible property in CreateParams to avoid
14310           walking up the parent chain and possibly get the wrong visible
14311           status. Fixed IsVisible to no longer walk up to the parent.
14312
14313 2004-12-21  Peter Bartok  <pbartok@novell.com>
14314
14315         * Form.cs (ShowDialog): Unset modality for the proper window
14316  
14317 2004-12-20  Peter Bartok  <pbartok@novell.com>
14318
14319         * CommonDialog.cs: Initial check-in
14320
14321 2004-12-20  Peter Bartok  <pbartok@novell.com>
14322
14323         * Control.cs (Visible): Now uses the parent window instead of the
14324           client area window for the property
14325
14326         * Form.cs
14327           - ShowDialog(): Now uses the proper window for modality
14328           - The default visibility state for the form parent is now false. This
14329             will prevent the user from seeing all the changes to the form and
14330             its controls before the application hits Application.Run()
14331           - Removed some stale commented out code
14332
14333         * NativeWindow.cs:
14334           - Added FindWindow() method to have a method to check for existence
14335             of a window handle
14336           - Added ability to override default exception handling (for example
14337             when debugging with VS.Net; to do this the ExternalExceptionHandler
14338             define must be set
14339           - Removed some useless debug output
14340
14341         * XplatUIX11.cs:
14342           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
14343             not working as expected
14344           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
14345             property to allow switching back to the modal window if focus is
14346             given to another one of our windows (Application Modal)
14347           - Now only sets override_redirect if we create a window
14348             without WS_CAPTION
14349           - Moved EventMask selection before mapping of newly created window
14350             so we can catch the map event as well
14351           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
14352           - Added various Atom related DllImports
14353           - Implemented Exit() method
14354           - .ctor() : No longer shows window if WS_VISIBLE is not defined
14355             in the CreateParams
14356
14357         * MessageBox.cs: Now properly deals with the FormParent window by
14358           providing an override the FormParent CreateParams property to
14359           set as POPUP instead of OVERLAPPED window.
14360
14361 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14362
14363         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
14364         Minor code cleanup.
14365
14366 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14367         
14368         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
14369
14370 2004-12-18  Peter Bartok  <pbartok@novell.com>
14371
14372         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
14373           implementing SetModal() method
14374
14375 2004-12-18  Peter Bartok  <pbartok@novell.com>
14376
14377         * X11Structs.cs (XGCValues): Fixed type of function element
14378         * XplatUI.cs: Added ScrollWindow() method
14379         * XplatUIDriver.cs: Added ScrollWindow() abstract
14380         * XplatUIWin32.cs: Implemented ScrollWindow() method
14381         * XplatUIX11.cs: Implemented ScrollWindow() method
14382         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
14383
14384 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14385
14386         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
14387         Some more keyboard support (INCOMPLETE)
14388
14389 2004-12-17  Peter Bartok  <pbartok@novell.com>
14390
14391         * TextControl.cs:
14392         - Added color attribute to line tags.
14393         - Added color argument to all functions dealing with tags
14394         - Added color argument support to various functions
14395         - Fixed miss-calculation of baseline/shift in certain circumstances
14396
14397         * TextBoxBase.cs: Added new color option to test code
14398
14399 2004-12-17  Jackson Harper  <jackson@ximian.com>
14400
14401         * TreeNode.cs:
14402         * MonthCalendar.cs: Signature fixes
14403
14404 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14405
14406         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
14407         keyboard event moved it.  Create a new graphics context for each paint resolves this
14408
14409 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14410
14411         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
14412         Make caret exist and go blink blink.  Initial keyboard support.
14413         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
14414         works.
14415
14416 2004-12-17  Jackson Harper  <jackson@ximian.com>
14417
14418         * XplatUIStructs.cs: Updated set of virtual keycodes.
14419         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
14420
14421 2004-12-17  Jackson Harper  <jackson@ximian.com>
14422
14423         * XplatUIX11.cs: Prune old keyboard code.
14424
14425 2004-12-17  Jackson Harper  <jackson@ximian.com>
14426
14427         * XplatUIX11.cs: When generating mouse wparams get the modifier
14428         keys from the ModifierKeys property.
14429
14430 2004-12-17  Jackson Harper  <jackson@ximian.com>
14431
14432         * X11Keyboard.cs: Send up/down input when generating
14433         messages. Remove some unused vars.
14434
14435 2004-12-17  Jackson Harper  <jackson@ximian.com>
14436
14437         * TabControl.cs:
14438         * TreeView.cs: get rid of warnings.
14439
14440 2004-12-17  Jackson Harper  <jackson@ximian.com>
14441
14442         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
14443
14444 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
14445
14446         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
14447           CheckedListBox.cs: Implementation
14448
14449 2004-12-17  Peter Bartok  <pbartok@novell.com>
14450
14451         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
14452
14453 2004-12-16  Peter Bartok  <pbartok@novell.com>
14454
14455         * TextControl.cs:
14456           - InsertCharAtCaret(): Fixed start pos fixup
14457           - CaretLine_get: No longer derives the line from the tag, the tag
14458             could be stale if lines in the document have been added or deleted
14459           - RebalanceAfterDelete(): Fixed bug in balancing code
14460           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
14461           - Line.Streamline(): Now can also elminate leading empty tags
14462           - DumpTree(): Added a few more tests and prevented exception on
14463             uninitialized data
14464           - Added Debug section for Combining lines
14465           - Delete(): Now copies all remaining properties of a line
14466           
14467         * TextBoxBase.cs:
14468           - Left mousebutton now sets the caret (and middle button still acts
14469             as formatting tester, which must go away soon)
14470           - Added Debug section for Deleting/Combining lines
14471           - Fixed calculations for UpdateView after Combining lines
14472
14473 2004-12-16  Peter Bartok  <pbartok@novell.com>
14474
14475         * TextControl.cs: Now properly aligns text on a baseline, using the
14476           new XplatUI.GetFontMetrics() method. Simplified several calculations
14477         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
14478           defined
14479
14480 2004-12-16  Peter Bartok  <pbartok@novell.com>
14481
14482         * XplatUI.cs: Added GetFontMetrics() method
14483         * XplatUIDriver.cs: Added GetFontMetrics() abstract
14484         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
14485           into libgdiplus, our private GetFontMetrics function
14486         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
14487         * XplatUIWin32.cs: Implemented GetFontMetrics() method
14488
14489 2004-12-16  Jackson Harper  <jackson@ximain.com>
14490
14491         * XplatUIStruct.cs: Add enum for dead keys
14492         * X11Keyboard.cs: Map and unmap dead keys.
14493
14494 2004-12-16  Jackson Harper  <jackson@ximian.com>
14495
14496         * X11Keyboard.cs: Detect and use the num lock mask.
14497
14498 2004-12-16  Peter Bartok  <pbartok@novell.com>
14499
14500         * Control.cs (CreateGraphics): Added check to make sure the
14501           handle of the window exists before calling Graphics.FromHwnd()
14502
14503 2004-12-16  Peter Bartok  <pbartok@novell.com>
14504
14505         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
14506           contains a lot of code that's not supposed to be there for the
14507           real thing, but required for developing/testing the textbox
14508           backend.
14509
14510 2004-12-16  Peter Bartok  <pbartok@novell.com>
14511
14512         * TextControl.cs:
14513         - Fixed Streamline method
14514         - Added FindTag method to Line
14515         - Added DumpTree method for debugging
14516         - Added DecrementLines() method for deleting lines
14517         - Fixed UpdateView to update the cursor to end-of-line on single-line
14518           updates
14519         - Added PositionCaret() method
14520         - Fixed MoveCaret(LineDown) to move into the last line, too
14521         - Added InsertChar overload
14522         - Fixed InsertChar tag offset calculations
14523         - Added DeleteChar() method
14524         - Added Combine() method for folding lines
14525         - Fixed Delete() method, no longer allocates wasted Line object and
14526           now copies all properties when swapping nodes
14527         - Delete() method now updates document line counter
14528
14529 2004-12-15  Jackson Harper  <jackson@ximian.com>
14530
14531         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
14532         * X11Keyboard.cs: Expose the currently selected modifier keys
14533         through a property.
14534
14535 2004-12-15  Peter Bartok  <pbartok@novell.com>
14536
14537         * TextControl.cs: Initial check-in. Still incomplete
14538
14539 2004-12-15  Jackson Harper  <jackson@ximian.com>
14540
14541         * TreeNode.cs:
14542         * TreeView.cs: Fix build on csc (second time today ;-))
14543
14544 2004-12-15  Jackson Harper  <jackson@ximian.com>
14545
14546         * TreeView.cs: Store the treenodes plus/minus box bounds when it
14547         is calculated and use this for click testing.
14548         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
14549
14550 2004-12-15  Jackson Harper  <jackson@ximian.com>
14551
14552         * TreeView.cs: Pass the nodes image index to the image list when
14553         drawing that image.
14554
14555 2004-12-15  Jackson Harper  <jackson@ximian.com>
14556
14557         * X11Keyboard.cs: Set messages hwnd.
14558         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
14559         post_message calls.
14560
14561 2004-12-15  Jackson Harper  <jackson@ximian.com>
14562
14563         * X11Keyboard.cs: Fix to compile with csc.
14564         
14565 2004-12-15  Jackson Harper  <jackson@ximian.com>
14566
14567         * X11Structs.cs: Add key mask values
14568         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
14569         * X11Keyboard.cs: New file - Extrapolates and interpolates key
14570         down/up foo into WM_CHAR foo
14571         * KeyboardLayouts.cs: Common keyboard layouts
14572         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
14573         post messages into the main queue.
14574
14575 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
14576
14577         * Button.cs: implement ProcessMnemonic
14578         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
14579           brushes everytime
14580         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
14581         * ButtonBase.cs: Show HotkeyPrefix (not the &)
14582
14583 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
14584         
14585         * MonthCalendar.cs: Implemented click-hold for next/previous month
14586           and date selection
14587           
14588 2004-12-11  Peter Bartok  <pbartok@novell.com>
14589
14590         * X11Structs.cs:
14591           - Added XKeyboardState (moved from XplatUIX11.cs)
14592           - Added XCreateGC related enums and structures
14593           - Added GXFunction for XSetFunction
14594
14595         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
14596
14597         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
14598           CaretVisible() calls
14599
14600         * ToolTip.cs: Added code to prevent stealing focus from app windows
14601
14602         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
14603           DestroyCaret, SetCaretPos and CaretVisible)
14604
14605         * XplatUIX11.cs:
14606           - Added implementation for caret functions
14607           - Moved hover variables into a struct, to make it a bit easier
14608             on the eyes and to debug
14609           - Removed XKeyboardState (moved to XplatUIX11.cs)
14610           - Moved Keyboard properties into the properties region
14611
14612         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
14613           call to get a graphics context for our control
14614
14615         * XplatUIOSX.cs: Added empty overrides for the new caret functions
14616
14617         * TreeView.cs: Fixed bug. No matter what color was set it would always
14618           return SystemColors.Window
14619
14620         * XplatUIWin32.cs: Implemented caret overrides
14621
14622 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
14623
14624         * ListBox.cs: fire events, implement missing methods and properties,
14625         sorting.
14626
14627 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
14628
14629         * MonthCalendar.cs: invalidation bug fixing
14630         * ThemeWin32Classic.cs: paint fixing
14631
14632 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
14633
14634         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
14635         prepare the CGContextRef there now.
14636
14637 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
14638
14639         * MonthCalendar.cs:
14640           - optimisationL only invalidate areas that have changed
14641         * ThemeWin32Classic.cs:
14642           - only paint parts that intersect with clip_area
14643
14644 2004-12-09  Peter Bartok  <pbartok@novell.com>
14645
14646         * Application.cs: Undid changes from r37004 which cause problems
14647         on X11
14648
14649 2004-12-09  Ravindra  <rkumar@novell.com>
14650
14651         * ToolBar.cs: Added support for displaying ContextMenu
14652         attached to a button on ToolBar.
14653         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
14654         property.
14655
14656 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14657
14658         * Label.cs: autosize works in text change and removes unnecessary
14659         invalidate
14660
14661 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14662
14663         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14664         remove warnings
14665
14666 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
14667
14668         * XplatUIOSX.cs: Added mouse move/click/grab support
14669         Remove some debugging WriteLines not needed anymore.
14670         Add window resizing/positioning.
14671         Fix visibility on reparenting.
14672
14673 2004-12-08  Peter Bartok  <pbartok@novell.com>
14674
14675         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
14676
14677 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
14678
14679         * XplatUIOSX.cs: Initial checkin
14680         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
14681
14682 2004-12-03  Ravindra <rkumar@novell.com>
14683
14684         * ListView.cs: Added some keybindings and fixed scrolling.
14685         ScrollBars listen to ValueChanged event instead of Scroll
14686         Event. This would let us take care of all changes being
14687         done in the scrollbars' values programmatically or manually.
14688         * ListView.cs (CanMultiselect): Added a check for shift key.
14689         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
14690         * ListViewItem.cs (Clone): Fixed. We need to make a copy
14691         of ListViewSubItemCollection as well.
14692
14693 2004-12-06  Peter Bartok <pbartok@novell.com>
14694
14695         * Control.cs (Parent): Added check and exception to prevent
14696         circular parenting
14697
14698 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
14699
14700         * ListBox.cs: implemented clipping, selection single and multiple,
14701         bug fixing
14702
14703 2004-12-03  Ravindra <rkumar@novell.com>
14704
14705         * ListView.cs (ListView_KeyDown):
14706         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
14707         when CTRL key is pressed.
14708         * ListViewItem.cs (Selected): Fixed setting the property.
14709
14710 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14711
14712         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
14713
14714         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
14715         MinimizeBox, ShowInTaskbar, TopMost properties.
14716
14717         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
14718         will be implemented).
14719
14720 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14721
14722         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
14723
14724         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
14725         tests.
14726         
14727         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
14728         
14729         * TreeView.cs: BackColor is Colors.Window.
14730
14731 2004-12-01  Jackson Harper  <jackson@ximian.com>
14732
14733         * TreeView.cs: When resizing the tree if the user is making it
14734         smaller we don't get expose events, so we need to handle adding
14735         the horizontal scrollbar in the size changed handler as well as
14736         the expose handler.
14737
14738 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
14739
14740         * DrawItemState.cs: fixes wrong enum values
14741
14742 2004-12-01  Jackson Harper  <jackson@ximian.com>
14743
14744         * TreeView.cs: Resize the hbar as well as the vbar on resize.
14745
14746 2004-12-01  Jackson Harper  <jackson@ximian.com>
14747
14748         * NodeLabelEditEventArgs.cs:
14749         * NodeLabelEditEventHandler.cs:
14750         * OpenTreeNodeEnumerator.cs:
14751         * TreeNode.cs:
14752         * TreeNodeCollection.cs:
14753         * TreeView.cs:
14754         * TreeViewAction.cs:
14755         * TreeViewCancelEventArgs.cs:
14756         * TreeViewCancelEventHandler.cs:
14757         * TreeViewEventArgs.cs:
14758         * TreeViewEventHandler.cs: Initial implementation.
14759
14760 2004-12-01  Ravindra <rkumar@novell.com>
14761
14762         * ListView.cs (CalculateListView): Fixed scrolling related
14763         calculations. Also, removed some debug statements from other
14764         places.
14765         * ListViewItem.cs: Changed access to 'selected' instance variable
14766         from private to internal.
14767         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
14768
14769 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
14770
14771         * ThemeWin32Classic.cs: remove cache of brush and pens for
14772         specific controls and use the global system, fixes scrollbutton
14773         bugs (for small sizes, disabled, etc)
14774         
14775         * ScrollBar.cs: does not show the thumb for very small controls
14776         (as MS) and allow smaller buttons that the regular size
14777
14778 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
14779
14780         * UpDownBase.cs: Add abstract methods for the interface.
14781         Add new virtual methods (need to be hooked up to TextEntry when it
14782         exists).
14783         Add override methods for most features.
14784         Computes the size, forces the height of the text entry.
14785
14786         * NumericUpDown.cs: Put here the current testing code.
14787
14788         * Set eol-style property on all files that do not have mixed line
14789         endings, to minimize the future problems.  There are still a few
14790         files with mixed endings, and someone should choose whether they
14791         want to move it or not.
14792
14793 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
14794
14795         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
14796         System.Colors
14797         
14798 2004-11-30  Ravindra <rkumar@novell.com>
14799
14800         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
14801         drawing and replaced use of SystemColors by theme colors.
14802         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
14803         * ListView.cs (ListViewItemCollection.Add): Throw exception when
14804         same ListViewItem is being added more than once.
14805
14806 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
14807
14808         * MonthCalendar.cs:
14809           - ControlStyles love to make the control not flicker
14810           
14811 2004-11-30  Peter Bartok  <pbartok@novell.com>
14812
14813         * CharacterCasing.cs: Added
14814
14815 2004-11-29  Peter Bartok  <pbartok@novell.com>
14816
14817         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
14818           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
14819           I am removing these files as they conflict with already completed
14820           work. While it is fantastic to get contributions to MWF, I
14821           respectfully ask that everyone please coordinate their contributions
14822           through mono-winforms-list or #mono-winforms at this time. We're
14823           explicitly avoiding stubbing and don't want controls that don't have
14824           their basic functionality implemented in svn. Please also see
14825           http://www.mono-project.com/contributing/winforms.html
14826
14827
14828 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
14829
14830         * Application.cs (ModalRun): Don't hang after exit.
14831
14832         * Theme.cs: New TreeViewDefaultSize property.
14833
14834         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
14835         with less hardcoded SystemColors constant.
14836         Implemented TreeViewDefaultSize.
14837
14838         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
14839         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
14840
14841
14842 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
14843
14844         * MonthCalendar.cs:
14845           - Fix NextMonthDate and PrevMonthDate click moving calendar
14846
14847 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
14848
14849         * MonthCalendar.cs:
14850           - Fix usage of ScrollChange Property when scrolling months
14851
14852 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
14853
14854         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
14855          - Fixes menu destroying
14856          - Support adding and removing items on already created menus
14857
14858 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
14859
14860         * MonthCalendar.cs:
14861           - Re-worked all bolded dates handling to match win32
14862         * ThemeWin32Classic.cs:
14863           - Fixed rendering with bolded dates
14864
14865 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
14866
14867         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
14868         - Horizontal scroolbar
14869         - Multicolumn
14870         - Fixes
14871
14872
14873 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
14874
14875         * MonthCalendar.cs:
14876           - Fix Usage of MaxSelectionCount from SelectionRange
14877           - Fixed Shift + Cursor Selection
14878           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
14879           - Fixed normal cursor selection to be compat with win32
14880           - Fixed Shift + Mouse Click selection
14881
14882 2004-11-24  Peter Bartok <pbartok@novell.com>
14883
14884         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
14885         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
14886         * XplatUIX11.cs:
14887           - CreatedKeyBoardMsg now updates keystate with Alt key
14888           - Added workaround for timer crash to CheckTimers, Jackson will
14889             develop a proper fix and check in later
14890           - Implemented DispatchMessage
14891           - Removed calling the native window proc from GetMessage (call
14892             now moved to DispatchMessage)
14893
14894         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
14895           the keydata (Fixes bug #69831)
14896
14897         * XplatUIWin32.cs:
14898           - (DispatchMessage): Switched to return IntPtr
14899           - Added DllImport for SetFocus
14900
14901 2004-11-24  Ravindra <rkumar@novell.com>
14902
14903         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
14904         background drawing.
14905         * ListViewItem.cs: Fixed various properties, calculations
14906         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
14907         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
14908         and some internal properties. Fixed MouseDown handler and Paint
14909         method.
14910
14911 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14912
14913         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
14914
14915 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14916
14917         * ContainerControl.cs: correct accidental check in of local changes
14918
14919 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
14920
14921         * ThemeWin32Classic.cs:
14922                 - Fixed Drawing Last month in grid (sometimes not showing)
14923         * MonthCalendar.cs:
14924                 - Fixed title width calculation bug (makeing title small)
14925
14926 2004-11-23  Peter Bartok <pbartok@novell.com>
14927
14928         * XplatUIX11.cs:
14929           - Added generation of WM_MOUSEHOVER event
14930           - Added missing assignment of async_method atom
14931           - Fixed WM_ERASEBKGND; now only redraws the exposed area
14932
14933 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
14934
14935         * ThemeWin32Classic.cs:
14936                 - Fixed Drawing of today circle when showtodaycircle not set
14937                 - fixed drawing of first and last month in the grid (gay dates)
14938         * MonthCalendar.cs:
14939                 - Fixed Drawing of today circle
14940                 - Fixed drawing of grady dates
14941                 - Fixed HitTest for today link when ShowToday set to false
14942                 - Fixed DefaultSize to obey ShowToday
14943
14944 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
14945
14946         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
14947         * System.Windows.Forms/Theme.cs
14948         * MonthCalendar.cs: added for MonthCalendar
14949         * SelectionRange.cs: added for MonthCalendar
14950         * Day.cs: added for MonthCalendar: added for MonthCalendar
14951         * DateRangeEventArgs.cs: added for MonthCalendar
14952         * DateRangeEventHandler.cs: added for MonthCalendar
14953
14954 2004-11-22  Ravindra <rkumar@novell.com>
14955
14956         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
14957         property.
14958
14959 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
14960
14961         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
14962         event handler.
14963         
14964         * NumericUpDown.cs: Added new implementation.
14965         * UpDownBase.cs: Added new implementation.
14966
14967         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
14968         implementations.
14969         
14970         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
14971         implementations.
14972
14973         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
14974         methods.
14975
14976 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
14977
14978         * Timer.cs  (Dispose): Should call the base dispose when
14979         overriding.
14980
14981 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
14982
14983         * ScrollBar.cs: updates thumb position when max, min or increment
14984         is changed
14985
14986 2004-11-21  Ravindra <rkumar@novell.com>
14987
14988         * ListView.cs: Implemented item selection, activation and
14989         column header style. Fixed properties to do a redraw, if
14990         required. Added support for MouseHover, DoubleClick, KeyDown
14991         and KeyUp event handling and some minor fixes.
14992         * ListViewItem.cs: Fixed constructor.
14993         * ThemeWin32Classic.cs: Improved drawing for ListView.
14994
14995 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
14996
14997         * ThemeWin32Classic.cs: initial listbox drawing code
14998         * DrawMode.cs: new enumerator
14999         * ListControl.cs: stubbed class
15000         * ListBox.cs: initial implementation
15001         * Theme.cs: new methods definitions
15002         * SelectionMode.cs: new enumerator
15003
15004 2004-11-17  Peter Bartok  <pbartok@novell.com>
15005
15006         * XplatUIWin32.cs: Added double-click events to the class style
15007         * Control.cs (WndProc):
15008           - Added handling of click-count to MouseDown/ MouseUp events.
15009           - Added handling of middle and right mouse buttons
15010           - Removed old debug code
15011
15012 2004-11-17  Jackson Harper  <jackson@ximian.com>
15013
15014         * XplatUIX11.cs: Use the new Mono.Unix namespace.
15015
15016 2004-11-17  Ravindra <rkumar@novell.com>
15017
15018         * ListView.cs: Added event handling for MouseMove/Up/Down.
15019         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
15020         * ThemeWin32Classic.cs: We need to clear the graphics context and
15021         draw column header in a proper state.
15022
15023
15024 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
15025
15026         *  Menu.cs: fixes signature
15027
15028 2004-11-16  Peter Bartok  <pbartok@novell.com>
15029
15030         * XplatUIX11.cs (GetMessage): Implemented generation of
15031           double click mouse messages
15032
15033 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
15034
15035         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
15036         not by menu
15037
15038 2004-11-11  Peter Bartok  <pbartok@novell.com>
15039
15040         * HandleData.cs: Added Visible property
15041         * XplatUIX11.cs (IsVisible): Now uses Visible property from
15042           HandleData
15043         * XplatUIX11.cs: Removed old debug leftovers
15044         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
15045         * Control.cs (WndProc): Removed old debug leftovers,
15046           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
15047           needed WM_SIZE handling
15048
15049 2004-11-11  Jackson Harper  <jackson@ximian.com>
15050
15051         * OwnerDrawPropertyBag.cs:
15052         * TreeViewImageIndexConverter.cs: Initial implementation
15053
15054 2004-11-10  Jackson Harper  <jackson@ximian.com>
15055
15056         * ThemeWin32Classic.cs:
15057         * TabControl.cs: instead of moving tabs by the slider pos just
15058         start drawing at the tab that is offset by the slider. This way
15059         scrolling always moves by exactly one tab.
15060
15061 2004-11-10  Jackson Harper  <jackson@ximian.com>
15062
15063         * TabControl.cs: You can only scroll left when the slider has
15064         already ben moved right.
15065         
15066 2004-11-10  Jackson Harper  <jackson@ximian.com>
15067
15068         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
15069         the clip area.
15070         
15071 2004-11-10  Jackson Harper  <jackson@ximian.com>
15072
15073         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
15074         clip area.
15075         
15076 2004-11-09  Jackson Harper  <jackson@ximian.com>
15077
15078         * TabControl.cs (CalcXPos): New helper method so we can determine
15079         the proper place to start drawing vertical tabs.
15080         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
15081         
15082 2004-11-09  Jackson Harper  <jackson@ximian.com>
15083
15084         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
15085         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
15086         and Bottom, left and right are illegal values for this and
15087         multiline is enabled when the alignment is set to left or right.
15088         (DrawTab): Each alignment block should draw the text itself now
15089         because Left requires special love. Also add rendering for Left
15090         aligned tabs.
15091         
15092 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
15093
15094         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
15095         does not destroy the windows, removes debugging messages
15096
15097 2004-11-09  jba  <jba-mono@optusnet.com.au>
15098
15099         * ThemeWin32Classic.cs
15100         (DrawButtonBase): Fix verticle text rect clipping in windows
15101         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15102         rendering and incorrect text rect clipping
15103         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15104         rendering and incorrect text rect clipping
15105         
15106 2004-11-08  Jackson Harper  <jackson@ximian.com>
15107
15108         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
15109         bottom when they are bottom aligned so the bottoms of the tabs get
15110         displayed.
15111         * TabControl.cs (DropRow): Move rows up instead of down when the
15112         tab control is bottom aligned.
15113
15114 2004-11-08 13:59  pbartok
15115
15116         * XplatUIX11.cs:
15117           - Added handling for various window styles
15118           - Added handling for popup windows
15119           - Added SetTopmost handling
15120
15121 2004-11-08 13:55  pbartok
15122
15123         * XplatUIWin32.cs:
15124           - Added argument to SetTopmost method
15125           - Fixed broken ClientToScreen function
15126
15127 2004-11-08 13:53  pbartok
15128
15129         * XplatUIStructs.cs:
15130           - Added missing WS_EX styles
15131
15132 2004-11-08 13:53  pbartok
15133
15134         * XplatUI.cs, XplatUIDriver.cs:
15135           - Added argument to SetTopmost
15136
15137 2004-11-08 13:52  pbartok
15138
15139         * X11Structs.cs:
15140           - Added XSetWindowAttributes structure
15141           - Improved XWindowAttributes structure
15142           - Added SetWindowValuemask enum
15143           - Added window creation arguments enum
15144           - Added gravity enum
15145           - Added Motif hints structure
15146           - Added various Motif flags and enums
15147           - Added PropertyMode enum for property functions
15148
15149 2004-11-08 13:50  pbartok
15150
15151         * Form.cs:
15152           - Fixed arguments for updated SetTopmost method
15153
15154 2004-11-08 13:49  pbartok
15155
15156         * ToolTip.cs:
15157           - Fixed arguments for updated SetTopmost function
15158           - Fixed usage of PointToClient
15159
15160 2004-11-08 13:44  pbartok
15161
15162         * MenuAPI.cs:
15163           - Added Clipping of children and siblings
15164
15165 2004-11-08 13:41  pbartok
15166
15167         * MainMenu.cs:
15168           - Removed SetMenuBarWindow call. We do this in Form.cs
15169
15170 2004-11-08 13:40  jackson
15171
15172         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
15173           scrolling jimmi in the correct location with bottom aligned tabs
15174
15175 2004-11-08 13:36  pbartok
15176
15177         * ContainerControl.cs:
15178           - Implemented BindingContext
15179           - Implemented ParentForm
15180
15181 2004-11-08 12:46  jackson
15182
15183         * TabControl.cs: Put bottom rendered tabs in the right location
15184
15185 2004-11-08 07:15  jordi
15186
15187         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
15188           removes dead code
15189
15190 2004-11-05 17:30  jackson
15191
15192         * TabControl.cs: When selected tabs are expanded make sure they
15193           don't go beyond the edges of the tab control
15194
15195 2004-11-05 14:57  jackson
15196
15197         * TabControl.cs: Reset show_slider so if the control is resized to
15198           a size where it is no longer needed it's not displayed anymore
15199
15200 2004-11-05 13:16  jackson
15201
15202         * TabControl.cs: Make tab pages non visible when added to the
15203           control
15204
15205 2004-11-05 12:42  jackson
15206
15207         * TabControl.cs: Implement SizeMode.FillToRight
15208
15209 2004-11-05 12:16  jackson
15210
15211         * Control.cs: Do not call CreateHandle if the handle is already
15212           created
15213
15214 2004-11-05 11:46  jackson
15215
15216         * TabControl.cs: Remove superflous call to CalcTabRows
15217
15218 2004-11-05 09:07  jackson
15219
15220         * XplatUIX11.cs: Update for Mono.Posix changes
15221
15222 2004-11-05 07:00  ravindra
15223
15224         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
15225           scrolling.
15226
15227 2004-11-04 22:47  jba
15228
15229         * ThemeWin32Classic.cs:
15230           - Fix Button rendering for FlatStyle = Flat or Popup
15231           - Fix RadioButton and CheckBox rendering when Appearance = Button
15232             (normal and flatstyle).
15233           - Correct outer rectangle color when drawing focus rectangle
15234           - Adjust button bounds to be 1 px smaller when focused
15235           - Make button not draw sunken 3d border when pushed (windows compat)
15236           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
15237           - Offset the text in RadioButton and Checkbox when being rendered as
15238           a button.
15239           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
15240           radiobuttons
15241           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
15242           - Fixed disabled text rendering for normally rendered radiobuttons
15243
15244 2004-11-04 10:26  jackson
15245
15246         * TabControl.cs: Recalculate tab rows when resizing
15247
15248 2004-11-04 07:47  jordi
15249
15250         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
15251           collection completion, drawing issues, missing features
15252
15253 2004-11-04 05:03  ravindra
15254
15255         * ScrollBar.cs:
15256                 - We need to recalculate the Thumb area when
15257                 LargeChange/maximum/minimum values are changed.
15258           - We set the 'pos' in UpdatePos() method to minimum, if it's less
15259                 than minimum. This is required to handle the case if large_change is
15260                 more than max, and use LargeChange property instead of large_change
15261                 variable.
15262           - We return max+1 when large_change is more than max, like MS does.
15263
15264 2004-11-04 04:29  ravindra
15265
15266         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
15267                 - Changed default value signatures (prefixed all with ListView).
15268                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
15269                 ListView.
15270           - Fixed calculations for ListViewItem and implemented Clone()
15271           method.
15272
15273 2004-11-04 04:26  ravindra
15274
15275         * Theme.cs, ThemeWin32Classic.cs:
15276                 - Changed default ListView values signatures (prefixed all with
15277                 ListView).
15278           - Fixed default size values for VScrollBar and HScrollBar.
15279                 - Fixed DrawListViewItem method.
15280
15281 2004-11-04 04:05  ravindra
15282
15283         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
15284
15285 2004-11-04 04:04  ravindra
15286
15287         * ImageList.cs: Implemented the missing overload for Draw method.
15288
15289 2004-11-03 19:29  jackson
15290
15291         * TabControl.cs: Handle dropping rows on selection properly
15292
15293 2004-11-03 11:59  jackson
15294
15295         * TabControl.cs: remove debug code
15296
15297 2004-11-03 11:52  jackson
15298
15299         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
15300           the scrolly widgerywoo
15301
15302 2004-11-02 13:52  jackson
15303
15304         * TabControl.cs: Resize the tab pages and tabs when the tab control
15305           is resized
15306
15307 2004-11-02 13:40  jackson
15308
15309         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
15310           selected tab to the bottom
15311
15312 2004-11-02 13:39  jackson
15313
15314         * TabPage.cs: Store the tab pages row
15315
15316 2004-11-02 12:33  jordi
15317
15318         * MenuItem.cs: fixes handle creation
15319
15320 2004-11-02 11:42  jackson
15321
15322         * TabControl.cs: signature fix
15323
15324 2004-11-02 08:56  jackson
15325
15326         * TabControl.cs: Calculate whether the tab is on an edge properly.
15327           Remove top secret debugging code
15328
15329 2004-11-01 19:57  jackson
15330
15331         * TabControl.cs: Add click handling, and proper sizing
15332
15333 2004-11-01 19:47  jackson
15334
15335         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
15336           tab controls
15337
15338 2004-11-01 19:39  jackson
15339
15340         * TabPage.cs: add internal property to store the bounds of a tab
15341           page
15342
15343 2004-10-30 04:23  ravindra
15344
15345         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
15346           values.
15347
15348 2004-10-30 04:21  ravindra
15349
15350         * ListView.cs, ListViewItem.cs: Added support for scrolling and
15351           fixed calculations.
15352
15353 2004-10-30 03:06  pbartok
15354
15355         * XplatUIX11.cs:
15356           - Removed extension of DllImported libs
15357
15358 2004-10-29 09:55  jordi
15359
15360         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
15361           navigation, itemcollection completion, menu fixes
15362
15363 2004-10-27 22:58  pbartok
15364
15365         * XplatUIX11.cs:
15366           - Now throws a nice error message when no X display could be opened
15367
15368 2004-10-26 13:51  jordi
15369
15370         * ListView.cs: removes warning
15371
15372 2004-10-26 03:55  ravindra
15373
15374         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
15375           ThemeWin32Classic.cs: Some formatting for my last checkins.
15376
15377 2004-10-26 03:36  ravindra
15378
15379         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
15380           control and default values.
15381
15382 2004-10-26 03:35  ravindra
15383
15384         * Theme.cs: Added some default values for ListView control.
15385
15386 2004-10-26 03:33  ravindra
15387
15388         * ToolBar.cs: ToolBar should use the user specified button size, if
15389           there is any. Added a size_specified flag for the same.
15390
15391 2004-10-26 03:33  ravindra
15392
15393         * ColumnHeader.cs: Added some internal members and calculations for
15394           ColumnHeader.
15395
15396 2004-10-26 03:32  ravindra
15397
15398         * ListViewItem.cs: Calculations for ListViewItem.
15399
15400 2004-10-26 03:31  ravindra
15401
15402         * ListView.cs: Added some internal members and calculations for
15403           ListView.
15404
15405 2004-10-22 13:31  jordi
15406
15407         * MenuAPI.cs: speedup menus drawing
15408
15409 2004-10-22 13:16  jackson
15410
15411         * XplatUIX11.cs: Make sure to update exposed regions when adding an
15412           expose event
15413
15414 2004-10-22 11:49  jackson
15415
15416         * Control.cs: oops
15417
15418 2004-10-22 11:41  jackson
15419
15420         * Control.cs: Check to see if the window should have its background
15421           repainted by X when drawing.
15422
15423 2004-10-22 11:31  jackson
15424
15425         * XplatUIX11.cs: When invalidating areas only use XClearArea if
15426           clear is true, this way we do not get flicker from X repainting the
15427           background
15428
15429 2004-10-22 11:28  jackson
15430
15431         * XEventQueue.cs: Queue properly
15432
15433 2004-10-21 09:38  jackson
15434
15435         * XEventQueue.cs: Fix access modifier
15436
15437 2004-10-21 09:36  jackson
15438
15439         * XEventQueue.cs: Don't loose messages
15440
15441 2004-10-21 09:22  jackson
15442
15443         * XEventQueue.cs: Don't loose messages
15444
15445 2004-10-20 04:15  jordi
15446
15447         * BootMode.cs: enum need it by SystemInfo
15448
15449 2004-10-19 21:58  pbartok
15450
15451         * XplatUIWin32.cs:
15452           - Small sanity check
15453
15454 2004-10-19 21:56  pbartok
15455
15456         * Form.cs:
15457           - Added private FormParentWindow class which acts as the container
15458             for our form and as the non-client area where menus are drawn
15459           - Added/Moved required tie-ins to Jordi's menus
15460           - Fixed/Implemented the FormStartPosition functionality
15461
15462 2004-10-19 21:52  pbartok
15463
15464         * Control.cs:
15465           - Removed unneeded locals
15466           - Added code to all size and location properties to understand and
15467             deal with the parent container of Form
15468
15469 2004-10-19 21:33  pbartok
15470
15471         * Application.cs:
15472           - Fixed to deal with new Form subclasses for menus
15473
15474 2004-10-19 17:48  jackson
15475
15476         * XEventQueue.cs: commit correct version of file
15477
15478 2004-10-19 16:50  jackson
15479
15480         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
15481
15482 2004-10-19 16:15  jordi
15483
15484         * MenuAPI.cs: MenuBarCalcSize returns the height
15485
15486 2004-10-19 08:31  pbartok
15487
15488         * Control.cs:
15489           - Added missing call to PreProcessMessage before calling OnXXXKey
15490           methods
15491
15492 2004-10-19 00:04  ravindra
15493
15494         * ToolTip.cs: Fixed constructor.
15495
15496 2004-10-18 09:31  jordi
15497
15498         * MenuAPI.cs: menuitems in menubars do not have shortcuts
15499
15500 2004-10-18 09:26  jordi
15501
15502         * MenuItem.cs: fixes MenuItem class signature
15503
15504 2004-10-18 08:56  jordi
15505
15506         * MenuAPI.cs: prevents windows from showing in the taskbar
15507
15508 2004-10-18 00:28  ravindra
15509
15510         * ToolTip.cs: Suppressed a warning message.
15511
15512 2004-10-18 00:27  ravindra
15513
15514         * Control.cs: Default value of visible property must be true.
15515
15516 2004-10-17 23:19  pbartok
15517
15518         * ToolTip.cs:
15519           - Complete implementation
15520
15521 2004-10-17 23:19  pbartok
15522
15523         * XplatUIX11.cs:
15524           - Added EnableWindow method
15525           - Added SetModal stub
15526           - Added generation of WM_ACTIVATE message (still needs testing)
15527           - Added SetTopMost stub
15528           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
15529
15530 2004-10-17 23:17  pbartok
15531
15532         * XplatUIWin32.cs:
15533           - Removed VirtualKeys to XplatUIStructs
15534           - Implemented SetTopMost method
15535           - Implemented EnableWindow method
15536           - Bugfix in ScreenToClient()
15537           - Bugfixes in ClientToScreen()
15538
15539 2004-10-17 22:51  pbartok
15540
15541         * XplatUIStructs.cs:
15542           - Added WS_EX styles to WindowStyles enumeration
15543
15544 2004-10-17 22:50  pbartok
15545
15546         * XplatUI.cs, XplatUIDriver.cs:
15547           - Added method for enabling/disabling windows
15548           - Added method for setting window modality
15549           - Added method for setting topmost window
15550
15551 2004-10-17 22:49  pbartok
15552
15553         * ThemeWin32Classic.cs:
15554           - Added ToolTip drawing code
15555
15556 2004-10-17 22:49  pbartok
15557
15558         * Theme.cs:
15559           - Added ToolTip abstracts
15560
15561 2004-10-17 22:47  pbartok
15562
15563         * Form.cs:
15564           - Fixed Form.ControlCollection to handle owner relations
15565           - Added Owner/OwnedForms handling
15566           - Implemented Z-Ordering for owned forms
15567           - Removed unneeded private overload of ShowDialog
15568           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
15569             so I hope)
15570           - Fixed Close(), had wrong default
15571           - Added firing of OnLoad event
15572           - Added some commented out debug code for Ownership handling
15573
15574 2004-10-17 22:16  pbartok
15575
15576         * Control.cs:
15577           - Fixed/implemented flat list of controls
15578
15579 2004-10-17 22:14  pbartok
15580
15581         * Application.cs:
15582           - Added code to simulate modal dialogs on Win32
15583
15584 2004-10-17 16:11  jordi
15585
15586         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
15587           mouse event
15588
15589 2004-10-17 13:39  jordi
15590
15591         * MenuAPI.cs: menu drawing fixes
15592
15593 2004-10-15 09:10  ravindra
15594
15595         * StructFormat.cs: General Enum.
15596
15597 2004-10-15 09:09  ravindra
15598
15599         * SizeGripStyle.cs: Enum for Form.
15600
15601 2004-10-15 09:08  ravindra
15602
15603         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
15604           in Theme for ListView.
15605
15606 2004-10-15 09:06  ravindra
15607
15608         * ColumnHeader.cs: Flushing some formatting changes.
15609
15610 2004-10-15 09:05  ravindra
15611
15612         * ListViewItem.cs: Implemented GetBounds method and fixed coding
15613           style.
15614
15615 2004-10-15 09:03  ravindra
15616
15617         * ListView.cs: Implemented Paint method and fixed coding style.
15618
15619 2004-10-15 07:34  jordi
15620
15621         * MenuAPI.cs: fix for X11
15622
15623 2004-10-15 07:32  ravindra
15624
15625         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
15626                 - Renamed Paint() method to Draw() for clarity. Also, moved
15627                 DrawImage() to OnPaint().
15628
15629 2004-10-15 07:25  ravindra
15630
15631         * CheckBox.cs, RadioButton.cs:
15632                 - Removed Redraw (), we get it from ButtonBase.
15633                 - Implemented Paint (), to do class specific painting.
15634
15635 2004-10-15 07:16  ravindra
15636
15637         * ButtonBase.cs:
15638                 - Redraw () is not virtual now.
15639                 - Added an internal virtual method Paint (), so that
15640                 derived classes can do their painting on their own.
15641                 - Modified OnPaint () to call Paint ().
15642
15643 2004-10-15 06:43  jordi
15644
15645         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
15646           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
15647
15648 2004-10-15 00:30  ravindra
15649
15650         * MessageBox.cs:
15651                 - MessageBox on windows does not have min/max buttons.
15652                 This change in CreateParams fixes this on Windows. We
15653                 still need to implement this windowstyle behavior in
15654                 our X11 driver.
15655
15656 2004-10-14 05:14  ravindra
15657
15658         * ToolBar.cs:
15659                 - Changed Redraw () to do a Refresh () always.
15660                 - Fixed the MouseMove event handling when mouse is pressed,
15661                 ie drag event handling.
15662                 - Replaced the usage of ToolBarButton.Pressed property to
15663                 ToolBarButton.pressed internal variable.
15664
15665 2004-10-14 05:10  ravindra
15666
15667         * ToolBarButton.cs:
15668                 - Added an internal member 'inside' to handle mouse move
15669                 with mouse pressed ie mouse drag event.
15670                 - Changed 'Pressed' property to return true only when
15671                 'inside' and 'pressed' are both true.
15672                 - Some coding style love.
15673
15674 2004-10-14 00:17  ravindra
15675
15676         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
15677           public method.
15678
15679 2004-10-14 00:15  ravindra
15680
15681         * ButtonBase.cs: Redraw () related improvements.
15682
15683 2004-10-14 00:14  ravindra
15684
15685         * MessageBox.cs: Moved InitFormSize () out of Paint method and
15686           removed unnecessary calls to Button.Show () method.
15687
15688 2004-10-13 17:50  pbartok
15689
15690         * XplatUIX11.cs:
15691           - Formatting fix
15692           - Removed destroying of window until we solve the problem of X
15693             destroying the window before us on shutdown
15694
15695 2004-10-13 16:32  pbartok
15696
15697         * ButtonBase.cs:
15698           - Now Redraws on MouseUp for FlatStyle Flat and Popup
15699
15700 2004-10-13 14:18  pbartok
15701
15702         * XplatUIX11.cs:
15703           - Added code to destroy the X window
15704
15705 2004-10-13 14:18  pbartok
15706
15707         * XplatUIWin32.cs:
15708           - Added code to destroy a window
15709
15710 2004-10-13 14:12  pbartok
15711
15712         * ButtonBase.cs:
15713           - Added the Redraw on Resize that got dropped in the last rev
15714
15715 2004-10-13 09:06  pbartok
15716
15717         * ThemeWin32Classic.cs:
15718           - Path from John BouAntoun:
15719             * Fix check rendering (centre correctly for normal style, offset
15720               correctly for FlatStyle).
15721             * Fix border color usage (use backcolor) for FlatStyle.Popup
15722             * Use checkbox.Capture instead of checkbox.is_pressed when
15723               rendering flatstyle states.
15724
15725 2004-10-12 21:48  pbartok
15726
15727         * ThemeWin32Classic.cs:
15728           - Removed all occurences of SystemColors and replaced them with the
15729             matching theme color
15730
15731 2004-10-12 21:41  pbartok
15732
15733         * ThemeWin32Classic.cs:
15734           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
15735             him using the function for flatstyle drawing
15736           - Changed functions to use the new version of CPDrawBorder3D
15737
15738 2004-10-12 21:15  pbartok
15739
15740         * ControlPaint.cs:
15741           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
15742             match MS documentation. They need to return defined colors if the
15743             passed color matches the configured control color. Thanks to John
15744             BouAntoun for pointing this out.
15745
15746 2004-10-12 20:57  pbartok
15747
15748         * Control.cs:
15749           - Fix from John BouAntoun: Raise ForeColorChanged event when text
15750             color is changed
15751
15752 2004-10-12 20:46  pbartok
15753
15754         * CheckBox.cs:
15755           - Fix from John BouAntoun: Now properly sets the Appearance property
15756
15757 2004-10-12 20:45  pbartok
15758
15759         * ThemeWin32Classic.cs:
15760           - Fixes from John BouAntoun: now handles forecolors and backcolors
15761             for flatstyle rendered controls much better; It also fixes normal
15762             checkbox rendering when pushed or disabled.
15763
15764 2004-10-08 02:50  jordi
15765
15766         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
15767           work
15768
15769 2004-10-07 08:56  jordi
15770
15771         * ThemeWin32Classic.cs: Removes deletion of cached brushes
15772
15773 2004-10-06 03:59  jordi
15774
15775         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
15776           XplatUIWin32.cs: removes warnings from compilation
15777
15778 2004-10-05 12:23  jackson
15779
15780         * RadioButton.cs: Fix ctor
15781
15782 2004-10-05 11:10  pbartok
15783
15784         * MessageBox.cs:
15785           - Partial implementation by Benjamin Dasnois
15786
15787 2004-10-05 10:15  jackson
15788
15789         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
15790           by John BouAntoun
15791
15792 2004-10-05 03:07  ravindra
15793
15794         * ToolBar.cs:
15795                 - Removed a private method, Draw ().
15796                 - Fixed the ButtonDropDown event handling.
15797                 - Fixed MouseMove event handling.
15798
15799 2004-10-05 03:04  ravindra
15800
15801         * ThemeWin32Classic.cs:
15802                 - Added DrawListView method and ListViewDefaultSize property.
15803                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
15804                 - Changed DOS style CRLF to Unix format (dos2unix).
15805
15806 2004-10-05 03:03  ravindra
15807
15808         * Theme.cs:
15809                 - Added DrawListView method and ListViewDefaultSize property.
15810
15811 2004-10-05 02:42  ravindra
15812
15813         * ToolBarButton.cs: Added an internal member dd_pressed to handle
15814           clicks on DropDown arrow.
15815
15816 2004-10-04 22:56  jackson
15817
15818         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
15819           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
15820           Control handle the buffers, derived classes should not have to
15821           CreateBuffers themselves.
15822
15823 2004-10-04 21:20  jackson
15824
15825         * StatusBar.cs: The control handles resizing the buffers now.
15826
15827 2004-10-04 21:18  jackson
15828
15829         * Control.cs: When resizing the buffers should be invalidated. This
15830           should be handled in Control not in derived classes.
15831
15832 2004-10-04 14:45  jackson
15833
15834         * TabPage.cs: oops
15835
15836 2004-10-04 02:14  pbartok
15837
15838         * LeftRightAlignment.cs:
15839           - Initial check-in
15840
15841 2004-10-04 01:09  jordi
15842
15843         * ThemeWin32Classic.cs: fixes right button position causing right
15844           button not showing on horizontal scrollbars
15845
15846 2004-10-02 13:12  pbartok
15847
15848         * XplatUIX11.cs:
15849           - Simplified the Invalidate method by using an X call instead of
15850             generating the expose ourselves
15851           - Added an expose when the window background is changed
15852           - Implemented ClientToScreen method
15853
15854 2004-10-02 13:08  pbartok
15855
15856         * XplatUIWin32.cs:
15857           - Added Win32EnableWindow method (test for implementing modal
15858           dialogs)
15859           - Added ClientToScreen method and imports
15860
15861 2004-10-02 13:07  pbartok
15862
15863         * XplatUI.cs, XplatUIDriver.cs:
15864           - Added ClientToScreen coordinate translation method
15865
15866 2004-10-02 13:06  pbartok
15867
15868         * KeyPressEventArgs.cs:
15869           - Fixed access level for constructor
15870
15871 2004-10-02 13:06  pbartok
15872
15873         * NativeWindow.cs:
15874           - Changed access level for the window_collection hash table
15875
15876 2004-10-02 13:05  pbartok
15877
15878         * Form.cs:
15879           - Added KeyPreview property
15880           - Added Menu property (still incomplete, pending Jordi's menu work)
15881           - Implemented ProcessCmdKey
15882           - Implemented ProcessDialogKey
15883           - Implemented ProcessKeyPreview
15884
15885 2004-10-02 13:02  pbartok
15886
15887         * Control.cs:
15888           - Added private method to get the Control object from the window
15889           handle
15890           - Implemented ContextMenu property
15891           - Implemented PointToScreen
15892           - Implemented PreProcessMessage
15893           - Implemented IsInputChar
15894           - Implemented IsInputKey
15895           - Implemented ProcessCmdKey
15896           - Completed ProcessKeyEventArgs
15897           - Fixed message loop to call the proper chain of functions on key
15898           events
15899           - Implemented ProcessDialogChar
15900           - Implemented ProcessDialogKey
15901           - Implemented ProcessKeyMessage
15902           - Implemented ProcessKeyPreview
15903           - Added RaiseDragEvent stub (MS internal method)
15904           - Added RaiseKeyEvent stub (MS internal method)
15905           - Added RaiseMouseEvent stub (MS Internal method)
15906           - Added RaisePaintEvent stub (MS Internal method)
15907           - Added ResetMouseEventArgs stub (MS Internal method)
15908           - Implemented RtlTranslateAlignment
15909           - Implemented RtlTranslateContent
15910           - Implemented RtlTranslateHorizontal
15911           - Implemented RtlTranslateLeftRight
15912           - Added generation of KeyPress event
15913
15914 2004-10-02 05:57  ravindra
15915
15916         * ListViewItem.cs: Added attributes.
15917
15918 2004-10-02 05:32  ravindra
15919
15920         * ListView.cs: Added attributes.
15921
15922 2004-10-01 11:53  jackson
15923
15924         * Form.cs: Implement the Close method so work on MessageBox can
15925           continue.
15926
15927 2004-09-30 14:06  pbartok
15928
15929         * XplatUIX11.cs:
15930           - Bug fixes
15931
15932 2004-09-30 11:34  jackson
15933
15934         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
15935
15936 2004-09-30 07:26  ravindra
15937
15938         * ListViewItemConverter.cs: Converter for ListViewItem.
15939
15940 2004-09-30 07:26  ravindra
15941
15942         * SortOrder.cs: Enum for ListView control.
15943
15944 2004-09-30 07:25  ravindra
15945
15946         * ColumnHeader.cs: Supporting class for ListView control.
15947
15948 2004-09-30 07:24  ravindra
15949
15950         * ListView.cs, ListViewItem.cs: Initial implementation.
15951
15952 2004-09-30 07:20  ravindra
15953
15954         * ItemActivation.cs: Enum for ListView Control.
15955
15956 2004-09-29 20:29  pbartok
15957
15958         * XplatUIX11.cs:
15959           - Added lookup of pixel value for background color; tries to get a
15960             color 'close' to the requested color, it avoids having to create a
15961             colormap.  Depending on the display this could mean the used color
15962             is slightly off the desired color. Might have to change it to a more
15963             resource intensive colormap approach, but it will work as a
15964           workaround to avoid red screens.
15965
15966 2004-09-29 14:27  jackson
15967
15968         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
15969
15970 2004-09-28 12:44  pbartok
15971
15972         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
15973           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
15974           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
15975           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
15976           TrackBar.cs, VScrollBar.cs:
15977           - Streamlined Theme interfaces:
15978             * Each DrawXXX method for a control now is passed the object for
15979               the control to be drawn in order to allow accessing any state the
15980               theme might require
15981
15982             * ControlPaint methods for the theme now have a CP prefix to avoid
15983               name clashes with the Draw methods for controls
15984
15985             * Every control now retrieves it's DefaultSize from the current
15986             theme
15987
15988 2004-09-28 12:17  jackson
15989
15990         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
15991           drawing
15992
15993 2004-09-24 14:57  jackson
15994
15995         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
15996           Gives us a nice little performance boost.
15997
15998 2004-09-24 12:02  jackson
15999
16000         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
16001           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
16002           Control and supporting classes. Initial checkin
16003
16004 2004-09-23 13:08  jackson
16005
16006         * Form.cs: Temp build fixage
16007
16008 2004-09-23 01:39  ravindra
16009
16010         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
16011           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
16012           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
16013           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
16014           EventHandlers needed by ListView Control.
16015
16016 2004-09-22 14:12  pbartok
16017
16018         * ScrollableControl.cs:
16019           - Implemented DockPadding property
16020           - Implemented AutoScroll property
16021           - Implemented AutoScrollMargin property
16022           - Implemented AutoScrollMinSize property
16023           - Implemented AutoScrollPosition property
16024           - Implemented DisplayRectangle property (still incomplete)
16025           - Implemented CreateParams property
16026           - Implemented HScroll property
16027           - Implemented VScroll property
16028           - Implemented OnVisibleChanged property
16029
16030 2004-09-22 14:09  pbartok
16031
16032         * Form.cs:
16033           - Added Form.ControllCollection class
16034           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
16035             RemoveOwnedForm (still incomplete, missing on-top and common
16036             minimize/maximize behaviour)
16037           - Added StartPosition property (still incomplete, does not use when
16038             creating the form)
16039           - Added ShowDialog() methods (still incomplete, missing forcing the
16040             dialog modal)
16041
16042 2004-09-22 14:05  pbartok
16043
16044         * Application.cs:
16045           - Added message loop for modal dialogs
16046
16047 2004-09-22 14:02  pbartok
16048
16049         * GroupBox.cs:
16050           - Fixed wrong types for events
16051
16052 2004-09-22 14:00  pbartok
16053
16054         * Shortcut.cs, FormWindowState.cs:
16055           - Fixed wrong values
16056
16057 2004-09-22 12:01  jackson
16058
16059         * Control.cs: Text is never null
16060
16061 2004-09-20 22:14  pbartok
16062
16063         * XplatUIWin32.cs:
16064           - Fixed accessibility level for Idle handler
16065
16066 2004-09-20 18:54  jackson
16067
16068         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16069           XplatUIX11.cs: New message loop that uses poll so we don't get a
16070           busy loop
16071
16072 2004-09-17 10:43  pbartok
16073
16074         * ScrollBar.cs:
16075           - Fixed behaviour of arrow buttons. Now properly behaves like
16076             Buttons (and like Microsoft's scrollbar arrow buttons)
16077
16078 2004-09-17 10:14  pbartok
16079
16080         * ScrollBar.cs:
16081           - Added missing release of keyboard/mouse capture
16082
16083 2004-09-17 06:18  jordi
16084
16085         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
16086           Theme.cs: Very early menu support
16087
16088 2004-09-16 17:45  pbartok
16089
16090         * XplatUIWin32.cs:
16091           - Fixed sending a window to the front
16092           - Added overload for SetWindowPos to avoid casting
16093
16094 2004-09-16 17:44  pbartok
16095
16096         * Control.cs:
16097           - Added SendToBack and BringToFront methods
16098
16099 2004-09-16 07:00  ravindra
16100
16101         * Copyright: Added Novell URL.
16102
16103 2004-09-16 07:00  ravindra
16104
16105         * ToolBar.cs: Invalidate should be done before redrawing.
16106
16107 2004-09-15 21:19  ravindra
16108
16109         * ColumnHeaderStyle.cs: Enum for ListView Control.
16110
16111 2004-09-15 21:18  ravindra
16112
16113         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
16114           ListView Control.
16115
16116 2004-09-13 18:26  jackson
16117
16118         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
16119           properly
16120
16121 2004-09-13 18:13  jackson
16122
16123         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
16124           a second thread and post messages into the main threads message
16125           queue. This makes timing much more consistent. Both win2K and XP
16126           have a minimum timer value of 15 milliseconds, so we now do this
16127           too.
16128
16129 2004-09-13 15:18  pbartok
16130
16131         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16132           XplatUIX11.cs:
16133           - Added Z-Ordering methods
16134
16135 2004-09-13 10:56  pbartok
16136
16137         * Form.cs:
16138           - Fixed #region names
16139           - Moved properties and methods into their proper #regions
16140
16141 2004-09-13 10:51  pbartok
16142
16143         * Form.cs:
16144           - Added Accept and CancelButton properties
16145           - Added ProcessDialogKey() method
16146
16147 2004-09-13 08:18  pbartok
16148
16149         * IWindowTarget.cs:
16150           - Initial check-in
16151
16152 2004-09-10 21:50  pbartok
16153
16154         * Control.cs:
16155           - Added DoDragDrop() [incomplete]
16156           - Properly implemented 'Visible' handling
16157           - Added SetVisibleCore()
16158           - Implemented FindChildAtPoint()
16159           - Implemented GetContainerControl()
16160           - Implemented Hide()
16161
16162 2004-09-10 19:28  pbartok
16163
16164         * Control.cs:
16165           - Moved methods into their appropriate #regions
16166           - Reordered methods within regions alphabetically
16167
16168 2004-09-10 18:57  pbartok
16169
16170         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16171           - Added method to retrieve text from window
16172
16173 2004-09-10 18:56  pbartok
16174
16175         * Control.cs:
16176           - Moved some internal functions into the internal region
16177           - Implemented FontHeight
16178           - Implemented RenderRightToLeft
16179           - Implemented ResizeRedraw
16180           - Implemented ShowFocusCues
16181           - Implemented ShowKeyboardCues
16182           - Implemented FromChildHandle
16183           - Implemented FromHandle
16184           - Implemented IsMnemonic
16185           - Implemented ReflectMessage
16186           - All public and protected Static Methods are now complete
16187
16188 2004-09-10 16:54  pbartok
16189
16190         * Control.cs:
16191           - Implemented remaining missing public instance properties
16192           - Alphabetized some out of order properties
16193
16194 2004-09-10 05:51  ravindra
16195
16196         * PictureBox.cs: Added a check for null image.
16197
16198 2004-09-10 00:59  jordi
16199
16200         * GroupBox.cs: remove cvs tag
16201
16202 2004-09-09 05:25  ravindra
16203
16204         * ToolBar.cs: Make redraw accessible from ToolBarButton.
16205
16206 2004-09-09 05:23  ravindra
16207
16208         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
16209           parent redraw.
16210
16211 2004-09-09 02:28  pbartok
16212
16213         * ThemeWin32Classic.cs:
16214           - Improve disabled string look
16215
16216 2004-09-09 01:15  jordi
16217
16218         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
16219           args and handler
16220
16221 2004-09-08 23:56  ravindra
16222
16223         * ItemBoundsPortion.cs: It's enum, not a class!
16224
16225 2004-09-08 23:47  ravindra
16226
16227         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
16228           Enums for Form.
16229
16230 2004-09-08 21:13  ravindra
16231
16232         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
16233           ListView control.
16234
16235 2004-09-08 21:03  ravindra
16236
16237         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
16238           avoid crash.
16239
16240 2004-09-08 21:01  ravindra
16241
16242         * ScrollableControl.cs: Removed unreachable code.
16243
16244 2004-09-08 06:45  jordi
16245
16246         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
16247
16248 2004-09-08 01:00  jackson
16249
16250         * XplatUIX11.cs: Only run the timers when updating the message
16251           queue. This effectively gives X messages a higher priority then
16252           timer messages. Timers still need love though
16253
16254 2004-09-07 14:01  jackson
16255
16256         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
16257           this for us and the handle is no longer valid.
16258
16259 2004-09-07 13:59  jackson
16260
16261         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
16262           loop that manages to not crash. TODO: Add poll and cleanup timers
16263
16264 2004-09-07 11:12  jordi
16265
16266         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
16267
16268 2004-09-07 03:40  jordi
16269
16270         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
16271           fixes, methods, multiple links
16272
16273 2004-09-06 06:55  jordi
16274
16275         * Control.cs: Caches ClientRectangle rectangle value
16276
16277 2004-09-05 02:03  jordi
16278
16279         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
16280           certain situations
16281
16282 2004-09-04 11:10  jordi
16283
16284         * Label.cs: Refresh when font changed
16285
16286 2004-09-02 16:24  pbartok
16287
16288         * Control.cs:
16289           - Added sanity check to creation of double buffer bitmap
16290
16291 2004-09-02 16:24  pbartok
16292
16293         * ButtonBase.cs:
16294           - Fixed selection of text color
16295           - Fixed handling of resize event; now properly recreates double
16296             buffering bitmap
16297           - Added missing assignment of TextAlignment
16298           - Added proper default for TextAlignment
16299
16300 2004-09-02 14:26  pbartok
16301
16302         * RadioButton.cs:
16303           - Added missing RadioButton.RadioButtonAccessibleObject class
16304
16305 2004-09-02 14:26  pbartok
16306
16307         * Control.cs:
16308           - Added missing Control.ControlAccessibleObject class
16309           - Started to implement Select()ion mechanisms, still very incomplete
16310
16311 2004-09-02 14:25  pbartok
16312
16313         * AccessibleObject.cs:
16314           - Added missing methods
16315
16316 2004-09-02 14:23  pbartok
16317
16318         * AccessibleNavigation.cs, AccessibleSelection.cs:
16319           - Initial check-in
16320
16321 2004-09-02 10:32  jordi
16322
16323         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
16324           pool for pens, brushes, and hatchbruses
16325
16326 2004-09-01 15:30  jackson
16327
16328         * StatusBar.cs: Fix typo
16329
16330 2004-09-01 14:44  pbartok
16331
16332         * RadioButton.cs:
16333           - Fixed state
16334
16335 2004-09-01 14:39  pbartok
16336
16337         * Button.cs, RadioButton.cs:
16338           - Functional initial check-in
16339
16340 2004-09-01 14:01  pbartok
16341
16342         * CheckBox.cs:
16343           - Added missing default
16344           - Added missing region mark
16345
16346 2004-09-01 09:10  jordi
16347
16348         * Label.cs: fixes method signatures, new methods, events, fixes
16349           autosize
16350
16351 2004-09-01 07:19  jordi
16352
16353         * Control.cs: Init string variables with an empty object
16354
16355 2004-09-01 04:20  jordi
16356
16357         * Control.cs: fires OnFontChanged event
16358
16359 2004-08-31 20:07  pbartok
16360
16361         * ButtonBase.cs:
16362           - Enabled display of strings
16363
16364 2004-08-31 20:05  pbartok
16365
16366         * Form.cs:
16367           - Added (partial) implementation of DialogResult; rest needs to be
16368             implemented when the modal loop code is done
16369
16370 2004-08-31 19:55  pbartok
16371
16372         * CheckBox.cs:
16373           - Fixed to match the removal of the needs_redraw concept
16374
16375 2004-08-31 19:55  pbartok
16376
16377         * ButtonBase.cs:
16378           - Removed the rather odd split between 'needs redraw' and redrawing
16379           - Now handles the events that require regeneration (ambient
16380             properties and size)
16381
16382 2004-08-31 19:41  pbartok
16383
16384         * Control.cs:
16385           - Added firing of BackColorChanged event
16386           - Added TopLevelControl property
16387           - Fixed handling of WM_ERASEBKGRND message
16388
16389 2004-08-31 12:49  pbartok
16390
16391         * ButtonBase.cs:
16392           - Removed debug
16393           - Minor fixes
16394
16395 2004-08-31 12:48  pbartok
16396
16397         * CheckBox.cs:
16398           - Finished (famous last words)
16399
16400 2004-08-31 04:35  jordi
16401
16402         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
16403           scrolling bugs, adds new methods
16404
16405 2004-08-30 14:42  pbartok
16406
16407         * CheckBox.cs:
16408           - Implemented CheckBox drawing code
16409
16410 2004-08-30 14:42  pbartok
16411
16412         * ButtonBase.cs:
16413           - Made Redraw() and CheckRedraw() virtual
16414           - Improved mouse up/down/move logic to properly track buttons
16415
16416 2004-08-30 09:44  pbartok
16417
16418         * CheckBox.cs:
16419           - Updated to fix broken build. Not complete yet.
16420
16421 2004-08-30 09:28  pbartok
16422
16423         * CheckState.cs:
16424           - Initial checkin
16425
16426 2004-08-30 09:17  pbartok
16427
16428         * Appearance.cs:
16429           - Initial check-in
16430
16431 2004-08-27 16:12  ravindra
16432
16433         * ToolBarButton.cs: Added TypeConverter attribute.
16434
16435 2004-08-27 16:07  ravindra
16436
16437         * ImageIndexConverter.cs: Implemented.
16438
16439 2004-08-27 14:17  pbartok
16440
16441         * Control.cs:
16442           - Removed unneeded stack vars
16443           - First attempt to fix sizing issues when layout is suspended
16444
16445 2004-08-25 15:35  jordi
16446
16447         * ScrollBar.cs: more fixes to scrollbar
16448
16449 2004-08-25 14:04  ravindra
16450
16451         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
16452           Added the missing divider code and grip for ToolBar Control.
16453
16454 2004-08-25 13:20  pbartok
16455
16456         * Control.cs:
16457           - Control now properly passes the ambient background color to child
16458             controls
16459
16460 2004-08-25 13:20  jordi
16461
16462         * ScrollBar.cs: small bug fix regarding bar position
16463
16464 2004-08-25 12:33  pbartok
16465
16466         * Timer.cs:
16467           - Now only calls SetTimer or KillTimer if the enabled state has
16468           changed
16469
16470 2004-08-25 12:33  pbartok
16471
16472         * XplatUIWin32.cs:
16473           - Fixed timer handling, now seems to work
16474           - Improved error message for window creation
16475
16476 2004-08-25 12:32  pbartok
16477
16478         * Control.cs:
16479           - Fixed generation of MouseUp message
16480
16481 2004-08-25 12:29  jordi
16482
16483         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
16484           and fixes for progressbar
16485
16486 2004-08-24 18:43  ravindra
16487
16488         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
16489           in ToolBar control.
16490
16491 2004-08-24 17:15  pbartok
16492
16493         * Panel.cs:
16494           - Added #region
16495           - Added missing events
16496           - Alphabetized
16497
16498 2004-08-24 17:14  pbartok
16499
16500         * StatusBar.cs, PictureBox.cs:
16501           - Now uses Control's CreateParams
16502
16503 2004-08-24 16:36  pbartok
16504
16505         * XplatUIX11.cs:
16506           - Fixed background color handling
16507           - Fixed sending of enter/leave events on a grab
16508
16509 2004-08-24 16:35  pbartok
16510
16511         * X11Structs.cs:
16512           - Refined definitions for CrossingEvent
16513
16514 2004-08-24 12:37  jordi
16515
16516         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
16517           formmating, methods signature, and adds missing events
16518
16519 2004-08-24 12:24  jordi
16520
16521         * Control.cs: fire OnEnabledChanged event
16522
16523 2004-08-24 11:17  pbartok
16524
16525         * XplatUIWin32.cs:
16526           - Implemented SetTimer() and KillTimer()
16527
16528 2004-08-24 11:16  pbartok
16529
16530         * XplatUIX11.cs:
16531           - Now uses Remove instead of Add to kill the timer
16532
16533 2004-08-24 10:16  jackson
16534
16535         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
16536           picture boxes in the theme now. Draw picture box borders and obey
16537           sizing modes
16538
16539 2004-08-24 05:49  jackson
16540
16541         * Timer.cs: Remove top secret debugging code
16542
16543 2004-08-24 05:34  jackson
16544
16545         * PictureBox.cs: Temp hack to make picture boxes draw their full
16546           image
16547
16548 2004-08-24 05:29  jackson
16549
16550         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16551           XplatUIX11.cs: Move timers to the driver level. On X they are
16552           queued by the driver and checked on idle.
16553
16554 2004-08-24 01:07  jackson
16555
16556         * XplatUIX11.cs: Use a queue for async messages instead of passing
16557           them as ClientMessages since that was totally broken. Also simply
16558           check for events and return an idle message if none are found. This
16559           gives us an idle handler, and prevents deadlocking when no messages
16560           are in the queue.
16561
16562 2004-08-23 18:19  ravindra
16563
16564         * XplatUIWin32.cs: Removed the unwanted destructor.
16565
16566 2004-08-23 17:27  pbartok
16567
16568         * ButtonBase.cs:
16569           - Finishing touches. Works now, just needs some optimizations.
16570
16571 2004-08-23 16:53  jordi
16572
16573         * ScrollBar.cs: small fix
16574
16575 2004-08-23 16:45  pbartok
16576
16577         * Application.cs:
16578           - Removed debug output
16579           - Simplifications
16580
16581 2004-08-23 16:43  jordi
16582
16583         * ScrollBar.cs: [no log message]
16584
16585 2004-08-23 16:10  pbartok
16586
16587         * Form.cs:
16588           - Fixed handling of WM_CLOSE message
16589           - Removed debug output
16590
16591 2004-08-23 16:09  pbartok
16592
16593         * Application.cs:
16594           - Added handling of Idle event
16595           - Added handling of form closing
16596           - Fixed reporting of MessageLoop property
16597           - Removed some unneeded code, should provide a bit of a speedup
16598
16599 2004-08-23 15:22  pbartok
16600
16601         * Control.cs:
16602           - Added InitLayout() method
16603           - Added code to properly perform layout when Anchor or Dock property
16604             is changed
16605           - Changed 'interpretation' of ResumeLayout. MS seems to have a
16606             LAMESPEC, tried to do it in a way that makes sense
16607
16608 2004-08-23 14:10  jordi
16609
16610         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
16611           properties and methods
16612
16613 2004-08-23 13:55  pbartok
16614
16615         * Control.cs:
16616           - Properly fixed Jordi's last fix
16617           - Now uses Cursor's Position property instead of calling XplatUI
16618           directly
16619
16620 2004-08-23 13:44  jordi
16621
16622         * PaintEventHandler.cs: Adding missing attribute
16623
16624 2004-08-23 13:39  pbartok
16625
16626         * Cursor.cs:
16627           - Implemented Position property
16628
16629 2004-08-23 13:39  pbartok
16630
16631         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16632           - Added method to move mouse cursor
16633
16634 2004-08-23 13:39  pbartok
16635
16636         * XplatUIX11.cs:
16637           - Fixed setting of background color
16638           - Added method to move mouse cursor
16639
16640 2004-08-23 13:16  jordi
16641
16642         * Control.cs: avoids null exception
16643
16644 2004-08-22 17:46  jackson
16645
16646         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
16647           PictureBox
16648
16649 2004-08-22 17:40  jackson
16650
16651         * XplatUIX11.cs: Add some missing locks
16652
16653 2004-08-22 15:10  pbartok
16654
16655         * Control.cs, Form.cs:
16656           - Removed OverlappedWindow style from Control, instead it's default
16657             now is child
16658           - Made form windows OverlappedWindow by default
16659
16660 2004-08-22 13:34  jackson
16661
16662         * ScrollBar.cs: Update the position through the Value property so
16663           the OnValueChanged event is raised.
16664
16665 2004-08-22 12:04  pbartok
16666
16667         * SWF.csproj:
16668           - Added Cursor.cs and UserControl.cs
16669
16670 2004-08-22 12:03  pbartok
16671
16672         * Cursor.cs:
16673           - Started implementation, not usable yet
16674
16675 2004-08-22 12:00  pbartok
16676
16677         * UserControl.cs:
16678           - Implemented UserControl (complete)
16679
16680 2004-08-21 19:20  ravindra
16681
16682         * ToolBar.cs: Correcting the formatting mess of VS.NET.
16683
16684 2004-08-21 18:49  ravindra
16685
16686         * ToolBar.cs: Probably this completes the missing attributes in
16687           toolbar control.
16688
16689 2004-08-21 18:03  ravindra
16690
16691         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
16692           Fixed toolbar control signatures.
16693
16694 2004-08-21 16:32  pbartok
16695
16696         * LinkLabel.cs:
16697           - Signature Fixes
16698
16699 2004-08-21 16:30  pbartok
16700
16701         * Label.cs:
16702           - Signature fixes
16703
16704 2004-08-21 16:19  pbartok
16705
16706         * Control.cs, Label.cs:
16707           - Signature fixes
16708
16709 2004-08-21 15:57  pbartok
16710
16711         * ButtonBase.cs:
16712           - Added loads of debug output for development
16713           - Fixed typo in method name
16714
16715 2004-08-21 15:52  pbartok
16716
16717         * ToolBarButtonClickEventArgs.cs:
16718           - Added missing base class
16719
16720 2004-08-21 14:53  pbartok
16721
16722         * Control.cs:
16723           - Updated to match new GrabWindow signature
16724
16725 2004-08-21 14:51  pbartok
16726
16727         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16728           - Added method to get default display size
16729
16730 2004-08-21 14:23  pbartok
16731
16732         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16733           - Added method to query current grab state
16734           - Added argument to allow confining a grab to a window
16735
16736 2004-08-21 14:22  pbartok
16737
16738         * Keys.cs:
16739           - Added [Flags] attribute so that modifiers can be used in bitwise
16740           ops
16741
16742 2004-08-21 14:21  pbartok
16743
16744         * TrackBar.cs, ScrollBar.cs:
16745           - Replaced direct XplatUI calls with their Control counterpart
16746
16747 2004-08-21 13:32  pbartok
16748
16749         * Control.cs:
16750           - Implemented Created property
16751
16752 2004-08-21 13:28  pbartok
16753
16754         * Control.cs:
16755           - Implemented ContainsFocus
16756
16757 2004-08-21 13:26  pbartok
16758
16759         * Control.cs:
16760           - Implemented CausesValidation
16761
16762 2004-08-21 13:21  pbartok
16763
16764         * Control.cs:
16765           - Implemented CanFocus
16766           - Implemented CanSelect
16767           - Implemented Capture
16768
16769 2004-08-21 12:35  pbartok
16770
16771         * XplatUIWin32.cs:
16772           - Fixed bug with Async message handling
16773           - Implemented getting the ModifierKeys
16774
16775 2004-08-21 12:32  jackson
16776
16777         * AsyncMethodResult.cs: Make sure we have the mutex before we
16778           release it. Fixes BeginInvoke on windows
16779
16780 2004-08-21 11:31  pbartok
16781
16782         * XplatUIWin32.cs, XplatUIX11.cs:
16783           - Drivers now return proper mouse state
16784
16785 2004-08-21 10:54  jackson
16786
16787         * Control.cs: Implement EndInvoke
16788
16789 2004-08-21 10:48  jackson
16790
16791         * Timer.cs: Remove unneeded finalizer
16792
16793 2004-08-20 19:52  ravindra
16794
16795         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
16796           in mouse event handling in the ToolBar control.
16797
16798 2004-08-20 19:50  ravindra
16799
16800         * ImageList.cs: Changed draw method to use the arguments passed in
16801           to draw the image.
16802
16803 2004-08-20 18:58  pbartok
16804
16805         * XplatUIStructs.cs:
16806           - Added private message for async communication
16807
16808 2004-08-20 17:38  ravindra
16809
16810         * Control.cs: Made RightToLeft property virtual and removed a
16811           Console.WriteLine.
16812
16813 2004-08-20 14:39  jordi
16814
16815         * ThemeGtk.cs: use style_attach
16816
16817 2004-08-20 14:39  pbartok
16818
16819         * XplatUIWin32.cs:
16820           - Added jackson's Async code from X11 to Win32
16821
16822 2004-08-20 14:09  pbartok
16823
16824         * SWF.csproj:
16825           - Added all new files
16826
16827 2004-08-20 14:09  pbartok
16828
16829         * Control.cs:
16830           - Added call to set window background color
16831
16832 2004-08-20 14:03  pbartok
16833
16834         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
16835           - Added method for setting the window background
16836
16837 2004-08-20 14:02  pbartok
16838
16839         * XplatUIWin32.cs:
16840           - Added method for setting the background color
16841           - Added handling for erasing the window background
16842
16843 2004-08-20 13:45  jordi
16844
16845         * TrackBar.cs: fixes timer, new properties and methods
16846
16847 2004-08-20 13:34  jackson
16848
16849         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
16850           correct thread
16851
16852 2004-08-20 13:22  jackson
16853
16854         * Timer.cs: Timer Tick events are now handed through Controls Async
16855           mechanism so the callbacks are executed in the same thread as X
16856
16857 2004-08-20 13:19  jackson
16858
16859         * XplatUIDriver.cs: Expose functionality to send async messages
16860           through the driver
16861
16862 2004-08-20 13:18  jackson
16863
16864         * Control.cs: Implement Begininvoke
16865
16866 2004-08-20 13:14  jackson
16867
16868         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
16869           messages through the driver
16870
16871 2004-08-20 13:12  jackson
16872
16873         * XplatUIX11.cs: Lock before all X operations. Also added Async
16874           method functionality through XSendEvent
16875
16876 2004-08-20 13:11  jackson
16877
16878         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
16879           This will screw up on 64 bit systems)
16880
16881 2004-08-20 13:10  jackson
16882
16883         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
16884           Async messages through X/Win32
16885
16886 2004-08-19 19:39  pbartok
16887
16888         * XplatUIX11.cs:
16889           - Updated code to match new HandleData.DeviceContext type
16890
16891 2004-08-19 19:38  pbartok
16892
16893         * HandleData.cs:
16894           - Made DeviceContext a generic object to allow usage from various
16895           drivers
16896           - Added support for queueing Windows messages
16897
16898 2004-08-19 19:37  pbartok
16899
16900         * XplatUIWin32.cs:
16901           - Added generation of MouseEnter, MouseLeave and MouseHover events
16902           - Added cleanup on EndPaint
16903
16904 2004-08-19 19:17  pbartok
16905
16906         * Control.cs:
16907           - Added handling of WM_MOUSEHOVER
16908           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
16909           code
16910
16911 2004-08-19 18:55  jordi
16912
16913         * ThemeGtk.cs: fixes button order
16914
16915 2004-08-19 18:12  jordi
16916
16917         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
16918
16919 2004-08-19 17:09  pbartok
16920
16921         * Control.cs:
16922           - Added Right property
16923           - Added RightToLeft property
16924
16925 2004-08-19 16:27  jordi
16926
16927         * ThemeGtk.cs: experimental GTK theme support
16928
16929 2004-08-19 16:26  jordi
16930
16931         * ITheme.cs, Theme.cs: move themes from an interface to a class
16932
16933 2004-08-19 16:25  jordi
16934
16935         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
16936           theme enhancaments
16937
16938 2004-08-19 16:04  pbartok
16939
16940         * XplatUIX11.cs:
16941           - Added colormap basics
16942           - Added a way to re-initialize with a different display handle
16943           - Fixed setting of the window background color
16944           - Added various X11 imports related to colors and colormaps
16945
16946 2004-08-19 15:51  pbartok
16947
16948         * X11Structs.cs:
16949           - Removed packing hints (Paolo suggested this a while back)
16950           - fixed colormap type
16951           - Added default Atom types
16952           - Added Screen and color structs and enums
16953
16954 2004-08-19 15:39  pbartok
16955
16956         * ImageList.cs:
16957           - Added missing Draw() method
16958           - Added missing RecreateHandle event
16959
16960 2004-08-19 15:30  pbartok
16961
16962         * Form.cs:
16963           - Added handling of WM_CLOSE
16964
16965 2004-08-18 13:16  jordi
16966
16967         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
16968           a table
16969
16970 2004-08-18 09:56  jordi
16971
16972         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
16973
16974 2004-08-17 15:31  ravindra
16975
16976         * SWF.csproj: Updated project.
16977
16978 2004-08-17 15:25  pbartok
16979
16980         * Control.cs:
16981           - Drawing improvement; don't call UpdateBounds if we are not visible
16982             (or have been minimized)
16983
16984 2004-08-17 15:24  pbartok
16985
16986         * XplatUIWin32.cs:
16987           - Finished IsVisible
16988           - Added Win32GetWindowPlacement
16989
16990 2004-08-17 15:08  jackson
16991
16992         * Panel.cs: Initial checkin of the Panel
16993
16994 2004-08-17 14:25  pbartok
16995
16996         * Control.cs:
16997           - Fixed broken handling of default window sizes
16998
16999 2004-08-17 13:29  jackson
17000
17001         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
17002           has a large startup time.
17003
17004 2004-08-17 10:25  jackson
17005
17006         * HandleData.cs: union areas properly
17007
17008 2004-08-17 10:12  jackson
17009
17010         * HandleData.cs: union areas properly
17011
17012 2004-08-16 20:00  ravindra
17013
17014         * ToolBar.cs, ToolBarButton.cs: Added attributes.
17015
17016 2004-08-16 18:48  ravindra
17017
17018         * ToolBar.cs: Added attributes.
17019
17020 2004-08-16 17:17  ravindra
17021
17022         * SWF.csproj: Updated project.
17023
17024 2004-08-16 17:16  jackson
17025
17026         * XplatUIX11.cs: Check for more expose events before sending a
17027           WM_PAINT so they can all be grouped together. This makes dragging a
17028           window across another window redraw in a sane way.
17029
17030 2004-08-16 15:47  pbartok
17031
17032         * Control.cs:
17033           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
17034             support OnMouseEnter/Leave()
17035           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
17036             exposure handling
17037
17038 2004-08-16 15:46  pbartok
17039
17040         * XplatUIStructs.cs, XplatUIX11.cs:
17041           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
17042           OnMouseEnter/Leave()
17043
17044 2004-08-16 15:34  jackson
17045
17046         * XplatUIX11.cs: Group multiple expose events in HandleData, make
17047           sure messages get the message field set to WM_NULL if they are not
17048           handled.
17049
17050 2004-08-16 15:24  jackson
17051
17052         * HandleData.cs: HandleData is used for storing message information
17053           for window handles
17054
17055 2004-08-15 17:23  ravindra
17056
17057         * ColorDepth.cs: Added attribute.
17058
17059 2004-08-15 17:23  ravindra
17060
17061         * SWF.csproj: Updated project for ToolBar Control.
17062
17063 2004-08-15 17:20  ravindra
17064
17065         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
17066           control and also dos2unix format.
17067
17068 2004-08-15 17:13  ravindra
17069
17070         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
17071           ToolBarButtonClickEventArgs.cs,
17072           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
17073           ToolBarTextAlign.cs: First Implementation of ToolBar control.
17074
17075 2004-08-15 15:31  pbartok
17076
17077         * ButtonBase.cs:
17078           - First (mostly) working version
17079
17080 2004-08-13 16:15  pbartok
17081
17082         * Control.cs:
17083           - Fixed Anchor default
17084
17085 2004-08-13 15:43  pbartok
17086
17087         * Control.cs:
17088           - Changed GetCursorPos signature
17089
17090 2004-08-13 15:42  pbartok
17091
17092         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17093           - Changed signature for GetCursorPos
17094
17095 2004-08-13 15:25  pbartok
17096
17097         * XplatUIX11.cs:
17098           - Cleanup
17099           - Fixed resizing/exposure handling
17100
17101 2004-08-13 15:22  jordi
17102
17103         * ThemeWin32Classic.cs: removes redundant code and fixes issues
17104           with tickposition
17105
17106 2004-08-13 14:55  jordi
17107
17108         * TrackBar.cs: change from wndproc to events
17109
17110 2004-08-13 13:00  jordi
17111
17112         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17113           XplatUIX11.cs: implements PointToClient (ScreenToClient)
17114
17115 2004-08-13 12:53  pbartok
17116
17117         * XplatUIWin32.cs:
17118           - Changed GetWindowPos to also provide client area size
17119           - Fixed broken prototypes for several win32 functions
17120
17121 2004-08-13 12:53  pbartok
17122
17123         * XplatUI.cs, XplatUIDriver.cs:
17124           - Changed GetWindowPos to also provide client area size
17125
17126 2004-08-13 12:52  pbartok
17127
17128         * XplatUIX11.cs:
17129           - Added generation of WM_POSCHANGED
17130           - Changed GetWindowPos to also provide client area size
17131
17132 2004-08-13 12:52  pbartok
17133
17134         * Control.cs:
17135           - Added Dispose() and destructor
17136           - Fixed resizing and bounds calculation
17137           - Fixed Layout
17138           - Added memory savings for invisible windows
17139
17140 2004-08-13 12:46  jordi
17141
17142         * TrackBar.cs: adds timer and grap window
17143
17144 2004-08-13 10:25  jackson
17145
17146         * Timer.cs: SWF Timer
17147
17148 2004-08-12 16:59  pbartok
17149
17150         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17151           - Implemented method to get current mouse position
17152
17153 2004-08-12 14:29  jordi
17154
17155         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
17156           enhancement, fix mouse problems, highli thumb, etc
17157
17158 2004-08-12 13:31  pbartok
17159
17160         * Control.cs:
17161           - Fixed Anchoring bugs
17162
17163 2004-08-12 13:01  jackson
17164
17165         * StatusBar.cs: Don't forget things
17166
17167 2004-08-12 12:54  jackson
17168
17169         * ThemeWin32Classic.cs: Handle owner draw status bars
17170
17171 2004-08-12 12:54  jackson
17172
17173         * StatusBar.cs: Implement missing properties, events, and methods.
17174           Handle mouse clicking
17175
17176 2004-08-12 10:19  jackson
17177
17178         * StatusBarPanelClickEventArgs.cs,
17179           StatusBarPanelClickEventHandler.cs: Classes for handling status
17180           bar panel click events
17181
17182 2004-08-12 10:10  jackson
17183
17184         * Control.cs: Add missing properties
17185
17186 2004-08-12 09:46  pbartok
17187
17188         * BindingsManagerBase.cs:
17189           - Name changed to BindingManagerBase.cs
17190
17191 2004-08-12 09:25  jordi
17192
17193         * ScrollableControl.cs: calls ctrlbase instead of exeception
17194
17195 2004-08-11 16:28  pbartok
17196
17197         * InputLanguageChangingEventArgs.cs:
17198           - Never check in before compiling. Fixes the last check-in
17199
17200 2004-08-11 16:26  pbartok
17201
17202         * InputLanguageChangingEventArgs.cs:
17203           - More signature fixes
17204
17205 2004-08-11 16:20  pbartok
17206
17207         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
17208           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
17209           ImageListStreamer.cs, InputLanguage.cs,
17210           InputLanguageChangedEventArgs.cs,
17211           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
17212           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
17213           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
17214           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17215           - Signature fixes
17216
17217 2004-08-11 16:16  pbartok
17218
17219         * Application.cs:
17220           - Fixed Signature
17221           - Added .Net 1.1 method
17222
17223 2004-08-11 15:25  pbartok
17224
17225         * SWF.csproj:
17226           - Fixed BindingManagerBase.cs filename
17227
17228 2004-08-11 15:22  pbartok
17229
17230         * BindingManagerBase.cs:
17231           - Was checked in with wrong filename
17232
17233 2004-08-11 14:50  pbartok
17234
17235         * SWF.csproj:
17236           - Updated
17237
17238 2004-08-11 13:41  jordi
17239
17240         * XplatUIWin32.cs: Fixes ClientRect
17241
17242 2004-08-11 13:19  pbartok
17243
17244         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17245           XplatUIX11.cs:
17246           - We had SetWindowPos and MoveWindow to set window positions and
17247             size, removed MoveWindow. We have GetWindowPos, so it made sense to
17248             keep SetWindowPos as matching counterpart
17249           - Added some X11 sanity checking
17250
17251 2004-08-11 12:59  pbartok
17252
17253         * Control.cs:
17254           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
17255             (It seems that SetBounds is just a front for SetBoundsCore and
17256              SetBoundsCore updates the underlying window system and
17257              UpdateBounds is responsible for updating the variables associated
17258              with the Control and sending the events)
17259           - Major cleanup of Size handling; we now have two sizes, client_size
17260             and bounds. Bounds defines the window with decorations, client_size
17261             without them.
17262
17263 2004-08-11 12:55  pbartok
17264
17265         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17266           - Added method to calculate difference between decorated window and
17267             raw client area
17268
17269 2004-08-11 12:54  pbartok
17270
17271         * Label.cs:
17272           - Forcing redraw on resize
17273
17274 2004-08-11 11:43  pbartok
17275
17276         * ImageList.cs:
17277           - Removed disposing of the actual images when the list is disposed
17278
17279 2004-08-11 09:13  pbartok
17280
17281         * Control.cs:
17282           - Now properly reparents windows
17283
17284 2004-08-11 08:37  pbartok
17285
17286         * Control.cs:
17287           - Duh!
17288
17289 2004-08-11 07:47  pbartok
17290
17291         * Control.cs:
17292           - Rewrote the collection stuff. Might not be as fast now, not
17293             keeping the number of children around and accessible directly, but
17294             it's more straightforward
17295
17296 2004-08-11 07:44  pbartok
17297
17298         * AccessibleObject.cs:
17299           - Fixed to match ControlCollection rewrite
17300
17301 2004-08-11 07:43  pbartok
17302
17303         * ImageList.cs:
17304           - Added missing creation of the collection list
17305
17306 2004-08-10 20:08  jackson
17307
17308         * StatusBar.cs: Get the paint message from WndProc
17309
17310 2004-08-10 19:31  jackson
17311
17312         * ThemeWin32Classic.cs: Create Brushes as little as possible
17313
17314 2004-08-10 19:20  jackson
17315
17316         * UICues.cs: Add Flags attribute
17317
17318 2004-08-10 19:19  jackson
17319
17320         * StatusBarPanel.cs: Signature cleanup
17321
17322 2004-08-10 19:10  jackson
17323
17324         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
17325           Initial implementation of status bar item drawing
17326
17327 2004-08-10 17:27  jordi
17328
17329         * TrackBar.cs: add missing methods, properties, and restructure to
17330           hide extra ones
17331
17332 2004-08-10 16:24  jackson
17333
17334         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
17335           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
17336           attribute
17337
17338 2004-08-10 13:21  jordi
17339
17340         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
17341           enhancements and standarize on win colors defaults
17342
17343 2004-08-10 12:52  jackson
17344
17345         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
17346           ThemeWin32Classic.cs: Implement DrawItem functionality
17347
17348 2004-08-10 12:47  jordi
17349
17350         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
17351
17352 2004-08-10 12:32  jordi
17353
17354         * Control.cs: throw ontextchange event
17355
17356 2004-08-10 11:43  pbartok
17357
17358         * Control.cs:
17359           - Added more to the still unfinished Dock/Anchor layout code
17360
17361 2004-08-10 11:39  pbartok
17362
17363         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17364           - Added GetWindowPos method
17365
17366 2004-08-10 11:36  pbartok
17367
17368         * XplatUIWin32.cs:
17369           - Implemented several methods
17370
17371 2004-08-10 09:47  jackson
17372
17373         * TrackBar.cs: Allow control to handle buffering
17374
17375 2004-08-10 09:41  jackson
17376
17377         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
17378
17379 2004-08-10 09:24  jackson
17380
17381         * Label.cs, LinkLabel.cs: Let Control handle buffering.
17382
17383 2004-08-10 09:09  jackson
17384
17385         * StatusBar.cs: Let Control handle all the buffering.
17386
17387 2004-08-10 09:08  jackson
17388
17389         * Control.cs: Control will now handle the buffering code, so each
17390           control does not have to implement this.
17391
17392 2004-08-10 08:34  jackson
17393
17394         * XplatUIDriver.cs: Use default colors from the theme
17395
17396 2004-08-09 17:12  pbartok
17397
17398         * ImageList.cs:
17399           - Fixed several bugs Ravindra pointed out
17400
17401 2004-08-09 16:11  pbartok
17402
17403         * Control.cs:
17404           - Added incomplete dock layout code
17405           - Added support for mouse wheel
17406
17407 2004-08-09 16:09  pbartok
17408
17409         * XplatUIX11.cs:
17410           - Added handling for middle and right mousebutton
17411           - Added handling for mouse wheel
17412           - Added handling for key state and mouse state and position
17413           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
17414           messages
17415
17416 2004-08-09 15:40  jackson
17417
17418         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
17419           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
17420           checkin
17421
17422 2004-08-09 15:37  jackson
17423
17424         * StatusBar.cs: Initial implementation of StatusBar
17425
17426 2004-08-09 15:36  jackson
17427
17428         * ITheme.cs: Add support for drawing status bar and getting status
17429           bar item sizes
17430
17431 2004-08-09 15:35  pbartok
17432
17433         * MouseButtons.cs:
17434           - Fixed values
17435
17436 2004-08-09 15:34  jackson
17437
17438         * ThemeWin32Classic.cs: Add support for drawing status bar and get
17439           status bar item sizes
17440
17441 2004-08-09 15:21  jackson
17442
17443         * ThemeWin32Classic.cs: Use known colors for default control
17444           colours
17445
17446 2004-08-09 15:12  jackson
17447
17448         * ThemeWin32Classic.cs: Make the default font static, it is static
17449           in control so this doesn't change functionality and creating fonts
17450           is sloooooow.
17451
17452 2004-08-09 14:56  pbartok
17453
17454         * X11Structs.cs:
17455           - Added GrabMode enum
17456
17457 2004-08-09 14:55  pbartok
17458
17459         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17460           - Removed Run method, was only required for initial development
17461
17462 2004-08-09 14:51  pbartok
17463
17464         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17465           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
17466           capture
17467
17468 2004-08-09 13:48  pbartok
17469
17470         * XplatUIX11.cs:
17471           - Fixed default sizing for child windows
17472
17473 2004-08-09 12:56  pbartok
17474
17475         * XplatUIX11.cs:
17476           - Added generation of WM_DESTROY message
17477           - Added handling of window manager induced shutdown
17478
17479 2004-08-09 11:31  jackson
17480
17481         * ThemeWin32Classic.cs: New names for control properties
17482
17483 2004-08-09 11:25  jackson
17484
17485         * Control.cs: Use new color names
17486
17487 2004-08-09 11:02  jackson
17488
17489         * XplatUI.cs: Get default window properties from the theme
17490
17491 2004-08-09 11:01  jackson
17492
17493         * ITheme.cs: The theme engine now controls default window
17494           properties
17495
17496 2004-08-09 11:00  jackson
17497
17498         * ThemeWin32Classic.cs: Add default window color properties
17499
17500 2004-08-09 10:17  jackson
17501
17502         * ThemeWin32Classic.cs: Use correct default back color
17503
17504 2004-08-09 10:05  jackson
17505
17506         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
17507           the theme now.
17508
17509 2004-08-09 09:56  jackson
17510
17511         * XplatUI.cs: Remove defaults, these are handled by the theme now.
17512
17513 2004-08-09 09:54  jackson
17514
17515         * Control.cs: Get default properties from the theme.
17516
17517 2004-08-09 09:53  jackson
17518
17519         * ITheme.cs: Themes now handle default control properties
17520
17521 2004-08-09 09:53  jackson
17522
17523         * ThemeWin32Classic.cs: Themes now handle default control
17524           properties so coloring will be consistent
17525
17526 2004-08-08 16:54  jordi
17527
17528         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
17529
17530 2004-08-08 15:08  jordi
17531
17532         * XplatUIX11.cs: fixes keyboard crash
17533
17534 2004-08-08 13:47  jordi
17535
17536         * Label.cs: add cvs header info
17537
17538 2004-08-08 12:09  jackson
17539
17540         * ThemeWin32Classic.cs: Add pen_buttonface
17541
17542 2004-08-08 11:52  jordi
17543
17544         * Label.cs, LinkLabel.cs: [no log message]
17545
17546 2004-08-08 11:34  jordi
17547
17548         * ThemeWin32Classic.cs: Use Windows Standard Colours
17549
17550 2004-08-07 17:32  jordi
17551
17552         * TrackBar.cs: throw exceptions of invalid enums values
17553
17554 2004-08-07 17:31  jordi
17555
17556         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
17557           draw method name
17558
17559 2004-08-07 16:56  jackson
17560
17561         * HorizontalAlignment.cs: Initial checkin
17562
17563 2004-08-07 13:16  jordi
17564
17565         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
17566           methods
17567
17568 2004-08-07 13:05  jordi
17569
17570         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
17571           GetSysColor defines
17572
17573 2004-08-06 18:01  pbartok
17574
17575         * ThemeWin32Classic.cs:
17576           - Fixed some rounding issues with float/int
17577
17578 2004-08-06 18:00  jackson
17579
17580         * DockStyle.cs, AnchorStyles.cs:
17581
17582                   Add flags and serializable attributes.
17583
17584 2004-08-06 17:46  pbartok
17585
17586         * XplatUIX11.cs:
17587           - Implemented GetParent
17588
17589 2004-08-06 17:18  pbartok
17590
17591         * TrackBar.cs:
17592           - Fixed some rounding issues with float/int
17593
17594 2004-08-06 17:17  pbartok
17595
17596         * X11Structs.cs, XplatUIX11.cs:
17597           - Fixed Refresh and Invalidate
17598
17599 2004-08-06 15:30  pbartok
17600
17601         * Control.cs, X11Structs.cs, XplatUIX11.cs:
17602           - Fixed recursive loop when resizing
17603           - Improved/fixed redrawing on expose messages
17604
17605 2004-08-06 09:53  jordi
17606
17607         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
17608           keyboard navigation
17609
17610 2004-08-06 08:02  pbartok
17611
17612         * X11Structs.cs, XplatUIX11.cs:
17613           - Fixed reparenting
17614           - Fixed window border creation
17615
17616 2004-08-05 15:38  pbartok
17617
17618         * XplatUIX11.cs:
17619           - Attempted fix for reparenting problems
17620
17621 2004-08-04 15:14  pbartok
17622
17623         * Control.cs:
17624           - Fixed Invalidation bug (calculated wrong client area)
17625           - Added ClientSize setter
17626
17627 2004-08-04 15:13  pbartok
17628
17629         * Form.cs:
17630           - Added AutoScale properties
17631
17632 2004-08-04 15:13  pbartok
17633
17634         * SWF.csproj:
17635           - Added latest files
17636
17637 2004-08-04 14:11  pbartok
17638
17639         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17640           XplatUIX11.cs:
17641           - Added Invalidate handling
17642
17643 2004-08-03 17:09  jordi
17644
17645         * XplatUIDriver.cs: fixes spelling mistake
17646
17647 2004-07-27 09:53  jordi
17648
17649         * TrackBar.cs: fixes trackbar events, def classname, methods
17650           signature
17651
17652 2004-07-27 09:29  jordi
17653
17654         * ScrollBar.cs: fixes scrollbar events
17655
17656 2004-07-27 04:38  jordi
17657
17658         * Control.cs: changes to be able to run winforms samples
17659
17660 2004-07-26 11:42  jordi
17661
17662         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
17663           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
17664
17665 2004-07-26 05:41  jordi
17666
17667         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
17668           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
17669           implementation
17670
17671 2004-07-22 09:22  jordi
17672
17673         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
17674           check link overlapping, implement events, and fixes
17675
17676 2004-07-21 10:28  jordi
17677
17678         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
17679
17680 2004-07-21 10:19  jordi
17681
17682         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
17683           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
17684           LinkLabelLinkClickedEventArgs.cs,
17685           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
17686           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
17687           implementation
17688
17689 2004-07-19 13:09  jordi
17690
17691         * Control.cs, Label.cs: label control re-written: added missing
17692           functionlity, events, and properties
17693
17694 2004-07-19 10:49  jordi
17695
17696         * Control.cs: fixes SetBounds logic
17697
17698 2004-07-19 01:29  jordi
17699
17700         * Control.cs: Call RefreshWindow only if the window has created
17701
17702 2004-07-15 14:05  pbartok
17703
17704         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
17705           - Implemented ImageList and ImageList.ImageCollection classes
17706           - Added ColorDepth enumeration
17707           - Updated SWF VS.Net project
17708
17709 2004-07-15 11:06  jordi
17710
17711         * XplatUIStructs.cs: added MsgButons enum
17712
17713 2004-07-15 11:03  jordi
17714
17715         * Control.cs: added basic mouse handeling events
17716
17717 2004-07-15 03:38  jordi
17718
17719         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
17720           Vertical TrackBar control implementation
17721
17722 2004-07-13 09:33  jordi
17723
17724         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
17725
17726 2004-07-13 09:31  jordi
17727
17728         * Control.cs, Form.cs: commit: new properties and fixes form size
17729           problems
17730
17731 2004-07-09 14:13  miguel
17732
17733         * ProgressBar.cs: Spelling
17734
17735 2004-07-09 11:25  pbartok
17736
17737         * ProgressBar.cs:
17738           - Removed usage of Rectangle for drawing. Miguel pointed out it's
17739           faster
17740
17741 2004-07-09 11:17  miguel
17742
17743         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17744
17745                 * ProgressBar.cs: Fixed spelling for `block'
17746
17747                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
17748                 style guidelines.
17749
17750                 Avoid using the += on rect.X, that exposed a bug in the compiler.
17751
17752 2004-07-08 23:21  pbartok
17753
17754         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
17755           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
17756           BaseCollection.cs, Binding.cs, BindingContext.cs,
17757           BindingMemberInfo.cs, BindingsCollection.cs,
17758           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
17759           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
17760           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
17761           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
17762           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
17763           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
17764           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
17765           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
17766           FrameStyle.cs, GiveFeedbackEventArgs.cs,
17767           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
17768           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
17769           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
17770           InputLanguageChangedEventArgs.cs,
17771           InputLanguageChangedEventHandler.cs,
17772           InputLanguageChangingEventArgs.cs,
17773           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
17774           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
17775           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
17776           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
17777           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
17778           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
17779           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
17780           QueryAccessibilityHelpEventArgs.cs,
17781           QueryAccessibilityHelpEventHandler.cs,
17782           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
17783           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
17784           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
17785           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
17786           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
17787           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
17788           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
17789           XplatUIX11.cs, lang.cs:
17790           - Initial check-in
17791