* TextControl.cs: We need to clear the entire selection area
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
1 2006-10-27  Jackson Harper  <jackson@ximian.com>
2
3         * TextControl.cs: We need to clear the entire selection area when
4         setting the start, otherwise multiline selections are still
5         visible.
6
7 2006-10-26  Chris Toshok  <toshok@ximian.com>
8
9         * PropertyGridView.cs: 
10
11         - ifdef all the code specific to the double
12         buffer case, and provide some alternatives in the non-doublebuffer
13         code, which makes heavy use of XplatUI.ScrollWindow to move things
14         around without having to invalidate (and cause flicker).  There
15         are still some drawing problems in the non-doublebuffered case, so
16         DOUBLEBUFFER is defined by default.
17
18         - Fix the way dropdowns are handled.  now we explicitly watch for
19         the events which might cause the dropdown to close, and break out
20         of the nested event loop there.  This gets rid of all Capture
21         code, at the expense of the Msg special casing.  Seems to work,
22         though, and fixes bug #79743.
23
24 2006-10-27  Rolf Bjarne Kvinge <RKvinge@novell.com>
25         * Control.cs: SetIsRecreating now recreates implicitly added
26         child controls as well. Finally fixes #79629. The flag passed to 
27         SetIsRecreating has also been removed since it wasn't used.
28         
29 2006-10-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
30
31         * PageSetupDialog.cs: Clean some code, fix some bits, 
32         add some checks, and add a printer sub-dialog.
33
34 2006-10-26  Chris Toshok  <toshok@ximian.com>
35
36         * PropertyGrid.cs: make set_SelectedObject call
37         set_SelectedObjects, and move the duplicate logic to the
38         SelectedObjects setter.  Also, raise SelectedObjectsChanged.
39
40         * PropertyGridView.cs: hide the textbox when we get a
41         SelectedObjectsChanged event.
42
43         Fixes bug #79748.
44
45 2006-10-26  Chris Toshok  <toshok@ximian.com>
46
47         * PropertyGridView.cs: deal with the type converter not supporting
48         GetStandardValues() or GetStandardValues() returning null, which
49         is does in the default case.  Fixes #79742.
50
51 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
52
53         * CheckedListBox.cs: nunit no longer crashes when selecting 
54         Project/Edit menu option
55         
56 2006-10-25  Andreia Gaita <shana.ufie@gmail.com>
57
58         * MenuAPI.cs: prevent ExecFocusedItem from blowing up if there
59         is no menu selected. fixes #79739
60
61 2006-10-25  Chris Toshok  <toshok@ximian.com>
62
63         * PropertyGridView.cs: factor out the splitter invalidation code
64         into the SplitterPercent setter, and for kicks implement the
65         Ctrl-Left/Ctrl-Right handling that moves the splitter by a small
66         amount in either direction.
67
68 2006-10-25  Chris Toshok  <toshok@ximian.com>
69
70         * PropertyGridView.cs: do some cleanup of the brush used to draw
71         text - read only fields should be grayed out.  not sure how to do
72         this with the textbox, though.  but the textbox's should also be
73         readonly now at least.  Also, hide/show the textbox when resizing
74         the control.
75         
76         * CursorConverter.cs: use System.Reflection when getting the
77         properties of Cursors, as TypeDescriptor.GetProperties isn't
78         returning static properties.
79
80 2006-10-25  Chris Toshok  <toshok@ximian.com>
81
82         * PropertyGridView.cs: factor out the up/down handling, and reuse
83         it for page up/down.  also add End/Home support.
84
85 2006-10-25  Chris Toshok  <toshok@ximian.com>
86
87         * PropertyGridView.cs:
88
89         - ensure the selected grid item is visible in the scrolled area,
90         fixes bug #79572.
91
92         - fix Keys.Down handling when you're on the last item in the
93         propertygrid.
94
95 2006-10-25  Mike Kestner  <mkestner@novell.com>
96
97         * MenuAPI.cs : set the ActiveTracker for MainMenu non-popup 
98         clicks too.  Fixes #79725.
99
100 2006-10-24  Chris Toshok  <toshok@ximian.com>
101
102         * PropertyGrid.cs: use property.Converter instead of
103         TypeDescriptor.GetConverter(property.PropertyType), so we catch
104         TypeConverters declared on the property as well as on the
105         PropertyType.  Fixes bug #79678.
106
107 2006-10-24  Alexander Olk  <alex.olk@googlemail.com>
108
109         * MimeIcon.cs, Mime.cs:
110           Fallback to the default platform handler if no shared mime info
111           stuff exists (fixes #79693).
112
113 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
114         * ContainerControl.cs: Incorrect contains check in ActiveControl 
115         from previous fix (duh).
116
117 2006-10-20  Chris Toshok  <toshok@ximian.com>
118
119         * PropertyGridView.cs: the dropdown should be MIN(number of items
120         in list, 15).  Fixes #79551.
121
122 2006-10-20 Andreia Gaita <shana.ufie@gmail.com>
123         Fixes #79384, #79394, #79652, #79667
124         * Application.cs: 
125         
126         - Modal windows are now destroyed in the proper order for windows
127         
128         * ContainerControl.cs:
129         
130         - ActiveControl setter has more conditions on when to return:
131                 - if we're reselecting the active control, but it actually
132                 didn't have focus (window hidden or some such), it runs
133                 - if the active control being selected doesn't actually 
134                 exist in the container, it returns
135         
136         * Form.cs
137         
138         - The ShowDialog now gets the current form as the owner when
139         invoking without parameters, and correctly activates the owner 
140         when returning
141         
142         * MessageBox.cs
143         
144         - MessageBox now catches the Escape key to exit
145
146 2006-10-20  Chris Toshok  <toshok@ximian.com>
147
148         * PropertyGridView.cs: fix a number of issues (bug #78565, and
149         most of bug #79676):
150
151         - you can navigate around the property grid with the arrow keys.
152
153         - the dropdown is sized properly when the pg has a vertical
154         scrollbar.
155
156         - fix the indentation for subentries, and properly select the
157         entire label rect.
158
159         - fix the gray bar's drawing (only draw it to the last element,
160         not for the height of the control.  Also make sure we draw that
161         last horizontal grid line.
162
163         - use the same mechanism the datagrid uses wrt the editing textbox
164         when scrolling/resizing/etc.  Namely, we hide it first, do the
165         operation, then show it again (if it's still visible).
166         
167         - aggressively remove a lot of unnecessary refreshes (and also
168         calls to Invalidate(). call more limited variants, and only redraw
169         what we need.)
170         
171         * PropertyGrid.cs:
172
173         - when we're populating the merged collection, fill in the UI
174         parent with either the passed in item, or the category item we
175         create.
176
177         - remove the Refresh call from the BorderHelpControl.OnSizeChanged.
178
179         * GridItem.cs: drop some fully qualified names.
180         
181         * GridEntry.cs: add a "UIParent", which is basically the parent
182         treenode.
183
184         * GridItemCollection.cs: add an IndexOf method.
185
186 2006-10-20  Mike Kestner  <mkestner@novell.com>
187
188         * MainMenu.cs : go back to Draw in OnMenuChanged.  Until we get
189         a working win32 NC invalidation mechanism, we can't invalidate
190         menus.  [Fixes #79705]
191
192 2006-10-20  Mike Kestner  <mkestner@novell.com>
193
194         * ListBox.cs : don't update the VScrollbar if the list is empty,
195         just hide it.  [Fixes #79692]
196
197 2006-10-20  Jackson Harper  <jackson@ximian.com>
198
199         * RichTextBox.cs: Handle some special chars better, and don't skip
200         the entire group when we encounter a special char that we don't
201         handle correctly.
202
203 2006-10-18  Chris Toshok  <toshok@ximian.com>
204
205         * PropertyGridView.cs: address a number of issues from bug #79676,
206         mostly of the cosmetic variety.
207
208         - The highlight rectangle for indented items not extends all the
209         way to the left.
210
211         - Indented items aren't indented so much.
212
213         - the dropdown is properly sized width-wise if the pg has a
214         vertical scrollbar.
215
216 2006-10-18  Chris Toshok  <toshok@ximian.com>
217
218         * XplatUIX11.cs (SystrayAdd): a rather convoluted change, but the
219         systray stuff is rather convoluted to begin with.
220
221         systray icons are a single window for some reason (that I haven't
222         figured out yet), and for them, client_window == whole_window.
223         Given the way the tests are structured elsewhere to determine
224         which paints are pending (client vs. nc), that situation will
225         always yield PAINT, not NCPAINT.  So, if we have a pending
226         nc_expose and no pending expose, remove the hwnd from the paint
227         queue, and also set nc_expose_pending to false, to keep us from
228         blocking further expose's adding the hwnd to the paint queue.
229
230         phew.  like i said, a rather convoluted change.  Fixes the
231         notifyicon repaint issues in bug #79645.
232
233 2006-10-18  Chris Toshok  <toshok@ximian.com>
234
235         * Form.cs: when getting the backcolor of the form, don't get
236         base.BackColor, as this allows parents to influence the background
237         color.  This breaks mdi forms.  Instead, if the background_color
238         is empty, return the default.
239
240 2006-10-18  Chris Toshok  <toshok@ximian.com>
241
242         * XplatUIX11.cs: change some debug ifdefs, and return XGetParent
243         to being private instead of internal static.
244
245         * Control.cs: remove all the stupid ParentWaitingOnRecreation
246         crap, it wasn't working for more deeply nested controls anyway,
247         and we already have the is_recreating flag - use that instead.
248         Before calling DestroyHandle in RecreateHandle, recurse through
249         the control tree setting it to true.  this returns the recreate
250         code to much of its original simplicity, while now guaranteeing we
251         actually recreate everything we're supposed to.  This change gets
252         fyireporting actually showing mdi children.
253
254 2006-10-17  Chris Toshok  <toshok@ximian.com>
255
256         * Form.cs: remove some debug spew, and collapse some duplicate
257         code at the end of SetClientSizeCore.
258
259         * XplatUIX11.cs: 
260         - add some more debug spew here too wrt Destroy handling.
261         - don't call hwnd.Dispose in DestroyWindow, it's effectively done
262         in Control's handling of WM_DESTROY.
263         - Remove the handling of zombie window DestroyNotifies from the
264         event loop - we don't need it.  Now the only DestroyNotifies we
265         actually handle are ones generated by X.
266         - When sending _NET_ACTIVE_WINDOW, the first param should be 1, to
267         match gtk's (functioning) handling of this. This keep metacity
268         from leaving droppings in the form of wm borders with no window
269         contents all over the place.
270
271         * Control.cs:
272         - add a bunch of debug spew wrt control recreation.
273         - fix a bug where we weren't tracking Visible properly on
274         recreated hwnds.
275         - fixed the WM_PAINT double buffer handling to support re-entrant
276         calls (yes, i know it's gross, but it's happening to us).
277
278 2006-10-17  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
279         * ThemeWin32Classic.cs: changed drawing of selected days
280         to make them look better.
281
282 2006-10-16  Chris Toshok  <toshok@ximian.com>
283
284         * Hwnd.cs: replace the user_data/client_dc/non_client_dc with
285         drawing_stack.  Nuke the ClientDC/NonClientDC properties.
286
287         * XplatUIX11.cs: move away from using hwnd.client_dc and
288         hwnd.non_client_dc and on to a stack of dc's (and in window's
289         case, PAINTSTRUCT's), so we can deal with nested Paint calls
290         without puking or not disposing of Graphics objects.
291
292         * XplatUIOSX.cs: same.
293
294         * XplatUIWin32.cs: same.
295
296 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
297
298         * FileDialog.cs: Don't call on_directory_changed inside
299           OnSelectedIndexChanged (it changes the SelectedIndex too).
300           Instead move it to OnSelectionChangeCommitted.
301
302 2006-10-13  Chris Toshok  <toshok@ximian.com>
303
304         * XplatUIX11.cs: more Destroy work.  the current code does the
305         following things, in order:
306
307         1. Enumerates all handles of all controls at or below the one
308         being destroyed, in pre-order.  As it is doing this, it marks the
309         handles as zombie and clears all references to them.
310         
311         2. calls XDestroyWindow on the window passed in.
312
313         3. SendMessage's WM_DESTROY to all he handles in the accumulated
314         list.
315
316 2006-10-13  Chris Toshok  <toshok@ximian.com>
317
318         * XplatUIX11.cs: set hwnd.zombie to true before calling
319         SendMessage (WM_DESTROY).  this keeps us from marking the new
320         window a zombie, and also keeps us from calling sendmessage at
321         all.
322
323 2006-10-13  Jackson Harper  <jackson@ximian.com>
324
325         * TextControl.cs: Do not show the caret and selection at the same
326         time.  Reduces ugliness by 35%.
327
328 2006-10-13  Chris Toshok  <toshok@ximian.com>
329
330         * XplatUIX11.cs (SendWMDestroyMessages): set the hwnd to be a
331         zombie after we do the recursive call, so we actually do call
332         SendMessage on the children controls.
333         (GetMessage): if we find a pending paint event for a zombie hwnd,
334         remove the hwnd from the paint queue, or else it will always be
335         there (and we'll effectively loop infinitely)
336
337 2006-10-13  Mike Kestner  <mkestner@novell.com>
338
339         * MenuItem.cs : add Selected format under keynav too.
340         Fixes #79528.
341
342 2006-10-13  Gert Driesen  <drieseng@users.sourceforge.net>
343
344         * PropertyGrid.cs: Fixed some NRE's and small difference between our
345         implementation and that of MS.
346
347 2006-10-13  Chris Toshok  <toshok@ximian.com>
348
349         * Control.cs (OnInvalidated) only futz with the invalid_region if
350         the control is double buffered.  this fixes the apparent hang in
351         the ListView unit tests.  Someone needs to make the
352         BeginEndUpdateTest not call OnInvalidated 15004 times, though..
353
354 2006-10-13  Chris Toshok  <toshok@ximian.com>
355
356         * PropertyGridView.cs:
357
358         - do a little refactoring so that only one place calls
359         dropdown_form.Hide, and that is CloseDropDown.  make everywhere
360         else call that.  Also make it Refresh, since there are redraw bugs
361         otherwise (we should take a look at that...)
362
363         - do a little more refactoring work to share the body of code
364         involved with the drop down.  it was duplicated in the code
365         dealing with the listbox handling and in the code dealing with the
366         UITypeEditors.
367
368         - add a Capture to the dropdown form's control once it's
369         displayed, and add a MouseDown handler that checks to make sure
370         the position is inside the control.  If it's not, close the
371         dropdown.  This fixes #78190.
372
373         - in SetPropertyValueFromUITypeEditor, only call SetPropertyValue
374         if the value is different than the initial value.
375         
376 2006-10-13  Andreia Gaita  <shana.ufie@gmail.com>
377
378         * Control.cs: see #78650
379         - Fixed GetNextControl for several cases:
380                 - Changed FindFlatForward to return 
381                 correct sibling control when more than one
382                 control has same TabIndex as the currently 
383                 focused one.
384                 - Changed FindFlatBackward to loop children
385                 from last to first and apply same logic as in
386                 FindFlatForward
387                 - Changed FindControlForward to search for
388                 children when control is not a container
389                 but has children, or search for siblings if
390                 control is a container...
391                 - Changed FindControlBackward   to continue
392                 searching for child controls when hitting 
393                 Panel-like parents
394                 
395         - Fixed Focus method to update ActiveControl
396         (FocusTest.FocusSetsActive failure)
397         
398         * TabControl.cs:
399         - Focus rectangle now refreshes when gaining
400         or losing focus
401         - Removed grab for Tab key on IsInputKey that 
402         was keeping tab navigation from working (#78650)
403
404 2006-10-13  Chris Toshok  <toshok@ximian.com>
405
406         * PropertyGridView.cs:
407         - Rewrite SetPropertyValue to loop over SelectedGridItem's
408         SelectedObjects.
409
410         - Deal with GridItem.Value == null a few places.
411
412         * PropertyGrid.cs: 
413         - replace the PopulateGridItemCollection with a pair of methods
414         which compute the intersection of all the properties in the
415         SelectedObjects array.  Fixes #79615.
416
417         - Throw ArgumentException from set_SelectedObjects if there's a
418         null in the array.
419
420         - Add GetTarget method which can be used to traverse up the
421         GridItem.Parent chain.  It depends on the assumption that
422         selected_objects for different GridEntries are always in the same
423         order (a safe assumption).  Use this method and loop over all the
424         selected objects in the entry when calling RemoveValueChanged and
425         AddValueChanged.
426         
427         * GridEntry.cs: Make this handle multiple selected objects.
428         .Value returns null if not all the selected objects share the same
429         value.
430
431 2006-10-12  Jonathan Pobst  <monkey@jpobst.com>
432         * ToolStrip.cs, ToolStripButton.cs, ToolStripComboBox.cs,
433           ToolStripControlHost.cs, ToolStripItem.cs, ToolStripLabel.cs,
434           ToolStripProfessionalRenderer.cs, ToolStripProgressBar.cs,
435           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs,
436           ToolStripTextBox.cs: Add accessibility, fix attributes/API and
437         add additional functionality.
438
439 2006-10-12  Mike Kestner  <mkestner@novell.com>
440
441         * ErrorProvider.cs : new ToolTipWindow ctor sig.
442         * HelpProvider.cs : new ToolTipWindow ctor sig.
443         * ToolTip.cs : remove ToolTip param from Window sig since it is
444         not used.
445         * ToolBar.cs : add tooltip support.  Fixes #79565.
446
447 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
448
449         * ComboBox.cs: move the events in set_SelectedIndex to 
450         after the call to HighlightIndex in order to avoid 
451         possible recursion and subsequent problems with the call
452         to HighlightIndex and include a range check in 
453         set_HighlightIndex. Fixes #79588
454         
455 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
456
457         * MonthCalendar.cs: When FirstDayOfWeek is default set firstday 
458         to ui thread's settings instead of sunday. 
459         * ThemeWin32Classic.cs: Localize the day string. Fixes #79563
460
461 2006-10-12  Rolf Bjarne Kvinge  <rolfkvinge@ya.com>
462
463         * DateTimePicker.cs
464         * MonthCalendar.cs
465         * ThemeWin32Classic.cs: rewrote DateTimePicker to fix bug #78364
466         and implement missing functionality (selecting different parts 
467         of the date and edit them individually with the keyboard).
468         
469 2006-10-11  Chris Toshok  <toshok@ximian.com>
470
471         * Control.cs (OnInvalidated): fix NRE relating to last change.
472
473 2006-10-11  Chris Toshok  <toshok@ximian.com>
474
475         * XplatUIX11.cs (SetWMStyles): make sure we include the MAXIMIZED
476         atoms in _NET_WM_STATE here if the window is maximized.  We need
477         to do this because we're *replacing* the existing _NET_WM_STATE
478         property, so those atoms will be lost otherwise, and any further
479         call to GetWindowState will return Normal for a window which is
480         actually maximized.  Fixes #79338.
481
482 2006-10-11  Jackson Harper  <jackson@ximian.com>
483
484         * TextControl.cs: Special case for setting selection end to
485         selection start, we basically kill the anchor.
486         - some todo comments.
487
488 2006-10-11  Chris Toshok  <toshok@ximian.com>
489
490         * Control.cs: switch to using an "invalid_region" to track which
491         parts of the image buffer need updating.  This is more code than
492         the simple fix from r66532.  That version just attempted to always
493         fill the entire buffer on redraw, which turns out to be
494         inefficient when invalidating small rectangles.  This version
495         simply adds the invalid rectangle to the invalid region.  When we
496         get any WM_PAINT message we see if it can be filled using the
497         image buffer, and if it can't (if the paint event's clip rectangle
498         is visible in the invalid region) we first fill the image buffer.
499         So, the image buffer is still a cache, we just fill it lazily.
500
501         * PaintEventArgs.cs: remove the SetClipRectangle method, we don't
502         need it any longer.
503
504 2006-10-11  Chris Toshok  <toshok@ximian.com>
505
506         * XplatUIX11.cs (SetWindowPos): we need to update both position as
507         well as size after calling XMoveResizeWindow.  This keeps us from
508         ignoring future SetWindowPos calls.  Fixes the disappearing
509         DateTimePicker in the ToolBarDockExample from bug #72499.
510
511 2006-10-11  Chris Toshok  <toshok@ximian.com>
512
513         * TextBoxBase.cs: reorder things a bit when it comes to
514         resizing-causing-recalculation.  we were recalculating the
515         document when our position was changed, which shouldn't happen.
516         We only care about size changes.  Clear up some more redundant
517         recalculation calls while I'm at it.  This makes the toolbar dock
518         example snappy when you're just dragging toolbars around (since it
519         causes a relayout whenever you move one.)
520
521 2006-10-11  Chris Toshok  <toshok@ximian.com>
522
523         * ToolBarButton.cs (get_Rectangle): this only returns
524         Rectangle.Empty if Visible == false, or Parent == null.
525         Parent.Visible doesn't matter.
526
527 2006-10-10  Chris Toshok  <toshok@ximian.com>
528
529         * Control.cs, PaintEventArgs.cs: "internal set { .. }" isn't loved
530         by .net 1.1, so switch to an internal method instead.
531
532 2006-10-10  Chris Toshok  <toshok@ximian.com>
533
534         * Control.cs (WM_PAINT): when a control is double buffered we draw
535         initially to the ImageBuffer and then copy from there.  But when a
536         parent control which has child controls is double buffered, the
537         initial drawing doesn't encompass the entire ClientRectangle of
538         the parent control, so we end up with uninitialized bits (this is
539         easily seen by dragging the top toolbar in
540         wf-apps/ToolBarDockExample to the right, quickly).  The fix is to
541         manually set the ClipRectangle of the paint_event (only the one we
542         use to populate the ImageBuffer) to ClientRectangle.  Fixes more
543         of the nastiness in bug #72499.
544
545         * PaintEventArgs.cs: Add an internal setter for ClipRectangle,
546         which we use in Control.cs's WM_PAINT handling.
547
548 2006-10-10  Jackson Harper  <jackson@ximian.com>
549
550         * TextBoxBase.cs: Finish off the autoscrolling stuff.
551
552 2006-10-10  Chris Toshok  <toshok@ximian.com>
553
554         * Cursor.cs: Apply a slightly different patch to the one suggested
555         in #79609.
556
557 2006-10-10  Jackson Harper  <jackson@ximian.com>
558
559         * MenuItem.cs: Make sure to put the mdi child in the hashtable,
560         not the parent form.
561         * TextControl.cs: use difference in old line count vs new count to
562         calculate how many lines were added, this takes into account soft
563         line breaks properly.
564
565 2006-10-10  Chris Toshok  <toshok@ximian.com>
566
567         * LinkLabel.cs: don't call MeasureCharacterRanges against a
568         rectangle located at 0,0 and the size of the text.  Use
569         ClientRectangle instead.  This fixes rendering of non-left aligned
570         link labels.
571
572 2006-10-10  Jackson Harper  <jackson@ximian.com>
573
574         * TextBoxBase.cs: When we set the selection start position the
575         caret.
576         * TextControl.cs: Need to update the caret when we decrement it to
577         zero.
578         - Make sure that the selection_visible flag gets reset to false if
579         the selection isn't visible.  Before this you could get it set to
580         visible by changing the selection start, then changing the end to
581         equal the start.
582
583 2006-10-09  Jackson Harper  <jackson@ximian.com>
584
585         * TreeView.cs: Don't update scrollbars when we aren't visible.
586         * TreeNodeCollection.cs: Only need to update scrollbars if being
587         added to an expanded visible node or the root node.
588
589 2006-10-09  Chris Toshok  <toshok@ximian.com>
590
591         * XplatUIX11.cs (SendMessage): fix NRE.
592
593 2006-10-09  Jackson Harper  <jackson@ximian.com>
594
595         * TextBoxBase.cs: Implement horizontal autoscrolling.
596         * TextControl.cs: Add a movement types that allows moving forward
597         and backwards without wrapping.
598
599 2006-10-09  Mike Kestner  <mkestner@novell.com>
600
601         * ListViewItem.cs : layout changes for wrapped LargeIcon labels
602         with focus "expansion" of labels.  Fixes #79532 and then some.
603         * ThemeWin32Classic.cs : add LineLimit to ListView label format
604         when wrapping.
605
606 2006-10-09  Jackson Harper  <jackson@ximian.com>
607
608         * TextBoxBase.cs: Set the default max values to MaxValue since
609         we use the scrollbar for autoscrolling and the default value is
610         100.  If we don't do this the caret won't keep up with typing
611         after about 18 characters.
612         * TextControl.cs: Make sure the selection is offset by the
613         viewport x.  This fixes selection when using auto scrolling.
614
615 2006-10-07  Andreia Gaita <shana.ufie@gmail.com>
616         
617         * Form.cs: The active control should be selected after the 
618         OnLoad so that any child control initialization that affects
619         the selection is done. Fixes #79406
620
621 2006-10-06  Chris Toshok  <toshok@ximian.com>
622
623         * XplatUIX11.cs: This is perhaps a dangerous change, but it seems
624         to have no evil effects.
625
626         - Stop selecting StructureNotifyMask on non-toplevel windows.
627
628           The only way children should be resized is by using the SWF api,
629           and we already send WM_WINDOWPOSCHANGED messages in those cases.
630           Toplevel windows can be interacted with via the window manager,
631           and so we keep the input mask there.
632
633           The other event StructureNotifyMask gives us (that we care
634           about) is DestroyNotify.  The code is already structured such
635           that it assumes we won't be getting a DestroyNotify event for
636           the window we pass to XDestroyWindow (which is what
637           StructureNotifyMask is supposed to guarantee.)  So, that code
638           shouldn't be affected by this either.
639
640         - Stop selecting VisibilityChangeMask altogether.
641
642           We weren't doing anything with the resulting events anyway.
643         
644         This vastly reduces the number of X requests and events we see
645         when resizing/laying out a large ui.
646
647 2006-10-06  Chris Toshok  <toshok@ximian.com>
648
649         * ScrollableControl.cs (DisplayRectangle): we need to take into
650         account the DockPadding regardless of whether or not auto_scroll
651         == true.  rework this slightly to this effect, and fix bug #79606,
652         and part of #72499 (you can now see the drag handles and drag
653         toolbars around).
654
655 2006-10-06  Gert Driesen  <drieseng@users.souceforge.net>
656
657         * ListViewItem.cs: Collections of selected and checked items are now
658         dynamically rebuilt. Whenever an item is (un)checked or (de)selected
659         we mark the collection "dirty".
660         * ListView.cs: Marked collections readonly. Modified UpdateSelection
661         to only clear SelectedItems when a new item is selected and MultiSelect
662         is enabled. CheckedItems and SelectedItems now subscribe to Changed
663         event of ListViewItemCollection, and mark its list dirty whenever
664         that event is fire. This allows us to return selected/checked items 
665         in the same order as they are in the Items collection. This matches
666         the MS behavior.
667
668 2006-10-06  Chris Toshok  <toshok@ximian.com>
669
670         * NotifyIcon.cs (HandleMouseUp): only show the context menu on
671         right mouse clicks.  Fixes bug #79593.
672
673 2006-10-06  Chris Toshok  <toshok@ximian.com>
674
675         * Splitter.cs: doh, fix splitters that don't want to cancel the
676         movement when you drag them.  Also, impose the limits on the
677         values we send to the SplitterMovingEvent.  Fixes #79598.
678
679 2006-10-06  Jackson Harper  <jackson@ximian.com>
680
681         * TextBoxBase.cs: Ignore whether or not the scrollbar is enabled,
682         since we use this for auto scrolling also.
683
684 2006-10-05  Chris Toshok  <toshok@ximian.com>
685
686         * DataGridBoolColumn.cs: Nuke the code from ConcedeFocus.  I'm
687         beginning to think that most datagrid column types don't need this
688         method.  Fixes bug #79392.
689
690 2006-10-05  Chris Toshok  <toshok@ximian.com>
691
692         * DataGrid.cs: move back to a more lazy scheme for creating the
693         CurrencyManager, so we aren't updating it every time you set
694         either DataSource or DataMember.  Also, don't call
695         RecreateDataGridRows if the currency manager hasn't changed.
696
697 2006-10-05  Chris Toshok  <toshok@ximian.com>
698
699         * ComboBox.cs: by the time the OnSelectionChangeCommitted event is
700         emitted, SelectedIndex should already be updated.  Fixes bug
701         #78929.
702
703 2006-10-05  Jonathan Pobst  <monkey@jpobst.com>
704
705         * ToolStripComboBox.cs, ToolStripControlHost.cs, ToolStripProgressBar,
706           ToolStripTextBox.cs: Initial commit.
707         * ToolStripItem.cs: Fixes for OnLayout, BackColor, Parent.
708
709 2006-10-05  Jackson Harper  <jackson@ximian.com>
710
711         * TabControl.cs: We need to invalidate the tab control area when
712         new ones are added (duh).
713
714 2006-10-03  Chris Toshok  <toshok@ximian.com>
715
716         * Form.cs (ProcessDialogKey): if the focused control is in this
717         form and is a button, call its PerformClick method here.  Fixes
718         #79534.
719
720 2006-10-04  Jackson Harper  <jackson@ximian.com>
721
722         * TabPage.cs: Ignore setting of Visible, and add an internal
723         method for setting the controls visibility.  TabPage's Visible
724         property is a little strange on MS, this seems to make us
725         compatible, and fixes cases where people set all the tab pages to
726         visible.
727         * TabControl.cs: Use the new internal setting on tab pages
728         visibility.
729
730 2006-10-03  Mike Kestner  <mkestner@novell.com>
731
732         * ComboBox.cs : raise Click on ComboTextBox clicks. Fixes #79555.
733
734 2006-10-03  Mike Kestner  <mkestner@novell.com>
735
736         * ListView.cs : use is_visible instead of Visible to check if 
737         scrollbars should be placed/sized.  Also some max_wrap_width
738         love for LargeIcon view.  [Fixes #79533]
739
740 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
741
742         * TextControl.cs :
743           Make set_TextAlign() do actually update the align. Fixed #78403.
744
745 2006-10-03  Chris Toshok  <toshok@ximian.com>
746
747         * DataGrid.cs: fix a crash when switching datasources if the
748         vertical scrollbar is at someplace other than Value = 0.  Also,
749         reduce the number of recalculation passes we do in SetDataSource
750         from 2 to 1.
751
752 2006-10-03  Jackson Harper  <jackson@ximian.com>
753
754         * TextBoxBase.cs: Move the if value the same bail check up, we
755         don't want to empty the document if it is already empty, this
756         seems to severly mess up the caret.  TODO: I should probably fix
757         the empty statement to update teh caret somehow.
758
759 2006-10-03  Chris Toshok  <toshok@ximian.com>
760
761         * ThemeWin32Classic.cs, DataGrid.cs: some changes so that the
762         incredibly hacky Windows.Forms FAQ autosize rows entry (it uses
763         reflection, an internal row type, properties on said type, etc.)
764         will work with our datagrid.  Fixes #79531.
765
766 2006-10-03  Alexander Olk  <alex.olk@googlemail.com>
767
768         * FileDialog.cs: Don't crash if a path is not accessible
769           (System.UnauthorizedAccessException). Fixes #79569.
770         * MimeIcon.cs: Workaround for a Uri bug. Unix paths/files can have
771           a ':' too. Return unknown icon for those paths/files.
772
773 2006-10-03  Sebastien Pouliot  <sebastien@ximian.com>
774
775         * ToolTip.cs: Fix rare, but possible, NRE on MouseEnter when 
776         GetContainerControl returns null.
777
778 2006-10-02  Chris Toshok  <toshok@ximian.com>
779
780         * XplatUIX11.cs (GetWindowState): use hwnd.client_window in the
781         call to XGetWindowAttributes instead of "handle".  fixes an X
782         error using notifyicon after the NotifyIconWindow to Form base
783         class switch.
784
785 2006-10-02  Chris Toshok  <toshok@ximian.com>
786
787         * XplatUIX11.cs (QueryPointer): new function, encapsulating the
788         server grab and looping we need to do to get down to the most
789         deeply nested child window.
790         (SetCursorPos): use QueryPointer instead of GetCursorPos, and call
791         QueryPointer again after the WarpPointer so we can generate a
792         proper (fake) MotionNotify event to be enqueued in the destination
793         window's queue.
794         (GetCursorPos): call QueryPointer.
795
796         Fixes #79556.
797
798 2006-10-02  Jackson Harper  <jackson@ximian.com>
799
800         * NotifyIcon.cs: Derive the notify icon from a form, so things
801         like FindForm work on it.
802         - Swallow the WM_CONTEXTMENU message, since that is generated on
803         mouse down, and context menu is a mouse up kinda guy.  I believe
804         the correct fix here is probably to make the notify icon entirely
805         NC area, but this seems to work fine for anyone not manipulating
806         WndProc.
807
808 2006-10-02  Jonathan Pobst  <monkey@jpobst.com>
809
810         * ToolStrip.cs, ToolStripButton.cs, ToolStripItem.cs,
811           ToolStripItemCollection.cs, ToolStripLabel.cs,
812           ToolStripProfessionalRenderer.cs, ToolStripRenderer.cs,
813           ToolStripSeparator.cs, ToolStripSplitStackLayout.cs:
814           Initial implementation.
815         * TextRenderer.cs: Provide padding to MeasureText.
816
817 2006-10-02  Sebastien Pouliot  <sebastien@ximian.com>
818
819         * ButtonBase.cs: Fix CreateAccessibilityInstance to return an instance
820         of ButtonBaseAccessibleObject. Fix bug #79552.
821
822 2006-10-02  Jackson Harper  <jackson@ximian.com>
823
824         * MdiWindowManager.cs: When maximizing use the containers client
825         rect, not it's bounds, so nc area is accounted correctly.
826         - Use the parent form's size for the menu position, since the
827         client isn't always the full form size.
828
829 2006-10-01  Chris Toshok  <toshok@ximian.com>
830
831         * ScrollableControl.cs: make sure neither right_edge or
832         bottom_edge are < 0, since they're used as LargeChange for the
833         horiz/vert scrollbars respectively.  Fixes #79539.
834
835 2006-10-01  Chris Toshok  <toshok@ximian.com>
836
837         * NotifyIcon.cs: add NotifyIconWindow.InternalRecreateHandle, so
838         the xplatuix11 code can cause us to destroy/recreate our handle.
839
840         * XplatUIX11.cs
841         (SystrayAdd):
842         - this code can be invoked many times for the same Hwnd.  Make
843           sure we only destroy the client window once (the first time this
844           method is called).  This fixes bug #79544.
845         - Remove the call to the improperly bound XSync.  why we had two
846           bindings to this, I will never know, but this call resulted in
847           events being discarded from the queue(!).
848         - correct a misunderstanding of _XEMBED_INFO - the second atom is
849           not our current state but the state we wish to be in.  So, 0 if
850           we don't want to be mapped.  Change it to 1.
851         (SystrayRemove): The XEMBED spec makes mention of the fact that
852         gtk doesn't support the reparent of client windows away from the
853         embedder.  Looking at gtksocket-x11.c seems to agree with this.
854         The only avenue we have for removing systray icons is to destroy
855         them.  We don't want the handle to go away for good, though, so
856         call InternalRecreateHandle on the NotifyIconWindow.  Fixes
857         #79545.
858         
859 2006-10-01  Chris Toshok  <toshok@ximian.com>
860
861         * Form.cs (WndProc): inline the native_enabled variable usage into
862         the cases in which it's used.  Fixes #79536.
863
864 2006-09-29  Mike Kestner  <mkestner@novell.com>
865
866         * ListView.cs : toggle the selection state for ctrl clicks in 
867         multiselect mode. [Fixes #79417]
868
869 2006-09-29  Mike Kestner  <mkestner@novell.com>
870
871         * ListView.cs : kill CanMultiSelect and refactor the selection
872         code to support multiselection in the absence of mod keys. Steal
873         arrow/home/end keys by overriding InternalPreProcessMessage to
874         restore regressed keynav behavior.
875         [Fixes #79416]
876
877 2006-09-29  Jackson Harper  <jackson@ximian.com>
878
879         * MdiClient.cs: Repaint the titlebars when the active window is
880         changed.
881
882 2006-09-29  Chris Toshok  <toshok@ximian.com>
883
884         * Application.cs: when entering a runloop with a modal, make sure
885         the hwnd is enabled.  Fixes #79480.
886
887 2006-09-29  Chris Toshok  <toshok@ximian.com>
888
889         * DataGrid.cs (CurrentCell): if we try to navigate to the add row
890         when ListManager.CanAddRows == false, bump us back one.
891
892         * DataGridColumnStyle.cs (ParentReadOnly): remove the
893         listmanager.CanAddRows check.  This makes ArrayLists uneditable
894         using a datagrid, which is not right.
895         (SetColumnValueAtRow): call IEditable.BeginEdit if source[rowNum]
896         is an IEditable, but call property_descriptor.SetValue regardless.
897         fixes #79435.
898
899 2006-09-29  Chris Toshok  <toshok@ximian.com>
900
901         * DataGridBoolColumn.cs: we need to test equality in the face of
902         possible null values (as is the case with the default NullValue).
903         This patch keeps us from crashing in that case.
904
905 2006-09-29  Jackson Harper  <jackson@ximian.com>
906
907         * TreeNodeCollection.cs: Don't do a recalculate/updatescrollbars
908         here, since it will get called for every node collection in the
909         tree. This is now done in the treeview once the sorting is
910         finished.
911         * TreeView.cs: Recalculate the visible order, and update the
912         scrollbars after sorting, set the top nope to the root so that the
913         recalc actually works.
914
915 2006-09-29  Chris Toshok  <toshok@ximian.com>
916
917         * LinkLabel.cs: more handling of the default link collection in
918         the face of LinkArea manipulation.  The default link collection
919         contains 1 element (start=0,length=-1).  If the user sets LinkArea
920         to anything and the links collection is the default, clear it.
921         Then only add the link if its nonempty.  Fixes #79518.
922
923 2006-09-29  Chris Toshok  <toshok@ximian.com>
924
925         * LinkLabel.cs (CreatePiecesFromText): calculate the length of a
926         piece correctly when we hit a '\n'.  Fixes #79517.
927
928 2006-09-29  Chris Toshok  <toshok@ximian.com>
929
930         * MimeIcon.cs, ThemeGtk.cs, X11DesktopColors.cs, XplatUIX11GTK.cs:
931         change the binding of gdk_init_check to take two IntPtr's, and
932         pass IntPtr.Zero for both of them.  Fixes #79520.
933
934 2006-09-29  Mike Kestner  <mkestner@novell.com>
935
936         * ComboBox.cs : raise TextChanged on ComboTextBox.TextChanged.
937         [Fixes #78779]
938
939 2006-09-28  Jackson Harper  <jackson@ximian.com>
940
941         * XplatUIX11.cs: When translating NC messages make sure we go from
942         whole window to screen, not client window to screen.
943         * MdiClient.cs: Remove the calls to PaintWindowDecorations, this
944         method doesn't exist
945         - Skip over controls that aren't forms when arranging.
946
947 2006-09-28  Jackson Harper  <jackson@ximian.com>
948
949         * XplatUIWin32.cs: Clip the rect to the parent window.
950         * XplatUIStructs.cs: Add clipping modes struct.
951         * InternalWindowManager.cs: New private method that factors title
952         bar heights in when calculating the pos of an NC mouse message.
953         - Use SendMessage to force a paint when the form's size is changed
954         instead of painting the decorations immediately.
955         - Don't let the NC button click messages get to DefWndProc,
956         because they will attempt to handle windowing themself, and this
957         messes up z-order (it will put them in front of the scrollbars).
958         * XplatUIX11.cs: Make sure that we don't reset window managers if
959         we already have one (ie the window is an MDI window).
960
961 2006-09-28  Chris Toshok  <toshok@ximian.com>
962
963         * MainMenu.cs: fix #79405 by way of a disgusting hack.  all the
964         menu code really needs going over.
965
966 2006-09-27  Chris Toshok  <toshok@ximian.com>
967
968         * XplatUIX11.cs (SetWMStyles): more metacity wonderment.  turns
969         out metacity ignores the MAXIMIZE_HORZ/VERT messages unless the
970         window is maximizable.  So, we need to make sure that even if we
971         clear the border/wm frame of those functions, they're still
972         available (basically, we remove the decoration without removing
973         the function).  Half the fix for #79338.
974
975 2006-09-27  Chris Toshok  <toshok@ximian.com>
976
977         * DataGrid.cs (ProcessGridKey): implement Shift-Tab handling.
978         Fixes bug #79515.
979
980 2006-09-27  Chris Toshok  <toshok@ximian.com>
981
982         * Splitter.cs: reorder things a bit so that we don't actually
983         draw/move the splitter until after calling OnSplitterMoving.  This
984         lets users cancel/disallow the movement by explicitly setting
985         event.SplitX/SplitY.  Fixes #79372.
986
987 2006-09-27  Jackson Harper  <jackson@ximian.com>
988
989         * XplatUIX11.cs: Don't hide the caret when it is being destroyed,
990         because it is most likely on a window being destroyed, and that
991         will give us an X11 error.
992
993 2006-09-27  Chris Toshok  <toshok@ximian.com>
994
995         * PropertyGridView.cs: half of the fix for #78190.  Clicking on
996         the dropdown button now toggles between showing and hiding the
997         dropdown.  Also, get rid of dropdown_form_showing and just use
998         dropdown_form.Visible.  We still don't do a grab, but I'll leave
999         that part to someone who has handled Capture-fu before.
1000
1001 2006-09-27  Chris Toshok  <toshok@ximian.com>
1002
1003         * DataGrid.cs: return false if alt isn't pressed when '0' is
1004         pressed.  this keeps the '0' key from being swallowed, and fixes
1005         bug #79350.
1006
1007 2006-09-27  Chris Toshok  <toshok@ximian.com>
1008
1009         * ComboBox.cs: use Invalidate when scrolling the dropdown list.
1010         Calling Refresh (in response to a scrollbar event) screws up the
1011         scrollbar painting.  Fixes bug #78923.
1012
1013 2006-09-27  Chris Toshok  <toshok@ximian.com>
1014
1015         * Theme.cs (SystemResPool): make the "if hashtable[key] == null
1016         then insert into hashtable" blocks threadsafe.
1017
1018 2006-09-27  Chris Toshok  <toshok@ximian.com>
1019
1020         * MessageBox.cs (CreateParams): the styles should be |'ed with our
1021         baseclass's, since otherwise the
1022         ControlBox/MinimizeBox/MaximizeBox assignments above have no
1023         effect.  This gets the close button back in messageboxes.
1024
1025 2006-09-27  Chris Toshok  <toshok@ximian.com>
1026
1027         * XplatUIX11.cs: make StyleSet and ExStyleSet check == with the
1028         flag, not just != 0.  this makes flags that are actually multiple
1029         bits (like WS_CAPTION) work.  fixes bug #79508.
1030
1031 2006-09-27  Jordi Mas i Hernandez <jordimash@gmail.com>
1032
1033         * PageSetupDialog.cs: add support for getting and settings the 
1034         paper size, source and orientation.
1035
1036 2006-09-26  Chris Toshok  <toshok@ximian.com>
1037
1038         * XplatUIX11.cs (SetWMStyles): turns out when SYSMENU is not set
1039         and caption == "", we need to remove the resize handles as well as
1040         the title bar.
1041
1042         * Control.cs (set_Text): turns out that setting Text on a form
1043         should change the WM styles on the window, since if ControlBox ==
1044         false, the only way to get a window border is to have a non-""
1045         Text property.  check winforms/forms/text.cs for an example.  so,
1046         call both XplatUI.SetWindowStyle and XplatUI.Text here to properly
1047         update both window styles and title.  This fixes a lot of dialogs
1048         (including the preferences dialog in MonoCalendar.)
1049
1050 2006-09-26  Chris Toshok  <toshok@ximian.com>
1051
1052         * XplatUIWin32.cs (SetParent): if parent == IntPtr.Zero (and the
1053         control isn't a Form), call Win32ShowWindow to hide the window,
1054         but don't update the control Visible property.  When we reparent
1055         back to a parent control, call SetVisible in order for the
1056         window's visibility to be reinstated.
1057
1058         * XplatUIX11.cs (SetParent): if hwnd.parent == null, reparent to
1059         the FosterParent.
1060
1061         * Control.cs (ControlCollection.Remove): remove that value.Hide()
1062         call for good, since it breaks MonoCalendar (and other things I'm
1063         sure.) Also, set all_controls to null *after* the owner calls,
1064         which end up regenerating it.
1065         (ChangeParent): allow new_parent to be == null, passing
1066         IntPtr.Zero down to XplatUI.
1067
1068         this fixes #79294 the right way.
1069
1070 2006-09-26  Mike Kestner  <mkestner@novell.com>
1071
1072         * GridEntry.cs : internal SetParent method.
1073         * PropertyGrid.cs : attach to property changed on the proper
1074         target if we have a hierarchical grid with subobjects. Setup
1075         GridItem.Parent for hierarchical items.
1076         * PropertyGridView.cs : Set value on the correct target for
1077         hierarchical grids. [Fixes #78903]
1078
1079 2006-09-26  Chris Toshok  <toshok@ximian.com>
1080
1081         * Control.cs (ChildNeedsRecreating): this should return true if
1082         either we're being recreated and the child is in our list, or our
1083         parent is waiting for our recreation.
1084
1085 2006-09-26  Chris Toshok  <toshok@ximian.com>
1086
1087         * Control.cs (ControlCollection.Remove): reinstate the
1088         value.Hide() call as suggested in bug #79294.
1089
1090 2006-09-26  Sebastien Pouliot  <sebastien@ximian.com>
1091
1092         * XplatUIX11.cs: Fixed SetCursorPos to move the cursor to screen
1093         coordinates (versus a relative move).
1094
1095 2006-09-26  Chris Toshok  <toshok@ximian.com>
1096
1097         * Control.cs: rework child recreation a little bit.  It turns out
1098         that we race between the DestroyNotify the WM_DESTROY message.  If
1099         the parent gets its DestroyNotify before the child gets the
1100         WM_DESTROY message, the child ends up not recreating (since the
1101         parent finishes its recreation on DestroyNotify, and the child
1102         checks ParentIsRecreating.)
1103
1104         So, instead we store off a list of all the child controls which
1105         need to be recreated when the parent control starts to recreate
1106         itself.  Then, when child controls get their WM_DESTROY message we
1107         check to see if they're in the parent's pending recreation list,
1108         and if so, we recreate.  This removes all dependency on ordering
1109         from the code and fixes the initial MonoCalendar upgrade dialog.
1110         
1111 2006-09-26  Jackson Harper  <jackson@ximian.com>
1112
1113         * TextControl.cs: Use the Line to get the length of the line,
1114         since soft line breaks can change the end line.
1115
1116 2006-09-26  Chris Toshok  <toshok@ximian.com>
1117
1118         * Control.cs (ControlCollection.AddImplicit): don't add the
1119         control again if it's already in one of our lists.  This keeps us
1120         from adding controls over and over again for comboboxes when their
1121         handle gets recreated (as the combobox adds implicit controls in
1122         OnHandleCreated).  Fixes the X11 errors in bug #79480.
1123
1124 2006-09-26  Jackson Harper  <jackson@ximian.com>
1125
1126         * TextControl.cs: When deleting characters make sure that any
1127         orphaned zero lengthed tags get deleted.
1128         - Fix ToString for zero lengthed tags.
1129
1130 2006-09-25  Jackson Harper  <jackson@ximian.com>
1131
1132         * TextControl.cs: When getting a tag at the location there can be
1133         multiple tags at the same spot, these are 0-lengthed tags that
1134         appear when extra formatting has been stuck in a location.  We
1135         need to pull out the last of these 0 lengthed tags.
1136
1137 2006-09-25  Jackson Harper  <jackson@ximian.com>
1138
1139         * TextControl.cs: Fix print out in debug method.
1140         * TextBoxBase.cs: When text is set bail if we are setting to the
1141         previous value.
1142         
1143 2006-09-24  Alexander Olk  <alex.olk@googlemail.com>
1144
1145         * FontDialog.cs: Fixed the up/down arrow keys issue from bug #79478.
1146           It is now possible to change the selected index in a FontXXXListBox
1147           with the up and down arrow keys from the FontXXXTextBoxes.
1148           Also, send the FontXXXTextBox mouse wheel event to the corresponding
1149           FontXXXListBoxes to match ms.
1150
1151 2006-09-22  Sebastien Pouliot  <sebastien@ximian.com>
1152
1153         * SystemInformation.cs: Return a clone of the theme's MenuFont because
1154         anyone can dispose it, anytime. All other properties returns enums, 
1155         structs or basic types so they don't need such tricks.
1156
1157 2006-09-22  Jackson Harper  <jackson@ximian.com>
1158
1159         * XplatUI.cs:
1160         * XplatUIWin32.cs:
1161         * Clipboard.cs:
1162         * DataFormats.cs:
1163         * XplatUIOSX.cs:
1164         * XplatUIDriver.cs: Update interface to add a primary selection
1165         flag, so the driver can use the primary selection buffer if
1166         needed.
1167         * XplatUIX11.cs: Allow the clipboard to retrieve from PRIMARY.
1168
1169         * RichTextBox.cs: We need to supply the data object to paste now
1170         (so we can choose to supply CLIPBOARD or PRIMARY).
1171         * TextBoxBase.cs: Supply data object to paste (see above).
1172         - Middle click uses the primary selection data object.
1173         
1174 2006-09-21  Chris Toshok  <toshok@ximian.com>
1175
1176         * XplatUIX11.cs: first little cleanup of the StyleSet (...) block
1177         of SetWMStyles.  It's still a rat's nest and is largely
1178         order-dependent which I dislike immensely.  This also fixes the X
1179         button disappearing from toplevel forms.
1180
1181 2006-09-21  Mike Kestner <mkestner@novell.com>
1182
1183         * ListBox.cs: move Jordi's click/dblclick raising code to the
1184         mouse up handler.
1185
1186 2006-09-21  Jordi Mas i Hernandez <jordimash@gmail.com>
1187
1188         * ListBox.cs: Fixes 79450
1189
1190 2006-09-21  Mike Kestner <mkestner@novell.com>
1191
1192         * TreeView.cs: guard against disposed conditions in UpdateScrollbars
1193         to deal with people updating the TreeNodeCollection after the tree
1194         is disposed.  "Fixes" 79330.
1195
1196 2006-09-20  Jackson Harper <jackson@ximian.com>
1197
1198         * TextControl.cs: Push the cursor record onto the undo stack
1199         before the delete action. This fixes 78651.
1200
1201 2006-09-20  Jonathan Chambers  <joncham@gmail.com>
1202
1203         * PropertyGridView.cs: Remove WindowStyles.WS_VISIBLE from
1204         CreateParams. Fixes 79329.
1205
1206 2006-09-19  Chris Toshok  <toshok@ximian.com>
1207
1208         * XplatUIX11.cs: a couple of blanket code massage passes to clean
1209         things up a bit.  First, get rid of the NetAtoms array (and the NA
1210         enum), and just embed the atoms as static fields.  Also, add a
1211         couple of functions (StyleSet and ExStyleSet) to clean up all the
1212         bitmask testing of styles.
1213
1214         * X11Structs.cs: remove the NA enum, not needed anymore.
1215         
1216 2006-09-19  Chris Toshok  <toshok@ximian.com>
1217
1218         * XplatUIX11.cs: apply Alexander's tool window fix for bug #79245
1219         (mapping them to _NET_WM_WINDOW_TYPE_UTILITY).  and add a little
1220         added cleanup to get MessageBox titles appearing again, which were
1221         broken by my earlier fix for caption-less/ControlBox-less windows.
1222
1223 2006-09-18  Jonathan Pobst <monkey@jpobst.com>
1224
1225         * ToolStripArrowRenderEventArgs.cs, ToolStripArrowRenderEventHandler.cs,
1226           ToolStripContentPanelRenderEventArgs.cs, ToolStripContentPanelRenderEventHandler.cs,
1227           ToolStripGripRenderEventArgs.cs, ToolStripGripRenderEventHandler.cs,
1228           ToolStripItemClickedEventArgs.cs, ToolStripItemClickedEventHandler.cs,
1229           ToolStripItemEventArgs.cs, ToolStripItemEventHandler.cs,
1230           ToolStripItemImageRenderEventArgs.cs, ToolStripItemImageRenderEventHandler.cs,
1231           ToolStripItemRenderEventArgs.cs, ToolStripItemRenderEventHandler.cs,
1232           ToolStripItemTextRenderEventArgs.cs, ToolStripItemTextRenderEventHandler.cs,
1233           ToolStripPanelRenderEventArgs.cs, ToolStripPanelRenderEventHandler.cs,
1234           ToolStripRenderEventArgs.cs, ToolStripRenderEventHandler.cs,
1235           ToolStripSeparatorRenderEventArgs.cs, ToolStripSeparatorRenderEventHandler.cs:
1236             Inital import.
1237         * ToolStripPanel.cs, ToolStripContentPanel.cs, ToolStripSeparator.cs,
1238           ToolStripButton.cs: Stubs needed for above.
1239         * ToolStrip.cs, ToolStripItem.cs: Stub a few variables/properties for above.
1240
1241 2006-09-15  Chris Toshok  <toshok@ximian.com>
1242
1243         * XplatUIX11.cs:
1244         - make the MessageQueues hashtable Synchronized.
1245         
1246         - SendMessage: if the Hwnd is owned by a different thread, use the
1247         AsyncMethod stuff to dispatch the SendMessage on the hwnd's
1248         thread.  Fixes bug #79201.
1249
1250 2006-09-15  Chris Toshok  <toshok@ximian.com>
1251
1252         * XplatUIX11.cs (SetWMStyles): rework the #79368 fix slightly.  If
1253         ControlBox == false, we disallow maximize/minimize/close.  If the
1254         form Caption is "" we also disallow move (and get rid of the Title
1255         decoration).  Unfortunately, regardless of how things are set,
1256         we're stuck with the Title and WM menu.
1257
1258 2006-09-15  Chris Toshok  <toshok@ximian.com>
1259
1260         * Application.cs: add locking around the static message_filters
1261         ArrayList, part of #79196.
1262
1263 2006-09-15  Chris Toshok  <toshok@ximian.com>
1264
1265         * XplatUIX11.cs (SetWMStyles): if Form.Text == "" and
1266         Form.ControlBox == false, the window has no titlebar nor resize
1267         handles.  fixes bug #79368.
1268
1269 2006-09-15  Chris Toshok  <toshok@ximian.com>
1270
1271         * TextBoxBase.cs: in CalculateScrollBars make sure LargeChange is
1272         >= 0.  Fixes bug #79370.
1273
1274 2006-09-15  Jonathan Pobst <monkey@jpobst.com>
1275         * FlowLayoutPanel.cs, FlowLayoutSettings.cs: Initial commit.
1276         * Control.cs:
1277             Add properties: LayoutEngine, Margin, DefaultMargin.
1278             Add method: GetPreferredSize.
1279             Move layout logic from PerformLayout to layout engines. 
1280
1281 2006-09-13  Chris Toshok  <toshok@ximian.com>
1282
1283         * XplatUIX11.cs: more destroy work.  Jackson pointed out that my
1284         fix for #79326 broke #78718, so this change addresses that.
1285
1286         - in SendWMDestroyMessages remove the call to
1287         CleanupCachedWindows, since we might be recreating the control and
1288         need to maintain the references to right Hwnd handles.  Also, set
1289         the zombie flag to true for each of the children in the hierarchy
1290         instead of calling hwnd.Dispose.  This will cause GetMessage to
1291         ignore all events for the window except for DestroyNotify.
1292
1293         - In GetMessage, ignore messages except for DestroyNotify for
1294         zombie hwnds.
1295         
1296         * Control.cs: revert the is_recreating fix from the last
1297         ChangeLog.  It's definitely "right", but it breaks switching from
1298         an MDI form to a non-MDI form.  Will need to revisit that.
1299
1300         * Hwnd.cs: add a zombie flag, which means "the
1301         client_window/whole_window handles are invalid, but we're waiting
1302         for the DestroyNotify event to come in for them".  Set the flag to
1303         false explicitly if setting WholeWindow/ClientWindow, and also
1304         when Disposing.
1305         
1306 2006-09-13  Chris Toshok  <toshok@ximian.com>
1307
1308         * XplatUIX11.cs: rework window destruction slightly.
1309
1310         - when destroying the windows associated with a control, we don't
1311         need 2 separate XDestroyWindow calls.  Just the one for the
1312         whole_window (or for client_window if whole_window is somehow
1313         IntPtr.Zero -- can this happen?) is enough.
1314
1315         - reworked SendWMDestroyMessages slightly, so we always dispose
1316         the child control hwnd's after sending the messages.
1317         
1318         - refactored out the ActiveWindow/FocusWindow/Caret clearing from
1319         the two places it was used (one was even using hwnd.Handle and the
1320         other hwnd.client_window.  ugh), adding another call in
1321         SendWMDestroyMessages.  We need this new call because now the
1322         DestroyNotify events in the queue will be ignored for the child
1323         controls (as their hwnd's were disposed, and the window id's
1324         removed from the hashtable in SendWMDestroyMessages.) fun, eh?
1325
1326         - this fixes bug #79326.
1327
1328 2006-09-13  Chris Toshok  <toshok@ximian.com>
1329
1330         * Control.cs: don't always set is_recreating to false at the end
1331         of RecreateHandle, since sometimes we're not done (and won't be
1332         until WndProc handles the WM_DESTROY message).  Also, set
1333         is_recreating to false in the WM_DESTROY handling code.  Part of
1334         the fix for bug #79326.
1335
1336 2006-09-13  Miguel de Icaza  <miguel@novell.com>
1337
1338         * X11DesktopColors.cs: Start the droppage of debugging messages.
1339
1340         * FileDialog.cs: Store the configuration file in ~/.mono/mwf_config
1341
1342 2006-09-13  Jonathan Pobst <monkey@jpobst.com>
1343
1344         * SplitContainer.cs, SplitterPanel.cs: Initial implementation [2.0].
1345
1346 2006-09-12  Chris Toshok  <toshok@ximian.com>
1347
1348         * DataGrid.cs (get_ListManager): if the list_manager is null, try
1349         to create it using SetDataSource.  Fixes bug #79151.
1350
1351 2006-09-11  Chris Toshok  <toshok@ximian.com>
1352
1353         * XEventQueue.cs: add a DispatchIdle property.
1354
1355         * XplatUIX11.cs (UpdateMessageQueue): only emit the Idle event if
1356         either the queue is null, or the queue has DispatchIdle set to
1357         true.
1358         (DoEvents): set queue.DispatchIdle to false around the
1359         peek/translate/dispatch message loop in this method.  This keeps
1360         Application.Doevents from emitting idle events.  Part of the fix
1361         for #78823.
1362
1363 2006-09-11  Chris Toshok  <toshok@ximian.com>
1364
1365         * DataGrid.cs (set_DataSource): make this work for both the
1366         winforms/datagrid test and ReportBuilder.  It seems as though when
1367         we've created a ListManager (or maybe it's if we have a
1368         BindingContext?), when we set the DataSource it clears the
1369         DataMember to "".  otherwise we reuse the datamember.  Fixes bug
1370         #79333.
1371
1372 2006-09-11  Chris Toshok  <toshok@ximian.com>
1373
1374         * XplatUIX11.cs: deal with queue being null, which happens in all
1375         the Clipboard functions.  Fixes one of the two problems mentioned
1376         in #78612.
1377
1378 2006-09-11  Chris Toshok  <toshok@ximian.com>
1379
1380         * MenuAPI.cs: rework OnMouseUp a bit so that releasing the mouse
1381         button on various spots (including outside the menu) works closer
1382         to MS, and doesn't crash.  Fixes #79343.
1383
1384 2006-09-11  Gert Driesen  <drieseng@users.sourceforge.net>
1385
1386         * ListView.cs: Do not initialize item_sorter in init. To match MS,
1387         return null for ListViewItemSorter if View is SmallIcon or LargeIcon
1388         and the internal comparer is set. When a new ListViewItemSorter is set,
1389         sort the items. Use Enum.IsDefined to verify whether a valid SortOrder
1390         was specified. No further processing is necessary if SortOrder is set
1391         to it's current value. If Sorting is modified to None, and View is
1392         neither SmallIcon nor LargeIcon then: on 2.0 profile set item_sorter
1393         (either custom or our internal ItemComparer) to null, on 1.0 profile
1394         only set item_sorter to null if its our internal IComparer. If Sorting
1395         is modified to Ascending or Descending, then use our internal IComparer
1396         if none is set, and if the current IComparer is our internal one then:
1397         on 2.0 profile always replace it with one for new Sorting, and on 1.0
1398         profile only use new Sorting if view is not SmallIcon or LargeIcon. Use
1399         Enum.IsDefined to verify whether a valid View value is specified in
1400         its setter. Automatically sort listview items when listview is
1401         created. In Sort, do nothing if ListView is not yet created, or if
1402         no item_sorter is set (no Sorting was set, Sorting was explicitly set
1403         to None or ListViewItemSorter was set to null). Added Sort overload
1404         taking a bool to indicate whether the ListView should be redrawn when
1405         items are sorted (we use this in ListViewItemCollection to avoid double
1406         redraws). Modified our internal IComparer to take the sort order into
1407         account. In Add and AddRange methods of ListViewItemCollection, also
1408         call Sort if Sorting is None (necessary for SmallIcon and LargeIcon
1409         view), but use overload with noredraw option to avoid double redraw.
1410         On 2.0 profile, throw NotSupportedException when setting CheckBoxes to
1411         true when View is Tile, and do the same when attempting to set View to
1412         Tile when CheckBoxes is true. Avoid maintaining separate ArrayLists
1413         for selected/checked indices, as it involves overhead when sorting is
1414         done while these collections are not used all that often. Instead
1415         we'll build the indices on demand. Modified IList implementation of
1416         CheckedIndexCollection to use public methods if object is int.
1417         Modified CheckedListViewItemCollection to hide checked items if
1418         ListView.CheckBoxes is false. Removed LAMESPEC remark in 
1419         ListViewItemCollection as the .NET SDK docs have been fixed. Modified
1420         IList implementation in SelectedIndexCollection to use public methods
1421         if object is int. Modified SelectedListViewItemCollection to hide
1422         selected items if listview is not yet created.
1423         * ListViewItem.cs: CheckedIndices list no longer needs to be
1424         maintained separately (see ListView changes). Also clone font, fixes
1425         test failure.
1426
1427 2006-09-11  Mike Kestner  <mkestner@novell.com>
1428
1429         * ComboBox.cs: if we are updating the contents of the currently
1430         selected index, refresh the control or the textbox selection.
1431         [Fixes #79066]
1432
1433 2006-09-11  Mike Kestner  <mkestner@novell.com>
1434
1435         * ComboBox.cs (UpdateBounds): use SetBounds not SetBoundsCore since 
1436         the 'specified' logic has been moved there.  This seems like a bug 
1437         in Control.cs, since our current SetBoundsCore completely ignores 
1438         the specified parameter.  Peter's commit seems to indicate that is 
1439         the way the MS control implementation works.  [Fixes #79325]
1440
1441 2006-09-10  Jonathan Chambers  <joncham@gmail.com>
1442
1443         * XplatUI.cs: Set default_class_name to be composed
1444         of current domain id. This allows MWF to be loaded in multiple
1445         domains on Win32.
1446
1447 2006-09-09  Miguel de Icaza  <miguel@novell.com>
1448
1449         * X11Keyboard.cs: If we are unable to obtain the input method, do
1450         not call CreateXic to create the input context.   Should fix
1451         #78944/79276.
1452
1453 2006-09-08  Alexander Olk  <alex.olk@googlemail.com>
1454
1455         * MimeIcon.cs: Rewrote major parts. Dropped KDE support for now.
1456           Simplified gnome support by adding more pinvokes to get the
1457           icon for a file or mime type.
1458
1459 2006-09-08  Jackson Harper  <jackson@ximian.com>
1460
1461         * MenuAPI.cs: Deslect popup context menu items before closing the
1462         window, so that you don't see the previously selected item
1463         selected when you reopen the menu.
1464         * TextControl.cs: Update the cursor position even if we don't have
1465         focus.  This fixes typing in things like the ComboBox.  I'm not
1466         totally sure we should always set the visibility if we don't have
1467         focus, but couldn't find any corner cases where the cursor showed
1468         up when it shouldn't.
1469
1470 2006-09-08  Chris Toshok  <toshok@ximian.com>
1471
1472         * X11Keyboard.cs: In UpdateKeyState vkey can be any integer, but
1473         our arrays are length 256.  & 0xff before indexing.  Fixes the
1474         crash in bug #78077.
1475         
1476 2006-09-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1477
1478         * ThemeWin32Classic.cs: 
1479         * DateTimePicker.cs: Draw check box if DateTimePicker.ShowCheckBox
1480         is true. Handle that check box too.
1481
1482 2006-09-07  Chris Toshok  <toshok@ximian.com>
1483
1484         * MenuAPI.cs: move the PerformClick call to OnMouseUp.  Fixes bug
1485         79244.
1486
1487 2006-09-07  Chris Toshok  <toshok@ximian.com>
1488
1489         * Control.cs: in set_BackColor only do the work if
1490         background_color != value.
1491
1492         * XplatUIX11.cs: move the clearing of invalid areas (both client
1493         and nc) to the same block of code where we set (nc_)expose_pending
1494         to false.  That is, move it from PaintEventEnd to PaintEventStart,
1495         so things that cause invalidates from within OnPaint will trigger
1496         another call to OnPaint.  Fixes bug #79262.
1497
1498 2006-09-07  Alexander Olk  <alex.olk@googlemail.com>
1499
1500         * Theme.cs: Use correct icon for UIIcon.PlacesPersonal
1501         * FileDialog.cs: Fix typo
1502
1503 2006-09-07  Jackson Harper  <jackson@ximian.com>
1504
1505         * ThemeWin32Classic.cs:  oops, forgot to commit.  Draw the images
1506         for tab pages if they have any.
1507
1508 2006-09-06  Mike Kestner  <mkestner@novell.com>
1509
1510         * Splitter.cs: use the "current" rect when finishing drag handle
1511         to avoid an artifact demonstrated by resedit.exe.  [Fixes #79251]
1512
1513 2006-09-06  Mike Kestner  <mkestner@novell.com>
1514
1515         * Splitter.cs: draw the drag handle at X or Y instead of 0 to deal
1516         support offset splitters. [Fixes #79298]
1517
1518 2006-09-06  Alexander Olk  <alex.olk@googlemail.com>
1519
1520         * Mime.cs: Fixed a bug that could override the global mime type
1521           result.
1522
1523 2006-09-05  Jackson Harper  <jackson@ximian.com>
1524
1525         * TabControl.cs: Better calculation method for setting the slider
1526         pos. Prevents crashes on really wide tabs.
1527         - Draw Image on tab pages if an image list is used.
1528
1529 2006-09-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1530
1531         * MonthCalendar.cs: When Font changes, the Size should be
1532         updated to fit the new font's space requirements.
1533
1534 2006-09-02  Alexander Olk  <alex.olk@googlemail.com>
1535
1536         * ListBox.cs: If the items are cleared with Items.Clear set
1537           top_index to 0.
1538
1539 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1540
1541         * MonthCalendar.cs: Handle arrow keys as input keys. Also
1542         fire DateChanged event instead of DateSelected event when
1543         the date was changed by keyboard interaction.
1544
1545 2006-09-01  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1546
1547         * DateTimePicker.cs: Handle DateChanged for the associated
1548         month_calendar control, and set month_calendar.Font from 
1549         OnFontChanged method, as well as resize the height of the
1550         control when needed. Make PreferredHeight proportional.
1551
1552 2006-09-01  Chris Toshok  <toshok@ximian.com>
1553
1554         * DataGrid.cs: grr, stop overthinking the DataMember/DataSource
1555         properties.
1556
1557         * BindingContext.cs (HashKey.GetHashCode): use ^ instead of +.
1558
1559 2006-09-01  Peter Dennis Bartok  <pbartok@novell.com> 
1560
1561         * FileDialog.cs: Set ClientSize instead of window size, to allow space
1562           for decorations (Fixes #79219)
1563
1564 2006-09-01  Mike Kestner  <mkestner@novell.com>
1565
1566         * ComboBox.cs: first stab at sorting plus some selection handling
1567         fixes to bring us more in line with MS behavior.  Also switches back
1568         to index based selection.  Alternative patches for index-based 
1569         selection were provided by Jackson Harper, Carlos Alberto Cortez, 
1570         and latency@gmx.de on bug 78848.  I assume they were similar to this
1571         code I've had simmering in my tree forever.
1572         [Fixes #78848]
1573
1574 2006-09-01  Chris Toshok  <toshok@ximian.com>
1575
1576         * CurrencyManager.cs (ListChangedHandler): in the ItemAdded case,
1577         when setting list position guard against ending up with a -1 index
1578         (the other part of the fix for #78812).  Should probably make sure
1579         we don't need the analogous fix in the ItemDeleted case.
1580
1581         * DataGrid.cs:
1582         - in SetDataSource, work around the fact that the way
1583         OnBindingContextChanged is invoked will cause us to re-enter this
1584         method.  I'll remove the hack once I investigate
1585         OnBindingContextChanged.
1586
1587         - fix the logic in set_DataSource and set_DataMember (basically
1588         what to do if the other of the two is null.)
1589         
1590         - in OnListManagerItemChanged, we need to take into account the
1591         edit row when deciding whether or not to call RecreateDataGridRows
1592         (part of the fix for #78812).
1593
1594 2006-09-01  Jackson Harper  <jackson@ximian.com>
1595
1596         * Splitter.cs: Don't do anything if there is no control to affect
1597         (prevents us from crashing in weird tet cases).
1598         * TreeView.cs: Bounding box for the mouse movement reverting
1599         focus/selection back to previously selected node.  This matches
1600         MS, and makes the tree a lot more useable.
1601         * GroupBox.cs: Instead of drawing over the lines of the groupbox,
1602         use clipping so they are not drawn.  This fixes when the control
1603         is set to have a transparent background, or if it was over an
1604         image.
1605
1606 2006-09-01  Alexander Olk  <alex.olk@googlemail.com>
1607
1608         * MimeIcon.cs: Improved handling for reading default icons when
1609           using gnome (2.16 made it necessary). Check and read svg icons
1610           first, then 48x48 and then 32x32 icons.
1611
1612 2006-08-31  Chris Toshok  <toshok@ximian.com>
1613
1614         * DataGridTextBoxColumn.cs: only hide the textbox if it's still
1615         visible.
1616
1617         * DataGridTextBox.cs: Pass Tab's up to the datagrid by calling
1618         ProcessKeyPreview.  Fixes part of #77806.
1619
1620         * DataGrid.cs: big patch.
1621
1622         - revert the queueing up of DataSource/DataMember if inside
1623         BeginInit/EndInit calls.  That's not the way the datagrid achieves
1624         its delayed databinding.  Instead, call SetDataSource in
1625         OnBindingContextChanged.  This mimic's MS's behavior, and fixes
1626         #78811.
1627
1628         - Also, it wasn't mentioned in #78811, but the test case exhibits
1629         behavior that was lacking in our datagrid implementation - Columns
1630         that have mapping names that don't exist in the datasource's
1631         properties aren't shown.  Yuck.  To fix this I added the bound
1632         field to the column style, and basically any calculation to figure
1633         out anything about columns uses a loop to find the bound columns.
1634         still need to investigate if I can cache an array of the bound
1635         columns or if the indices must be the same.
1636
1637         - When setting CurrentCell, we no longer abort if the cell being
1638         edited was in the add row.  This fixes the other part of #77806.
1639
1640         - The new code also fixes #78807.
1641         
1642         * ThemeWin32Classic.cs: perpetrate the same disgusting
1643         column.bound field hack, and only render bound fields.
1644
1645 2006-08-31  Chris Toshok  <toshok@ximian.com>
1646
1647         * DataGridColumnStyle.cs: add bound field.  this field is true if
1648         the datasource has a property corresponding to the mapping name.
1649
1650         * DataGridTableStyle.cs: set the bound field on the column styles
1651         depending on whether or not we have a column for that property.
1652
1653 2006-08-31  Peter Dennis Bartok  <pbartok@novell.com> 
1654
1655         * Splitter.cs (SetBoundsCore): Don't ignore width/height of the 
1656           splitter control (fixes #79228)
1657
1658 2006-08-31  Chris Toshok  <toshok@ximian.com>
1659
1660         * DataGridColumnStyle.cs: we need to delay the assignment of
1661         property descriptor until the last possible moment due to the lazy
1662         databinding stuff in the datagrid.  Also, fix the exceptions
1663         thrown by CheckValidDataSource to match MS.
1664
1665 2006-08-31  Jackson Harper  <jackson@ximian.com>
1666
1667         * Form.cs: When activated select the active control, if there is
1668         no active control, we select the first control.
1669         * XplatUIX11.cs: If there is no focus control when we get a
1670         FocusIn event, find the toplevel form and activate it.  This
1671         occurs when you popup a window, it becomes the focus window, then
1672         you close that window, giving focus back to the main window.
1673
1674 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1675
1676         * MonthCalendar.cs: 
1677         * ThemeWin32Classic.cs: Cache Font in bold style, as well
1678         as StringFormat with Center alignments in MonthCalendar,
1679         instead of creating new ones when drawing the control. 
1680         Also, draw the month name in bold style.
1681
1682 2006-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
1683
1684         * Control.cs:
1685           - PerformLayout(): It would seem MS performs the fill even if the 
1686             control is not visible (part of #79218 fix)
1687           - ResetBackColor(): Use the setter to reset the color, to allow
1688             overriders to catch the change.
1689         * Form.cs:
1690           - .ctor: Call UpdateBounds to adjust client rectangle (part of #79218 fix)
1691           - CreateHandle(): dito (part of $79218 fix)
1692           - Don't set an icon if we have a dialog
1693         * ScrollableControl.cs:
1694           - set_AutoScrollMinSize: Setting the property enables AutoScroll (#79218)
1695           - ScrollIntoView(): No need to scroll if control is already visible
1696             (resolves fixme and fixes #79218)
1697
1698 2006-08-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1699
1700         * MonthCalendar.cs: Change proportions in SingleMonthSize
1701         to match the aspect of the original control.
1702
1703 2006-08-29  Alexander Olk  <alex.olk@googlemail.com>
1704
1705         * XplatUIX11.cs: Fix for a metacity/X problem where windows don't
1706           get updated when they get maximized.
1707
1708 2006-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
1709
1710         * XplatUIX11.cs: Handle windows with no border (Fixes part of #79160)
1711
1712 2006-08-29  Chris Toshok  <toshok@ximian.com>
1713
1714         * XplatUIX11.cs: when destroying the FocusWindow, send KILLFOCUS.
1715
1716 2006-08-29  Jackson Harper  <jackson@ximian.com>
1717
1718         * TreeView.cs: Need to track selected node and highlighted node,
1719         they aren't always the same thing, when the mouse is down on a
1720         node it is hilighted, but not selected yet.
1721         - Do the HideSelection stuff right
1722         - Need to focus on rbutton mouse down. And redraw selection when
1723         right click is mouse upped.
1724
1725 2006-08-29  Mike Kestner  <mkestner@novell.com>
1726
1727         * ThemeWin32Classic.cs: draw selections for columns in FullRowSelect
1728         when SubItems.Count < Columns.Count.  [Fixes #79167]
1729
1730 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com> 
1731
1732         * TextControl.cs (FindCursor): Fix math error (Fixes #78402)
1733
1734 2006-08-28  Peter Dennis Bartok  <pbartok@novell.com>
1735
1736         * XplatUIX11.cs: Preempt the roundtrip for getting the location back
1737           from X. Only send based on ConfigureNotify if we don't have the
1738           correct location in hwnd (if the window manager moved us)
1739
1740 2006-08-28  Mike Kestner  <mkestner@novell.com>
1741
1742         * ListView.cs: remove a TODO. 
1743         * ThemeWin32Classic.cs: implement HideSelection support for ListView.
1744         [Fixes ListView part of #79166]
1745
1746 2006-08-28  Mike Kestner  <mkestner@novell.com>
1747
1748         * ListView.cs: move wheel handler to parent since it is focused
1749         instead of the item_control now.  [Fixes #79177]
1750
1751 2006-08-28  Mike Kestner  <mkestner@novell.com>
1752
1753         * ThemeWin32Classic.cs: only highlight subitems in fullrowselect
1754         when the control is focused. [Fixes #79171]
1755
1756 2006-08-28  Mike Kestner  <mkestner@novell.com>
1757
1758         * ListView.cs: size the item and header controls for empty and
1759         unscrollable views.
1760         * ThemeWin32Classic.cs: draw disabled backgrounds.
1761         [Fixes #79187]
1762
1763 2006-08-28  Chris Toshok  <toshok@ximian.com>
1764
1765         * Form.cs: remove unused "active_form" static field.
1766
1767         * Hwnd.cs: lock around accesses to static windows collection.
1768
1769         * Application.cs: lock threads in Exit ().
1770
1771 2006-08-28  Chris Toshok  <toshok@ximian.com>
1772
1773         * NativeWindow.cs: lock around accesses to window_collection.
1774         
1775 2006-08-28  Chris Toshok  <toshok@ximian.com>
1776
1777         * Control.cs: err, fix this the right way, by locking on controls
1778         when using it.  not by making it synchronized.
1779
1780 2006-08-28  Chris Toshok  <toshok@ximian.com>
1781
1782         * Control.cs: make the static "controls" field synchronized, as it
1783         gets updated from multiple threads.
1784
1785 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1786
1787         * XplatUIX11.cs: PostQuitMessage is thread-specific not app-specific.
1788           Prevent other threads from exiting when calling thread sets quit state.
1789         * XEventQueue.cs: Added PostQuitState property
1790
1791 2006-08-27  Chris Toshok  <toshok@ximian.com>
1792
1793         * AsyncMethodData.cs: add a slot for the window handle.
1794
1795         * XplatUIX11.cs (SendAsyncMethod): send the event to the right
1796         window (the destination control's window, not the foster window).
1797
1798         * Control.cs (BeginInvokeInternal): store the window's handle in
1799         the AsyncMethodData.
1800         
1801
1802 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com>
1803
1804         * XplatUIX11.cs:
1805           - PostQuitMessage: Removed resetting S.D display handle, we might have
1806             another loop started after calling PostQuitMessage (Fixes #79119)
1807           - Created destructor to reset S.D handle
1808
1809 2006-08-27  Peter Dennis Bartok  <pbartok@novell.com> 
1810
1811         * XplatUIX11.cs (SetCursor): Issue flush after setting the cursor (#79168)
1812
1813 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1814
1815         * TextControl.cs (Insert): Update the caret position even if we don't
1816           have a handle yet, just don't call the driver in that case.
1817         * TextBoxBase.cs (set_SelectedText): Set the Start and End selection
1818           to the end of the new selection text (Fixes #79184)
1819
1820 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1821
1822         * Form.cs (Activate): Only activate if the handle is created)
1823         * Control.c:
1824           - Mark window as invisible when it's disposed
1825           - Check if window handle is created when setting window visible, 
1826             instead of relying just on the is_created variable
1827           - Check if object is disposed when creating the control (Fixes #79155)
1828
1829 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1830
1831         * ScrollableWindow.cs (ScrollWindow): Don't actually perform layouting
1832           when allowing layout again. Otherwise we re-generate the anchoring 
1833           distance to the border again and actually alter what the user wanted
1834           This is ugly, it'd be better if we used DisplayRectangle instead of
1835           ClientRectangle for Control.UpdateDistances, but that causes us to
1836           have other problems (initial anchoring positons would be wrong)
1837           (Fixes #78835)
1838
1839 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1840
1841         * Control.cs:
1842           - The size and location setters shouldn't go directly to 
1843             SetBoundsCore, but to SetBounds, which triggers layout on the
1844             parent, then calls SetBoundsCore. (Related to fix for #78835)
1845           - SetBounds: Moved actual location update code into this function
1846             from SetBoundsCore, to match MS. Added call to PerformLayout if
1847             we have a parent (to trigger resizing of anchored parents if the 
1848             child size has changed (see testcase for #78835) 
1849         * ListBox.cs, Form.cs: Call SetBounds instead of SetBoundsCore to match 
1850           new control code
1851         * ScrollableControl.cs (CalculateCanvasSize): Use shortcut variable
1852
1853 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1854
1855         * XplatUIX11.cs: Don't reset the DisplayHandle that's stored in
1856           System.Drawing when a toplevel window gets closed; there might
1857           be other toplevel windows belonging to the same app (Fixes #78052)
1858
1859 2006-08-26  Alexander Olk  <alex.olk@googlemail.com>
1860
1861         * FileDialog.cs: After reading FileDialog settings from mwf_config
1862           use Desktop prefix only if a real folder doesn't exist anymore.
1863         * FontDialog.cs: Added char sets.
1864           It is now possible to select the font, size or style with the
1865           textboxes.
1866
1867 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
1868
1869         * PrintPreviewDialog.cs: Use assembly name constants.
1870
1871 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1872
1873         * XplatUIWin32.cs (ScrollWindow): Use clipping rectangle arg (prevents
1874           scrollbar from whacking it's buttons)
1875
1876 2006-08-24  Chris Toshok  <toshok@ximian.com>
1877
1878         * ScrollableControl.cs: fix #78271.  There's a lot of misc stuff
1879         in this patch (aggregating setting Left/Top/Width/Height to
1880         setting Bounds on the scrollbars), but the crux of the fix is in
1881         Recalculate, where we scroll by the remaining scroll_position if
1882         we're hiding a scrollbar.  The 2*$5 reward in the comment is
1883         serious.
1884
1885 2006-08-24  Jackson Harper  <jackson@ximian.com>
1886
1887         * MdiClient.cs:
1888         * MdiWindowManager.cs: If the form is made a non-mdi window we
1889         need to remove the form closed event so that closing forms works
1890         correctly.
1891
1892 2006-08-24  Jackson Harper  <jackson@ximian.com>
1893
1894         * Control.cs: Make IsRecreating internal so that the driver can
1895         check it
1896         - Temporarily remove the Hide when controls are removed, its
1897         making a whole bunch of things not work because visibility isn't
1898         getting reset elsewhere correctly
1899         * Form.cs: Need to do a full handle recreation when the mdi parent
1900         is set.
1901         * XplatUIX11.cs: If we are recreating handles don't dispose the
1902         HWNDs.  What was happening is the handles were being recreated in
1903         SendWMDestroyMessages, but then flow continued on in that method
1904         and destroyed the new handles.
1905
1906 2006-08-23  Jackson Harper  <jackson@ximian.com>
1907
1908         * Form.cs: MdiClient is always at the back of the bus
1909         * Control.cs: When the order of items in the collection is changed
1910         we need to reset the all_controls array
1911         - do the same sorta setup thats done when adding a control when a
1912         control is set on the collection.
1913
1914 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com>
1915
1916         * TextBoxBase.cs (get_Text): Return an empty array if our document
1917           is empty (fixes #79052)
1918
1919 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1920
1921         * Control.cs: We should call IsInputChar on only on WM_CHAR but not
1922           on WM_SYSCHAR messages (fixes #79053)
1923
1924 2006-08-23  Chris Toshok  <toshok@ximian.com>
1925
1926         * DataGrid.cs: fix flickering when scrolling vertically.
1927
1928 2006-08-23  Chris Toshok  <toshok@ximian.com>
1929
1930         * DataGrid.cs (EndEdit): only invalidate the row header when we
1931         need to.
1932
1933 2006-08-23  Chris Toshok  <toshok@ximian.com>
1934
1935         * ThemeWin32Classic.cs: fix the clip munging of the datagrid paint
1936         methods.  fixes the flicker when scrolling around.
1937
1938 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1939
1940         * FileDialog.cs: Making sure the control is created before we get a 
1941           chance to use it with BeginInvoke (Fixes #79096)
1942
1943 2006-08-23  Chris Toshok  <toshok@ximian.com>
1944
1945         * ThemeWin32Classic.cs (DataGridPaintRows): calculate the proper
1946         width to use when painting the rows.
1947
1948 2006-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
1949
1950         * TextBoxBase.cs:
1951           - Throw ArgumentException if a negative value is passed to SelectionLength
1952           - Update the selection end if start is moved. end needs to be always
1953             after start. (Fixes #79095)
1954           - Track selection length; MS keeps the selection length even if start
1955             is changed; reset on all other operations affection selection
1956
1957 2006-08-22  Jackson Harper  <jackson@ximian.com>
1958
1959         * TreeView.cs: Make sure both scrollbars get displayed and sized
1960         correctly when the other bar is visible.
1961         - Use the original clip rectangle for checking if the area between
1962         the two scrollbars is visible, not the viewport adjusted clipping
1963         rectangle.
1964
1965 2006-08-22  Jackson Harper  <jackson@ximian.com>
1966
1967         * Binding.cs: We don't use IsBinding because it requires the
1968         control to be created, which really shouldn't be necessary just to
1969         set a property on the control.
1970
1971 2006-08-21  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1972
1973         * ComboBox.cs: Some CB.ObjectCollection methods must throw
1974         ArgumentNullReferenceException when the argument is null.
1975
1976 2006-08-21  Jackson Harper  <jackson@ximian.com>
1977
1978         * Timer.cs: Track the thread that the timer is started in (NOT
1979         CREATED), this way messages for it will only be triggered on its
1980         queue.
1981         * XEventQueue.cs: Track the timers here, this makes timers per
1982         thread, like MS.
1983         * XplatUIX11.cs: The timers are moved to the XEventQueue.
1984
1985 2006-08-19  Chris Toshok  <toshok@ximian.com>
1986
1987         * XplatUIX11.cs: after further communication with pdb, we get the
1988         best of both worlds.  SetZOrder working for un-Mapped windows, and
1989         no X errors for un-mapped windows.
1990
1991 2006-08-19  Chris Toshok  <toshok@ximian.com>
1992
1993         * XplatUIX11.cs (SetZOrder): remove the if (!hwnd.mapped) check,
1994         as it was causing pdn toolbars to not have the correct stacking.
1995
1996 2006-08-18  Mike Kestner  <mkestner@novell.com> 
1997
1998         * ListView.cs : guard against negative ClientArea.Width in scrollbar
1999         calculation.  Not sure why control should ever be setting a negative
2000         width though.  Fixes #78931.
2001
2002 2006-08-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2003
2004         * ComboBox.cs: Throw ArgumentNullException when adding/modifyng
2005         null items in ObjectCollection class.
2006         * ListBox.cs.: Likewise.
2007
2008 2006-08-18  Atsushi Enomoto  <atsushi@ximian.com>
2009
2010         * ThemeNice.cs, ThemeClearlooks.cs : remove RadioButton_DrawFocus()
2011           as the base method in ThemeWin32Classic should work fine.
2012           Fixed bug #78607.
2013
2014 2006-08-18  Jackson Harper  <jackson@ximian.com>
2015
2016         * Binding.cs: When validating if the value entered doesn't convert
2017         properly reset to the old value.
2018         * RadioButton.cs: Don't fire click when we get focus.
2019
2020 2006-08-18  Jackson Harper  <jackson@ximian.com>
2021
2022         * FileDialog.cs: Paint the selection on the directory combobox the
2023         same way as on MS. 
2024
2025 2006-08-17  Jackson Harper  <jackson@ximian.com>
2026
2027         * ErrorProvider.cs: Don't allow the error control to be selected.
2028         * Control.cs: Don't send the SetFocus messages, the control
2029         activation will do this, and if we do it blindly here validation
2030         does not work.
2031
2032 2006-08-17  Jackson Harper  <jackson@ximian.com>
2033
2034         * Control.cs:
2035         * ContainerControl.cs: Make validation events fire in the correct
2036         order.  TODO: For some reason the first validation event is not
2037         getting fired.
2038
2039 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2040
2041         * ComboBox.cs : some null guarding for ComboListBox.Scroll.
2042
2043 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2044
2045         * ComboBox.cs : implement scroll wheel support for popped-down
2046         state. Fixes #78945. 
2047
2048 2006-08-17  Jackson Harper  <jackson@ximian.com>
2049
2050         * TreeView.cs: Specify treeview actions (old patch that didn't get
2051         committed for some reason).
2052         - Don't let the mouse wheel scroll us too far.  Just want to make
2053         the bottom node visible, not scroll it all the ways to the top.
2054
2055 2006-08-17  Jackson Harper  <jackson@ximian.com>
2056
2057         * XplatUIX11.cs: Mouse wheel events go to the focused window.
2058
2059 2006-08-17  Mike Kestner  <mkestner@novell.com> 
2060
2061         * ComboBox.cs : don't do mouseover selection in simple mode.
2062
2063 2006-08-16  Jackson Harper  <jackson@ximian.com>
2064
2065         * Form.cs: Fire the closing events for all the mdi child windows
2066         when a window is closed.  If the cancel args are set to true, the
2067         main window still gets the event fired, but it doesn't not close.
2068         * MdiWindowManager.cs: Do this closing cleanup in a Closed
2069         handler, instead of when the button is clicked, so cancelling the
2070         close works correctly.
2071         * ComboBox.cs: Send the mouse down to the scrollbar.
2072
2073 2006-08-16  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2074
2075         * ListBox.cs: When passing 'null' to SelectedItem,
2076         set SelectedIndex to -1, to unselect items. This is the
2077         observed behaviour in .Net.
2078
2079 2006-08-16  Peter Dennis Bartok  <pbartok@novell.com> 
2080
2081         * TextBoxBase.cs: Overriding HandleClick to get clicks in spite of
2082           MS flags saying there won't be any. (fixes #78800)
2083         * Control.cs (HandleClick): Made virtual
2084
2085 2006-08-16  Atsushi Enomoto  <atsushi@ximian.com>
2086
2087         * PageSetupDialog.cs : use Yard-Pound units only in en-GB and en-US
2088           cultures. Fixed bug #78399.
2089
2090 2006-08-16  Jackson Harper  <jackson@ximian.com>
2091
2092         * Form.cs: Use the MdiClients MdiChildren property to access
2093         MdiChildren instead of creating the array from the child controls.
2094         * MdiClient.cs: Maintain a separate array of the mdi children, so
2095         that insertion order is maintained when the Z-order is changed.
2096
2097 2006-08-16  Mike Kestner  <mkestner@novell.com> 
2098
2099         * ListView.cs : add an ItemComparer and default to it for sorting.
2100         Fixes #79076, but sorting needs a complete overhaul to be compat with
2101         MS.
2102
2103 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2104
2105         * XplatUIX11.cs (SetZOrder): Fix debugging leftover (fixes #79080)
2106
2107 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2108
2109         * Hwnd.cs (Mapped): Properly traverse the tree
2110
2111 2006-08-15  Chris Toshok  <toshok@ximian.com>
2112
2113         * Binding.cs: fix PullData/SetPropertyValue.  We don't want to
2114         pass manager.Current.GetType() to ParseData.  It has to be the
2115         property type.  So, hold off doing the ParseData until we're in
2116         SetPropertyValue where we know the type.  This fixes the crash in
2117         #78821 but the textbox is still empty.
2118
2119 2006-08-15  Chris Toshok  <toshok@ximian.com>
2120
2121         * DataGrid.cs:
2122         - when we're scrolling, only call Edit() again if the
2123         current cell is still unobscured. Fixes bug #78927.
2124         - when handling mousedown on a cell, ensure the cell is visible
2125         before calling Edit.
2126         - remove the properties from DataGridRow, and remove the
2127         DataGridParentRow class altogether.
2128         
2129
2130 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2131
2132         * TextBoxBase.cs (set_Text): Don't use base.Text, instead just
2133           fire OnTextChanged by ourselves. There's no point calling base,
2134           we don't set the base value anywhere else. Fixes #78773.
2135
2136 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2137
2138         * ListBox.cs: Call CollectionChanged when modifying
2139         an item from Items indexer, to update the actual items
2140         in the list box.
2141
2142 2006-08-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2143
2144         * PrintDialog.cs: Small fixes for focus and a pair of checks,
2145         to match .Net behaviour.
2146
2147 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2148
2149         * XplatUIX11.cs (SetZOrder): Handle raising toplevel windows
2150
2151 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com> 
2152
2153         * Control.cs: Handle BringToFront for toplevel windows (Fixes #78737)
2154
2155 2006-08-15  Peter Dennis Bartok  <pbartok@novell.com>
2156
2157         * MessageBox.cs: Prevent potential NRE exception.
2158         * TextBoxBase.cs: AutoSize only applies if MultiLine is false. Fixes #78889
2159
2160 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2161
2162         * MessageBox.cs: Calculate the owner of a messagebox, also make
2163           it topmost. Fixes #78753
2164
2165 2006-08-14  Chris Toshok  <toshok@ximian.com>
2166
2167         * XplatUIX11.cs: A couple of fixes so that metacity will let us
2168         programmatically move windows.  first, set the PPosition hint as
2169         well as the USPosition hint.  Second include some code from pdb
2170         that sets the window type to NORMAL when we set the transient for
2171         hint.  This is because, in the absence of a window type, metacity
2172         thinks any window with TransientFor set is a dialog, and refuses
2173         to let us move it programmatically.  fascists.
2174
2175 2006-08-14  Peter Dennis Bartok  <pbartok@novell.com>
2176
2177         * XplatUIX11.cs: When setting normal hints, take into consideration
2178           an different hints previously set so we don't delete them (fixes #78866)
2179
2180 2006-08-12  Chris Toshok  <toshok@ximian.com>
2181
2182         * ToolBarButton.cs: make Layout return a boolean, if something to
2183         do with the button's layout changed.
2184
2185         * ToolBar.cs:
2186         - add another parameter to Redraw, @force, which all existing
2187           calls set to true.
2188         - make the Layout function return a boolean which is true if the
2189           layout has actually changed.  Redraw now uses this (and @force)
2190           to determine when to invalidate.  At present the only place
2191           where @force can be false is the call from OnResize, when
2192           background_image == null.  So, resizing a toolbar when the
2193           layout doesn't change results in no drawing.
2194
2195 2006-08-12  Chris Toshok  <toshok@ximian.com>
2196
2197         * ThemeWin32Classic.cs: fix the bottom right corner painting.  had
2198         the VScrollBar and HScrollbar reversed.  oops.
2199
2200         * DataGrid.cs: fix the logic that assigns sizes to the implicit
2201         scrollbars.  we were assigning them twice (once in
2202         Calc{Horiz,Vertical}Scrollbar, and once in CalcGridAreas),
2203         therefore causing two scrollbar resizes (and redraws?) to happen
2204         per grid resize.
2205
2206 2006-08-12  Chris Toshok  <toshok@ximian.com>
2207
2208         * ToolBarButton.cs: redraw the entire button if the theme tells us
2209         to.
2210
2211         * Theme.cs: add ToolBarInvalidateEntireButton.
2212
2213         * ThemeWin32Classic.cs: we don't need to redraw the entire toolbar
2214         buttons, just the border.
2215
2216         * ThemeNice.cs: redraw the entire toolbar button since we need to
2217         draw the highlight image.
2218
2219         * ThemeClearlooks.cs: the rounded corners of toolbar buttons mean
2220         we need to redraw the entire button (not just the border).
2221
2222 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
2223
2224         * TextBoxBase.cs (CalculateScrollbars): Set the proper thumb size
2225           for vertical bars. Fixes the mismatches shown by #78513
2226
2227 2006-08-11  Alexander Olk  <alex.olk@googlemail.com>
2228
2229         * FileDialog.cs: If a saved/remembered path doesn't exist
2230           anymore, fall back to "Desktop".
2231
2232 2006-08-11  Peter Dennis Bartok  <pbartok@novell.com>
2233
2234         * Form.cs (CreateParams): Don't use Parent.Handle unless we have a
2235           parent. It's apparently legal to not have one
2236         * XplatUIX11.cs:
2237           - SetZOrder: Don't try to set Z-Order on an unmapped window
2238           - CreateWindow: 0,0 are legal coordinates for a window. don't move
2239             it unless the coordinates are negative
2240
2241 2006-08-10  Mike Kestner  <mkestner@novell.com>
2242
2243         * ListControl.cs: allow null for DataSource.  Clear DisplayMember
2244         when setting to null per msdn docs.  Fixes #78854.
2245
2246 2006-08-10  Chris Toshok  <toshok@ximian.com>
2247
2248         * Menu.cs, MainMenu.cs, MenuAPI.cs: get rid of most of the
2249         flickering by setting a clip rectangle on the Graphics when we
2250         need to redraw just a particular menuitem.  Also, rename "OnClick"
2251         to "OnMouseDown" to reflect what it actually is.
2252         
2253         * Form.cs: track the OnMouseDown change.
2254
2255 2006-08-10  Peter Dennis Bartok  <pbartok@novell.com>
2256
2257         * CommonDialog.cs: Properly inherit the CreateParams from the form
2258           and only change what we need. Fixes #78865
2259
2260 2006-08-10  Chris Toshok  <toshok@ximian.com>
2261
2262         * ToolBar.cs, ToolBarButton.cs: fix the redraw-on-highlight
2263         flickering in flat mode (and most of the flickering in general) by
2264         only invalidating the button border (and not the entire rectangle)
2265         when the state changes.  A couple of cases still flicker:
2266         ToggleButtons, and the dropdown arrow case when the user mouse
2267         ups.
2268
2269 2006-08-10  Alexander Olk  <alex.olk@googlemail.com>
2270
2271         * X11Keyboard.cs: Fixed handling of the Del key on the cursorblock
2272           for german keyboards. Numlock state shouldn't affect the behaviour
2273           of the Del key. Fixes bug #78291.
2274
2275 2006-08-10  Chris Toshok  <toshok@ximian.com>
2276
2277         * ListControl.cs: remove the items.Clear line from BindDataItems,
2278         as this is the first thing done by both subclasses in their
2279         SetItemsCore overrides.  Also, add a ItemChanged handler, and when
2280         passed -1, refresh the list.  This gets databinding working when
2281         the datasource is set on the list before the datasource is
2282         populated (as in wf-apps/ReportBuilder.)
2283
2284         * ComboBox.cs: remove the argument to BindDataItems.  This call
2285         should really go away, and be initiated by the ListControl code.
2286
2287         * ListBox.cs: same.
2288
2289 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2290
2291         * TextControl.cs (Document.ctor): Initialize caret so we don't crash
2292           if no data is in the document when the control is displayed
2293
2294 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com> 
2295
2296         * TextBoxBase.cs: Don't try moving the caret if we don't have a window
2297           yes (fixes #78806)
2298         * TextControl.cs: 
2299           - PositionCaret: Allow positioning of caret but don't call methods 
2300             requiring a handle if the window isn't created yet
2301           - CharIndexToLineTag: Fix ending loop early error. Lines is 1 based
2302           - owner_HandleCreated: Don't position the caret, just update it's 
2303             location. User might have already set a different position
2304
2305 2006-08-09  Peter Dennis Bartok  <pbartok@novell.com>
2306
2307         * XplatUIWin32.cs: Don't use the desktop as basis for foster-parented
2308           windows. Screws up the returned coordinates for child windows. 
2309           Fixes #78825. I'm hoping this doesn't break something, since the
2310           code was explicitly put in 8 months ago, but no bug was attached.
2311           Menus still seem to work properly.
2312
2313 2006-08-08  Chris Toshok  <toshok@ximian.com>
2314
2315         * DataGrid.cs: make BeginInit/EndInit actually do what they're
2316         supposed to do - delay data binding until the EndInit call.  Also,
2317         make the table style collection's CollectionChangeAction.Refresh
2318         work properly.
2319
2320         * GridTableStylesCollection.cs: raise a CollectionChangeEvent
2321         (with action = Refresh) when a consituent table's MappingName is
2322         changed.
2323
2324 2006-08-08  Chris Toshok  <toshok@ximian.com>
2325
2326         * ToolBarButton.cs: in set_Text, call Parent.Redraw, not
2327         Invalidate, since changing the text can change the size of the all
2328         toolbar buttons.
2329
2330 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2331
2332         * Form.cs (AddOwnedForm): Still need to add the form to our listif
2333           we don't have it yet
2334
2335 2006-08-08  Chris Toshok  <toshok@ximian.com>
2336
2337         * PrintControllerWithStatusDialog.cs: don't .Close() the status
2338         dialog, as this causes X errors later on, since we actually
2339         destroy the window.  Instead, .Hide() it.
2340
2341 2006-08-08  Peter Dennis Bartok  <pbartok@novell.com>
2342
2343         * ComboBox.cs: Added focus reflection for popup window
2344         * XplatUIX11.cs: 
2345           - Removed transient setting for non-app windows for now, not sure it
2346             was needed
2347           - Fixed logic checking if we have captions when deciding 
2348             override_redirect, WS_CAPTION is two bits and a 0 check was not
2349             sufficient
2350           - Removed the WINDOW_TYPE stuff, it was unneeded and making things
2351             complicated
2352         * Form.cs: 
2353           - AddOwnedForm: Don't just add the form to the list, call the property
2354             to ensure the driver is informed about the ownership as well
2355           - CreateHandle: Set the TopMost status in the driver if we have an owner
2356         * XplatUI.cs: Fixed debug statement
2357
2358 2006-08-08  Jonathan Pobst <monkey@jpobst.com>
2359         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2360           GroupBoxRenderer.cs, ProgressBarRenderer.cs, RadioButtonRenderer.cs,
2361           ScrollBarRenderer.cs, TabRenderer.cs, TextBoxRenderer.cs, 
2362           TrackBarRenderer.cs: Make constructor private.
2363         * ProfessionalColors.cs, ProfessionalColorTable.cs: Fix misnamed properties.
2364         * ProfessionalColorTable.cs: Make properties virtual.
2365
2366 2006-08-06  Duncan Mak  <duncan@novell.com>
2367
2368         * NumericUpDown.cs (Value): Don't call OnValueChanged if the value
2369         is not changing.
2370
2371 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2372         * ButtonRenderer.cs, CheckBoxRenderer.cs, ComboBoxRenderer.cs
2373           GroupBoxRenderer.cs, ProfessionalColors.cs, ProfessionalColorTable.cs,
2374           ProgressBarRenderer.cs, RadioButtonRenderer.cs, ScrollBarRenderer.cs,
2375           TabRenderer.cs, TextBoxRenderer.cs, TextRenderer.cs, TrackBarRenderer.cs:
2376           Initial import of new 2.0 classes.
2377
2378 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2379         * Application.cs: Add 2.0 VisualStyles properties.
2380
2381 2006-08-04  Jonathan Pobst <monkey@jpobst.com>
2382         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
2383           XplatUIX11.cs: Create property to allow access to existing private
2384           variable "themes_enabled"
2385
2386 2006-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2387
2388         * ImageListStreamer.cs: generate the MemoryStreams with the exact BMP
2389         file size, as otherwise our class libraries fail using windows. Fixes
2390         bug #78759.
2391
2392 2006-08-04  Jackson Harper  <jackson@ximian.com>
2393
2394         * Form.cs:
2395         * XplatUIX11.cs: Move the toolwindow window manager creation into
2396         the X11 driver, this way on win32 we can let windows create/handle
2397         the toolwindows.
2398
2399 2006-08-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2400
2401         * PrintDialog.cs: Remove some redundant checks, add some others,
2402         clean some code, and move the focus to the text boxes when the
2403         values are incorrect.
2404
2405 2006-08-04  Alexander Olk  <alex.olk@googlemail.com>
2406
2407         * FontDialog.cs: Remove Form.MinimumSize. It's not needed.
2408
2409 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2410
2411         * NumericUpDown.cs: Setting the Minimum and Maximum is now
2412           handled correctly. Fixes bug #79001.
2413
2414 2006-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2415
2416         * PrintDialog.cs: The "Copies" numeric up down must have
2417         set the Minimum property to 1; only if the value is bigger
2418         than 1, activate "Collate" check box. This is the behaviour of .Net.
2419         Also modify the Document elements only if it is not null.
2420
2421 2006-08-03  Jackson Harper  <jackson@ximian.com>
2422
2423         * TreeNodeCollection.cs: Fix copyto to use the correct nodes
2424         length. (We have a larger array then actual node count).
2425                 
2426 2006-08-03  Jackson Harper  <jackson@ximian.com>
2427
2428         * ComboBox.cs: Don't show selection by default.
2429         - The SelectAll isn't needed here, since the focus code should do
2430         that
2431         - DDL style lists to manual selection drawing, so when they
2432         get/lose focus they have to invalidate.
2433
2434 2006-08-03  Peter Dennis Bartok  <pbartok@novell.com>
2435
2436         * TextBoxBase.cs: Don't always show all selections by default.
2437
2438 2006-08-03  Jonathan Pobst  <monkey@jpobst.com>
2439         * ControlUpdateMode.cs, DataSourceUpdateMode.cs,
2440           HelpNavigator.cs, WebBrowserEncryptionLevel.cs:
2441           Fixed various typos.
2442
2443 2006-08-03  Alexander Olk  <alex.olk@googlemail.com>
2444
2445         * Control.cs: Removing the controls in a ControlCollection with
2446           Clear now hides the controls as expected. Fixes bug #78804. 
2447
2448 2006-08-03  Jackson Harper  <jackson@ximian.com>
2449
2450         * Control.cs: Revert previous focus patch, it breaks reflector.
2451
2452 2006-08-03  Jackson Harper  <jackson@ximian.com>
2453
2454         * ComboBox.cs: Cleanup selection and focus with the combobox.
2455         This also eliminates some duplicated keyboard code, since now
2456         everything is handled by the main class.
2457         - Make list selection work on mouse up instead of down, to match
2458         MS.
2459
2460 2006-08-02  Jackson Harper  <jackson@ximian.com>
2461
2462         * Control.cs: Setting focus needs to go through the whole
2463         selection mechanism.
2464
2465 2006-08-02  Chris Toshok  <toshok@ximian.com>
2466
2467         * PrintPreviewDialog.cs: change MinimumSize to use
2468         base.MinimumSize so it works.
2469
2470 2006-08-02  Peter Dennis Bartok  <pbartok@novell.com>
2471
2472         * TextControl.cs:
2473           - UpdateCaret: Added sanity check in case caret isn't defined yet
2474           - Line.Delete: Now updating selection and caret markers if we're
2475             transfering a node (Properly fixes #78323)
2476           - SetSelectionEnd: Added sanity check
2477         * TextBoxBase.cs: Removed broken attempt to fix #78323
2478
2479 2006-08-01  Chris Toshok  <toshok@ximian.com>
2480
2481         * PrintPreviewDialog.cs: the CancelEventArgs stuff surrounding the
2482         Close() call is handled in Form, not here.
2483
2484 2006-08-01  Chris Toshok  <toshok@ximian.com>
2485
2486         * Theme.cs, ThemeWin32Classic.cs: fix the PrintPreviewControl
2487         layout/rendering.
2488
2489         * PrintPreviewDialog.cs: add scrollbars, and add an image cache
2490         for sizes < 100% zoom.  The code now aggressively attempts to keep
2491         from calling document.Print (), and tries not to use the scaling
2492         g.DrawImage whenever possible (it still does if you scale to >
2493         100%, since usually that involves huge images).
2494
2495         * PrintPreviewControl.cs: hook up the close button.
2496
2497 2006-08-01  Jonathan Pobst  <monkey@jpobst.com>
2498         * ColumnClickEventHandler.cs, DrawItemEventHandler.cs,
2499           ItemChangedEventHandler.cs, ItemCheckEventHandler.cs,
2500           ItemDragEventHandler.cs, LabelEditEventHandler.cs,
2501           LinkClickedEventHandler.cs, LinkLabelLinkClickedEventHandler.cs,
2502           MeasureItemEventHandler.cs, MethodInvoker.cs, PaintEventHandler.cs,
2503           PropertyTabChangedEventHandler.cs, PropertyValueChangedEventHandler.cs,
2504           SelectedGridItemChangedEventHandler.cs, ToolBarButtonClickEventHandler.cs:
2505           Removed [Serializable] for 2.0 Event Handlers.
2506
2507 2006-07-31  Jackson Harper  <jackson@ximian.com>
2508
2509         * TextBoxBase.cs: Make ShowSelection invalidate when changed.
2510         * TextControl.cs: Uncomment out the body of this method.
2511
2512 2006-07-31  Alexander Olk  <alex.olk@googlemail.com>
2513
2514         * XplatUIX11.cs: Use the correct cursor shapes for arrow and default
2515           standard cursors.
2516
2517 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2518
2519         * TextBoxBase.cs: Added internal property ShowSelection to allow controls
2520           that embed TextBox and need selections visible even if textbox is not
2521           focused to enforce that behaviour.
2522         * TextControl.cs (Draw): Use ShowSelection instead of has_focus to determine
2523           selection drawing
2524
2525 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2526
2527         * TextControl.cs:
2528           - Added new SetSelectionStart/SetSelectionEnd overloads
2529           - Fixed viewport width assignment to be accurate
2530           - Adjusted alignment line shift calculations to allow cursor on right
2531             aligned lines to be always visible at the right border (like MS)
2532         * TextBoxBase.cs:
2533           - SetBoundsCore: Re-adjust caret location after resize (Fixes #78323)
2534           - TextBoxBase_SizeChanged: recalculating canvas on size changes
2535           - CalculateScrollBars: Use ViewPort size instead of window size, to
2536             properly consider space occupied by the border and scrollbars 
2537             (Fixes #78661)
2538           - hscroll_ValueChanged, vscroll_ValueChanged: Fixed scroll 
2539             calculations; no longer leaves artifacts
2540           - CaretMoved: Adjusted window scrolling to match MS and fixed several
2541             calculation bugs (Still missing right/center align calculations)
2542
2543 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com> 
2544
2545         * XPlatUIWin32.cs: Made ScrollRectEx a bit more flexible, and removed
2546           use of both scroll rect and clip rect, as they do the same.
2547
2548 2006-07-31  Peter Dennis Bartok  <pbartok@novell.com>
2549
2550         * Control.cs (WM_CHAR WndProc): 2.0 profile allows changing the key 
2551           in the event handler (fixes #78912)
2552
2553 2006-07-31  Chris Toshok  <toshok@ximian.com>
2554
2555         * ThemeWin32Classic.cs: use grid.RowsCount here instead of
2556         grid.ListManager.Count, since grid.ListManager might be null.
2557         This of course begs the question "why are we drawing rows for a
2558         grid with no list manager (and therefor no rows)?"  Fixes the
2559         crash in bug #78929.
2560
2561 2006-07-31  Chris Toshok  <toshok@ximian.com>
2562
2563         * RelatedPropertyManager.cs: Don't always chain up to the parent
2564         ctor.  instead, call SetDataSource if the parent's position is !=
2565         -1.  Fixes the crash in #78822.
2566
2567 2006-07-31  Chris Toshok  <toshok@ximian.com>
2568
2569         * DataGrid.cs (get_ListManager): use field instead of property
2570         accessors for datasource and datamember.
2571         (RowsCount): make internal again.
2572         (OnMouseDown): end edits before resizing columns/rows.
2573         (OnMouseUp): restart edits after resizing columns/rows.
2574
2575 2006-07-30  Peter Dennis Bartok  <pbartok@novell.com>
2576
2577         * XplatUIX11.cs: Default cursor cannot be 0 or it will not get set.
2578           This fixes the situation where the last set cursor is displayed
2579           whenever the mouse is over scrollbars.
2580
2581 2006-07-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2582
2583         * PrintDialog.cs: Fix the behaviour of PrinterSettings and
2584         Document properties, as well as initial values.
2585
2586 2006-07-29  Peter Dennis Bartok  <pbartok@novell.com>
2587
2588         * XplatUIWin32.cs (SetBorderStyle): Setting both border
2589           and ClientEdge results in a 3-pixel border, which is
2590           wrong.
2591
2592 2006-07-28  Jackson Harper  <jackson@ximian.com>
2593
2594         * TreeNodeCollection.cs: Fix the clear method.
2595         - Fix the Shrink also
2596
2597 2006-07-27  Jackson Harper  <jackson@ximian.com>
2598
2599         * TreeView.cs: Make sure the visible order is computed when we
2600         attempt to size the scrollbars (for trees that mess with the
2601         scrolling when they shouldn't.
2602         - Make sure to give the scrollbars valid values.
2603
2604 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2605
2606         * XplatUIX11.cs: Move motion compression code to where it
2607           has less performance impact
2608
2609 2006-07-26  Jackson Harper  <jackson@ximian.com>
2610
2611         * UpDownBase.cs: When the control is selected make the child
2612         controls non selectable, so that a click on them won't do a
2613         focus/unfocus cycle.
2614         - Don't give focus to the text box when the spinner is selected.
2615         * XEventQueue.cs: Peek on both the x11 queue and the lock queue.
2616
2617 2006-07-26  Chris Toshok  <toshok@ximian.com>
2618
2619         * ThemeWin32Classic.cs: add print preview rendering.  I'm not
2620         satisfied with this solution.  If the bitmaps are small, we should
2621         just cache them in the PrintPreviewDialog and draw them here.
2622         Also, the layout is broken for the 2-up and 3-up cases.
2623
2624         * Theme.cs: add PrintPReviewControlPaint.
2625
2626         * PrintPreviewDialog.cs: first pass implementation.
2627
2628         * PrintPreviewControl.cs: first pass implementation.  No
2629         scrollbars yet.
2630
2631         * PrintDialog.cs: only validate fields if that particular portion
2632         of the UI is enabled.  Also, set the document's controller to a
2633         PrintControllerWithStatusDialog wrapping the document's print
2634         controller.
2635
2636         * PrintControllerWithStatusDialog.cs: if we're printing to a file,
2637         bring up a SaveFileDialog (i hope we don't want to match the
2638         behavior of the crappy windows file entry) and set the
2639         PrinterSettings.PrintFileName accordingly.
2640
2641 2006-07-26  Jackson Harper  <jackson@ximian.com>
2642
2643         * ContainerControl.cs: Add a field that disables auto selecting
2644         the next control in a container when the container is activated.
2645         * UpDownBase.cs: Don't select the text box when the up down is
2646         selected.
2647
2648 2006-07-26  Peter Dennis Bartok  <pbartok@novell.com> 
2649
2650         * XEventQueue.cs: Added methods for peeking (used for compression
2651           of successive events)
2652         * XplatUIX11.cs (GetMessage): We're now compressing consecutive
2653           mouse move events (fixes #78732)
2654
2655 2006-07-25  Jackson Harper  <jackson@ximian.com>
2656
2657         * UpDownBase.cs: Use an internal class for the textbox so that we
2658         can control focus.  the updown control should always have focus,
2659         if either the text area or the buttons are clicked.
2660         - Send the key messages to the textbox, since it never actually
2661         has focus
2662         - Activate and decativate the textbox caret.
2663
2664 2006-07-24  Jackson Harper  <jackson@ximian.com>
2665
2666         * Control.cs: Use the directed select when selecting a control,
2667         this way the container controls override will get called and the
2668         whole ActiveControl chain will get triggered.  TODO: probably need
2669         to make sure this gets done everywhere instead of the old
2670         Select(Control).
2671         * ContainerControl.cs: Implement the directed Select method to
2672         find and activate the correct child control.    
2673         
2674 2006-07-22  Mike Kestner  <mkestner@novell.com>
2675
2676         * Form.cs: use Control.MousePosition for NCLBUTTONDOWN in the menu
2677         menu handling code so that clicks without a grab work too.
2678         [Fixes #78914]
2679
2680 2006-07-22  Alexander Olk  <alex.olk@googlemail.com>
2681
2682         * FileDialog.cs: Enable the BackButton when dirstack has one element.
2683           Added some small optimizations.
2684
2685 2006-07-21  Matt Hargett  <matt@use.net>
2686
2687         * Control.cs: Implemented 2.0 MinimumSize/MaximumSize properties
2688
2689 2006-07-21  Peter Dennis Bartok  <pbartok@novell.com> 
2690
2691         * Control.cs (GetNextControl): Fixes to make all of Jackson's unit 
2692           tests pass and match MS in some strange border cases.
2693
2694 2006-07-21  Chris Toshok  <toshok@ximian.com>
2695
2696         * ThemeWin32Classic.cs: handle drawing of the relation links and
2697         parent row buttons.
2698
2699         * Theme.cs: change args to DataGridPaintParentRow.
2700
2701         * DataGrid.cs: Don't use controls for the relation links and
2702         parent buttons, so we have to handle all their interactions in
2703         MouseMove, MouseDown, MouseUp, etc.  Also, store a lot more stuff
2704         when we're navigating through child tables, so we can reinstate
2705         selection, expanded state, current cell, etc.
2706
2707 2006-07-20  Chris Toshok  <toshok@ximian.com>
2708
2709         * ToolBar.cs: When we redraw a button, for whatever reason,
2710         there's no reason to redraw the entire toolbar.  Also, don't call
2711         Control.Refresh from within Redraw, as it's much heavier than
2712         Invalidate (which is really what we want).
2713
2714 2006-07-20  Chris Toshok  <toshok@ximian.com>
2715
2716         * DataGrid.cs, CurrencyManager.cs, DataGridColumnStyle.cs,
2717         DataGridTextBoxColumn.cs, DataGridTextBox.cs,
2718         ThemeWin32Classic.cs, ListControl.cs: After staring at stack
2719         traces from within a debug IBindingList datasource
2720         (in mono/winforms/datagrid) for *days*, I've finally gotten things
2721         to work in a similar fashion.
2722
2723 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2724
2725         * ListBox.cs: Don't call Sort () when setting 
2726         the Sorted property to false (avoid an unnecessary sort).
2727
2728 2006-07-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2729
2730         * ListControl.cs: DataSource should throw an ArgumentException
2731         instead of a normal exception when the argument is not of the 
2732         correct type.
2733
2734 2006-07-20  Mike Kestner  <mkestner@novell.com>
2735
2736         * Control.cs: add InternalPreProcessMessage to allow us to steal
2737         key events before MWF gets its paws on them.  Adapted from a
2738         suggestion by eno.
2739         * ToolBar.cs: add GotLostFocus handing for flat toolbars, with 
2740         up/down/left/right navigation. Override the new internal control
2741         method to steal the events since they never make it to WndProc.
2742         * ToolBarButton.cs: don't worry about pushed when setting hilight
2743         since the drawing code prefers pushed to hilight. Invalidate on 
2744         Hilight changes. Fixes #78547 and #78525.
2745
2746 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2747
2748         * ScrollableControl.cs: Consider AutoScrollMinSize when calculating
2749           the canvas size. Fixes #78868
2750
2751 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com>
2752
2753         * Splitter.cs: Track requested split position until first layout
2754           is performed. Fixes #78871
2755
2756 2006-07-20  Peter Dennis Bartok  <pbartok@novell.com> 
2757
2758         * Application.cs: Removed code that forces 1.x for the version
2759           number if the version started with 0. Not sure why that code was
2760           there and I couldn't find any bugs that indicated we needed it.
2761           Fixes #78869
2762
2763 2006-07-20  Alexander Olk  <alex.olk@googlemail.com>
2764
2765         * ThemeWin32Classic.cs: Don't throw a NotImplementedException in
2766           ResetDefaults(), just write some output to the console until it's
2767           implemented. Fixes bug #78907 for now. Eliminated two warnings.
2768
2769 2006-07-19  Jonathan Chambers  <joncham@gmail.com>
2770
2771         * PropertyGridView.cs: set StartPosition of drop down forms
2772         so they appear in correct initial spot.  Fixes #78190.
2773
2774 2006-07-19  Mike Kestner  <mkestner@novell.com>
2775
2776         * ThemeWin32Classic.cs: use parent background color when drawing
2777         flat toolbars.  Restructure the conditionals to make sure non-flat
2778         non-Divider toolbars are filled too.  Fixes #78837.
2779
2780 2006-07-19  Mike Kestner  <mkestner@novell.com>
2781
2782         * ListBox.cs: Sort on collection changes even if the handle
2783         isn't created yet.  Fixes #78813.
2784
2785 2006-07-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
2786
2787         * ListControl.cs: DisplayMember should never be null,
2788         and now we assign String.Empty when null is passed to it (this
2789         is the .Net way).
2790
2791 2006-07-17  Mike Kestner  <mkestner@novell.com>
2792
2793         * ListViewItem.cs: restructure Font and subitem Font handling 
2794         to hold a specific font and refer back to owner on null.
2795         Fixes #78761.
2796
2797 2006-07-17  Mike Kestner  <mkestner@novell.com>
2798
2799         * ToolBar.cs: bandaid for side-effect of previous patch which was
2800         discarding explicit heights for non-AutoSize toolbars.  Need to
2801         extend my format tester to deal with AutoSize=false. Fixes #78864.
2802
2803 2006-07-15  Jackson Harper  <jackson@ximian.com>
2804
2805         * LabelEditTextBox.cs:
2806         * TreeView.cs: Use a new LabelEdit class for node editing, this
2807         class automatically 'closes' itself when it gets the enter key or
2808         loses focus.
2809         - Use the client rectangle when setting the trees scrollbars, so
2810         border style is taken into account.
2811         
2812 2006-07-14  Jackson Harper  <jackson@ximian.com>
2813
2814         * TreeNode.cs:
2815         * TreeView.cs: Make the editing work similar to MSs, firing the
2816         events correctly and ending edits correctly.
2817
2818 2006-07-14  Mike Kestner  <mkestner@novell.com>
2819
2820         * ToolBarButton.cs:
2821         * ToolBar.cs: layout restructuring and redraw enhancements to support
2822         formatting changes gracefully, like setting TextAlign, ImageList, 
2823         ButtonSize, and Appearance.  Handles explicit button sizing quirks
2824         of the MS controls.  Things like flat toolbars ignoring button size
2825         but becoming constant sized at the largest button's size.  Normal
2826         toolbars with an image set cannot be shrunk smaller than the image,
2827         but text can be clipped/ignored.
2828         * ThemeWin32Classic.cs: don't draw text if text_rect height or width
2829         is zero.  Seems like DrawString should be smart enough to not put
2830         anything on screen though. Also trim labels and ellipsize at the char
2831         boundary, not word.
2832         Fixes #78711 and #78483.
2833
2834 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2835
2836         * FolderBrowserDialog.cs: Disable "New Folder" button and
2837           "New Folder" contextmenu menuitem if a folder like "My Computer"
2838           is selected.
2839
2840 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2841
2842         * FileDialog.cs: Don't create a new folder in "MyComputer" folder.
2843         * FolderBrowserDialog.cs:
2844           - Use MWFConfig to store and read size and position settings
2845           - Added code to create a new folder (button or context menu).
2846             Use TreeView labeledit to change the name of the new folder.
2847
2848 2006-07-14  Jackson Harper  <jackson@ximian.com>
2849
2850         * TreeView.cs: Raise the OnAfterLabelEdit event correctly.  Also,
2851         when the tree is scrolled we end editing.
2852
2853 2006-07-14  Alexander Olk  <alex.olk@googlemail.com>
2854
2855         * ThemeWin32Classic.cs: Fixed position of CPDrawScrollButton Up and
2856           Down arrows
2857
2858 2006-07-14  Jonathan Pobst  <monkey@ipobst.com> 
2859
2860         WebBrowserProgressChangedEventHandler.cs, BindingCompleteEventArgs.cs,
2861         BindingCompleteEventHandler.cs, BindingManagerDataErrorEventArgs.cs,
2862         BindingManagerDataErrorEventHandler.cs, CacheVirtualItemsEventArgs.cs,
2863         CacheVirtualItemsEventHandler.cs, ColumnReorderedEventArgs.cs,
2864         ColumnReorderedEventHandler.cs, ColumnWidthChangedEventArgs.cs,
2865         ColumnWidthChangedEventHandler.cs, ColumnWidthChangingEventArgs.cs,
2866         ColumnWidthChangingEventHandler.cs, FormClosedEventArgs.cs,
2867         FormClosedEventHandler.cs, FormClosingEventArgs.cs,
2868         FormClosingEventHandler.cs, ItemCheckedEventArgs.cs,
2869         ItemCheckedEventHandler.cs, ListControlConvertEventArgs.cs,
2870         ListControlConvertEventHandler.cs, ListViewItemMouseHoverEventArgs.cs,
2871         ListViewItemMouseHoverEventHandler.cs, ListViewItemSelectionChangedEventArgs.cs,
2872         ListViewItemSelectionChangedEventHandler.cs,
2873         ListViewVirtualItemsSelectionRangeChangedEventArgs.cs,
2874         ListViewVirtualItemsSelectionRangeChangedEventHandler.cs,
2875         MaskInputRejectedEventArgs.cs, MaskInputRejectedEventHandler.cs,
2876         PopupEventArgs.cs, PopupEventHandler.cs, PreviewKeyDownEventArgs.cs,
2877         PreviewKeyDownEventHandler.cs, RetrieveVirtualItemEventArgs.cs,
2878         RetrieveVirtualItemEventHandler.cs, SearchForVirtualItemEventArgs.cs,
2879         SearchForVirtualItemEventHandler.cs, SplitterCancelEventArgs.cs,
2880         SplitterCancelEventHandler.cs, TabControlCancelEventArgs.cs, 
2881         TabControlCancelEventHandler.cs, TabControlEventArgs.cs, 
2882         TabControlEventHandler.cs, TableLayoutCellPaintEventArgs.cs,
2883         TableLayoutCellPaintEventHandler.cs, ToolStripDropDownClosedEventArgs.cs,
2884         ToolStripDropDownClosedEventHandler.cs, ToolStripDropDownClosingEventArgs.cs,
2885         ToolStripDropDownClosingEventHandler.cs, TreeNodeMouseClickEventArgs.cs,
2886         TreeNodeMouseClickEventHandler.cs, TreeNodeMouseHoverEventArgs.cs,
2887         TreeNodeMouseHoverEventHandler.cs, TypeValidationEventArgs.cs,
2888         TypeValidationEventHandler.cs, WebBrowserDocumentCompletedEventArgs.cs,
2889         WebBrowserDocumentCompletedEventHandler.cs, WebBrowserNavigatedEventArgs.cs,
2890         WebBrowserNavigatedEventHandler.cs, WebBrowserNavigatingEventArgs.cs,
2891         WebBrowserNavigatingEventHandler.cs, 
2892         WebBrowserProgressChangedEventArgs.cs: New 2.0 Event Handlers
2893
2894 2006-07-14  Jonathan Pobst  <monkey@ipobst.com>
2895
2896         MergeAction.cs, PowerLineStatus.cs, PowerState.cs, PreProcessControlState.cs,
2897         RichTextBoxLanguageOptions.cs, ScreenOrientation.cs, ScrollOrientation.cs,
2898         SearchDirectionHint.cs, SystemParameter.cs, TabControlAction.cs,
2899         TableLayoutPanelCellBorderStyle.cs, TextDataFormat.cs, TextImageRelation.cs,
2900         ToolStripDropDownCloseReason.cs, ToolStripDropDownDirection.cs,
2901         ToolStripGripDisplayStyle.cs, ToolStripGripStyle.cs,
2902         ToolStripItemAlignment.cs, ToolStripItemDisplayStyle.cs,
2903         ToolStripItemImageScaling.cs, ToolStripItemOverflow.cs,
2904         ToolStripItemPlacement.cs, ToolStripLayoutStyle.cs,
2905         ToolStripManagerRenderMode.cs, ToolStripRenderMode.cs,
2906         ToolStripStatusLabelBorderSides.cs, ToolStripTextDirection.cs,
2907         ToolTipIcon.cs, TreeNodeStates.cs, TreeViewDrawMode.cs,
2908         TreeViewHitTestLocations.cs, UnhandledExceptionMode.cs, ValidationConstraints.cs,
2909         WebBrowserEncryptionLevel.cs, WebBrowserReadyState.cs, WebBrowserRefreshOption.cs,
2910         ArrowDirection.cs, AutoCompleteMode.cs, AutoCompleteSource.cs, AutoSizeMode.cs,
2911         AutoValidate.cs, BatteryChargeStatus.cs, BindingCompleteContext.cs,
2912         BindingCompleteState.cs, CloseReason.cs, ColumnHeaderAutoResizeStyle.cs,
2913         ControlUpdateMode.cs, DataSourceUpdateMode.cs, DockingBehavior.cs,
2914         FixedPanel.cs, FlowDirection.cs, GetChildAtPointSkip.cs,
2915         HtmlElementInsertionOrientation.cs, InsertKeyMode.cs, ListViewHitTestLocations.cs,
2916         ListViewItemStates.cs, MaskFormat.cs: Added
2917
2918 2006-07-13  Jonathan Chambers  <joncham@gmail.com>
2919
2920         * PropertyGridView.cs: Fix keyboard navigation of drop down.
2921         Patch from eno for bug 78558.
2922         
2923 2006-07-13  Jackson Harper  <jackson@ximian.com>
2924
2925         * TreeView.cs: When an edit is finished make sure that the
2926         selected node is visible.
2927         - When setting the top/bottom use the scrollbars is_visible, so
2928         everything will be set correctly even if the tree isn't visible
2929         yet.
2930
2931 2006-07-13  Jackson Harper  <jackson@ximian.com>
2932
2933         * ComboBox.cs: Revert the item->index part of my previous patch.
2934         * TreeView.cs: Use LostFocus instead of Leave for detecting when
2935         the edit box has lost focus (duh).
2936         - Just make the edit box not visible when we get return, that will
2937         take the focus, which will call EndEdit
2938         * TreeNode.cs When we start editing, notify the treeview.
2939
2940 2006-07-12  Jackson Harper  <jackson@ximian.com>
2941
2942         * ComboBox.cs: Clear out old items before setting the item list.
2943         This prevents databound controls from having their items added
2944         twice.
2945         - Switch the combobox to use indices whereever possible instead of
2946         using Item's.  This allows usto navigate through lists that have
2947         more then one item with the same string value (ie a, b, b, a).
2948         - Scroll the listboxes scrollbar when a non visible item is
2949         highlighted
2950         - Allow keypress to cycle through all the possible values. For
2951         example if you have b1, b2, b3 and hold down the B key all the
2952         values will be cycled through.
2953         
2954 2006-07-12  Jackson Harper  <jackson@ximian.com>
2955
2956         * TextBoxBase.cs:
2957         * ListView.cs: Don't need to override SETFOCUS anymore, we can do
2958         this using the internal methods.
2959         * Control.cs: Add OnGotFocusInternal.  A new method that allows
2960         controls to "override" OnGotFocus and change focus behavior if
2961         needed.
2962         - Same thing for LostFocus
2963         * ComboBox.cs: Pass off focus to the text control properly.
2964
2965 2006-07-12  Alexander Olk  <alex.olk@googlemail.com>
2966
2967         * FileDialog.cs: Added GetFoldersOnly to MWFVFS
2968         * FolderBrowserDialog.cs: Almost a complete rewrite.
2969           - Better support for Environment.Specialfolders
2970           - Added support for MWFVFS
2971           - Made setting SelectedPath work
2972
2973 2006-07-12  Jackson Harper  <jackson@ximian.com>
2974
2975         * Control.cs: Optimze getting all the controls.
2976
2977 2006-07-11  Jackson Harper  <jackson@ximian.com>
2978
2979         * ContainerControl.cs: Override SETFOCUS in the container control,
2980         so that it is not selected on mouse click.
2981
2982 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com> 
2983
2984         * LinkLabel.cs: Hack to handle Shift-Tabbing to the linklabel. 
2985           Hopefully we will have a better way once all of focus is complete.
2986
2987 2006-07-11  Peter Dennis Bartok  <pbartok@novell.com>
2988
2989         * ThemeWin32Classic.cs: Commented out some debug code and fixed
2990           a compile error with csc.
2991
2992 2006-07-11  Jackson Harper  <jackson@ximian.com>
2993
2994         * Control.cs: When hiding a control only select the next control
2995         if the current control was focused.
2996         - Don't handle enter/leave when setting/killing focus, this is
2997         done by the container control.
2998         - Remove is_selected, it's not needed anymore.
2999         - Add utility methods for selecting a child control, and for
3000         firing the Enter/Leave events.
3001         * ContainerControl.cs: When a control is activated fire the
3002         enter/leave events.
3003         - Don't wrap when processing the tab key, so that focus can be
3004         moved outside of the container.
3005         - Use the correct active control
3006
3007 2006-07-11  Jackson Harper  <jackson@ximian.com>
3008
3009         * ComboBox.cs: Remove some debug code that was blinding me.
3010         * UpDownBase.cs: These controls actually aren't implicit, they are
3011         visible to the user.
3012
3013 2006-07-10  Chris Toshok  <toshok@ximian.com>
3014
3015         * DataGrid.cs: move back to the is_adding boolean field.  god i
3016         hate this is_editing/is_adding/is_changing stuff.
3017
3018 2006-07-10  Chris Toshok  <toshok@ximian.com>
3019
3020         * DataGridTableStyle.cs: just check if the property type is bool.
3021         if it is, use DataGridBoolColumn, otherwise DataGridTextBoxColumn.
3022         Don't use CanRenderType.
3023
3024         * DataGridTextBoxColumn.cs: set the value to DBNull.Value, not "",
3025         if our text == NullText.  Remove CanRenderType.
3026
3027         * DataGridBoolColumn.cs: nuke CanRenderType.
3028
3029         * DataGrid.cs: reenable some code to end the current edit inside
3030         of set_CurrentCell.  This fixes the other 1.1.16 regression.
3031         Also, remove rowhdrs_maxheight and just use rowhdrs_area.Height.
3032         Also, remove the visible_row_count arg from CalcRowHeaders, since
3033         we don't need to worry about the actual height of the area.
3034
3035 2006-07-10  Chris Toshok  <toshok@ximian.com>
3036
3037         * DataGridTextBoxColumn.cs: if when we Commit we're in navigate
3038         mode, just return.
3039
3040         * DataGridTextBox.cs: change "isedit" to "isnavigating" to reflect
3041         the real sense of the IsInEditOrNavigateMode property (true =
3042         navigate, false = edit).  Also, update OnKeyPress to reflect this.
3043
3044         * DataGridTableStyle.cs (CreateColumnsForTable): even if the
3045         column style exists, we still need to set its property descriptor
3046         to match up with our list manager.
3047
3048 2006-07-10  Chris Toshok  <toshok@ximian.com>
3049
3050         * ThemeWin32Classic.cs: implement the new row/header painting
3051         approach.  The parent row painting will likely go away and
3052         replaced with label controls, but the rest seems to work ok (and
3053         efficiently).
3054
3055         * Theme.cs: change the way we draw datagrid rows.  we don't draw
3056         the row headers as a block now.  Instead we draw them in the
3057         normal draw-row loop.  Add some calls for drawing parent rows and
3058         relation rows.
3059
3060         * DataGridTableStyle.cs: add tons of ArgumentExceptions if this is
3061         a default table style.  Set the defaults from ThemeEngine.Current,
3062         not SystemColors.  Fix lots of misc issues with property setters.
3063
3064         * DataGrid.cs: move loads of style information out of this class
3065         as it's being duplicated with DataGridTableStyle.  keep track of a
3066         special DataGridTableStyle for the properties we used to mirror
3067         here.  Switch all the style properties to access this table style
3068         instead of instance fields of this class.  Also add a internal
3069         class to represent parent rows (more needs to be stored here, like
3070         the selection state from the parent table, as well as the
3071         expansion state.)  Also, for datasources with relations, do the
3072         right thing for collapse/expand, and add support for the
3073         navigation/parent row buttons.
3074
3075         Lastly, fix the crash in the 1.1.16 build.
3076
3077         * GridTableStylesCollection.cs: make the explicit interface
3078         implementations call the class's methods as opposed to duplicating
3079         them.
3080
3081         * DataGridTextBoxColumn.cs: set the x/y offset of the textfield to
3082         0 so the text doesn't jump around when we move the cursor.
3083
3084 2006-07-10  Jackson Harper  <jackson@ximian.com>
3085
3086         * TextBoxBase.cs:
3087         * ListBox.cs: Match MS's ToString (this makes debugging focus
3088         stuff infinitely easier).
3089
3090 2006-07-10  Jackson Harper  <jackson@ximian.com>
3091
3092         * Control.cs (SelectNextControl): When checking the control's
3093         parent use this instead of ctrl.parent so that null can be passed
3094         to SelectNextControl. (I have unit tests for this).
3095         - Remove unused var.
3096
3097 2006-07-10  Chris Toshok  <toshok@ximian.com>
3098
3099         * CurrencyManager.cs: correct one regression, the removal of the
3100         finalType field.  Also, add a MonoTODO on CanAddRows, implement
3101         Refresh() correctly, and fix some event emission in
3102         ListChangedHandler.
3103
3104 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3105
3106         * FileDialog.cs: Don't use brackets for new folders if they exist
3107           under *nix. Instead use -(number of existing folders +1).
3108
3109 2006-07-07  Alexander Olk  <alex.olk@googlemail.com>
3110
3111         * FileDialog.cs:
3112           - Fixed really nasty bug #78771
3113           - Don't block the whole GUI when reading directories with a lot of
3114             entries. Use an other thread instead and call BeginInvoke to
3115             update the ListView in MWFFileView
3116
3117 2006-07-07  Chris Toshok  <toshok@ximian.com>
3118
3119         * Control.cs (Dispose): release any Capture when disposing.
3120
3121 2006-07-07  Chris Toshok  <toshok@ximian.com>
3122
3123         * LinkLabel.cs (Select): if we chain up to the parent, set
3124         focused_index to -1 so we'll search for the first available link
3125         the next time the user tabs into us.  Also, if the direction is
3126         backward and focused_index == -1, start the search from the last
3127         element.
3128
3129 2006-07-07  Chris Toshok  <toshok@ximian.com>
3130
3131         * LinkLabel.cs (CreatePiecesFromText): if the link's range piece
3132         is beyond the end of the text, don't do anything.
3133         (CreateLinkPieces): set our ControlStyles.Selectable based on
3134         whether or not we have any links.
3135         (Link.Invalidate): use a loop instead of foreach.
3136         (Link.set_Start): null out owner.sorted_links so it'll be
3137         recreated by CreateLinkPieces.
3138
3139 2006-07-06  Chris Toshok  <toshok@ximian.com>
3140
3141         * LinkLabel.cs: revert the SetStyle change.
3142
3143 2006-07-06  Chris Toshok  <toshok@ximian.com>
3144
3145         * LinkLabel.cs (.ctor): SetStyle Selectable to true.
3146         (OnEnableChanged): s/Refresh/Invalidate
3147         (OnGotFocus): if we have a focused index already, refocus it (so
3148         if we mouse out/in to the window it'll focus the right link).
3149         (OnKeyDown): move the tab handling out of here.
3150         (OnLostFocus): don't set focused_index to -1, so we can refocus it
3151         when we lose focus.
3152         (OnMouseDown): don't Capture here - Control handles it.  Also,
3153         focus the active link.
3154         (OnMouseUp): don't deal with Capture.
3155         (OnPaintBackgroundInternal): remove.
3156         (OnTextAlignChanged): CreateLinkPieces before calling the
3157         superclass's method.
3158         (OnTextChanged): call CreateLinkPieces before calling superclass's
3159         method.
3160         (ProcessDialogKey): handle Tab here, and call Select(bool,bool) to
3161         move around.
3162         (Select): implement this, moving the selection between different
3163         links, and call parent.SelectNextControl if we don't have another
3164         link to focus in the given direction.
3165         (CreateLinkPieces): call Invalidate instead of Refresh.
3166         
3167 2006-07-06  Chris Toshok  <toshok@ximian.com>
3168
3169         * ThemeWin32Classic.cs: DrawLinkLabel changes to accomodate the
3170         new LinkLabel internals.
3171
3172         * LinkLabel.cs: fairly major rewrite.  get rid of all the loops
3173         over pieces looking for active/focused/etc links.  also, deal with
3174         runs of text (and links) with embedded \n's in them, and use
3175         MeasureCharacterRanges instead of MeasureString to figure out the
3176         regions text occupies.  Lastly, do the usual s/Refresh/Invalidate
3177         two-step.
3178
3179 2006-07-04  Jackson Harper  <jackson@ximian.com>
3180
3181         * XplatUIX11.cs: Enable key auto repeat. If the user doesn't have
3182         XKB or key auto repeat, do it manually.  Without key auto repeat,
3183         when a key is held down we get key press, key release, key press,
3184         key release, ... with auto repeat we get key press, key press, key
3185         press ..., and then a release when the key is actually released.
3186
3187 2006-07-03  Jackson Harper  <jackson@ximian.com>
3188
3189         * TabControl.cs:
3190         * ThemeWin32Classic.cs: Tabs do not obey normal background color
3191         rules, they are always control color regardless of the background
3192         color.
3193
3194 2006-07-02  Alexander Olk  <alex.olk@googlemail.com>
3195
3196         * FileDialog.cs: Added internal class MWFConfig.
3197           Removed Registry support and replaced it with support for the new
3198           MWFConfig class. See MWFConfig comments for more information.
3199
3200 2006-06-30  Alexander Olk  <alex.olk@googlemail.com>
3201
3202         * ThemeWin32Classic.cs: Added RadioButton and CheckBox focus
3203           rectangle. Added some patches from eno from bug #78490 and fixed
3204           the arrow position for small up and down CPDrawScrollButtons.
3205
3206 2006-06-30  Jackson Harper  <jackson@ximian.com>
3207
3208         * InternalWindowManager.cs: Remove some debug code.
3209         * Form.cs: When an MdiParent is set to null, the window is
3210         "detatched" and becomes a normal window.
3211         * MdiClient.cs: Don't bring the new child form to the front until
3212         it is activated (setting it as active does this), this makes the
3213         previously active forms titlebar get redrawn as inactive.
3214
3215 2006-06-29  Peter Dennis Bartok  <pbartok@novell.com>
3216
3217         * PrintDialog.cs: Labels need a tab index too, otherwise they overlap
3218           with later controls
3219
3220 2006-06-29  Mike Kestner  <mkestner@novell.com>
3221
3222         * MenuAPI.cs: handle arrow keys in keynav state. Go active on down
3223         arrow in keynav state.  Fixes #78682.
3224
3225 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
3226
3227         * PrintDialog.cs: Reorder, relayout, remove extra code, set tab 
3228           order (fixes #78393)
3229
3230 2006-06-28  Jonathan Pobst  <monkey@ipobst.com>
3231
3232         * AccessibleRole.cs, AccessibleStates.cs, AnchorStyles.cs, 
3233           ArrangeDirection.cs, ArrangeStartingPosition.cs, ColorDepth.cs,
3234           ControlStyles.cs, DataGridViewImageCellLayout.cs, DrawMode.cs,
3235           FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs,
3236           GridItemType.cs, HelpNavigator.cs, ImeMode.cs, ItemActivation.cs,
3237           ItemBoundsPortion.cs, Keys.cs, ListViewAlignment.cs, 
3238           PictureBoxSizeMode.cs, PropertySort.cs, SelectionMode.cs,
3239           Shortcut.cs, SizeGripStyle.cs, SortOrder.cs, StructFormat.cs,
3240           TextFormatFlags.cs, ToolBarAppearance.cs, ToolBarButtonStyle.cs,
3241           ToolBarTextAlign.cs, View.cs: 2.0 Changes to existing 1.x
3242           enumerations (FlagsAttribute, SerializableAttribute, added/removed
3243           values)
3244
3245 2006-06-28  Mike Kestner  <mkestner@novell.com>
3246
3247         * ComboBox.cs: implement scroll wheel support. Fixes #78360.
3248
3249 2006-06-28  Atsushi Enomoto  <atsushi@ximian.com>
3250
3251         * PropertyGrid.cs,
3252           PropertyGridTextBox.cs : explicitly set BackColor to differentiate
3253           item lines from other area (It also makes BackColor consistent and
3254           compatible with .NET). Fixed bug #78564.
3255
3256 2006-06-28  Jonathan Chambers  <jonathan.chambers@ansys.com>
3257
3258         * PropertyGrid.cs: refresh toolbar when PropertySort is set.
3259         Patch from Eno for #78555.
3260
3261 2006-06-27  Chris Toshok  <toshok@ximian.com>
3262
3263         * ThemeWin32Classic.cs: s/grid.grid_drawing/grid
3264
3265         * DataGridColumnStyle.cs: same.
3266
3267         * DataGrid.cs: Roll DataGridDrawingLogic.cs into this file.
3268         
3269         * DataGridDrawingLogic.cs: nuke.
3270
3271 2006-06-27  Chris Toshok  <toshok@ximian.com>
3272
3273         * DataGridTableStyle.cs: clean up the constructors, and build the
3274         list of child relations for this table.  I have no idea if this is
3275         where we should be doing it (it probably isn't), but since we're
3276         already iterating over the properties..
3277
3278         * DataGrid.cs: add row resizing.  for now we add a DataGridRow
3279         struct and array for keeping track of row information, similar to
3280         what's shown in a hack on
3281         http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c44c.aspx.
3282
3283         * Theme.cs: be consistent about the naming of DataGrid methods,
3284         prefering ColumnWidths and RowHeights over columnsWidths and
3285         RowsHeights.
3286
3287         * ThemeWin32Classic.cs: same, and also add support for variable
3288         sized rows (and the +/- expansion icons for related rows).
3289
3290 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3291
3292         * TextBoxBase.cs: Applied Eno's patch from #78660
3293
3294 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3295
3296         * Form.cs (ScaleCore): We don't want to scale our form if it's
3297           state is minimized or maximized, but we still need to scale our
3298           child windows. Also, added try/finally block to ensure layout
3299           gets reset (Fixes #78697)
3300
3301 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com>
3302
3303         * Control.cs: Added 2.0 Scale(SizeF) method (Fixes 78700)
3304
3305 2006-06-27  Peter Dennis Bartok  <pbartok@novell.com> 
3306
3307         * Form.cs: Fixed c+p error and added check to resize form if minimum
3308           size is bigger than current size (Fixes #78709)
3309
3310 2006-06-26  Peter Dennis Bartok  <pbartok@novell.com> 
3311
3312         * ThemeEngine.cs (..ctor): Properly use ToLower() (Fixes #78704)
3313
3314 2006-06-26  Mike Kestner  <mkestner@novell.com>
3315
3316         * ComboBox.cs: only do Keypress handling in the combo when there  
3317         are items in the collection. Fixes #78710.
3318
3319 2006-06-26  Chris Toshok  <toshok@ximian.com>
3320
3321         * Binding.cs: make this work bi-directionally.  also, clear up
3322         other mixups between Push/Pull Data (e.g. we're supposed to pull
3323         data when validating).
3324
3325         * BindingManagerBase.cs: trim some fully qualified collection
3326         types.
3327
3328         * PropertyManager.cs (get_IsSuspended): oops, fix this check.
3329
3330 2006-06-23  Chris Toshok  <toshok@ximian.com>
3331
3332         * PropertyManager.cs: It appears (according to the unit tests)
3333         that PropertyManager doesn't use
3334         PropertyDescriptor.AddValueChanged to track propery value changes
3335         in its datasource, but uses the same scheme as Binding, where it
3336         looks for a <Property>Changed event and binds to it.
3337
3338         Also, according to the docs, IsSuspended always returns false for
3339         a property manager with a non-null datasource.
3340
3341 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com> 
3342
3343         * Form.cs: (ShowDialog): If we're returning a forced cancel we still
3344           need to update the actual DialogResult. (Fixes #78613)
3345
3346 2006-06-22  Peter Dennis Bartok  <pbartok@novell.com>
3347
3348         * Form.cs (ShowDialog): Release any captures before running the
3349           new message pump (fixes #78680)
3350
3351 2006-06-22  Mike Kestner  <mkestner@novell.com>
3352
3353         * ListView.cs: Layout column widths properly in details mode even 
3354         if HeaderStyle.None is set.  Fixes #78691.
3355
3356 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com>
3357
3358         * FileDialog.cs: Fixed taborder to match MS. Fixes #77873 partially.
3359
3360 2006-06-21  Peter Dennis Bartok  <pbartok@novell.com> 
3361
3362         * Control.cs (ContainsFocus): Using new driver method to get focused
3363           window, instead of trying to use internal tracking var, which can
3364           recursion issues (Fixes #78685)
3365         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
3366           XplatUIWin32.cs: Added GetFocus method to return focused window
3367
3368 2006-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3369
3370         * ColorDialog.cs: when the mouse button is pressed inside the color
3371         matrix, don't let the cursor move out of it until the button is
3372         released, which is the behavior on windows. Changed 'colours' by
3373         'colors' to use the same word consistently.
3374
3375 2006-06-21  Chris Toshok  <toshok@ximian.com>
3376
3377         * DataGrid.cs: add in some basic navigation stuff (navigating to a
3378         child relation and back, using a stack).  Also, remove
3379         GetDataSource and the code that calls it - it's not needed.  Also,
3380         track CurrencyManager.ListName's removal.
3381
3382 2006-06-21  Chris Toshok  <toshok@ximian.com>
3383
3384         * CurrencyManager.cs: push some of the original type checking from
3385         BindingContext.CreateBindingManager to here, and remove some of
3386         the finalType stuff.  Need more tests to make sure I've got the
3387         ListName part right, and we might need more in SetDataSource.
3388
3389         * PropertyManager.cs: add a ctor that takes just the datasource,
3390         and no property name.  Make SetDataSource work with a null
3391         property_name, and make Current return the data_source if the
3392         property descriptor is null.  this makes 'string foo = "hi";
3393         BindingContext[foo].Current' return "hi" as it should.
3394
3395         * RelatedCurrencyManager.cs: make this code more generic - there's
3396         no reason the parent manager has to be CurrencyManager, and
3397         there's no reason to pass the DataRelation.  It suffices to use a
3398         BindingManagerBase and PropetyDescriptor.
3399
3400         * RelatedPropertyManager.cs: make a similar change here.
3401         
3402         * BindingContext.cs: make CreateBindingManager the beautiful, tiny
3403         flower I knew it could be.
3404
3405 2006-06-20  Chris Toshok  <toshok@ximian.com>
3406
3407         * PropertyManager.cs: the PropertyChangedHandler is invoked when
3408         data in the source has changed and we need to update the control,
3409         so s/PullData/PushData.
3410
3411         * CurrencyManager.cs: Refresh is meant to update the control from
3412         data in the datasource.  So, s/PullData/PushData.
3413
3414         * BindingContext.cs: add more ugliness (we weren't handling the
3415         case where data_source = DataTable and data_member = column_name).
3416
3417         * Binding.cs: fix PushData/PullData mixup.  Both are interpreted
3418         from the perspective of the datasource.  PullData pulls from the
3419         control, PushData pushes to the control.
3420
3421 2006-06-20  Chris Toshok  <toshok@ximian.com>
3422
3423         * BindingContext.cs: rewrite the CreateBindingManager code to
3424         handle navigation paths more or less properly.  This could
3425         definitely stand some more work, in particular to push the
3426         recursion up to the toplevel.  But that relies on fixes in other
3427         places (System.Data comes to mind).
3428
3429         Also, move to a flat hashtable (and encode the twolevel nature of
3430         the dictionary into the hash key).  This lets us implement the
3431         IEnumerable.GetEnumerator method.
3432
3433         * RelatedCurrencyManager.cs: new class.  Update our view based on
3434         our relation and our parent CurrencyManager's position.
3435
3436         * CurrencyManager.cs: split out some logic from the ctor into
3437         SetView, so it can be called from the new RelatedCurrencyManager
3438         subclass.
3439
3440         * RelatedPropertyManager.cs: new class.  Update our datasource
3441         based on the position of our parent CurrencyManager.
3442
3443         * PropertyManager.cs: split out some logic from the ctor into
3444         SetDataSource, so it can be called from the new RelatedDataSource
3445         subclass.  Also, make the Current getter return the value
3446         of the PropertyDescriptor, not the data_source.
3447
3448         * Binding.cs: no need to duplicate the string splitting code here.
3449
3450 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3451
3452         * Control.cs:
3453           - set_Enabled: OnEnabledChanged is not called if the inherited state 
3454             of the control is not altered, even though  we might be changing the
3455             internal state of the control (#78458)
3456           - set_Enabled: (Re)Moved the enabling/disabling of the window to 
3457             OnEnabledChanged, to allow easy altering of any child window state
3458           - OnEnabledChanged: Added code to enable/disable driver window state
3459           - OnParentEnabledChanged: Instead of firing the event, call 
3460             OnEnabledChanged, which will fire the event and also a) set driver
3461             window state and pass the enabled state to any grandchildren (#78458)
3462
3463 2006-06-19  Jackson Harper  <jackson@ximian.com>
3464
3465         * InternalWindowManager.cs: We don't set the cursor explicitly
3466         thats done via the response to NCHITTESTs.
3467         - Don't need to adjust for titlebar heights anymore, the
3468         coordinates are coming in the correct coordinates now (see peters
3469         last patch).
3470
3471
3472 2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
3473
3474         * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
3475           being translated relative to whole window, instead of client window.
3476           That caused broken offsets on mouseclick (and caused gas for our
3477           InternalWindowManager)
3478
3479 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3480
3481         * TextControl.cs:
3482           - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
3483           - Undo(): Added replay of cursor move on DeleteChars action; added
3484             calling Undo() again if a recorded cursor move is invalid (to
3485             ensure that some action is performed on Undo)
3486         * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
3487
3488 2006-06-16  Jackson Harper  <jackson@ximian.com>
3489
3490         * MdiClient.cs: Instead of just sizing maximized windows when
3491         there is a resize we also have to adjust the Y of minimized
3492         windows, so they stay pinned to the bottom of the mdi container.
3493         - Eliminate separate tracking of the active control, we can just
3494         get this from the controls collection.
3495         - Paint the decorations for the newly activated titlebar so we get
3496         a pretty blue bar.
3497         * InternalWindowManager.cs:
3498         * ThemeWin32Classic.cs: Minimized windows get all three buttons
3499         even if they are a tool window.
3500         
3501 2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
3502
3503         * TextControl.cs (Undo): Handle non-existent cursor locations in the
3504           undo buffer, these can happen when text was deleted and the cursor
3505           was recorded first. Since we will also have a recorded cursor
3506           after the delete this is not an issue. (Fixes #78651)
3507
3508 2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
3509
3510         * AccessibleObject.cs: Remove dependence on Control.is_selected;
3511           instead properly track control states internally (allows us to
3512           remove is_selected from Control)
3513
3514 2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3515
3516         * ImageListStreamer.cs: correctly generate the 1bpp mask for images
3517         whose width is not a multiple of 8.
3518
3519 2006-06-13  Jackson Harper  <jackson@ximian.com>
3520
3521         * MdiClient.cs:  Only maximize the next child if the current one
3522         is maximized.
3523
3524 2006-06-13  Chris Toshok  <toshok@ximian.com>
3525
3526         * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
3527         modified.  Also, guard against grid or grid_drawing being null in
3528         Invalidate.
3529
3530         * DataGrid.cs: Reformat tons of getters/setters.  In the
3531         DataMember setter, just call SetNewDataSource instead of
3532         duplicating some of its functionality.  In SetNewDataSource, don't
3533         check ListManager for null, since the property getter creates the
3534         object if needed.
3535
3536         * DataGridTableStyle.cs: don't set TableStyle or call
3537         SetDataGridInternal on the column here, it's done in
3538         GridColumnStylesCollection.Add.
3539
3540         * GridColumnStylesCollection.cs: fix all the explicit interface
3541         implementations to just call our methods.  Nuke AddInternal() and
3542         move the body of it to Add().  Also, add a call to
3543         column.SetDataGridInternal to Add().
3544
3545         * DataGridTextBoxColumn.cs (.ctors): call this() instead of
3546         base()+duplicate code.  Also, use the Format property instead of
3547         format to generate an Invalidate ala MS.  Lastly, create the
3548         textbox here, unconditionally.
3549         (set_Format): call Invalidate.
3550         (get_TextBox): no need to call EnsureTextBox.
3551         (Commit): remove the message box.
3552         (Edit) remove the call to EnsureTextBox.
3553         (EndEdit): call HideEditBox instead of ReleaseHostedControl.
3554         (EnterNullValue): no need to check textbox for null.
3555         (HideEditBox): no need to check textbox for null.
3556         (SetDataGridInColumn): add the textbox to the grid's controls.
3557         (EnsureTextBox): nuke.
3558         
3559 2006-06-13  Jackson Harper  <jackson@ximian.com>
3560
3561         * MdiWindowManager.cs: Hook up to the maximized menus paint event
3562         and redraw the buttons when needed. Unhook when the window is
3563         unmaximized.
3564         * MainMenu.cs: Add an internal Paint event, the mdi window manager
3565         needs this so that it can redraw its buttons when the menu is
3566         repainted.
3567         * InternalWindowManager.cs:
3568         * Form.cs: The method order has changed for DrawMaximizedButtons,
3569         so that it can be a PaintEventHandler.
3570         
3571 2006-06-13  Jackson Harper  <jackson@ximian.com>
3572
3573         * MdiClient.cs: When we close a maximized mdi window, the next mdi
3574         window is activated and maximized, even if it wasn't before.
3575         - When  a new window is activated repaint the decorations of the
3576         old one, so that it no longer has the Active "look" (the blue
3577         titlebar).
3578         * InternalWindowManager.cs: Open up CreateButtons to base classes
3579         so they can recreate the buttons on state changes.
3580         - If a window is maximized give it all three buttons
3581         * MdiWindowManager.cs: Create the titlebar buttons when the state
3582         is changed, this is needed because a toolwindow will not have all
3583         three buttons until it is maximized.
3584
3585 2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
3586
3587         * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
3588           Fixed bug #78609.
3589
3590 2006-06-12  Jackson Harper  <jackson@ximian.com>
3591
3592         * KeysConverter.cs: Make sure we handle the Ctrl special case
3593         if its the only key.
3594         
3595 2006-06-12  Jackson Harper  <jackson@ximian.com>
3596
3597         * Theme.cs: Add a method to get the size of a managed window
3598         toolbar button.
3599         * InternalWindowManager.cs: Remove the ButtonSize property, this
3600         should be retrieved from the theme.
3601         * MdiWindowManager.cs: Get the button size from the theme
3602         * ThemeWin32Classic.cs: Make the method to get the managed window
3603         titlebar button size public.
3604         - Handle the different button sizes of maximized toolwindows
3605         (should match any maximized window).
3606         - Get the titlebar height from the theme, not the WM (which gets
3607         it from the theme).
3608
3609 2006-06-12  Jackson Harper  <jackson@ximian.com>
3610
3611         * InternalWindowManager.cs: Handle NC Double Clicks, passing the
3612         event down to the mdi window manager.
3613         - Expose some extra stuff to base classes
3614         - Make sure to end the Capture on an NC Mouse up, so that we can
3615         get double clicks properly, and the sizing doens't stick.
3616         - When doing PointToClient contain it in the workable desktop
3617         area, this prevents windows from changing size when the cursor is
3618         pulled outside of the working area while sizing.
3619         * MdiWindowManager.cs: When we get a double click maximize the
3620         window.
3621         - Reset the cursor after handling mode changes.
3622
3623 2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
3624
3625         * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
3626           current desktop, instead of just assuming a 0, 0 origin. This
3627           is needed for our internal window manager, to know the top
3628           margin of the desktop
3629
3630 2006-06-12  Chris Toshok  <toshok@ximian.com>
3631
3632         * DataGrid.cs (set_CurrentCell): concede focus as we move around.
3633         we need this to get rid of the selected background in the bool
3634         column.
3635         (CancelEditing): move the ConcedeFocus call to above the Abort
3636         call.  Also, set is_changing to false and invalidate the row
3637         header if we were changing before.
3638         (ProcessKeyPreviewInternal): remove, since noone outside this
3639         class calls it anymore.  Roll the code into ProcessKeyPreview.
3640         (EndEdit): remove the internal version.
3641         (InvalidateCurrentRowHeader): make private.
3642
3643         * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
3644         Keys.Escape handling (and with it the last call to
3645         DataGrid.EndEdit from outside the class.)
3646
3647
3648 2006-06-12  Chris Toshok  <toshok@ximian.com>
3649
3650         * DataGridTextBox.cs (.ctor): isedit defaults to false.
3651         (OnKeyPress): set isedit to true.
3652         (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
3653         already handled by the grid.
3654
3655         * DataGrid.cs (set_CurrentCell): more work here.  it's still not
3656         right.  ugh.
3657         (set_DataSource): SetDataSource always returns true, so stop
3658         putting it in an if statement.
3659         (EndEdit): get rid of some {}'s
3660         (ProcessGridKey): return true in case Keys.Escape.
3661         (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
3662         (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
3663         PositionChanged, stopped connecting to CurrentChanged.
3664         (GetDataSource): simplify this a bunch.
3665         (SetDataSource): change return type from bool to void.
3666         (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
3667         to this, and make sure we don't set ListManager.Position inside
3668         set_CurrentCell.
3669         (OnListManagerItemChanged): if we're passed an actual index,
3670         redraw that row.
3671
3672         * CurrencyManager.cs (set_Position): don't call PullData here.
3673
3674 2006-06-09  Jackson Harper  <jackson@ximian.com>
3675
3676         * TreeNode.cs:  Recalculate the visible order before doing the
3677         Expand/Collapse Below calls, because those calls generate an
3678         expose.
3679         - Reduce calls to the TreeView property, which is mildly expensive
3680         by using a local var.
3681         * Form.cs: Layout the MDI child windows when creating the parent
3682         form.
3683         - Don't use the internal constructor anymore
3684         * MdiClient.cs: use the parent form width/height (if available)
3685         when laying out the child windows, we do this because the
3686         mdiclient isn't docked yet when the initial layout is done.
3687         - Don't need an internal constructor anymore.
3688
3689 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3690
3691         * FileDialog.cs: handle access errors when trying to create a folder
3692         or changing to a directory. No need to initialize out parameters.
3693
3694 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3695
3696         * FileDialog.cs: Append a number when creating a new folder if the
3697           folder already exists (use parenthesis instead of square brackets)
3698
3699 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3700
3701         * FileDialog.cs:
3702           - Disabled registry support for windows and added better registry
3703             error checking for other systems (need to investigate why it
3704             works perfectly on my system)
3705           - If a folder already exist show an error MessageBox instead of
3706             trying to create an indexed name.
3707           - Fixed a non intentional typo.
3708
3709 2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3710
3711         * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
3712
3713 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3714
3715         * FileDialog.cs: When creating a new folder don't crash if the
3716           folder already exists.
3717
3718 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3719
3720         * FileDialog.cs: Allmost a complete rewrite.
3721           - added a "virtual" file system that handles the differences
3722             between unix and windows file systems (especially the directory
3723             structure). Moved most of the directory and file handling code
3724             into the vfs.
3725             Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
3726             UnixFileSystem and FSEntry.
3727           - Recently used folder/directory, size, location and used file names
3728             (file name ComboBox) are now stored in the registry and get read
3729             before the dialog shows up (fixes part 6 of bug #78446).
3730           - Creation of new folders/directories is now possible (context menu
3731             or ToolBar). Added TextEntryDialog for this that fills in the gap
3732             until ListView.LabelEdit works.
3733           - Fixed cursor handling (bug #78527) and focus handling for
3734             PopupButtonPanel
3735           - Various "Search in" ComboBox enhancements. The content of the
3736             dropdown listbox now almost matches ms.
3737           - Changed the behaviour when the user switches to SpecialFolder
3738             Recent to show the ListView in View.Details.
3739           - Beside using the ToolBar to change the View property of the
3740             file ListView it is now possible to use the context menu too.
3741
3742 2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
3743
3744         * ComboBox.cs: Don't create a new ObjectCollection when an item
3745           gets inserted. Just insert the item in the existing object_items
3746           ArrayList.
3747
3748 2006-06-08  Jackson Harper  <jackson@ximian.com>
3749
3750         * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
3751         that the treeview and root node checks are done also, this fixes a
3752         regression i caused in the unit tests.
3753
3754 2006-06-07  Wade Berrier <wberrier@novell.com> 
3755
3756         * RichTextBox.cs: More ISO8859-1 -> unicode
3757
3758 2006-06-07  Mike Kestner  <mkestner@novell.com>
3759
3760         * ComboBox.cs : use items to hold highlight/selection so that
3761         collection insertions don't require synchronization.
3762
3763 2006-06-07  Jackson Harper  <jackson@ximian.com>
3764
3765         * InternalWindowManager.cs: Simplify (and FIX) the window sizing
3766         routine.  We now always keep the sized edge at the cursor instead
3767         of computing movement and adjusting rects.  There is one buglet
3768         with this method though when the cursor is moved over area that
3769         the window can not expand too (such as the toolbars on the desktop).
3770
3771 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3772
3773         * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
3774         here. Fixes crash on startup in AlbumSurfer.
3775
3776 2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
3777
3778         * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
3779           values
3780
3781 2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3782
3783         * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
3784         statement to avoid calling XNextEvent which will block if another thread
3785         took the event that we were expecting. Fixes bug #78605.
3786
3787 2006-06-07  Mike Kestner  <mkestner@novell.com>
3788
3789         * ListView.cs : isolated checkbox clicking from the selection logic.
3790         Toggle check state on item doubleclicks.  Really fixes #78454 part2.
3791
3792 2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
3793
3794         * Form.cs: Check that the value passed to Form.DialogResult
3795         is a valid enum value.
3796
3797 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3798
3799         * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
3800         Computer'. Clicking it in the network view goes to 'My Computer'.
3801         Added CIFS filesystem type. Display the mount point of filesystems.
3802         Avoid duplicate mount points (happens for me with CIFS);
3803
3804 2006-06-06  Jackson Harper  <jackson@ximian.com>
3805
3806         * InternalWindowManager.cs: Draw the maximized windows buttons
3807         when resizing.
3808
3809 2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3810
3811         * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
3812         all other dialogs. Fixes bug #78585.
3813
3814 2006-06-06  Mike Kestner  <mkestner@novell.com>
3815
3816         * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
3817         Only invalidate checkbox on checkstate changes to avoid flicker.
3818         * ListBox.cs : avoid unselect/select when clicking selected item.
3819         avoid reselection flicker for already multiselected items.
3820         Fixes #78382.
3821
3822 2006-06-06  Jackson Harper  <jackson@ximian.com>
3823
3824         * MdiWindowManager.cs: When the window is closed do an NCRecalc on
3825         the parent form so that the menu is removed if needed.
3826
3827 2006-06-06  Mike Kestner  <mkestner@novell.com>
3828
3829         * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
3830         Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
3831
3832 2006-06-06  Mike Kestner  <mkestner@novell.com>
3833
3834         * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
3835
3836
3837 2006-06-06  Jackson Harper  <jackson@ximian.com>
3838
3839         * Control.cs: Use the property (instead of the field) to get the
3840         default cursor so it is instantiated correctly.
3841         * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
3842         resizes so we need to manually repaint the window decorations here.
3843         - Set the titlebar button locations as soon as they are created,
3844         otherwise they are not set correctly on win32.
3845         
3846 2006-06-06  Chris Toshok  <toshok@ximian.com>
3847
3848         * CurrencyManager.cs (set_Position): call PullData before
3849         OnCurrentChanged.
3850         (AddNew): after calling IBindingList.AddNew, update our
3851         listposition, and call OnCurrentChanged/OnPositionChanged (without
3852         calling PullData).
3853         (OnCurrentChanged): remove the call to PullData from here.
3854         (OnItemChanged): remove the call to PushData from here.
3855         (OnPositionChanged): change the test from == null to != null to
3856         match the other methods.
3857         (ListChangedHandler): the grossest part of the patch.  Implement
3858         this such that it passes the unit tests in CurrencyManagerTest and
3859         the output more or less matches that of MS's implementation.
3860  
3861 2006-06-06  Mike Kestner  <mkestner@novell.com>
3862
3863         * ListView.cs : only update check state on single click.
3864         * ThemeWin32Classic.cs : fix focus drawing for details view without
3865         fullrowselect.  Fixes #78454.
3866         * XplatUIX11.cs : fix for double click emission.
3867
3868 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
3869
3870         * PropertyGridView.cs : Applied Atsushi's patch to fix
3871         font dialog bug  (#78197).
3872
3873 2006-06-05  Jackson Harper  <jackson@ximian.com>
3874
3875         * TreeNode.cs: Compute the next node for expanding/collapsing
3876         correctly. We now factor in nodes without a NextNode
3877         correctly. (Fixes somes cases in nunit-gui).
3878         * InternalWindowManager.cs: Set the bounds when updating the
3879         virtual position of a tool window.
3880         
3881 2006-06-05  Chris Toshok  <toshok@ximian.com>
3882
3883         * DataGrid.cs: rename cached_currencymgr to list_manager.
3884         (set_CurrentCell): move SetCurrentCell code here, and clean it up
3885         some.
3886         (CurrentRow, CurrentColumn): single accessors so we can make the
3887         cursor movement code a lot easier to understand.
3888         (CurrentRowIndex): implement this in terms of CurrentRow.
3889         (BeginEdit): clean this up a bit.
3890         (CancelEditing): sort out the is_editing/is_changing/is_adding
3891         stuff a little.
3892         (EndEdit): minor changes.
3893         (OnKeyDown): add a comment about a (most likely) unnecessary
3894         check.
3895         (OnMouseDown): cancel editing when we click on a row header.  And
3896         use the CurrentRow setter, not CurrentCell.
3897         (ProcessDialogKey): directly call ProcessGridKey.
3898         (UpdateSelectionAfterCursorMove): factor out this common block of
3899         code (it's used everywhere that we move the cursor by updating row
3900         or column).
3901         (ProcessGridKey): pretty substantial overhaul.  Use the
3902         CurrentRow/CurrentColumn properties to make the code a lot more
3903         readable.  Only use the CurrentCell property when we have to
3904         modify both row and column at once.  Tab behavior is still broken,
3905         and Delete is untested.
3906         (Select): if we have no selected rows, set selection_start to
3907         @row.
3908         (EditCurrentCell): rename EditCell this.  It was only ever invoked
3909         with CurrentCell as the arg, so drop the arg and rename it.
3910
3911         * DataGridColumnStyle.cs: clean up the constructors a little, and
3912         drop CommonConstructor().
3913
3914         * DataGridTextBox.cs (.ctor): set accepts_return to true so we
3915         actually get notified when the user hits it.
3916         (ProcessKeyMessage): *substantially* simplify this method.
3917         There's no reason (that I can see) for the textbox to be making
3918         calls into the datagrid at all.  Remove all of them but the ones
3919         for Enter handling.  those will take some more work.
3920
3921         * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
3922         calling HideEditBox.
3923         (HideEditBox): if we have an active textbox, render it invisible
3924         without causing a re-layout of the datagrid.
3925
3926 2006-06-05  Mike Kestner  <mkestner@novell.com>
3927
3928         * ListView.cs : fix NRE crasher when focuseditem is cleared by
3929         collection changes by resetting it to Items[0].  Fixes #78587.
3930
3931 2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3932
3933         * MessageBox.cs: if the height of the text is larger than the icon_size,
3934         use that. Fixes bug #78575.
3935
3936 2006-06-05  Jackson Harper  <jackson@ximian.com>
3937
3938         * TreeView.cs: Fix line drawing when scrolling.  To do this each
3939         node is basically responsible for drawing its entire horizontal
3940         area.  When drawing a node it draws its parent node lines if
3941         needed.
3942         - Adjust the clip area to the viewport rectangle
3943         - Fix Left/Right key handling to match MS. (It expand/collapses
3944         and moves to parents/first child but does not move selection to
3945         sibling nodes).
3946         - Fix SetTop to work with new bound calculation code
3947         - When scrollbars are no longer needed we need to reset scrolling
3948         vars and recalculate the visible order so the redraw is correct
3949         * TreeNode.cs: We can't expand/collapse nodes with no children.
3950
3951 2006-06-03  John Luke  <john.luke@gmail.com> 
3952
3953         * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
3954         so the colors work without dev packages
3955         
3956 2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
3957
3958         * Control.cs 
3959           - Select: Implemented to just use activate. Seems to match MS 
3960             behaviour closest. Documented to only do actual control walking 
3961             based on it's parameters if in a container control so I moved 
3962             the code there.
3963           - Removed selection check logic from our internal Select() method
3964         * ContainerControl.cs:
3965           - Select: Moved selection logic from Control here, since MS documents
3966             that containers obey the bool arguments. No longer calling base
3967
3968 2006-06-02  Jackson Harper  <jackson@ximian.com>
3969
3970         * TreeView.cs: If the selected node isn't changed when we get
3971         focus update the previously selected node so that we see the
3972         selection box.
3973
3974 2006-06-02  Mike Kestner  <mkestner@novell.com>
3975
3976         * ComboBox.cs: restructure grab and general mouse event handling.
3977         Make the composite control raise mouse events like it was a single
3978         control for leaves/enters/motion/up/down events.  fix dropdown list
3979         coordinate mangling and refactor it into the scrollbar subclass to
3980         reduce code duplication.  Fixes #78282 #78361 and #78457.
3981
3982 2006-06-02  Mike Kestner  <mkestner@novell.com>
3983
3984         * ScrollBar.cs: remove Capture setting/clearing, as it happens
3985         automatically in the Control.WndProc.
3986
3987 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3988
3989         * FileDialog.cs: fix crash when running SharpChess, which sets the
3990         FilterIndex to 2 with only one Filter.
3991
3992 2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3993
3994         * ToolBar.cs: add SizeSpecified property.
3995         * ToolBarButton.cs: when the ButtonSize is calculated by the container,
3996         try to figure out our real size, otherwise fallback to what the
3997         container says.
3998
3999 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4000
4001         * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
4002         * Control.cs (WndProc): MS always calls the DefWndProc to pass
4003           up the event
4004
4005 2006-06-01  Mike Kestner  <mkestner@novell.com>
4006
4007         * ListView.cs: revamp the focus management in ListView.  It still
4008         causes churn of LostFocus/GotFocus emissions on clicks, but it's
4009         better than not handling focus at all.  Will revisit when pdb feels
4010         the general focus handling is solid.  Fixes #78526.
4011
4012 2006-06-01  Jackson Harper  <jackson@ximian.com>
4013
4014         * TreeView.cs: Set the default border style in the constructor.
4015         - Move painting to use OnPaintInternal instead of capturing
4016         WM_PAINT, this is the correct way of doing things
4017         - UpdateBelow shouldn't invalidate the scrollbar area
4018         - Cap the top on update below in case the node was above the top
4019         of the viewport rectangle.
4020         - ExpandBelow and Collapse below need to obey Begin/End Update.
4021         * TreeNode.cs: Make is_expanded internal so the treenode
4022         collection can change it without firing the whole event chain.
4023         * TreeNodeCollection.cs: When clearing all the child nodes make
4024         sure to recalc the visible order.
4025         - Improve algo for remove the top node
4026
4027 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
4028
4029         * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
4030           SendMessage directly calling window procedures, which in turn might
4031           call SetFocus()
4032
4033 2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
4034
4035         * Control.cs: Don't handle WM_SETFOCUS if the same window already
4036           has focus (works around X11 sending a FocusIn after our SetFocus)
4037         * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
4038
4039 2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
4040
4041         * Mime.cs: Fix for the NET_2_0 build.
4042           NameValueCollection needs StringComparer now.
4043
4044 2006-05-31  Chris Toshok  <toshok@ximian.com>
4045
4046         * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
4047         return (via an out parameter) the starting X of the column.
4048         (UpdateVisibleColumn): track change to FromPixelToColumn.
4049         (HitTest): add a ColumnResize case here.
4050         (DrawResizeLine): new function, probably poorly named.
4051
4052         * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
4053         only need to keep one reference.
4054         (set_ListManager): same.
4055         (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
4056         Also, add support for HitTestType.ColumnResize.
4057         (OnMouseMove): add column resize behavior here, and change the
4058         cursor to the correct one as we move around the datagrid.
4059         (OnMouseUp): terminate the column resize if we're resizing.
4060         (ProcessGridKey): from the MS docs, Alt-0 enters the null value
4061         for the current cell.
4062         (ConnectListManagerEvents): use cached_currencymgr.
4063         (DisconnectListManagerEvents): fill this in, using
4064         cached_currencymgr.
4065         (SetCurrentCell): remove cached_currencymgr_events handling.
4066         (SetDataMember): only call DisconnectListManagerEvents if
4067         cached_currencymgr is != null.
4068         (SetDataSource): same.
4069         (OnListManagerCurrentChanged): cached_currencymgr_events ->
4070         cached_currencymgr.
4071
4072 2006-05-31  Jackson Harper  <jackson@ximian.com>
4073
4074         * BindingManagerBase.cs: Remove somedebug code that creeped into
4075         SVN.
4076         * TreeNode.cs: We get the indent level dynamically right now, so
4077         don't track it as a member.
4078         * TreeNodeCollection.cs: Make sure all nodes added to the list
4079         have parents, treeviews/topnodes setup properly.
4080         - Don't attempt to track indent level.
4081
4082 2006-05-30  Jackson Harper  <jackson@ximian.com>
4083
4084         * BindingContext.cs: Create the currency manager tables here.
4085         This allows us to more easily create null tables (when bad data
4086         members are used), and more easily create related currency
4087         managers.
4088         * CurrencyManager.cs: All the table creation stuff is done by the
4089         binding context now.
4090         - Current should throw an exception if listposition is -1.
4091         - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
4092         been bound yet.
4093
4094 2006-05-30  Mike Kestner  <mkestner@novell.com>
4095
4096         * ListView.cs: allow reexpansion of zero-width column headers.
4097         Fixes #78528.
4098
4099 2006-05-28  Chris Toshok  <toshok@ximian.com>
4100
4101         * CurrencyManager.cs (get_Current): after the late binding
4102         listposition = -1 fix, we need to guard against it here and return
4103         null, otherwise we raise an exception (which is swallowed
4104         elsewhere, and breaks datagrid databinding.)
4105
4106 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4107
4108         * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
4109           than WM_SYSKEY, don't throw if get something unexpected (#78507)
4110
4111 2006-05-26  Jackson Harper  <jackson@ximian.com>
4112
4113         * ControlPaint.cs:
4114         * ThemeWin32Classic.cs: For color comparisons just use the ARGB
4115         values, it's faster and it's all we care about (we don't care if
4116         the names aren't equal).
4117         * KeyboardLayouts.cs: Eliminate some dead code.
4118         - Lazy init things
4119         * X11Keyboard.cs: Lazy init keyboard detection.
4120         - Cleanup access modifiers a little.
4121
4122 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
4123
4124         * XplatUIX11.cs: Once again, attempting to get layout just right.
4125
4126 2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
4127
4128         * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
4129           the sizes of each link section, that will result in sizes that
4130           match DrawString's layout (Fixes #78391)
4131
4132 2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
4133
4134         * FileDialog.cs: If AddExtension property is true autocomplete the
4135           extensions in SaveFileDialog correctly. Fixes bug #78453.
4136           Set MyNetwork and MyComputer to "C:\" for windows. This should
4137           fix part 8 of bug #78446 for now.
4138
4139 2006-05-26  Chris Toshok  <toshok@ximian.com>
4140
4141         * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
4142         invalidate the current row header if we need to, but presumably
4143         we'll invalidate the row corrsponding to the bounds or
4144         editingControl.
4145         (GridHScrolled): switch back to this method, as it's part of the
4146         public api.  *sigh*.
4147         (GridVScrolled): same.
4148         (OnMouseWheel): hack up something that more or less works.  Call
4149         GridHScrolled/GridVScrolled directly, instead of duplicating much
4150         of their code here.
4151         (EnsureCellVisibility): reinstate a bunch of this code, since we
4152         can't just set the scrollbar Value and expect to do all the work
4153         in the ValueChanged handler.  Also, Call Update() after scrolling
4154         in one direction so the other XplatX11.ScrollWindow call has the
4155         proper stuff in the proper places.
4156         (EditCell): set is_editing to true before calling .Edit.
4157
4158         * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
4159         don't bother comparing first.
4160         (OnKeyPress): call grid.ColumnStartedEditing before calling
4161         base.OnKeyPress.  this will set is_changing and invalidate the row
4162         header if necessary.
4163         (ProcessKeyMessage): for WM_CHAR messages, call
4164         ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
4165         and WM_KEYDOWN.
4166         
4167         * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
4168         it's done in the DataGrid.
4169         (NextState): call grid.ColumnStartedEditing, which takes care of
4170         invalidating the row header (and setting is_changing).
4171
4172         * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
4173         here.  it's done in the DataGrid.
4174
4175 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4176
4177         * Control.cs: allow changing the cursor when the mouse position is
4178         out of bounds but Capture is set.
4179         * LinkLabel.cs: handle the case when the mouse button is pressed on the
4180         linklabel but released somewhere else.
4181
4182 2006-05-25  Jackson Harper  <jackson@ximian.com>
4183
4184         * TreeView.cs: When we get focus if there is no selected node make
4185         it the top node
4186         - Remove some uneeded setup code from Draw.
4187         * TreeNodeCollection.cs: If the tree doesn't have a top node when
4188         a new node is inserted make the new node the top.
4189         * XplatUIX11.cs:
4190         * Timer.cs: Use Utc time so that no local time zone stuff needs to
4191         be used (should be faster).
4192         
4193 2006-05-25  Chris Toshok  <toshok@ximian.com>
4194
4195         * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
4196         problem with the last commit.
4197
4198 2006-05-25  Chris Toshok  <toshok@ximian.com>
4199
4200         * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
4201         need the invalidate call here, while scrolling right-to-left via
4202         the left arrow key (i.e. moving the editing cell while scrolling).
4203
4204         * DataGrid.cs (.ctor): remove the initialization of
4205         ctrl_pressed/shift_pressed.  We no longer track them using key
4206         up/down handlers, but by using Control.ModifierKeys.  Also, switch
4207         to using ValueChanged handlers on the scrollbars instead of
4208         Scrolled event handlers.  This simplifies a bunch of the scrolling
4209         code.
4210         (GridHValueChanged): rename from GridHScrolled, and change it to
4211         work with the new event args.
4212         (GridVValueChanged): same.
4213         (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
4214         (OnMouseWheel): actually scroll the datagrid.  Don't change the
4215         selected cell.
4216         (ProcessGridKey): correct all the keyboard navigation stuff I
4217         could find.  Ctrl up/down/left/right/home/end work now.
4218         (EnsureCellVisibility): correct method name spelling.  Also,
4219         simplify this a touch by not explicitly calling the
4220         ScrollToRow/ScrollToColumnInPixels methods.  We just set the
4221         scrollbar value.
4222         (OnKeyUpDG): no need for this method now.
4223         
4224 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4225
4226         * LinkLabel.cs: display the OverrideCursor when hovering the label.
4227         Fixes bug #78392.
4228
4229 2006-05-25  Chris Toshok  <toshok@ximian.com>
4230
4231         * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
4232         r61019.
4233
4234 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
4235
4236         * Application.cs: Moved setting of is_modal and closing to before
4237           we create the control, to allow the event handlers called as a
4238           result of creation affect closing. Also removed Gonzalo's previous
4239           change to setting DialogResult, the behaviour has been moved to 
4240           Form.ShowDialog()
4241         * Form.cs: 
4242           - ShowDialog(): Removed explicit creation of the form, let RunLoop
4243             handle it instead
4244           - ShowDialog(): If no dialog result is set, we need to return Cancel
4245           - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
4246             the close is cancelled
4247
4248 2006-05-25  Jackson Harper  <jackson@ximian.com>
4249
4250         * StatusBar.cs: We only need to update the sizes of the other
4251         panels when we have auto size contents.  Also we are only updating
4252         the contents of the panel, not the borders, so compensate for the
4253         border width (TODO: get this width from the theme somehow).
4254         * TreeView.cs: Scrollable is true by default
4255         - Use invalidate instead of refresh where needed
4256         - Factor the scrollable value into scrollbar updating
4257         - Update the scrollbars if the Scrollable property is altered
4258         - Update the selected node if its ImageIndex is changed
4259         - Handle null nodes in UpdateNode (mainly so we don't have to
4260         check if selected is null when updating it
4261         - Fix VisibleCount to use the ViewportRectangle so that scrollbars
4262         are factored into the visible count
4263         - Use VisibleCount for clarity in the code
4264         - When the font is changed we need to recurse through all the
4265         nodes and invalidate their sizes
4266         
4267 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4268
4269         * Application.cs: set the DialogResult to fixed when the main form is
4270         hidden or destroyed while being modal.
4271
4272 2006-05-25  Miguel de Icaza  <miguel@novell.com>
4273
4274         * Theme.cs: Use Tangoified messagebox icons. 
4275
4276         (GetSizedResourceImage): Also cope with width = 0 and do not
4277         trigger a warning in that case (0 means "give me your icon from
4278         the resouce, no special size needed).
4279
4280 2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
4281
4282         * Application.cs: Leave runloop if the the main modal form is 
4283           hidden (fixes #78484)
4284
4285 2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
4286
4287         * BindingContext.cs : reject null datasource in Contains() and
4288           Item[].
4289         * CurrencyManager.cs : check data_member validity when data_source
4290           is dataset. When it is late binding, the initial position is -1.
4291
4292 2006-05-24  Jackson Harper  <jackson@ximian.com>
4293
4294         * TreeNodeCollection.cs: Dont't recalculate the visible order on
4295         inserted nodes that aren't visible.  This changes the
4296         max_visible_order which confuses scrollbar settings.
4297         - Use the enumerator to get the prev node instead of duplicating
4298         code.
4299         * TreeView.cs: Use new method for setting scrollbar values
4300         - Don't set the bounds every time the scrollbar is updated
4301         - When updating below the root node use an invalidate instead of a
4302         refresh to prevent the child controls (scrollbars) from being
4303         refreshed. (UpdateBelow still needs to be reworked anyways).
4304         - Reenable SetBottom now that visible orders are set correctly,
4305         added some debug code incase we ever get bad values there again.
4306         - Set the scrollbar max to 2 less then the max value, this
4307         compensates for the max value being one above the node count, and
4308         for scrollbars adding one extra "notch".
4309         - When drawing image nodes if there is an imagelist we draw the
4310         first image in the list if the supplied image index is out of the
4311         image list's bounds.
4312         
4313 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
4314
4315         * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
4316           we receive a size change from the WM (Fixes #78503)
4317
4318 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
4319
4320         * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
4321           rectangle (Fixes #78501)
4322
4323 2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
4324
4325         * ButtonBase.cs: 
4326           - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
4327             as a bitfield.
4328           - Fixed MouseMove to no longer switch pressed state unless the left
4329             mouse button is pressed. Atsushi provided the original patch (#78485)
4330           
4331 2006-05-24  Jackson Harper  <jackson@ximian.com>
4332
4333         * ScrollBar.cs: New internal methods that allow us to change a
4334         couple values on the scrollbar (the most common case is maximum
4335         and large change) without getting multiple invalidates.
4336
4337 2006-05-24  Chris Toshok  <toshok@ximian.com>
4338
4339         * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
4340         (Edit): save off the original state in oldState, and set
4341         grid.is_editing to true.
4342         (OnKeyDown): abort editing if escape is pressed.  also, call
4343         NextState if space is pressed.
4344         (OnMouseDown): call NextState.
4345         (NextState): factor out shared code from OnKeyDown and OnMouseDown
4346         here.  Also, only invalidate the row header once (on the initial
4347         is_changing switch) to save on redraws.
4348
4349 2006-05-24  Chris Toshok  <toshok@ximian.com>
4350
4351         * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
4352         if the value in the cell is different than it was before.  This
4353         keeps us from triggering a layout when we move around a datarid
4354         with a highlighted cell.
4355         (Edit): suspend layout when creating/positining the text box, and
4356         resume passing false so we don't ever actually re-layout.
4357         (ReleaseHostedControl): same.
4358         (EnsureTextBox): reformat slightly, and set WordWrap to false.
4359
4360         * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
4361         control-key sequences should go to the datagrid - remove that
4362         lock.  Also, modify the conditions under which we move between
4363         cells when moving the cursor within a cell, and remove the "this"
4364         and "base" from field accesses.  We weren't even consistent, given
4365         they all were in the base class.
4366
4367 2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
4368
4369         * Binding.cs : (.ctor)
4370           An obvious NRE fix for BindingTest.CtorNullTest().
4371
4372 2006-05-23  Chris Toshok  <toshok@ximian.com>
4373
4374         * TextBoxBase.cs (get_Text): don't add a trailing newline, add
4375         them between lines.  This fixes some quirks editing cells in the
4376         datagrid.
4377
4378 2006-05-23  Jackson Harper  <jackson@ximian.com>
4379
4380         * TreeView.cs: Use begin/end update when doing expand/collapse all
4381         so that we don't get flicker on the scrollbar.
4382
4383 2006-05-23  Jackson Harper  <jackson@ximian.com>
4384
4385         * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
4386         treenode calculations to be independant of the painting code. To
4387         do this nodes track a visible order which is calculated by the
4388         treeview.
4389         - Call new methods for expanding/collapsing nodes.  These methods
4390         use scrollwindow so we don't have to update everything below the
4391         node.
4392         * TreeView.cs: Refactored drawing and scrolling code.  We don't
4393         need to update nodes when drawing anymore or calculate scrollbar
4394         stuff.
4395         - Added new methods for expanding/collapsing nodes. These methods
4396         use ScrollWindow so as to not have to redraw all the nodes below.
4397         * TreeNodeCollection.cs: Recalc visible order and scrollbars when
4398         we add/remove nodes or sort.
4399         - Handle removing the selected and the top node properly.
4400
4401 2006-05-23  Chris Toshok  <toshok@ximian.com>
4402
4403         * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
4404         maybe this should actually happen in the datagrid code?
4405         (EndEdit): no need to invalidate anything, given that
4406         ReleaseHostedControl causes the datagrid to relayout, which
4407         invalidates everything anyway.
4408
4409         * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
4410         in SetCurrentCell).
4411         (set_SelectionBackColor): call InvalidateSelection instead of
4412         Refresh.
4413         (set_SelectionForeColor): same.
4414         (BeginEdit): Flesh this out a bit.
4415         (CancelEditing): only do any of this if we're editing/adding.
4416         (EndEdit): same.
4417         (OnMouseDown): there's no need to cancel editing here, it's done
4418         in SetCurrentCell.
4419         (SetCurrentCell): only invalidate the current row header if it's a
4420         different row than the new one.
4421         (ShiftSelection): fix this to work like MS does.
4422         (ResetSelection): factor out the invalidation of selected_rows to
4423         InvalidateSelection.
4424         (SetDataSource): cancel any editing that's going on.
4425
4426         * DataGridColumnStyle.cs
4427         (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
4428         call the non-interface version.
4429
4430         * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
4431         header rectangle with the clip rectangle so we don't redraw the
4432         entire header for just a small area.  Gets rid of the last flicker
4433         when horizontally scrolling.
4434         (DataGridPaintRow): same.
4435
4436 2006-05-23  Mike Kestner  <mkestner@novell.com>
4437
4438         * ListViewItem.cs: remove size for line hack from LargeIcon layout.
4439         * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
4440         poorly placed checkbox on the MS control.  Fixes Alex's unfiled
4441         Critical bug report.
4442
4443 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4444
4445         * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
4446           and this fixes #78493
4447
4448 2006-05-23  Miguel de Icaza  <miguel@novell.com>
4449
4450         * Theme.cs (GetSizedResourceImage): Scale images if the proper
4451         size is not found.  
4452         
4453         * FileDialog.cs: Do not change the background for the side bar as
4454         it wont work nicely with the theme, and also reduces the artifacts
4455         in rendering the icons (which I want to fix too).
4456
4457         * MimeIcon.cs (ResourceImageLoader): Load images from assembly
4458         resources, not resgen resources. 
4459
4460         (PlatformDefaultHandler): Pull images using the new API.
4461
4462 2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
4463
4464         * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
4465           a reference to the hwnd and will not remove it unless there are
4466           no pending exposures (fixes #78341)
4467         * XplatUI.cs: Improved debug
4468
4469 2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
4470
4471         * MenuAPI.cs : don't handle OnClick event when it was not the left
4472           button. Fixed bug #78487.
4473
4474 2006-05-23  Mike Kestner  <mkestner@novell.com>
4475
4476         * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
4477         prefer submenus to the top menu for item lookup, to avoid popping down
4478         top-row items.
4479
4480 2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
4481
4482         * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
4483           Graphics.FillRectangle as the visual results are really bad (even
4484           on win). We now draw perfect arrows (and perfect shadows when the
4485           scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
4486           Pen.DashPattern to draw the dots of each line.
4487
4488 2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
4489
4490         * FileDialog.cs: Update the filename combobox when navigating through
4491           the ListView with the cursor keys. Fixes part 7 of bug #78446.
4492
4493 2006-05-22  Mike Kestner  <mkestner@novell.com>
4494
4495         * ListView.cs: raise SelectedIndexChanged on keyboard selection.
4496         Fixes #78463.
4497
4498 2006-05-22  Mike Kestner  <mkestner@novell.com>
4499
4500         * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
4501         requests. Fix a misspelled parameter and a copy paste exception error
4502         in Select.
4503
4504 2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
4505
4506         * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
4507           to get the same width/height (5/13) on X11 as the default font has on
4508           win32. This means that our DefaultFont emSize is smaller than the 
4509           the MS SWF equivalent (even thought the width/height stays the same)
4510
4511 2006-05-20  Jackson Harper  <jackson@ximian.com>
4512
4513         * MdiClient.cs:
4514         * MdiWindowManager.cs:
4515         * InternalWindowManager.cs: Make sure to use the border width from
4516         the theme.
4517
4518 2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
4519
4520         * PrintDialog.cs: Implements printer details
4521
4522 2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
4523
4524         * FileDialog.cs: Added focus handling for PopupButtonPanel.
4525           Fixes part 1 and 2 of bug #78446
4526
4527 2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
4528
4529         * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
4530           instead of sticking to the first ever calculated value
4531
4532 2006-05-19  Mike Kestner  <mkestner@novell.com>
4533
4534         * ComboBox.cs: fix mouse motion selection to use MousePosition and
4535         PointToClient, since Capture is set. Fixes #78344.
4536
4537 2006-05-19  Mike Kestner  <mkestner@novell.com>
4538
4539         * ListView.cs: match MS behavior in Details view where items are not
4540         drawn if Columns.Count == 0. 
4541         * ThemeWin32Classic.cs: only highlight ListView selection if focused.
4542         Use a separate pen to draw the check, since changing the width affects
4543         the box as well.  Fixes #78454.
4544
4545 2006-05-18  Miguel de Icaza  <miguel@novell.com>
4546
4547         * ListView.cs: ArgumentOutOfRangeException, single versions of the
4548         exception should throw the name of the invalid argument.
4549
4550         * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
4551         there are no files listed. 
4552
4553 2006-05-18  Jackson Harper  <jackson@ximian.com>
4554
4555         * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
4556         up.
4557
4558 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4559
4560         * Control.cs: Brought back our old UpdateZOrder method as a private
4561           function and switched our calls from UpdateZOrder to the new one.
4562           This fixes the Paint.Net canvas disappearing bug.
4563
4564 2006-05-18  Jackson Harper  <jackson@ximian.com>
4565
4566         * Theme.cs:
4567         * ThemeWin32Classic.cs:
4568         * InternalWindowManager.cs: Move the drawing into the theme,
4569         expose everything the theme should need from the window manager.
4570
4571 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4572
4573         * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
4574           from the call to NativeWindow to avoid walking up the parent chain
4575           further than needed (speeds up setting cursors and avoids setting
4576           the wrong cursor if a parent has another cursor defined)
4577         * Cursor.cs: When loading an icon as cursor, MS uses the center of
4578           the icon as hotspot, not what's contained as hotspot in the icon
4579           file. This fixes the perceived drawing offset seen with Paint.Net
4580         
4581 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
4582
4583         * XplatUIX11.cs: 
4584           - Store the calculated rectangle in Hwnd object and use it when 
4585             setting the client size
4586           - Force Toolwindows to always be type Dock, to ensure they're on top
4587
4588 2006-05-18  Mike Kestner  <mkestner@novell.com>
4589
4590         * ComboBox.cs: first pass at ComboBox rework.  Layout is more
4591         consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
4592         Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
4593         Substantial refactoring to remove confusing nested classes. Coding
4594         standard and Get+Set->property refactorings.  Shift to index based
4595         highlighting in ComboListBox instead of constantly using IndexOf and
4596         Items[]. Add invalidations on resize for DropDownList to fix ugliness
4597         in FileDialog growth.  Draw borders manually since Simple mode needs
4598         to look like two independent controls.  Make listbox border
4599         conditional to DropDownStyle.  Improved OwnerDraw support.
4600
4601 2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
4602
4603         * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
4604         Don't set the disposed graphics to null, so we can throw the "right"
4605         exception if the graphics is reused later (added a flag to avoid 
4606         double disposing). Some behaviours are different under 2.0 and are
4607         filled under bug #78448.
4608
4609 2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
4610
4611         * Control.cs: When double-buffering is enabled, we need to reset
4612           our graphics context between paint calls. Otherwise, any 
4613           transformations and other alterations on the context will 
4614           become cumulative (#77734)
4615
4616 2006-05-18  Mike Kestner  <mkestner@novell.com>
4617
4618         * ListView.cs: do focused item selection like MS on clicks. 
4619         Rework focus handling for ItemControl so LostFocus invalidates as
4620         well.
4621         * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
4622         the ListView ItemControl has focus.
4623
4624 2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
4625
4626         * XplatUIX11.cs: If client_window ends up being width or height zero
4627           due to border settings, move it off window inside whole_window (#78433)
4628
4629 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4630
4631         * Mime.cs: Shrink the mime file cache correctly.
4632
4633 2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
4634
4635         * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
4636
4637 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4638
4639         * XplatUIX11.cs (AddExpose): More sanity checks
4640
4641 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4642
4643         * XplatUIX11.cs:
4644           - AddExpose: Don't add expose ranges outside the size of our
4645             window
4646           - Cast opacity values to Int32 to avoid crashes with certain
4647             values
4648           - Added disabled code paths that protect against illegal cross-
4649             thread painting (Developers.exe)
4650
4651 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4652
4653         * ProgressBar.cs: Invalidate the control when it's resized
4654           since block size is based on control size. (#78388)
4655
4656 2006-05-16  Miguel de Icaza  <miguel@novell.com>
4657
4658         * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
4659         of setting the incoming argument to the "reset" value, we set the
4660         this.datamember to string.empty (before we were invalidating the
4661         incoming data).   
4662
4663         Fixes 78420
4664
4665 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4666
4667         * Form.cs: Only apply transparency settings after the form
4668           is created. (Fixes #77800)
4669
4670 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
4671
4672         * ApplicationContext.cs: Grab the HandleDestroyed event so
4673           we know when to fire OnMainFormClosed 
4674
4675 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4676
4677         * Application.cs: Introduced sub-class to allow tracking of
4678           threads and centralized triggering of the event mess for
4679           ThreadExit, AppExit, etc..  (#76156)
4680
4681 2006-05-16  Alexander Olk  <alex.olk@googlemail.com>
4682
4683         * MimeIcon.cs:
4684           - Do not return a null icon index value for a mime subclass.
4685             Instead try the main mime type class too.
4686           - Seems that some newer distributions don't have a link to some
4687             gnome default icons anymore. So check the default gnome dir too.
4688           
4689
4690 2006-05-16  Jackson Harper  <jackson@ximian.com>
4691
4692         * MdiClient.cs: Don't paint the parent background image if we have
4693         our own background image.
4694
4695 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
4696
4697         * Control.cs:
4698           - PerformLayout: Do not shrink space filled by DockStyle.Fill
4699             controls, all filled controls are supposed to overlap (#78080)
4700           - UpdateZOrder is supposed to update the control's z-order in the
4701             parent's z-order chain. Fixed to behave like that
4702           - BringToFront: Removed obsolete code
4703           - SendToBack: Simplyfied
4704           - SetChildIndex: Trigger layout calculations when Z-order changes
4705             since layout is done by z-order
4706
4707 2006-05-16  Chris Toshok  <toshok@ximian.com>
4708
4709         [ fixes bug #78410 ]
4710         * DataGrid.cs (set_AlternatingBackColor): use
4711         grid_drawing.InvalidateCells instead of Refresh().
4712         (set_BackColor): call grid_drawing.InvalidateCells.
4713         (set_BackgroundColor): use Invalidate instead of Refresh.
4714
4715         * DataGridDrawingLogic.cs (InvalidateCells): new function, just
4716         invalidate the cell area.
4717
4718 2006-05-15  Chris Toshok  <toshok@ximian.com>
4719
4720         [ fixes bug #78011 ]
4721         * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
4722         on to DataGridPaintRow.
4723         (DataGridPaintRow): take a clip argument, and only draw the cells
4724         which intersect it.  same with the not_usedarea.
4725
4726         * Theme.cs (DataGridPaintRow) add @clip parameter.
4727
4728         * DataGrid.cs (ScrollToColumnInPixels): simplify, use
4729         XplatUI.ScrollWindow.
4730         (ScrollToRow): same.
4731
4732         * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
4733         with last column which was causing a gray swath to appear with the
4734         XplatUI.ScrollWindow code.
4735
4736 2006-05-15  Chris Toshok  <toshok@ximian.com>
4737
4738         * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
4739         use XplatUI.ScrollWindow.
4740         (VerticalScrollEvent): use XplatUI.ScrollWindow.
4741
4742 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com> 
4743
4744         * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
4745
4746 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4747
4748         * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
4749           file since there are no equivalent X11 cursors
4750
4751 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4752
4753         * MonthCalendar.cs : DateTimePicker should reflect selected date
4754           on mouse*up*, not mouse*down*. Fixed originally reported part of
4755           bug #76474.
4756
4757 2006-05-15  Atsushi Enomoto  <atsushi@ximian.com>
4758
4759         * TabControl.cs : When argument index is equal or more than tab
4760           count, just ignore. Fixed bug #78395.
4761
4762 2006-05-15  Peter Dennis Bartok  <pbartok@novell.com>
4763
4764         * Control.cs: Dispose all child controls when control is diposed (#78394)
4765
4766 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4767
4768         * ColorDialog.cs: Finally it is possible to select the color with
4769           the text boxes
4770
4771 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4772
4773         * PrintDialog.cs: Fix typo
4774
4775 2006-05-14  Alexander Olk  <alex.olk@googlemail.com>
4776
4777         * PrintDialog.cs: PrintDialog is not resizable
4778         * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
4779           color. Made some ToolBar drawing methods protected virtual.
4780
4781 2006-05-13  Jordi Mas i Hernandez <jordimash@gmail.com>
4782
4783         * PrintDialog.cs: Implementation of the PrintDialog
4784
4785 2006-05-12  Chris Toshok  <toshok@ximian.com>
4786
4787         * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
4788         thumb, instead use MoveThumb.  This has the side effect of making
4789         most of the other thumb moving machinery use MoveThumb as well.
4790         (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
4791         need to actually invalidate the rectangle where the new thumb will
4792         go.
4793         (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
4794         We force an Update() after, so it's not as fast as it could be,
4795         but at least there's zero flicker and no droppings.
4796         (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
4797         (UpdateThumbPos): add another argument (dirty), which says whether
4798         or not to calculate/add dirty regions which we later invalidate.
4799         For cases where we know we're going to use MoveThumb, we pass
4800         false for this.  Otherwise, pass true.
4801
4802 2006-05-12  Jackson Harper  <jackson@ximian.com>
4803
4804         * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
4805         the status bar.
4806         
4807 2006-05-12  Peter Dennis Bartok  <pbartok@novell.com>
4808
4809         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
4810           and GetClipRegion methods and UserClipWontExposeParent property.
4811         * XplatUIWin32.cs: Implemented SetClipRegion/GetClipRegion methods,
4812           overriding UserClipWontExposeParent property, setting to false, since
4813           Win32 handles the required expose messages to draw our clipped parent
4814           areas internally
4815         * XplatUIX11.cs: Implemented SetClipRegion and GetClipRegion; updated
4816           PaintEventStart to set the user clip region if set.
4817         * Control.cs: 
4818           - Now internally tracking the Region for the control since we need to
4819             store it if the handle is not yet created and only set it when it
4820             becomes created. Before setting the region forced handle creation
4821           - Added code to draw the parents underneath a user-clipped region
4822         * Hwnd.cs: Added UserClip property
4823
4824 2006-05-12  Chris Toshok  <toshok@ximian.com>
4825
4826         * ScrollBar.cs (set_LargeChange): Refresh() -> InvalidateDirty()
4827         (set_Maximum): same.
4828         (set_Minimum): same.
4829         (set_SmallChange): same.
4830         (OnMouseUpSB): remove the call to refresh when releasing the
4831         thumb.  We shouldn't need it.
4832         
4833 2006-05-12  Miguel de Icaza  <miguel@novell.com>
4834
4835         * StatusBar.cs (UpdatePanel): If the panel being refreshes has the
4836         AutoSize set to None, we do not need to relayout everything, we
4837         just need to invalidate the current region.
4838
4839         (Draw): Do not draw the entire ClientArea, just redraw the
4840         clip area being passed.
4841
4842         * MdiClient.cs: Make MdiClient constructor with the Form argument
4843         internal. 
4844
4845 2006-05-12  Jackson Harper  <jackson@ximian.com>
4846
4847         * ThemeWin32Classic.cs (DrawToolBar): Flat toolbars get their
4848         parents background image,  but strangely not their own.
4849         - (DrawStatusBarPanel): Take into account horizontal alignment
4850         when drawing the strings and icons.
4851
4852 2006-05-12  Mike Kestner  <mkestner@novell.com>
4853
4854         * ListBox.cs: avoid invalidations for focus when the collection is
4855         empty. 
4856
4857 2006-05-12  Chris Toshok  <toshok@ximian.com>
4858
4859         * ScrollBar.cs (OnMouseMoveSB): when dragging the thumb, don't
4860         invalidate the entire thumb area.  Call InvalidateDirty which
4861         limits the redraw to the thumb itself and surrounding pixels.
4862
4863         * XplatUIX11.cs (ScrollWindow): optimize copying.
4864         
4865 2006-05-12  Chris Toshok  <toshok@ximian.com>
4866
4867         * DataGridDrawingLogic.cs: make CalcGridAreas non-reentrant.
4868         Figure out the positioning/layout in a single pass instead of
4869         multiple recursive invocations.  Speeds up the initial display of
4870         the data grid.  Also, make many things private that were
4871         originally public but unused outside this class.
4872
4873 2006-05-11  Jackson Harper  <jackson@ximian.com>
4874
4875         * MdiClient.cs: Improved layout code.
4876
4877 2006-05-11  Jonathan Chambers  <jonathan.chambers@ansys.com>
4878
4879         * PropertyGrid.cs : Only check GetPropertiesSupported for properties,
4880           not SelectedObject.
4881
4882 2006-05-11  Chris Toshok  <toshok@ximian.com>
4883
4884         * Hwnd.cs (Invalid): don't start off with Rectangle.Empty, as
4885         union of that will always be {0,0,width,height}.
4886
4887 2006-05-11  Jackson Harper  <jackson@ximian.com>
4888
4889         * Form.cs: Match MS's DefaultSize for forms (they must have
4890         changed the size in sp2).
4891
4892 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4893
4894         * TextBoxBase.cs : implement CTRL+A (select all). Fixed bug #78368.
4895
4896 2006-05-11  Atsushi Enomoto  <atsushi@ximian.com>
4897
4898         * TextControl.cs : Fixed bug #78109. This incorrect position
4899           comparison caused crash on automatic line split.
4900         * TextBoxBase.cs : reduce duplicate code.
4901
4902 2006-05-10  Jackson Harper  <jackson@ximian.com>
4903
4904         * MdiClient.cs: Active form is only sent to the back when using
4905         the Next form functionality, when a form is clicked the current
4906         active shouldn't be sent to the back.
4907         - Layout the mdi windows when the container is first made visible.
4908         * Form.cs: Give the MdiClient a ref to the containing form when we
4909         create it.
4910         
4911 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4912
4913         * LinkLabel.cs : link_font could be uninitialized, so populate one
4914           before actual use. Fixed bug #78340.
4915
4916 2006-05-10  Atsushi Enomoto  <atsushi@ximian.com>
4917
4918         * XplatUIX11.cs : clipboard format native value is IntPtr.
4919           Fixed bug #78283.
4920
4921 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4922
4923         * Control.cs: 
4924           - Instead of showing context menus directly we send WM_CONTEXTMENU, 
4925             which is passed up the parent chain by DefWndProc
4926           - We now handle WM_CONTEXTMENU to display any menu, or pass it 
4927             to DefWndProc (#77956)
4928         * XplatUIX11.cs: Added handling of WM_CONTEXTMENU (pass up) to DefWndProc
4929
4930 2006-05-10  Jackson Harper  <jackson@ximian.com>
4931
4932         * MdiClient.cs: We need to remove the controls from the mdi
4933         collection, when we close the window.
4934         * MdiWindowManager.cs: Special handling of closing mdi windows.
4935         * InternalWindowManager.cs: Make the close method virtual so the
4936         mdi window manager can handle it specially.
4937
4938 2006-05-10  Jordi Mas i Hernandez <jordimash@gmail.com>
4939
4940         * DataGrid.cs:
4941           - Recalculate grid when the data source has changed
4942           - Matches styles provided by user from all data sources types
4943         * DataGridTableStyle.cs: For columns that provided by the user set the
4944         with the preferred value is there was unassigned.
4945         * CurrencyManager.cs: throw OnItemChanged event
4946
4947 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com> 
4948
4949         * PictureBox.cs: Don't animate until handle is created. Start animation
4950           when handle is created.
4951
4952 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4953
4954         * XplatUIX11.cs, Hwnd.cs: Adopted Mike's patch from #77979 to match
4955           current codebase.
4956         * XEventQueue.cs: We don't need to provide the extra info
4957
4958 2006-05-10  Jackson Harper  <jackson@ximian.com>
4959
4960         * MdiClient.cs: If the mdi clients parent form has a background
4961         image set, we draw that background image for the mdi area's
4962         background.
4963
4964 2006-05-10  Peter Dennis Bartok  <pbartok@novell.com>
4965
4966         * TextBoxBase.cs: Set IBeam cursor (#78347)
4967
4968 2006-05-10  Mike Kestner  <mkestner@novell.com>
4969
4970         * ToolBar.cs: fix some text padding issues with ButtonSize
4971         calculation. Update the default size to match MS documentation.
4972         * ToolBarButton.cs: use ToolBar.ButtonSize for layout of unspecified
4973         button size. Fixes #78296.
4974
4975 2006-05-10  Mike Kestner  <mkestner@novell.com>
4976
4977         * ListBox.cs: use is_visible for scrollbar positioning in case the
4978         control isn't on screen yet.  Fix off by one with Right vs Width
4979         usage.  Update Scrollbars in SetBoundsCore. Fixes #78188 and #78258.
4980         
4981 2006-05-10  Jackson Harper  <jackson@ximian.com>
4982
4983         * X11Dnd.cs: Drop to a control with another control on top of it.
4984         * ToolBar.cs: Work on a copy of the buttons list, so that it can
4985         be modified in click handlers. TODO: Look for similar problems in
4986         other controls.
4987
4988 2006-05-09  Jackson Harper  <jackson@ximian.com>
4989
4990         * Form.cs: Window managers need the old window state when setting
4991         window state now.
4992         * InternalWindowManager.cs: Allow the base mdi window manager to
4993         handle more of the MDI only stuff (like maximize buttons).
4994         * MdiWindowManager.cs: Fix some snafus in changing the window
4995         state.  Add all the menu functionality, for both popup and
4996         maximized menus.
4997         * MdiClient.cs: When a new form is selected the currently
4998         activated form is sent to the back, this matches MS.
4999         - Implement a new method to activate the next mdi child window.
5000
5001 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com>
5002
5003         * Control.cs: 
5004           - Added new InternalCapture method to allow controls to prevent
5005             the capture behaviour on the click handlers
5006           - Switched to use InternalCapture
5007         * ComboBox.cs:
5008           - Using InternalCapture to prevent mouse captures from being released
5009             on mouse button release (Fixes #78100)
5010         * XplatUIX11.cs (DeriveStyles): Now checks caption state and only
5011           returns Form borders if a caption is present. (Fixes #78310)
5012
5013 2006-05-08  Peter Dennis Bartok  <pbartok@novell.com> 
5014
5015         * TreeNode.cs: Changed serialization .ctor to not require every field
5016           to be present. (#78265)
5017         * OwnerDrawPropertyBag.cs: Added serialization .ctor
5018
5019 2006-05-05  Alexander Olk  <alex.olk@googlemail.com>
5020
5021         * MimeIcon.cs: for is faster than foreach for strings.
5022
5023 2006-05-05  Mike Kestner  <mkestner@novell.com>
5024
5025         * CheckedListBox.cs: update check handling code to not use selected.
5026         * ListBox.cs: rewrite of mouse selection handling to correspond to MS
5027         behavior for visual feedback, motion response, shift/ctrl handling,
5028         and properly deal with all 4 selection modes. Updates to bounds
5029         handling logic.  Add scroll wheel support. [Fixes #77842]
5030
5031 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5032
5033         * ListView.cs:
5034           - Moved adding of Implicit controls into .ctor. That way, subsequent
5035             creation of the controls will not cause them to think they are 
5036             toplevel windows (fixes #78200 header problem)
5037           - Added 2.0 ShowGroups and UseCompatibleStateImageBehaviour
5038           - Switched visibility setting of header control to use internal field
5039             to avoid triggering handle creation
5040           - Now checking if handle is created before causing a refresh when items
5041             are added (This makes us now match handle creation time with MS)
5042         * Splitter.cs: Removed loading of private splitter cursor, switched to
5043           Cursors version now that that is loading the right ones
5044         * Cursors.cs: Load proper splitter cursors from resources
5045         * Cursor.cs: Added second method of loading resource cursors for the 
5046           VS.Net users amongst us
5047
5048 2006-05-05  Mike Kestner  <mkestner@novell.com>
5049
5050         * ListView.cs: give header_control a minimum size based on the
5051         ListView size.
5052
5053 2006-05-05  Peter Dennis Bartok  <pbartok@novell.com> 
5054
5055         * XplatUIX11.cs: WS_EX_TOPMOST requires window to be on top. A dock
5056           window seems to do that with metacity, so set that type. (#78120)
5057
5058 2006-05-05  Mike Kestner  <mkestner@novell.com>
5059
5060         * ListViewItem.cs: fix Details mode checkbox layout bug.
5061         * ThemeWin32Classic.cs: draw a ListView column header for unused space
5062         at the end of the header, if it exists. [Fixes for #78200]
5063
5064 2006-05-04  Jackson Harper  <jackson@ximian.com>
5065
5066         * MdiClient.cs: Add a helper property to get the container form.
5067         * MdiWindowManager.cs: We have to make sure to use the menu origin
5068         when drawing the icons and buttons, this fixes maximized window
5069         icons/buttons on win32.
5070         * InternalWindowManager.cs: Reset the restore captions when a
5071         window goes from Maximized to Minimized and vice versa. Move the
5072         DrawMaximizedButtons into the MdiWindowManager source, tool
5073         windows can't be maximized. NOTE: This could use a little
5074         refactoring if time ever permits.
5075         
5076 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5077
5078         * TextBox.cs: Add MWFCategoryAttributes
5079         * TextBoxBase.cs: Add MWFCategoryAttributes
5080         * Form.cs: Add MWFCategoryAttributes
5081
5082 2006-05-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
5083
5084         * Control.cs: Add MWFCategoryAttributes
5085         * ScrollableControl.cs: Add MWFCategoryAttributes
5086
5087 2006-05-03  Alexander Olk  <alex.olk@googlemail.com>
5088
5089         * ThemeWin32Classic.cs: Draw the ToolBar top border only if
5090           Divider is true. Fix a little glitch in PropertyToolBar
5091           drawing code
5092
5093 2006-05-02  Peter Dennis Bartok  <pbartok@novell.com> 
5094
5095         * Control.cs:
5096           - Dispose: Call base.Dispose, this causes the disposed event
5097             to be fired (and probably other, more important stuff)
5098           - SetVisibleCore: Set is_visible to true after creating the
5099             window so that the window still gets created invisible (if
5100             WM_VISIBLE isn't set). That will cause the ShowWindow afterwards
5101             to generate a WM_ACTIVE message
5102         * Form.cs: Call Dispose when we want to destroy the window, instead of
5103           just destroying the handle (Dispose will do that for us)
5104         * XplatUIX11.cs:
5105           - RootWindow also needs a queue, so we can properly process the
5106             property change events from RootWindow (like Activate)
5107           - Generatic synthetic WM_ACTIVE message when the active window is
5108             being destroyed
5109
5110 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5111
5112         * LinkLabel.cs: Trigger a recalc of our label dimensions when
5113           bounds are changed
5114
5115 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com>
5116
5117         * ThemeWin32Classic.cs (ButtonBase_DrawImage): Use the proper image
5118           for determining width and height (image might not be assigned if
5119           we're drawing an imagelist)
5120
5121 2006-05-01  Peter Dennis Bartok  <pbartok@novell.com> 
5122
5123         * XplatUI.cs, XplatUIDriver.cs: Added MenuHeight property
5124         * XplatUIWin32.cs: Overriding new MenuHeight property, retrieving
5125           height from system
5126         * Theme.cs: No longer returns hardcoded menu height, instead calls
5127           new driver method
5128         * Form.cs (OnLoad): Scaling happens before triggering Load events 
5129           on MS (# 78257)
5130
5131 2006-05-01  Mike Kestner  <mkestner@novell.com>
5132
5133         * MenuItem.cs: fix NRE for text == null.  Fixes #78250.
5134
5135 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com> 
5136
5137         * TextBoxBase.cs: Removed Fixme
5138         * RichTextBox.cs (set_RTF): Invalidate document after update (#78247)
5139
5140 2006-04-30  Peter Dennis Bartok  <pbartok@novell.com>
5141
5142         * XplatUIX11.cs:
5143           - ScrollWindow: We were passing hwnd.ClientRectangle which returns
5144             the rectangle relative to the parent, considering borders. We
5145             don't really want that.
5146           - ScrollWindow: Fixed warning to be more understandable
5147         * TextBoxBase.cs: Fixed ScrollWindow calculations to consider our
5148           scrollbars and scroll only the visible area
5149         * RichTextBox.cs: Removed debug output
5150
5151 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5152
5153         * NumericUpDown.cs (Text): Just use base
5154         * UpDownBase.cs: Ensure txtView is created before using it
5155
5156 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5157
5158         * XplatUIX11.cs (SetWindowTransparency): Casting opacity to int before
5159           casting to IntPtr to avoid 64bit overflow errors
5160
5161 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5162
5163         * Control.cs:
5164           - AllowDrop: Don't force handle creation.
5165           - CreateHandle: Added call to tell driver if we're allowed to drop
5166
5167 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5168
5169         * FileDialog.cs: Remember the last directory not only for the
5170           current instance but also for new FileDialog instances.
5171
5172 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com> 
5173         
5174         * XplatUIX11.cs: Forgot to set the queue on the foster parent. That
5175           broke sending async messages
5176
5177 2006-04-29  Peter Dennis Bartok  <pbartok@novell.com>
5178
5179         * XplatUIX11.cs:
5180           - ScrollWindow: Fixed method. We finally generate expose events again
5181             for scrolled areas. This was causing 'garbage' when scrolling
5182             textbox and other controls that used ScrollWindow
5183           - Switched from using the regular queue for paint events to the MS 
5184             model of 'generating' paint events when the queue is empty.
5185             We use the new XQueueEvent.Paint subclass to store which windows
5186             need painting.
5187           - AddExpose now takes the x/y/width/height of the exposed area
5188             and inserts the window into the paint queue if not already there
5189           - InvalidateWholeWindow: Switched to use new AddExpose method
5190           - UpdateMessageQueue: Added which queue to monitor for paint events
5191           - DefWndProc: Added default handler for WM_PAINT and WM_NCPAINT in
5192             the unlikely case nothing above handles it. We reset the expose
5193             pending states to get them off the queue.
5194           - GetMessage: Now pulls a paint event if no other events are in the
5195             queue
5196           - Invalidate: Switched to new AddExpose method
5197           - PeekMessage: Updated to understand pending paint events
5198           - UpdateWindow: Fixed logic bug. We were only updating if the window
5199             didn't need updating. Also switched to sending WM_PAINT directly,
5200             like MS does.
5201         * XEventQueue.cs: Added Paint queue support. Allows enqueue/dequeue
5202           and random access Remove(). The random access is needed to handle
5203           UpdateWindow() where a WM_PAINT is sent directly without accessing
5204           the queue.
5205         * ScrollBar.cs: Added Update() calls to cause immediate updates to
5206           allow for better feedback when scrolling. Scrollbars are small and
5207           the immediate update should make it 'feel' more responsive without
5208           slowing things down. ScrollBar still needs it's invaliate logic
5209           updated to not always invalidate the whole bar on certain changes.
5210
5211 2006-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5212
5213         * Control.cs:
5214         (BackColor): if the control does not support a transparent background,
5215         return the default backcolor when the parent backcolor is transparent.
5216
5217 2006-04-28  Peter Dennis Bartok  <pbartok@novell.com>
5218
5219         * Application.cs: Updated to new StartLoop/GetMessage API
5220         * RichTextBox.cs: Provide some output on RTF parsing errors
5221         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs: Added
5222           new queue_id argument to GetMessage and PeekMessage to allow faster
5223           handling of per-thread queues in drivers.
5224         * Hwnd.cs: Added Queue tracking and property
5225         * MenuAPI.cs: Updated to new StartLoop/GetMessage API
5226         * XEventQueue.cs: Added thread trackingA
5227         * PropertyGridView.cs: Updated to new StartLoop/GetMessage API
5228         * XplatUIX11.cs:
5229           - Implemented new per-thread queue
5230           - GetMessage: Fixed return/break behaviour on several cases. We were
5231             returning stale messages in some cases, instead of just processing
5232             the next message
5233
5234 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
5235
5236         * PropertyGrid.cs: Call GetPropertiesSupported on TypeConverter.
5237
5238 2006-04-27  Peter Dennis Bartok  <pbartok@novell.com>
5239
5240         * ThemeWin32Classic.cs (DrawToolBar): Refactored, simplified the logic,
5241           fixed off-by-one comparisons between Width/Height and Right/Bottom.
5242
5243 2006-04-27  Jonathan Chambers  <jonathan.chambers@ansys.com>
5244
5245         * PropertyGridView.cs: Fix drop down width.
5246
5247 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5248
5249         * ThemeWin32Classic.cs: Peter thinks that three additional lines are
5250           a mess in DrawToolBar, so I removed one of them.
5251
5252 2006-04-27  Alexander Olk  <alex.olk@googlemail.com>
5253
5254         * ThemeWin32Classic.cs: Draw the ToolBar border lines only if
5255           needed (clip). Otherwise we get artifacts.
5256
5257 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5258
5259         * FixedSizeTextBox.cs: Added constructor to allow specifying which
5260           dimension is fixed
5261         * UpDownBase.cs: Set the spinner control to be fixed height vertical,
5262           and switched FixedSizeTextBox to only be fixed vertical (#78116)
5263         * Form.cs: Not applying the 'MS 0.08 fudge factor' for a given dimension
5264           if it matches the scale base font (avoids unneeded scaling)
5265
5266 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5267
5268         * X11DesktopColors.cs: One gtk_init_check should be enough
5269
5270 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com> 
5271
5272         * TextBoxBase.cs: Moved Backspace handling into WM_CHAR block to
5273           match MS behaviour
5274
5275 2006-04-26  Peter Dennis Bartok  <pbartok@novell.com>
5276
5277         * TextBoxBase.cs: 
5278           - Generate OnTextChanged for Backspace even if we're only deleting
5279             the current selection
5280           - When setting the Text property, only select all text if the
5281             control does not have focus when it is being set. Otherwise
5282             just place the cursor at the beginning of the control
5283
5284 2006-04-26  Alexander Olk  <alex.olk@googlemail.com>
5285
5286         * ThemeWin32Classic.cs: ToolBars get drawn with two lines at the top.
5287           Added a little helper to draw PropertyGrid ToolBar with a different
5288           border and a different BackColor.
5289         * PropertyGrid.cs: Some background parts didn't get painted with the
5290           correct background color. Added a class that helps us to draw the
5291           correct border for PropertyGridView and a class that helps us to
5292           draw ToolBars with a different backcolor
5293         * PropertyGridView.cs: Draw PlusMinus with the correct colors.
5294
5295 2006-04-25  Jonathan Chambers  <jonathan.chambers@ansys.com>
5296
5297         * PropertyGrid.cs: Bug 78196, font size, and splitter location.
5298         * PropertyGridView.cs: Bug 78196, font size, and splitter location.
5299
5300 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5301
5302         * XplatUIWin32.cs (DIBtoImage): ORing instead of ANDing the alpha
5303           into the palette entries. Also, since we're working on a copy
5304           we needed to copy the palette back onto the bitmap.
5305         * Cursor.cs: Same fix as XplatUIWin32.cs.
5306
5307 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com>
5308
5309         * ImageListStreamer.cs: Need to read the var (or we're off)
5310
5311 2006-04-25  Peter Dennis Bartok  <pbartok@novell.com> 
5312
5313         * TextControl.cs, ComboBox.cs, CommonDialog.cs, Theme.cs, 
5314           XplatUIWin32.cs, RichTextBox.cs, ImageListStreamer.cs,
5315           TextBoxBase.cs: Unused var fixes
5316         * AxHost.cs: Small 2.0 fix
5317         * XplatUIX11.cs: Switched to IntPtr from int for XA_CARDINAL atoms 
5318           as it seems that is what at least Metacity expects. This will make
5319           icons show up on 64bit platforms. We still have some 64bit size
5320           issues, though, since the startup app window size still won't match.
5321
5322 2006-04-25  Mike Kestner  <mkestner@novell.com>
5323
5324         * *.cs: cleanup newly reported exception var unused warnings.
5325
5326 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5327
5328         * ThemeWin32Classic.cs: Button image alignment now matches exactly
5329           ms
5330
5331 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5332
5333         * ThemeWin32Classic.cs: Fixed drawing code for buttons with an
5334           image. The image position is always the same, no matter if the
5335           button is pressed or not.
5336
5337 2006-04-25  Alexander Olk  <alex.olk@googlemail.com>
5338
5339         * FileDialog.cs: SaveFileDialog shouldn't rely on a MWFFileView
5340           selection and set the correct filename for SaveFileDialog.
5341           Patch by Emery Conrad.
5342
5343 2006-04-24  Mike Kestner  <mkestner@novell.com>
5344
5345         * ListView.cs (LastVisibleIndex): when in List mode of Alignment.Left,
5346         check for item.X outside the ClientRect instead of item.Y. Fixes
5347         #78151.
5348
5349 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5350
5351         * ImageListStreamer.cs: some images store a wrong grow factor, so don't
5352         trust that value blindly and do some sanity check. Fixes bug #77814.
5353
5354 2006-04-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5355
5356         * ImageListStreamer.cs: save the mask as a 1bpp image.
5357
5358 2006-04-21  Mike Kestner  <mkestner@novell.com>
5359
5360         * CheckedListBox.cs: maintain CheckStatus here. Use DrawItemState to
5361         pass Checked and Indeterminate to the Theme Engine. Improve
5362         encapsulation with ListBox.
5363         * ListBox.cs: Keep a StringFormat instead of calculating it every item
5364         draw. Kill ListBoxItem. Refactor away the ListBoxInfo and ListBoxItem
5365         nested types.  Move all CheckState functionality to CheckedListBox.
5366         Make IntegralHeight work like MS.  Rewrite of Layout engine.  Fix
5367         OwnerDrawVariable layout/rendering.  Fix multicolumn rendering.  Fix
5368         ScrollAlwaysVisible handling. Refactor "selected" collections to use a
5369         single base list. Fix scrollbar sizing and placement to mirror MS.
5370         * Theme.cs: remove CheckedListBoxCheckRectangle. It wasn't really
5371         used.
5372         * ThemeWin32Classic.cs: implement Indeterminate CheckState rendering
5373         for CheckedListBox by using new DrawItemState info.  Center the
5374         checkboxes on the items. Use new StringFormat property.
5375
5376 2006-04-18  Jackson Harper  <jackson@ximian.com>
5377
5378         * Form.cs: MdiChildren don't do default locations the same way as
5379         regular forms.  This prevents a crash when trying to position the
5380         mdi windows.
5381
5382 2006-04-17  Jonathan Chambers  <jonathan.chambers@ansys.com>
5383
5384         * PropertyGridTextBox.cs: Formatting, copyright
5385         * PropertiesTab.cs: Formatting
5386         * PropertyGrid.cs: Formatting
5387         * PropertyGridView.cs: Formatting, fix drop down, enabled double 
5388           click toggling of values
5389           
5390 2006-04-17  Peter Dennis Bartok  <pbartok@novell.com> 
5391
5392         * KeyPressEventArgs: Added 2.0 only setter for KeyChar
5393         * Control.cs (.ctor): verify_thread_handle is static, don't reset
5394           every time a control is created
5395         * Application.cs: Removed obsolete EnableRTLMirroring method
5396
5397 2006-04-18  Gert Driesen  <drieseng@users.sourceforge.net>
5398
5399         * TabControl.cs: Avoid ArgumentOutOfRangeException when setting
5400         SelectedIndex to -1. Fixes bug #78121.
5401
5402 2006-04-17  Jackson Harper  <jackson@ximian.com>
5403
5404         * Binding.cs: Handle null values for Current and BindingContext.
5405         This occurs when binding is a little delayed.
5406         * CurrencyManager.cs: return null for Current when there are no
5407         items in the list.
5408         - Hookup to the listchanged event on the DataView and update
5409         bindings when the list is changed.  This fixes late binding of
5410         controls.
5411
5412 2006-04-17  Jackson Harper  <jackson@ximian.com>
5413
5414         * X11Dnd.cs:
5415         * XplatUIX11.cs: Drops should not create a mousedown. Patch by Tim
5416         Ringenbach.
5417
5418 2006-04-15  Alexander Olk  <alex.olk@googlemail.com>
5419
5420         * ThemeWin32Classic.cs: Draw disabled combo button in the correct
5421           place
5422         * ComboBox.cs: If the combobox is disabled call CPDrawComboButton
5423           with the correct ButtonState
5424
5425 2006-04-14  Peter Dennis Bartok  <pbartok@novell.com>
5426
5427         * XplatUIX11.cs: Improved distinguishing between window types to
5428           tell the WM a type closer to what the app wants (Fixes #78107)
5429
5430 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5431
5432         * ThemeWin32Classic.cs: Fixed drawing of ContainerGrabHandle and
5433           GrabHandle
5434
5435 2006-04-14  Alexander Olk  <alex.olk@googlemail.com>
5436
5437         * ThemeWin32Classic.cs: Fixed size grip drawing and updated StatusBar
5438           drawing code to reflect the size grip changes
5439
5440 2006-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5441
5442         * ImageListStreamer.cs: fix handling of the mask that follows the main
5443         bitmap when deserializing and serialize it properly. The generated mask
5444         should better be a 1bpp image, but I'll do that later.
5445
5446 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5447
5448         * FileDialog.cs: Show something in the DirComboBox on *nix if the
5449           path doesn't fit into some of our Current.Places
5450
5451 2006-04-13  Jackson Harper  <jackson@ximian.com>
5452
5453         * ComboBox.cs: Use borders instead of drawing our own decorations,
5454         try to obey correct rules for heights.
5455         * Theme.cs:
5456         * ThemeNice.cs:
5457         * ThemeClearLooks.cs:
5458         * ThemeWin32Classic.cs: Remove combobox decoration drawing code,
5459         this is now handled by borders.
5460         - Remove unused DrawListBoxDecorationSize method.
5461         
5462 2006-04-13  Mike Kestner  <mkestner@novell.com>
5463
5464         * MenuAPI.cs: null guarding for the disbled click check fixes crash
5465         reported by Alex.
5466
5467 2006-04-13  Alexander Olk  <alex.olk@googlemail.com>
5468
5469         * ThemeWin32Classic.cs: 
5470           - Fixed CPDrawStringDisabled
5471           - Corrected drawing of disabled menu items
5472           - Fixed drawing of disabled radio buttons (bug #78095)
5473           - Draw check in a disabled CheckBox with color ControlDark 
5474
5475 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5476
5477         * Form.cs: Use the provided width when calculating the menu size;
5478           when being maximized we get WM_NCCALCSIZE before WM_WINDOWPOSCHANGED
5479           and ClientSize.Width won't be updated yet
5480         * Application.cs: Use Visible instead of Show() to make form visible,
5481           this way we create the handle later and menusize is considered
5482
5483 2006-04-12  Mike Kestner  <mkestner@novell.com>
5484
5485         * MenuAPI.cs: ignore clicks on disabled menu items. Thanks to Alex for
5486         reporting.
5487
5488 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5489
5490         * TextBox.cs: Implemented context menu
5491
5492 2006-04-12  Mike Kestner  <mkestner@novell.com>
5493
5494         * ListView.cs: implement box selection. fixes #77838.
5495         * ThemeWin32Classic.cs: draw box select rect, remove a ResetClip.
5496
5497 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5498
5499         * XplatUIX11.cs: Added setting of window type when transient window
5500           is created (metacity would move it otherwise)
5501         * X11Structs.cs: Added WINDOW_TYPE atoms
5502         * LinkLabel.cs: Override OnPaintBackgroundInternal and draw the
5503           background (the control is Opaque but still wants transparent
5504           backgrounds)
5505
5506 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5507
5508         * Control.cs: Added OnPaintBackgroundInternal to allow controls
5509           that set Opaque but don't mean it (like all ButtonBase-derived
5510           controls) to still draw their background
5511         * ButtonBase.cs: Override OnPaintBackgroundInternal and draw
5512           the background
5513
5514 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com> 
5515
5516         * Control.cs (PaintControlBackground): Set the graphics object
5517           on our PaintEvent to null to prevent it from being disposed
5518           when the PaintEvent gets disposed
5519
5520 2006-04-12  Alexander Olk  <alex.olk@googlemail.com>
5521
5522         * ThemeWin32Classic.cs: Use even more SystemBrushes and SystemPens
5523         * ThemeNice.cs, ThemeClearlooks.cs: fix typo
5524
5525 2006-04-12  Peter Dennis Bartok  <pbartok@novell.com>
5526
5527         * Control.cs: 
5528           - Added transparency check to BackColor property. Transparent
5529             backgrounds are only allowed if the control styles permit it
5530           - Added recursive painting of parent control background and
5531             foreground if a control with a transparent backcolor is drawn
5532             (Thanks to Tim Ringenback for providing his 'hack' as a base
5533              for this patch) Fixes #77985 and #78026.
5534           - Added Opaque style check before calling OnPaintBackground, no
5535             need to draw the background if the control is opaque
5536           - Removed ControlAccessibleObject owner variable (inherited from
5537             base, no need to define again)
5538           - Added some documentation links explaining the drawing events
5539             and styles
5540
5541 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5542
5543         * Splitter.cs (CalculateSplitPosition): Corrected the bad assumption
5544           that the affected control is the located at the left border of our
5545           parent (Fixes #77936)
5546
5547 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5548
5549         * TextBoxBase.cs: When rendering disabled or readonly controls,
5550           draw the background with 'Control' instead of 'Window' color as
5551           long as the user hasn't specifically set a color
5552
5553 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com> 
5554
5555         * TextBoxBase.cs: Don't try to shortcut by checking against base.Text
5556           since that won't be updated if the user types text (only if it's
5557           programatically set)
5558
5559 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5560
5561         * ScrollableControl.cs: Calculate DisplayRect dynamically, so that
5562           layout changes do to app-triggered resizes will have the proper
5563           display rectangle for layout
5564
5565 2006-04-11  Alexander Olk  <alex.olk@googlemail.com>
5566
5567         * ThemeWin32Classic.cs:
5568           - Make use of the SystemBrushes and SystemPens wherever possible
5569           - Corrected some highlight colors
5570           - Corrected RadioButton and CheckBox FlatStyle.Flat and Popup
5571             drawing
5572         * Theme.cs: Added Empty field to CPColor struct
5573
5574 2006-04-11  Peter Dennis Bartok  <pbartok@novell.com>
5575
5576         * ScrollabeControl.cs: We need to consider whether or not a scrollbar
5577           is displayed when calculating the display rectangle. Thanks to Mike
5578           for teaching me the err of my ways.
5579
5580 2006-04-10  Peter Dennis Bartok  <pbartok@novell.com>
5581
5582         * ScrollableControl.cs:
5583           - Rewrote DisplayRectangle code, now returning the proper x/y coords 
5584             (instead of 0,0) and we now return the real width/height instead of
5585             just the clientrectangle, adjusted for padding. The rectangle is
5586             now cached and created by the new CalculateDisplayRectangle method.
5587           - Created new CalculateDisplayRectange method, which basically does
5588             what get_DisplayRectangle() did originally, but now using the 
5589             right edge instead of DisplayRectangle to determine the size of
5590             our scrollbars
5591           - get_Canvas(): Fixed it to properly calculate canvas for 
5592             right/bottom controls which seem to be placed to the right/bottom
5593             of any controls that have a fixed location
5594           - Removed TODO that's taken care of
5595           - Removed NotImplementeds and attempted to implement AdjustFormScrollBars
5596             and SetDisplayRectLocation according to new MSDN2 docs
5597           - Added call to PerformLayout in OnVisibleChanged, MS causes a layout
5598             event when that is called, this is added for compatibility
5599           - ScrollControlIntoView(): Implemented.
5600           - Switched scrollbars to be implicit, they shouldn't be selectable
5601         * ContainerControl: Now that ScrollControlIntoView is implemented, we 
5602           call it when the active control is set/changed
5603         * ScrollBar.cs: Added support for generating Win32 scrollbar messages
5604         * ImplicitHScrollBar.cs, ImplicitVScrollBar.cs: Now setting new base
5605           implicit_control variable (used for native Win32 message generation)
5606         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs: Added new 
5607           HorizontalScrollBarHeight and VerticalScrollBarWidth properties
5608         * ThemeWin32Classic.cs: Now calling the driver for the scrollbar sizes
5609         * XplatUIStructs.cs: Added ScrollBarCommands enum
5610
5611 2006-04-10  Jackson Harper  <jackson@ximian.com>
5612
5613         * ButtonBase.cs:
5614         * CheckedListBox.cs:
5615         * ComboBox.cs:
5616         * DataGrid.cs:
5617         * DataGridView.cs:
5618         * Form.cs:
5619         * GroupBox.cs:
5620         * ListBox.cs:
5621         * PrintPreviewControl.cs:
5622         * ProgressBar.cs:
5623         * PropertyGrid.cs:
5624         * Splitter.cs:
5625         * StatusBar.cs:
5626         * TrackBar.cs:
5627         * UpDownBase.cs: Fixup base event overrides.
5628         
5629 2006-04-06  Mike Kestner  <mkestner@novell.com>
5630
5631         * ScrollBar.cs: fix "new event" declarations (#76509) and bounds check
5632         all user-initiated value changes to min <= value <= max-thumbsz+1.
5633         (set_Value): check for vert/horiz when calculating new thumb position.
5634         (LargeIncrement): bounds check to stop pos at max - thumb_size + 1
5635         like MS does.
5636         (OnMouseMoveSB): refactor the thumb dragging code and refine
5637         invalidation logic to reduce flicker.
5638         (SetEndPosition): bounds check to stop pos at max - thumb_size + 1
5639         (SmallIncrement): bounds check to stop pos at max - thumb_size + 1
5640         (UpdateThumbPosition): small code readability cleanup
5641
5642 2006-04-10  Alexander Olk  <alex.olk@googlemail.com>
5643
5644         * ThemeNice.cs: Small UI polishing. Draw borders a little bit
5645           different
5646
5647 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5648
5649         * ThemeNice.cs: Use a better graphics effect when a button is pressed
5650
5651 2006-04-08  Alexander Olk  <alex.olk@googlemail.com>
5652
5653         * Theme.cs: Added GetDashPen and GetSizedPen to SystemResPool
5654         * ThemeWin32Classic.cs: Make use of the new SystemResPool methods.
5655           This dramatically reduces the number of Pen.Dispose calls. 
5656           Where possible call ResPool methods only once instead of calling it
5657           over and over again (for example for the same color).
5658
5659 2006-04-06  Mike Kestner  <mkestner@novell.com>
5660
5661         * TabControl.cs: fix for SelectedIndex updating on TabPage removals.
5662         Also remove an unused private field on the collection. Fixes #77972.
5663
5664 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5665
5666         * ThemeNice.cs: Added ToolBar drawing code
5667
5668 2006-04-06  Mike Kestner  <mkestner@novell.com>
5669
5670         * Form.cs (ShowDialog): MS allows IWin32Window param to be a non-form.
5671         I'm assuming that means we need to look up the toplevel for the
5672         provided control. Fixes the crash trace in #77911 but exposes another
5673         crash in some strange reflection usage in NDocGui.
5674
5675 2006-04-06  Alexander Olk  <alex.olk@googlemail.com>
5676
5677         * ThemeNice.cs: Gave it a little silver touch and added Images
5678           method
5679         * FontDialog.cs: FontDialog is not resizable
5680         * FileDialg.cs: Added SizeGripStyle.Show
5681
5682 2006-04-05  Jackson Harper  <jackson@ximian.com>
5683
5684         * KeyboardLayouts.cs: Remove warning.
5685
5686 2006-04-05  Jackson Harper  <jackson@ximian.com>
5687
5688         * Control.cs: Enable OnPaintInternal so we can use it for drawing
5689         all of our controls instead of Paint +=.
5690         * ListBox.cs:
5691         * ListView.cs:
5692         * MenuAPI.cs:
5693         * MessageBox.cs:
5694         * NotifyIcon.cs:
5695         * ProgressBar.cs:
5696         * ScrollBar.cs:
5697         * Splitter.cs:
5698         * StatusBar.cs:
5699         * TabControl.cs:
5700         * TextBoxBase.cs:
5701         * ToolBar.cs:
5702         * TrackBar.cs:
5703         * UpDownBase.cs:
5704         * ComboBox.cs: Remove handling of WM_PAINT and WM_ERASEBKGND and
5705         use OnPaintInternal. Remove Width/Height and Visible checks in
5706         paint handler, this is done at a higher level now.
5707         * GroupBox.cs: Don't need to handle WM_ERASEBKGND anymore.
5708         * PaintEventArgs.cs: Add a handled flag so controls that don't
5709         want anymore painting after OnPaintInternal can make sure OnPaint
5710         isn't called.
5711
5712 2006-04-05  Mike Kestner  <mkestner@novell.com>
5713
5714         * Form.cs: fix the menu WndProc hacks to respect the native enabled
5715         state of the form, so that we don't process events when Modal dialogs
5716         are up. Fixes #77922.
5717
5718 2006-04-05  Alexander Olk  <alex.olk@googlemail.com>
5719
5720         * Mime.cs: Default for range length is 1 not 0. If set to 0 no match
5721           checking is done.
5722
5723 2006-04-05  Mike Kestner  <mkestner@novell.com>
5724
5725         * XplatUIX11.cs: fix typo in the EX_APPWINDOW transient patch.
5726
5727 2006-04-05  Mike Kestner  <mkestner@novell.com>
5728
5729         * ListView.cs (HeaderMouseMove): null guarding for the over column
5730         when setting up the drag_to_index.  Fixes #78015.
5731
5732 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com>
5733
5734         * XplatUIX11.cs: If WS_EX_APPWINDOW isn't set we don't want to show up
5735           in the taskbar. Transient windows seem to accomplish that.
5736
5737 2006-04-04  Peter Dennis Bartok  <pbartok@novell.com> 
5738
5739         * Form.cs:
5740           - Re-enabled CreateParams.X/Y code for FormStartPosition
5741           - Added code for manual placement when creating the Control
5742           - Incomplete patch to treat MDI forms differently when
5743             setting the ClientSizeCore. (Still need to figure out handling
5744             x/y coords there)
5745         * XplatUIX11.cs:
5746           - When we're explicitly setting the X/Y position of a non-Child
5747             window, let the WM know. Metacity really wants this.
5748
5749 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5750
5751         * ThemeNice.cs: Added CPDrawButton
5752
5753 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5754
5755         * ThemeNice.cs: Changed the color for focused buttons and activated
5756           the arrows for small scroll buttons.
5757
5758 2006-04-04  Alexander Olk  <alex.olk@googlemail.com>
5759
5760         * ThemeWin32Classic.cs: Removed DrawFlatStyleButton, not needed
5761           anymore. Changed some method modifiers to protected (virtual)
5762         * ThemeClearlooks.cs: Updated to reflect the ThemeWin32Classic
5763           changes
5764         * ThemeNice.cs: Updated to reflect the ThemeWin32Classic changes.
5765           Updated drawing of menus, buttons and progressbars; added
5766           CPDrawBorder3D 
5767
5768 2006-04-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
5769
5770         * ImageListStreamer.cs: implemented serialization/deserialization
5771         of the images.
5772
5773 2006-04-03  Alexander Olk  <alex.olk@googlemail.com>
5774
5775         * ThemeWin32Classic.cs:
5776           - Removed all the DrawFrameControl stuff; CPDrawButton,
5777             CPDrawCheckBox and CPDrawRadioButton are now handled directly
5778             inside the methods
5779           - Updated and corrected the drawing code of CPDrawButton,
5780             CPDrawCheckBox and CPDrawRadioButton to better match ms
5781           - Updated theme checkbox and radiobutton code to use the CP*
5782             methods
5783
5784 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5785
5786         * XplatUIX11.cs: Enable clipping again now that the libgdiplus
5787           bug is fixed
5788
5789 2006-03-31  Jackson Harper  <jackson@ximian.com>
5790
5791         * XplatUIX11.cs: Somehow we get SETCURSORS for bad windows
5792         sometimes.
5793         * UpDownBase.cs: Don't CreateGraphics manually, use a
5794         Refresh. Ideally we would invalidate the correct areas here.
5795
5796 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com> 
5797
5798         * XplatUIX11.cs: 
5799           - We now track the mapping state of windows. If a window (or 
5800             one of it's parents) is not mapped we no longer permit
5801             WM_PAINT messages to be generated since we'd otherwise get 
5802             lots of BadMatch X errors. Jackson did all the work figuring
5803             out the problem.
5804           - Destroying the caret if the window it's contained in is 
5805             destroyed. Can't use regular DestroyCaret method since it
5806             might fall into a drawing function (trying to remove the
5807             caret) and with that generate new BadMatch errors. Again,
5808             Jackson tracked this down.
5809           - Changed DestroyChildWindows to SendWMDestroyMessages, we now
5810             make sure we send the messages to all windows. (The old code
5811             would send the WM_DESTROY to the window, and then all child
5812             windows would be 'gone' because the WM_DESTROY handle lookup
5813             would no longer find the destroyed window)
5814         * Hwnd.cs: Added Mapping property to track mapping state of hwnd
5815         * X11Structs.cs: Added WindowType enum for MapWindow/UnmapWindow
5816
5817 2006-03-31  Jackson Harper  <jackson@ximian.com>
5818
5819         * ScrollableControl.cs: Dont recalc if we are not visible.
5820
5821 2006-03-31  Mike Kestner  <mkestner@novell.com>
5822
5823         * Control.cs (SetVisibleCore): move the CreateControl call up ahead of
5824         the visibility branch.
5825
5826 2006-03-31  Jackson Harper  <jackson@ximian.com>
5827
5828         * ScrollBar.cs: Cap values when incrementing/decrementing.
5829
5830 2006-03-31  Mike Kestner  <mkestner@novell.com>
5831
5832         * MenuAPI.cs: setup menu.tracker for popup/context menus.
5833         * ToolTip.cs: guard against timer expirations with no active control.
5834         Not sure why it happened.
5835
5836 2006-03-31  Mike Kestner  <mkestner@novell.com>
5837
5838         * ThemeWin32Classic.cs: add some horizontal padding space for the tip
5839         text.
5840         * ToolTip.cs: Position the tooltip based on where the cursor is at
5841         popup time, not at MouseEnter time.  Add a Down state so that we don't
5842         redisplay tips without a Leave. Use faked XplatUI.GetCursorInfo for
5843         positioning offset. Lookup DisplaySize at positioning time, since it
5844         can theoretically change during invocation.
5845         * XplatUIWin32.cs: fake GetCursorInfo until pdb can do it properly.
5846         * XplatUIX11.cs: fake GetCursorInfo until pdb can do it properly.
5847
5848 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5849
5850         * ThemeWin32Classic.cs: Use CPDrawBorder3D to draw a GroupBox.
5851           Fixes behaviour when the Text property of the box is String.Empty
5852
5853 2006-03-31  Peter Dennis Bartok  <pbartok@novell.com>
5854
5855         * XplatUIX11.cs: Only send mouseleave for our client windows, not
5856           for the whole window (otherwise we get WM_MOUSE_LEAVE twice for
5857           a window)
5858
5859 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5860
5861         * FileDialog.cs: Visual enhancement for the popup buttons in 
5862           PopupButtonPanel
5863
5864 2006-03-31  Alexander Olk  <alex.olk@googlemail.com>
5865
5866         * ColorDialog.cs, FontDialog.cs: Make use of the updated 3D border
5867           code
5868
5869 2006-03-30  Alexander Olk  <alex.olk@googlemail.com>
5870
5871         * ThemeWin32Classic.cs: Updated MainMenu drawing of selected and
5872           highlighted menu items to match ms
5873
5874 2006-03-30  Peter Dennis Bartok  <pbartok@novell.com> 
5875
5876         * XplatUIX11.cs: Don't set a clip rectangle unless it's not empty
5877
5878 2006-03-30  Mike Kestner  <mkestner@novell.com>
5879
5880         * Menu.cs (SelectedItem): use new MenuItem.Selected prop.
5881         * MenuAPI.cs: use new MenuItem.Selected prop. redraw MainMenu when we
5882         go active to account for HotLight to Selected transition.
5883         * MenuItem.cs: add internal Selected prop. Fill out the Status
5884         property by calculating it from item info. Add HotLight,
5885         NoAccelerator, Checked, Grayed, and Disabled flags where appropriate.
5886
5887 2006-03-30  Mike Kestner  <mkestner@novell.com>
5888
5889         * MenuItem.cs: only emit DrawItem and MeasureItem for OwnerDraw.
5890
5891 2006-03-29  Jackson Harper  <jackson@ximian.com>
5892
5893         * Form.cs: Implement TODO.
5894
5895 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com> 
5896
5897         * PrintPreviewDialog.cs: Implemented missing methods and events; still
5898           missing proper dialog setup in the constructor
5899
5900 2006-03-29  Peter Dennis Bartok  <pbartok@novell.com>
5901
5902         * ProgressBar.cs: Added 2.0 Style property that apps seem to use
5903         * Control.cs:
5904           - Implemented CheckForIllegalCrossThreadCalls, removed TODO
5905           - Fixed ResetBindings and removed TODO
5906           - Added check for cross-thread calls to get_Handle()
5907           - Added Marshaller attribute for set_Font to satisfy class status
5908         * FontDialog.cs: Removed TODOs that seemed implemented
5909         * UpDownBase.cs: Removed unneeded TODO and Fixme
5910         * MessageBox.cs: Implemented support for Default button and removed TODO
5911         * FileDialog.cs: Removed obsolete TODO
5912         * DomainUpDown.cs: Removed obsolete TODO
5913         * ButtonBase.cs: Removed obsolete TODO
5914         * XplatUIWin32.cs: Removed obsolete TODO
5915         * Form.cs:
5916           - Removed obsolete TODO
5917           - Calling CheckAcceptButton when the acceptbutton is changed to allow
5918             internal status updates
5919           - Making sure the active control is selected when the control is created
5920         * CurrencyManager.cs: Removed obsolete TODO
5921
5922 2006-03-29  Mike Kestner  <mkestner@novell.com>
5923
5924         * *.cs: fix remaining corcompare issues for 1.1 API with the exception
5925         of PrintPreviewDialog and RichTextBox.
5926
5927 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5928
5929         * Theme.cs: Added a little helper to SystemResPool to get the Dark,
5930           DarkDark, Light and LightLight colors for a specific color
5931         * ThemeWin32Classic.cs:
5932           - Use Button drawing code to draw RadioButtons and CheckBoxes with
5933             Appearance = Button 
5934           - Make use of the new ResPool helper CPColor
5935           - Draw ProgressBar and StatusBar with correct 3D borders
5936
5937 2006-03-29  Alexander Olk  <alex.olk@googlemail.com>
5938
5939         * ColorDialog.cs: Return selected color. Fixes bug #77940.
5940
5941 2006-03-28  Mike Kestner  <mkestner@novell.com>
5942
5943         * ListView.cs: fix Icon layout to plan for scrollbar widths when
5944         calculating col/row counts.
5945
5946 2006-03-28  Mike Kestner  <mkestner@novell.com>
5947
5948         * ColumnHeader.cs:
5949         * ListView.cs:
5950         * ListViewItem.cs:
5951         * Menu.cs: 
5952         switch to explicit interface method implementation for some methods
5953         corcompare identifies as inconsistent with MS.
5954
5955 2006-03-28  Mike Kestner  <mkestner@novell.com>
5956
5957         * MainMenu.cs: 
5958         * Menu.cs:
5959         add a few missing methods from the class status output.
5960
5961 2006-03-28  Alexander Olk  <alex.olk@googlemail.com>
5962
5963         * ControlPaint.cs: Fixed ControlPaint.Light method. Results are now
5964           correct.
5965
5966 2006-03-28  Mike Kestner  <mkestner@novell.com>
5967
5968         * MenuAPI.cs: Deactivate on MainMenu item click. Fixes #77917.
5969
5970 2006-03-27  Mike Kestner  <mkestner@novell.com>
5971
5972         * ThemeWin32Classic.cs: Switch flat toolbars to use RaisedInner for
5973         the Hilight state to adapt to Alex's CPDrawBorder3D changes.
5974
5975 2006-03-27  Alexander Olk  <alex.olk@googlemail.com>
5976
5977         * ThemeWin32Classic.cs: Rewrote Button drawing code to match ms.
5978
5979 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5980
5981         * ThemeWin32Classic.cs:
5982           - GroupBox: Inserted a little gap between the text and the lines
5983             on the right side
5984           - Made the code in CPDrawBorder3D more readable
5985           - Corrected the drawing location of the up and down arrows in 
5986             CPDrawScrollButton
5987
5988 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5989
5990         * ControlPaint.cs: Corrected line widths in DrawBorder for
5991           ButtonBorderStyle Inset and Outset
5992
5993 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
5994
5995         * ThemeWin32Classic.cs:
5996           - Rewrote the totally broken CPDrawBorder3D method. That was
5997             one of the main problems for the terrific ThemeWin32Classic
5998             look
5999           - Updated and corrected Button drawing
6000           - Correct the dimensions of the SizeGrip to match ms ones
6001           - Removed a small drawing glitch in DrawComboBoxEditDecorations
6002         * XplatUIX11.cs: Draw borders with BorderStyle = Fixed3D with
6003           Border3DStyle.Sunken to match ms.
6004
6005 2006-03-25  Alexander Olk  <alex.olk@googlemail.com>
6006
6007         * ThemeWin32Classic.cs: First small part of the "de-uglify
6008           ThemeWin32Classic" effort, SizeGrip
6009
6010 2006-03-24  Jackson Harper  <jackson@ximian.com>
6011
6012         * XplatUIX11.cs: Give a max idle time of one second, this matches
6013         MS and forces an Idle event every second when there are no other
6014         events in the queue.
6015
6016 2006-03-24  Mike Kestner  <mkestner@novell.com>
6017
6018         * ListView.cs: Handle (Large|Small)ImageList == null more robustly.
6019         * ListView.Item.cs: fix layout issues with null image lists and images
6020         smaller than checkbox size.
6021         * ThemeWin32Classic.cs: Draw a 12 pixel line in ListView LargeIcon
6022         mode like MS does.  It's weird, but consistent.  ;-)
6023         Fixes #77890.
6024
6025 2006-03-24  Mike Kestner  <mkestner@novell.com>
6026
6027         * ListView.cs: Scroll wheel support for the item control.  Fixes
6028         #77839.
6029
6030 2006-03-23  Jackson Harper  <jackson@ximian.com>
6031
6032         * ScrollableControl.cs: Special case negative sized areas, not
6033         zero.
6034         * MonthCalendar.cs: Save the rect of the clicked date so we can
6035         use it for invalidation.
6036         - Try to cut down on the number of invalidates
6037         - Invalidate the rect the mouse is over and was over when moving
6038         the mouse, so we get the focus box following the cursor.
6039
6040 2006-03-23  Mike Kestner  <mkestner@novell.com>
6041
6042         * ThemeWin32Classic.cs: fix FullRowSelect selection background and
6043         focus rectangle drawing. Fixes #77835.
6044
6045 2006-03-23  Mike Kestner  <mkestner@novell.com>
6046
6047         * XplatUIX11.cs: rework the fix for #77828 by changing the order of
6048         the if and else if and reverting back to the original == check on the
6049         None conditional.
6050
6051 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6052
6053         * FontDialog.cs: Update the example panel if the selected index of
6054           the fontListBox changes.
6055
6056 2006-03-23  Alexander Olk  <alex.olk@googlemail.com>
6057
6058         * FileDialog.cs: Make FileDialog remember which directory it was in
6059           last in the same execution.
6060
6061 2006-03-22  Mike Kestner  <mkestner@novell.com>
6062
6063         * FileDialog.cs: make the DropDownMenu on the toolbar display
6064         RadioChecks since they are mutually exclusive and that's what MS does.
6065
6066 2006-03-22  Mike Kestner  <mkestner@novell.com>
6067
6068         * Theme.cs: add Color param to CPDrawMenuGlyph.
6069         * ThemeWin32Classic.cs: do color specific menu glyph rendering so that
6070         checks and radio marks and arrows are visible on highlighted items.
6071         * ControlPaint.cs: update to use new Theme signature.
6072
6073 2006-03-22  Mike Kestner  <mkestner@novell.com>
6074
6075         * MenuAPI.cs: only process Enter and arrow keypresses if the tracker
6076         is active. Fixes #77870.
6077
6078 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6079
6080         * FileDialog.cs: Corrected TabIndex order and set fileNameComboBox
6081           to be focused/selected after startup
6082
6083 2006-03-22  Alexander Olk  <alex.olk@googlemail.com>
6084
6085         * ColorDialog.cs: 
6086           - Corrected behaviour of Color, AllowFullOpen, FullOpen,
6087             CustomColors and ShowHelp properties
6088           - Some internal rewrites to get better results when using the
6089             ColorMatrix
6090
6091 2006-03-22  Mike Kestner  <mkestner@novell.com>
6092
6093         * ListView.cs: hook into Peter's new ResetMouseHover capability to fix
6094         HoverSelection.  Fixes #77836.
6095
6096 2006-03-22  Mike Kestner  <mkestner@novell.com>
6097
6098         * FileDialog.cs: bugfixes for the toolbar.  Use PushButtons instead of
6099         ToggleButtons.  (De)Sensitize the Back button around a stack count of
6100         1, not 0.  Update ButtonSize based on a pixel count of the win32
6101         control.  Adjust the toolbar size/location for new button size.
6102
6103 2006-03-22  Jackson Harper  <jackson@ximian.com>
6104
6105         * XplatUIX11.cs: Don't handle configurenotifys if PostQuitState is
6106         true.
6107         * ScrollBar.cs: When doing increments and decrements we need to
6108         set the Value property so that ValueChanged gets raised. A
6109         possible optimization here would be to make an internal SetValue
6110         that doesn't invalidate immediately.
6111         * ToolTip.cs: Tooltips get added to their container (when
6112         supplied) so they get disposed when the container is disposed.
6113         - Don't create tooltips for String.Empty. This prevents all these
6114         little 2-3 pixel windows from showing up when running nunit-gui
6115         and driving me mad.
6116         * Form.cs: Don't set topmost when setting the owner if the handles
6117         haven't been created yet.  The topmost set will happen when the
6118         handles are created.
6119
6120 2006-03-22  Peter Dennis Bartok  <pbartok@novell.com> 
6121
6122         * XplatUIX11.cs:
6123           - DeriveWindowStyles: Fixed typo in borderstyle generation (#77828)
6124           - SetVisible: Sending WINDOWPOSCHANGED for all controls when made 
6125             visible (to allow them to recalculate their sizes)
6126
6127 2006-03-21  Mike Kestner  <mkestner@novell.com>
6128
6129         * ThemeWin32Classic.cs: major refactoring of the ToolBar rendering
6130         methods. Removed a ton of redundant code.  Still not really happy with
6131         the border rendering, but I think that's mainly because of the
6132         ControlDarkDark being black instead of a dark grey. Depending on how 
6133         close we want to be, we might want to revisit those color choices.
6134         Among the new features added during the refactor were DropDownArrow
6135         pressed rendering, Disabled image rendering.  Proper flat appearance
6136         boundary rendering.  Removed the Divider and Wrapping dividers since I
6137         can't figure out any combination of themes and conditions to make the
6138         MS control draw a horizontal line on a toolbar despite what the
6139         Divider property docs indicate.
6140         * ToolBar.cs: rewrite the layout engine. Fixes numerous flicker
6141         conditions and incorrect layout.  Updated to coding standard.
6142         * ToolBarButton.cs: refactored layout and positioning code from
6143         ToolBar to here.  Invalidate wherever possible instead of forcing
6144         redraws of the whole toolbar. 
6145         (Known remaining issues: explicit ButtonSize smaller than provided
6146         images.)
6147
6148 2006-03-21  Mike Kestner  <mkestner@novell.com>
6149
6150         * ContextMenu.cs (Show): use the position parameter instead of just
6151         showing at the MousePosition.
6152
6153 2006-03-21  Jackson Harper  <jackson@ximian.com>
6154
6155         * TabControl.cs: Remove the call to ProcessKeyEventArgs and let
6156         control handle this.
6157         * TreeNodeCollection.cs: If we are clearing the root node we need
6158         to reset top_node so calcs can still happen.
6159         * ThemeWin32Classic.cs: This is a Flags so we need to check
6160         properly.
6161         
6162 2006-03-21  Jackson Harper  <jackson@ximian.com>
6163
6164         * DataGrid.cs: Create columns when the binding context has been
6165         changed.
6166         * X11Structs.cs: Keysyms are uints.
6167         - Add size to fix build.
6168
6169 2006-03-21  Peter Dennis Bartok  <pbartok@novell.com> 
6170
6171         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6172           XplatUIOSX.cs: 
6173           - Added ResetMouseHover method to allow controls to retrigger
6174             hovering if they need it more than once
6175           - Implemented MouseHoverTime and MouseHoverSize properties
6176         * Timer.cs: Start() must reset the interval
6177         * SystemInformation.cs: Added 2.0 MouseHoverTime and MouseHoverSize
6178           properties
6179
6180 2006-03-21  Jackson Harper  <jackson@ximian.com>
6181
6182         * X11Keyboard.cs: improved layout detection. Move the nonchar
6183         tables into this file.
6184         * KeyboardLayouts.cs: Move the tables into resource files.
6185
6186 2006-03-21  Mike Kestner  <mkestner@novell.com>
6187
6188         * ListView.cs: use OnItemActivated to raise events. Fixes #77834.
6189
6190 2006-03-21  Alexander Olk  <alex.olk@googlemail.com>
6191
6192         * Mime.cs: Various speed optimizations. Looking up mime types
6193           is now 2 times faster than before
6194
6195 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com> 
6196
6197         * CreateParams.cs: Added internal menu field
6198         * Control.cs: 
6199           - Switched call order for UpdateBounds; now we always call
6200             the one that also takes ClientSize, and we're calculating the 
6201             client size via driver method in the others. The previous
6202             method of tracking client size by difference wasn't working
6203             for forms where even the starting client size wouldn't match
6204             the overall form size (due to borders) (Part of fix for #77729)
6205           - CreateParams(): Do not use parent.Handle unless the handle is
6206             already created. Causes havoc with Nexxia and throws off our
6207             creation of controls
6208         * XplatUIX11.cs:
6209           - Created new PerformNCCalc method to trigger WM_NCCALCSIZE message
6210           - Switched handling of ConfigureNotify over to new PerformNCCalc 
6211             method (consolidates code)
6212           - Changed RequestNCRecalc to use new PerformNCCalc method
6213           - Added calls to RequestNCRecalc when menus and borders are changed
6214             to allow app to set NC size. (Part of fix for #77729) This matches
6215             when MS send a WM_NCRECALC on Win32 windows.
6216           - Now sending WM_WINDOWPOSCHANGED when toplevel for is made visible
6217             (Part of fix for #77729). This matches what MS does, they also
6218             send that message when the form is made visible.
6219           - XException.GetMessage: Improved usability of X errors by including
6220             a translation of the window into Hwnd and Control class
6221           - Improved debug info for window creation, reparenting and destruction
6222           - Created helper method WindowIsMapped() [Currently not used]
6223         * XplatUIWin32.cs: Added ToString() debug helper to RECT structure
6224         * Form.cs:
6225           - CreateParams: Now setting our menu on the new internal menu field
6226           - SetClientSizeCore: Now passing cp.menu instead of ActiveMenu to
6227             avoid calculating the same property twice
6228         * Hwnd.cs:
6229           - Improved usability of ToString() for debugging purposes
6230           - GetWindowRectangle(): Now uses proper CalcMenuBarSize method to
6231             determine the height of the menu, instead of just the font. This
6232             required to also create a graphics context and to keep a bmp 
6233             around (for performance reasons)
6234
6235 2006-03-17  Peter Dennis Bartok  <pbartok@novell.com>
6236
6237         * MenuAPI.cs: Added OnMouseUp method
6238         * Form.cs:
6239           - Now remembering the requested client size, avoids size errors
6240           - WndProc: Now handling WM_xBUTTONUP and passing it to MenuTracker
6241             instead of base if the menu is active. This is required due to
6242             control now capturing and releasing on down/up and it would
6243             prematurely release our menu capture
6244
6245 2006-03-17  Jackson Harper  <jackson@ximian.com>
6246
6247         * KeyboardLayouts.cs: Add the czech layouts.
6248
6249 2006-03-16  Jackson Harper  <jackson@ximian.com>
6250
6251         * Control.cs: Use the viewport space when sizing not the controls
6252         client size, so things like ScrollableControl that effect the
6253         viewport size (when scrollbars are added) are computed correctly.
6254         * BindingContext.cs: Cleanup to use the DataSourceEntrys instead
6255         of ManagerEntrys.
6256         - Handle creating BindingManagers for null data sources.
6257         * DataGrid.cs: Bind the cached_currencymgr_events to the real data
6258         source, otherwise when rows are added they are added to the 'fake'
6259         datasource and we will crash when trying to set the position in
6260         those rows.
6261         - Use Implicit scrollbars on the datagrid so they arent
6262         selectable.
6263         
6264 2006-03-16  Jackson Harper  <jackson@ximian.com>
6265
6266         * Binding.cs:
6267         * InternalWindowManager.cs:
6268         * MdiWindowManager.cs:
6269         * X11Keyboard.cs: I really want Mike to love me again (fix
6270         compiler warnings).
6271
6272 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com>
6273
6274         * DataGrid.cs:
6275           - OnMouseDown: Switch to editing mode when clicking on the cell
6276                          even if we're clicking on the cell that's currently 
6277                          selected
6278           - ProcessGridKey: Left/Right now wrap like MS.Net does
6279           - ProcessGridKey: Tab now knows to add a new row when tab is
6280                             pressed in the cell of the last column of the 
6281                             last row
6282           - ProcessGridKey: Enter now adds another row  if pressed in the last
6283                             row and selectes the new row, same column cell
6284           - ProcessGridKey: Home/End navigate columns, not rows, like 
6285                             originally implemented
6286           - Broke ProcessKeyPreview code out into an extra Internal method
6287             so it can be called from the edit code
6288         * DataGridTextBox.cs (ProcessKeyMessage):
6289           - Switched to accept Tab keypresses
6290           - Added F2 handling to allow jumping to the end of the edited cell
6291           - Added logic to allow moving caret left/right inside edited cell
6292             and making the edited cell jump when the caret hits cell borders
6293           - Tab and Enter are now passed to the datagrid after being handled
6294         * TextBoxBase.cs:
6295           - Removed capture code now that Control handles it
6296           - set_SelectionStart now ensures caret is visible
6297
6298 2006-03-16  Jackson Harper  <jackson@ximian.com>
6299
6300         * TrackBar.cs: Debackwards the increment/decrement for handling
6301         mouse clicks on the bar with vertical trackbars.
6302         * ThemeWin32Classic.cs: Draw vertical trackbars with 0 at the
6303         bottom to match MS.
6304
6305 2006-03-16  Mike Kestner  <mkestner@novell.com>
6306
6307         * ListView.cs: make shift/ctrl keyboard and mouse selection 
6308         consistent with the MS control. Fix a bug in
6309         SelectedListViewItemCollection.Clear that was pissing me off for the
6310         better part of a day because the collection was being altered
6311         underneath us as we walked the list.
6312
6313 2006-03-16  Peter Dennis Bartok  <pbartok@novell.com> 
6314
6315         * Control.cs: Not sure how we could miss this so long, but it seems
6316           that MS.Net has Capture set all the way from before calling 
6317           OnMouseDown through sending the mouse events until after
6318           OnMouseUp. This will fix DataGrid's selection being set to end
6319           at the location of the MouseUp.
6320
6321 2006-03-15  Jackson Harper  <jackson@ximian.com>
6322
6323         * BindingContext.cs: Check the binding after its added so that it
6324           can initialize the binding managers and hookup to events.
6325         * Binding.cs: Data members seem to sometimes include rows/cols in
6326           the format Row.Column we now take this into account.
6327           - Hookup to the position changed event so we can update the
6328           control when the position has changed in the data set.
6329         * CurrencyManager.cs: Take into account the row/col naming
6330           convention when creating dataset tables.
6331         * BindingContext.cs: Using a newer better way of storing
6332           datasource/datamember pairs.  Hopefully this better matches MS for
6333           looking up binding managers.
6334
6335
6336 2006-03-15  Jackson Harper  <jackson@ximian.com>
6337
6338         * BindingContext.cs: The currency manager needs the data member
6339         name, if the member is a data set we use the name to find the
6340         correct table.
6341         * CurrencyManager.cs: When creating the list prefer an IList over
6342         an IListSource.
6343         - Attempt to create a DataTable from a DataSet (TODO: might need
6344         some better error checking here, although MS doesn't seem to have much)
6345         - If we have a DataTable create a view and use it as our list.
6346
6347 2006-03-15  Mike Kestner  <mkestner@novell.com>
6348
6349         * ListView.cs: keep a matrix of the icon mode layout to facilitate
6350         keyboard navigation. Support Up/Down/Left/Right selection correctly
6351         for all 4 View modes.
6352         * ListViewItem.cs: add internal row/col fields for icon layouts.
6353
6354 2006-03-15  Jackson Harper  <jackson@ximian.com>
6355
6356         * TabControl.cs: Redraw the tabs when we resize so their newly
6357         calculated sizes are drawn on screen.
6358         * X11Keyboard.cs: Begginnings of XIM support.  We also now support
6359         composite characters.
6360         * XplatUIX11.cs: Keyboard driver needs to know about focus changes
6361         - filter events so that composite characters can be created
6362         patches by peter
6363         * X11Structs.cs: Add XIMProperties enum.
6364
6365 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6366
6367         * Control.cs (BringToFront, SendToBack): Don't use window or handle
6368           unless it's created
6369
6370 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6371
6372         * Control.cs (PerformLayout): We don't need to consider visiblity
6373           for anchoring, only for docking. This fixes 'whacky' alignment
6374           in listbox and other controls that use implicit scrollbars after
6375           the previous PerformLayout patch
6376         * ListBox.cs: Switched to use implicit scrollbars
6377           
6378 2006-03-14  Mike Kestner  <mkestner@novell.com>
6379
6380         * ToolBar.cs: 
6381         * VScrollBar.cs:
6382         - chain up the "new event" overrides to base and use
6383         OnEvent to raise them.  Part of fix for bug #76509.
6384
6385 2006-03-14  Alexander Olk  <alex.olk@googlemail.com>
6386
6387         * FileDialog.cs: Do not select an item in the parent directory
6388           on backspace
6389
6390 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com> 
6391
6392         * Control.cs (PerformLayout): It would seem that we considered
6393           invisible windows for our layout. Not quite the right thing
6394           to do. Now we don't any longer, thereby fixing bug #76889.
6395
6396 2006-03-14  Peter Dennis Bartok  <pbartok@novell.com>
6397
6398         * Control.cs (CanFocus): I goofed. A control can have focus 
6399           even though it's not selectable. Made it match MS docs.
6400
6401 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6402
6403         * ControlPaint.cs (DrawBorder3D): DrawBorder3D does not fill the
6404           center by default (fixes #76895)
6405         * ThemeWin32Classic.cs, ThemeNice.cs, ThemeClearlooks.cs: Replaced 
6406           all uses of Border3DSides.All with the explicit ORd together
6407           Left|Right|Top|Bottom because I assume that nobody was aware 
6408           that All also implies a center fill. Most places I checked had
6409           a fill right above.
6410         * ProgressBarStyle.cs: Added
6411
6412 2006-03-13  Mike Kestner  <mkestner@novell.com>
6413
6414         * ListView.cs: fix breakage in drag shadow header positioning 
6415         from Peter's csc compilation fix.
6416
6417 2006-03-13  Mike Kestner  <mkestner@novell.com>
6418
6419         * ListView.cs: fix NRE produced by backspacing twice in a focused
6420         FileDialog.
6421
6422 2006-03-13  Mike Kestner  <mkestner@novell.com>
6423
6424         * ListView.cs: proxy Key(Down|Up) from ItemControl to ListView.
6425
6426 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6427
6428         * Hwnd.cs: Added fixed_size field to track windows whose size cannot
6429           be changed
6430         * XplatUIX11.cs: Now setting fixed_size on hwnd and if set, re-setting
6431           the allowed size before making programmatic size changes
6432
6433 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com> 
6434
6435         * XplatUIX11.cs: Don't call XSetWMNormalHints if no flags are 
6436           set, metacity is broken and will still use the emty sizes in 
6437           the struct. (Fix for #77089)
6438
6439 2006-03-13  Peter Dennis Bartok  <pbartok@novell.com>
6440
6441         * XplatUIStructs.cs: Split WindowStyles into WindowStyles and 
6442           WindowExStyles and marked both enums as Flags
6443         * Form.cs, ComboBox.cs, ToolTip.cs, Control.cs, PropertyGridView.cs,
6444           NotifyIcon.cs, MenuAPI.cs, XplatUIOSX.cs, MonthCalendar.cs: Updated
6445           to match WindowStyles split
6446         * XplatUIX11.cs:
6447           - SetWMStyles: Added cehck to not apply WM attributes to Child windows
6448           - Updated to match WindowStyles split
6449         * XplatUIWin32.cs:
6450           - Fixed FosterParent creation, was using ExStyle on the Style field
6451             (This should help with Popup focus issues)
6452           - Updated to match WindowStyles split
6453
6454 2006-03-13  Jackson Harper  <jackson@ximian.com>
6455
6456         * MdiWindowManager.cs: Use the system menu height. Fixes some
6457         strange sizing issues.
6458
6459 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6460
6461         * RichTextBox.cs: Need to scroll to caret after text is inserted (#77672)
6462         * TextBoxBase.cs:
6463           - Scroll to caret after inserting text (#77672)
6464           - Make scroll range one pixel higher, fixes off-by-one error (and
6465             makes underlines visible on the last line)
6466
6467 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com> 
6468
6469         * XplatUIX11.cs: Added call to new Keyboard.ResetKeyState to prevent
6470           the keyboard state from being stuck with keys in 'pressed' state when
6471           focus is switched away via keyboard
6472         * X11Keyboard.cs: Added new ResetKeyState method to allow drivers to
6473           reset the keyboard if no X11 KeyUp events are expected to come
6474         * X11Structs.cs: Switched type of Visible to bool to match driver
6475
6476 2006-03-12  Peter Dennis Bartok  <pbartok@novell.com>
6477
6478         * TextControl.cs:
6479           - Switched caret to be just 1 pixel wide, matches MS and looks less
6480             clunky
6481           - Moved caret display 1 pixel down from the top of the control
6482             to improve view
6483           - InsertCharAtCharet: Update the selection start if moving the caret
6484             (fixes bug #77696; based on patch suggested by kazuki@panicode.com)
6485           - No longer always creating the caret when the caret methods are
6486             called. Only the actual ShowCaret/HideCaret will do that now
6487           - Only setting caret visible if the owner control has focus
6488           - UpdateView: Added invalidation-shortcut logic for center and right 
6489             aligned text. Previously we'd update all according to the left
6490             logic which caused drawing errors. Also fixed height of invalidated
6491             areas, now properly invalidating the whole area (was off-by-one)
6492           - owner_HandleCreated: Always generate the document when the
6493             handle is created; this ensures that 
6494         * TextBoxBase.cs:
6495           - Fixed situation where caret would disappear under the right
6496             window border, also improved scrolling behaviour on left-
6497             aligned textboxes
6498           - Fixed right-aligned textboxes to have a border to the
6499             right instead of the caret being under the right border
6500         * XplatUIX11.cs:
6501           - Switched from 'nested' to simple visible/not visible tracking 
6502             for caret (part of fix for #77671)
6503           - No longer passing through translated FocusIn/FocusOut messages
6504             since we were notifying too often and the wrong windows. Instead
6505             we just notify our focussed window of receiving or loosing focus
6506         * XplatUIWin32.cs: Switched from 'nested' show/hide 
6507           counting for caret to simple visible yes/no behaviour (part of 
6508           fix for #77671)
6509
6510 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6511
6512         * Mime.cs: Remove debug code...
6513
6514 2006-03-11  Alexander Olk  <alex.olk@googlemail.com>
6515
6516         * MimeGenerated.cs: Removed
6517         * Mime.cs: Mime now reads the mime data (magic, globs, aliases
6518           and subclasses) from /usr/(local/)share/mime and
6519           $HOME/.local/share/mime.
6520
6521 2006-03-10  Jackson Harper  <jackson@ximian.com>
6522
6523         * MdiWindowManager.cs: Recalc the NC area when a window is
6524         maximized/restored so that the menu area is drawn on forms that
6525         don't have a menu.
6526
6527 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6528
6529         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
6530           XplatUIX11.cs: Added RequestNCRecalc method to driver to allow
6531           us to force a WM_NCCALCRESIZE message being sent. This is needed
6532           for MDI maximizing.
6533
6534 2006-03-10  Jackson Harper  <jackson@ximian.com>
6535
6536         * Form.cs: We need to use the ActiveMenu when calculating menu
6537         height.
6538         - Fix nullref when the window manager hasn't been created yet.
6539         * Control.cs: Fix nullref when we try to bring a control to the
6540         front that has no parent.
6541         * MdiWindowManager.cs: Use the MaximizedMenu for calculating
6542         height.
6543         - Add a dummy item to the maximized menu so it always has the
6544         correct height. Otherwise when there are no menus we don't get our
6545         icon and buttons.
6546         
6547
6548 2006-03-10  Jackson Harper  <jackson@ximian.com>
6549
6550         * MenuAPI.cs: Make this available elsewhere. I need it in some MDI
6551         stuff.
6552         * Form.cs: Make the window_state internal so the window managers
6553         can track it.
6554         - When an MDI child is maximized let its window manager create the
6555         main menu (so it can add its icon).
6556         - Notify the window managers of state changes
6557         - Let the window manager paint its buttons and handle button
6558         clicks on the menu when it is maximized.
6559         * InternalWindowManager.cs: Move the prev_bounds into the mdi
6560         window manager, since tool windows don't use it, only mdi windows.
6561         - Tell the main form that we don't want it to handle NCPAINT
6562         itself to avoid extra painting.
6563         - Handle clicks on a maximized windows menu.
6564         - Handle window state changes
6565         - Handle minimize/maximize clicks correctly by setting the window state.
6566         * MdiWindowManager.cs: Add an icon menu that (the menu you get
6567         when clicking on the forms icon).
6568         - New method to create a forms maximized menu. This is its normal
6569         menu + an icon.
6570         - Handle window state changes.
6571         - Handle sizing of maximized windows.  Maximized windows are just
6572         drawn bigger then the parent visible area. All controls are still
6573         there, they are just outside the visible area (this matches windows).
6574         * MdiClient.cs: No scrollbars when a child window is maximized.
6575         - Let the children windows figure out how big they should be when
6576         sizing maximized windows.
6577         - Implement a version of ArrangeIconicWindows somewhat similar to
6578         Windows version.  There are some little differences, but I don't
6579         think any app will rely on the layout of minimized mdi windows.
6580
6581 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6582
6583         * Padding.cs: Several fixes to allow compiling with csc 2.0
6584
6585 2006-03-09  Jackson Harper  <jackson@ximian.com>
6586
6587         * Menu.cs:
6588         * MenuItem.cs: Cheap hack so we can add items to the list without
6589         the events being raised.  This allows adding mdi items during
6590         drawing. TODO: Should probably find a better time to add the items.
6591
6592 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6593
6594         * ThemeWin32Classic.cs:
6595           - CheckBox_DrawText: Added logic to not wrap if not enough space
6596             is available (Fix for bug #77727)
6597           - RadioButton_DrawText: Added logic not to wrap if not enough
6598             space is available (Fix for bug #77727). Also removed some
6599             duplicate code, DrawString always drawing the regular text
6600             before hitting the if statement.
6601
6602 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com> 
6603
6604         * XplatUIX11.cs: Handle an unmapped window state in SetWindowState
6605
6606 2006-03-10  Peter Dennis Bartok  <pbartok@novell.com>
6607
6608         * PictureBox.cs: Implemented ISupportInitialize interface (fixes #77726)
6609         * ContainerControl.cs: Partial implementation of some 2.0 scaling
6610           methods. Moved the new 2.0 properties into alphabetical order with
6611           other properties and added MonoTODO tags
6612
6613 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6614
6615         * AutoScaleMode.cs: Added. Fix build.
6616
6617 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6618
6619         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs, 
6620           XplatUIOSX.cs: Removed HWnd argument from CalcuateClientRect, not used
6621           and was requiring premature handle creation for calls from above
6622         * Form.cs, Control.cs: Removed handle arguments from calls to
6623           CalculateClientRect()
6624
6625 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6626
6627         * ListView.cs (HeaderMouseMove): Fix csc compilation. 
6628           drag_column.column_rect is MarshalByRef and can't be used that way
6629
6630 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6631
6632         * AxHost.cs: Added deserialization constructor for 
6633           AxHost+State (fixes 77743)
6634
6635 2006-03-09  Mike Kestner  <mkestner@novell.com>
6636
6637         * ListView.cs: 
6638         - Added column drag reordering for details view.
6639         - fixed behavior when mouse is dragged off column and
6640         AllowColumnReorder is false.
6641         * ColumnHeader.cs: clone the format too in Clone.
6642         * Theme.cs: add DrawListViewHeaderDragDetails method.
6643         * ThemeWin32Classic.cs:
6644         - impl new method for drawing drag column shadows and targets.
6645         - support column offset for details mode in DrawListViewItem.
6646
6647 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6648
6649         * TextControl.cs: Reset the char_count when the document is cleared
6650           (Fixes bug reported on mono-winforms mailing list)
6651
6652 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com> 
6653
6654         * TextBoxBase.cs: Honor the Handled state of KeyPress events. Instead
6655           of calling base we simply process the key ourselves, since both
6656           DefWindowProc and the handled method would set m.Result. 
6657           (Fixes #77732)
6658
6659 2006-03-09  Peter Dennis Bartok  <pbartok@novell.com>
6660
6661         * Form.cs(ScaleCore): No longer calling base.ScaleCore since that
6662           method also moves the window; instead implemented a copy of
6663           Control.ScaleCore (Part of fix for #77456)
6664         * TextBoxBase.cs: 
6665           - Created new CreateGraphicsInternal method to allow providing
6666             a graphics context when no handle is created without triggering
6667             handle creation. (Part of fix for #77456)
6668           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6669         * TextControl.cs: 
6670           - Switched Constructor to require TextBoxBase instead of Control (to
6671             allow uncast access to CreateGraphicsInternal)
6672           - Safeguarded use of owner.Handle property. No longer accessing it
6673             unless the handle is already created.
6674           - Replaced use of Control.CreateGraphics with CreateGraphicsInternal
6675           - Now triggering a recalc when owning control becomes visible
6676         * TextBox.cs, RichTextBox.cs: Switched to use new internal 
6677           TextBoxBase.CreateGraphicsInternal() method to avoid triggering
6678           premature handle creation (Part of fix for #77456)
6679         * Control.cs:
6680           - We now only destroy our double-buffering buffers when the
6681             control is resized or disposed, but not when visibility
6682             changes. (The code even re-created them twice every time)
6683           - Now requiring a redraw of the buffer on visibility changes
6684             (fixes bug 77654 part 2)
6685           - Not passing OnParentVisibleChanged up unless the control
6686             is visible
6687           - CanFocus: Fixed to match MS documentation
6688           - Focus: Fixed to return actual focus state and to check if
6689             setting focus is legal before setting it
6690
6691 2006-03-08  Peter Dennis Bartok  <pbartok@novell.com>
6692
6693         * ThemeWin32Classic.cs: TabPages cannot have focus. Determine
6694           when to draw focus rectangle by looking at parent focus and
6695           selected state instead. This fixes TabPages on Linux sometimes
6696           having none or multiple focus rectangles.
6697         * XplatUIX11.cs (SetFocus): 
6698           - Don't set the focus if the same window already has focus
6699           - Use SendMessage instead of PostMessage (like it's Win32
6700             equivalent) and send the WM_SETFOCUS before the WM_KILLFOCUS
6701             to match MS behaviour
6702         * TabControl.cs(SelectedIndex): Don't set Focus on TabPage, TabPages
6703           are not selectable.
6704
6705 2006-03-07  Jackson Harper  <jackson@ximian.com>
6706
6707         * PictureBox.cs: Revert line I accidently committed last week.
6708
6709 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
6710
6711         * Control.cs: 
6712           - Added new IsRecreating and ParentIsRecreating properties to
6713             allow testing if RecreateHandle has been called on ourselves
6714             or one of our parents
6715           - WndProc(WM_DESTROY): If our control handle is being recreated
6716             we immediately need to create the handle when receiving the
6717             destroy, that way our child windows find a valid parent handle
6718             when they themselves are being recreated upon WM_DESTROY receipt
6719             (fix for bug #77654 part 1)
6720         * XplatUIX11.cs:
6721           - DestroyWindow: WM_DESTROY must be sent to our own window before
6722             notifying any child windows. MS documents that child windows
6723             are still valid when WM_DESTROY is received. (Control now relies on
6724             this behaviour)
6725           - Added some fine-grain debug options
6726
6727 2006-03-06  Jackson Harper  <jackson@ximian.com>
6728
6729         * MdiClient.cs: Redid scrolling logic a bit to create a virtual
6730         box and base calculations off this.
6731         * MdiChildContext.cs:
6732         * MdiWindowManager.cs: Don't need to ensure scrollbars here
6733         anymore.
6734         
6735 2006-03-06  Peter Dennis Bartok  <pbartok@novell.com>
6736
6737         * Splitter.cs: In situations where the affected control is added
6738           to the parent's control list after the splitter, we would not
6739           populate affected. Now we try populating it on mousedown, if
6740           it's not already set, and force it to be re-set whenever our
6741           parent changes.
6742
6743 2006-03-03  Matt Hargett  <matt@use.net>
6744
6745         * Control.cs: implement Control.Padding
6746         * Padding.cs: -Padding.All returns -1 when constructing with the
6747         implicit default ctor
6748         -Padding.ToString() matches MS.NET
6749         * ContainerControl.cs: implement
6750         ContainerControl.AutoScaleDimensions
6751         * ListControl.cs: implement ListControl.FormattingEnabled
6752         * TextBox.cs: Implemented TextBox.UseSystemPasswordChar.
6753         * ButtonBase.cs:
6754         * TabPage.cs: Implement UseVisualStyleBackColor.
6755         * PictureBox.cs: Implement PictureBox.InitialImage.
6756
6757 2006-03-03  Mike Kestner  <mkestner@novell.com>
6758
6759         * ListView.cs: Refactor into HeaderControl and ItemControl. Fix new
6760         event declarations to proxy to base event.
6761         * ListViewItem.cs: update to use ItemControl.
6762         * Theme.cs: make DrawListViewHeader. s/DrawListView/DrawListViewItems.
6763         * ThemeWin32Classic.cs: update to new ListView theme API and fix
6764         column header label rendering for 0 width columns.
6765
6766 2006-03-03  Peter Dennis Bartok  <pbartok@novell.com>
6767
6768         * Control.cs (ControlCollection.SetChildIndex): Avoid using a call
6769           that causes the control to be created. Fixes #77476.
6770
6771 2006-03-02  Jackson Harper  <jackson@ximian.com>
6772
6773         * Hwnd.cs: Clear the nc pending when clearing the NC area, not the
6774         expose_pending.
6775
6776 2006-03-02  Peter Dennis Bartok  <pbartok@novell.com>
6777
6778         * Control.cs: Implemented 2.0 feature where OnClick has MouseEventArgs
6779           passed in for the EventArgs (fixes #77690)
6780
6781 2006-03-01  Jackson Harper  <jackson@ximian.com>
6782
6783         * ScrollBar.cs: Refresh afterbeing resized.
6784
6785 2006-02-28  Mike Kestner  <mkestner@novell.com>
6786
6787         * MenuAPI.cs: Call PerformPopup internal method to emit Popup.
6788         Clean up a tracker compile warning.
6789         * MenuItem.cs: add internal PerformPopup method.
6790         [Fixes #77457]
6791
6792 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6793
6794         * TextBoxBase.cs (set_Text): Recalculate the document (causing an
6795           implicit expose) when the text is set to null
6796
6797 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com>
6798
6799         * RichTextBox.cs (FlushText): When newline is true, we always
6800           need to split the line, even if no text is on it and we may
6801           never eat newlines. (Fixes #77669)
6802
6803 2006-02-28  Mike Kestner  <mkestner@novell.com>
6804
6805         * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
6806         and set Selected instead.
6807         * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
6808         collections.
6809
6810 2006-02-28  Peter Dennis Bartok  <pbartok@novell.com> 
6811
6812         * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665
6813
6814 2006-02-28  Alexander Olk  <alex.olk@googlemail.com>
6815
6816         * FontDialog.cs:
6817           - Got rid of the panel. All controls are now directly added to
6818             the dialog form
6819           - It is now possible to set a font with the Font property
6820           - MinSize and MaxSize property do now what they should
6821           - ShowApply, ShowHelp, ShowColor, ShowEffects likewise
6822           - Searching and selecting a font with the font textbox works now,
6823             the same applies to the style and size textbox
6824           - Draw the correct 3D border in the example panel
6825           - Fixed a little mem leak (unused fonts didn't get disposed)
6826           - Many other internal updates/rewrites...
6827           - Fix typo
6828
6829 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6830
6831         * TextControl.cs: 
6832           - InsertRTFFromStream: Added 'number of characters inserted' argument
6833           - set_SelectedRTF: Now using the number of characters to calculate
6834             the new location for the selection and cursor (x/y cannot be used
6835             due to potentially already wrapped text)
6836
6837 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com>
6838
6839         * TextControl.cs: Added property and implemented means to allow 
6840           disabling recalculation of a document (can be used to speed up
6841           multiple inserts and is needed to make RTF inserts predictable, see
6842           bug #77659)
6843         * RichTextBox.cs: Using the new NoRecalc property of Document to
6844           keep x/y insert locations predictable. Also makes it faster inserting
6845           large chunks of RTF
6846
6847 2006-02-27  Peter Dennis Bartok  <pbartok@novell.com> 
6848
6849         * Control.cs: Separated special WM_SYSKEYUP keyboard handling. That way
6850           it's easier for a child control to handle the other messages without
6851           having to duplicate the special functionality
6852         * TextBoxBase.cs
6853           - WndProc: Removed calling base handler for WM_KEYDOWN and added 
6854             code to handle processing the key ourselves, in order to get 
6855             access to the result of KeyEventArgs.Handled. We now only call 
6856             ProcessKey if they key hasn't been handled already. Fixes #77526.
6857           - set_Text: If null or empty string is given, just clear the 
6858             document. Fixes part of #77526
6859
6860 2006-02-27  Jackson Harper  <jackson@ximian.com>
6861
6862         * SizeGrip.cs: Paint the background color before painting the grip
6863         so things look right.
6864         * MdiClient.cs: Add the sizegrip when both scrollbars are used.
6865
6866 2006-02-27  Mike Kestner  <mkestner@novell.com>
6867
6868         * ListView.cs:
6869           - Restructure layout and invalidation model to remove a ton of
6870           flicker from the control and speed up performance in general.
6871           - Add manual column resize, flickers like crazy, but I already have
6872           some ideas on how I'll fix that. (#76822)
6873           - Merge the three Icon-based views into a single layout method.
6874           - Move item selection interaction logic from the item since 
6875           interaction with the collections is more appropriate to the view.
6876           - Deselection on non-item clicks.
6877         * ListViewItem.cs:
6878           - Encapsulate most of the layout. Add some internal props to trigger
6879           layout.  Move to a model where Items invalidate themselves instead
6880           of just invalidating the whole control every time something changes.
6881           - Invalidate on Text/Caption changes.
6882           - switch to an offset based layout model to avoid having to absolute
6883           position every element on item moves.
6884           - correct checkbox layout to conform to MS layout.
6885         * ThemeWin32Classic.cs:
6886           - refactor some column header drawing code.
6887           - fix string justification for column headers (#76821)
6888           - make SmallIcon labels top justified for compat with MS impl.
6889         * ThemeClearlooks.cs:
6890           - adjust to new ListViewItem internal checkbox bounds api.
6891
6892 2006-02-27  Jackson Harper  <jackson@ximian.com>
6893
6894         * Control.cs:  Change where implicit controls fall in the zorder.
6895         They are now on top of all children.
6896         - Synced AddImplicit code with Add
6897         - Removed unused enumerator.
6898         * SizeGrip.cs: Remove the TODO as its been TODONE.
6899
6900 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com> 
6901
6902         * TextControl.cs(Insert): Combine the last lines unless the insertion
6903           string ends with \n\n, otherwise we leave one line too many (Fixes
6904           something I noticed with the testapp for #77526; the bug itself was
6905           already fixed in the previous checkin)
6906
6907 2006-02-26  Peter Dennis Bartok  <pbartok@novell.com>
6908
6909         * RichTextBox.cs:
6910           - SelectionColor and SelectionFont methods no longer set absolute
6911             styles. Instead, the keep font or color respectively (This 
6912             resolves a long-standing FIXME in the code)
6913           - When flushing RTF text, the insert code now considers text trailing
6914             behind the insertion point (Fixes the bug where when replacing
6915             the selected text via SelectedRTF the remainder of the line behind 
6916             the selection would stay on the first insertion line)
6917         * TextBoxBase.cs:
6918           - AppendText now updates the selection points after inserting text
6919           - AppendText now ensures that the last tag (sometimes 0-length) of
6920             the document is used for the style information (Fixes part of 
6921             bug #77220)
6922         * TextControl.cs:
6923           - Created new FontDefiniton class to allow describing partial style
6924             changes
6925           - StreamLine() now takes a lines argument, to allow it to decide
6926             whether an encountered zero-length tag is the last in the document
6927             (which must be kept to not loose the font/color contained in it,
6928             for later appends)
6929           - Created Combine() and Split() methods for Marker structs, to 
6930             support marker updates due to reformatted documents (soft line
6931             wraps)
6932           - Implemented Document.CaretTag setter
6933           - Fixed MoveCaret(CtrlEnd) handling, now moves to the last character
6934             of the last line (Not the cause, but also exposed by bug #77220)
6935           - Added LineTag argument to InsertString method, to allow callers
6936             to force a certain tag to be used (required to force use of the
6937             trailing zero-length tag of a document)
6938           - Now updating markers in Combine(), to avoid stale tag markers
6939           - Added some method descriptions to aid maintenance
6940           - Implemented new FormatText concept, allowing additive/subtractive
6941             formatting by only specifying the components that are to be 
6942             changed. This was needed for resolving the RTB.SelectedColor/
6943             RTB.SelectedFont fixmes
6944           - Added Break() support method to allow breaking up linetags (used
6945             for partial formatting)
6946           - Added GenerateTextFormat() method. It is used for partial 
6947             formatting and allows to generate a full font/color from given
6948             attributes and an existing tag.
6949
6950 2006-02-26  Jackson Harper  <jackson@ximian.com>
6951
6952         * XplatUIX11.cs:  Use the correct caption height.
6953         - Translate hittest coordinates to screen coords to match MS.
6954         * XplatUIWin32.cs: When we create MDI windows we need to reset
6955         some of the style flags, so we get a nice blank window, and can
6956         draw all the decorations ourselves.
6957         - Set a clipping rectangle on the non client paint event, the
6958         window manager drawing code needs one.
6959         * Form.cs: The window manager needs to know when the window state
6960         has been updated.
6961         * Hwnd.cs: The window manager stuff now does a proper NCCALC so we
6962         don't need to factor in border and title sizes in these
6963         methods. TODO: Remove the args and fix the call points.
6964         * InternalWindowManager.cs: Handle NCHITTEST and NCCALCAREA
6965         properly.
6966         - Let the driver set the cursors.
6967         - Improve active window handling
6968         - Correct sizes for title bars and buttons.
6969         - Match MS drawing better
6970         * MdiWindowManager.cs: We don't need to handle border style
6971         updates specially anymore.
6972         - Check for scrollbars when windows are done moving
6973         - Handle Active properly.
6974         * MimeIcon.cs: Don't crash when we can't load the GNOME stuff
6975         correctly. I am spewing the exception though, so we don't hide the
6976         bugs.
6977         
6978 2006-02-26  Pedro Martinez Julia  <pedromj@gmail.com>
6979
6980         * DataGridViewRowPostPaintEventArgs.cs,
6981           DataGridViewCellPaintingEventArgs.cs,
6982           DataGridViewRowCollection.cs,
6983           DataGridViewRowPrePaintEventArgs.cs,
6984           DataGridViewCell.cs: Clear a few warnings and implement a few
6985           exceptions that should be thrown.
6986
6987 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6988
6989         * ScrollBar.cs (ctor): Explicitly set a cursor to avoid
6990           'inheriting' our parent's (non-default) cursor. (Part of
6991            the fix for #77479)
6992
6993 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com> 
6994
6995         * XplatUIX11.cs: Fixed cast to make csc happy
6996
6997 2006-02-22  Peter Dennis Bartok  <pbartok@novell.com>
6998
6999         * Control.cs (WndProc): Only handle WM_SETCURSOR messages if
7000           it's for the client area (part of fix for #77479 and needed
7001           for MDI window cursor handling)
7002         * XplatUIX11.cs
7003           - DefWindowProc: Now handles the WM_SETCURSOR messages, setting
7004             the appropriate default cursors and also passing the message
7005             up the parent chain 
7006           - GetMessage: Now generating WM_NCHITTEST and WM_SETCURSOR even
7007             for non-client areas
7008
7009 2006-02-15  Jackson Harper  <jackson@ximian.com>
7010
7011         * XplatUIWin32.cs: Since we fake MDI dont tell Windows that this
7012         is a real MDI window
7013
7014 2006-02-14  Alexander Olk  <alex.olk@googlemail.com>
7015
7016         * X11DesktopColors.cs: Instead of checking the desktop session
7017           string for "KDE" check if it starts with "KDE"
7018
7019 2006-02-10  Jackson Harper  <jackson@ximian.com>
7020
7021         * XplatUIX11.cs: These should be unsigned (fixes crash on 32 bit
7022         systems).
7023
7024 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7025
7026         * FileDialog.cs: Added Refresh to RunDialog to fix some drawing
7027           errors
7028         * ColorDialog.cs:
7029           - Got rid of the panel. All controls are now directly added to
7030             the dialog form
7031           - Changed to mono coding style
7032
7033 2006-02-10  Jackson Harper  <jackson@ximian.com>
7034
7035         * InternalWindowManager.cs: We don't need the set visibility to
7036         false hack anymore now that peter has written beautiful shutdown
7037         code.
7038
7039 2006-02-10  Peter Dennis Bartok  <pbartok@novell.com>
7040
7041         * XplatUIX11.cs: Ignore DestroyNotify messages for windows that
7042           where already explicitly destroyed
7043
7044 2006-02-10  Jackson Harper  <jackson@ximian.com>
7045
7046         * MdiClient.cs: Handle the case where windows are too high or to
7047         the left and we need scrollbars.
7048
7049 2006-02-10  Alexander Olk  <alex.olk@googlemail.com>
7050
7051         * MimeIcon.cs: Added some icons
7052         * FileDialog.cs:
7053           - Fixed bug #77477
7054           - Got rid of the panel. All controls are now directly added to
7055             the dialog form
7056           - Changed to mono coding style
7057           - On Linux "My Computer" and "My Network" will now show some
7058             more usefull information. A new class, MasterMount, gathers
7059             this information from /proc/mount. Updated MWFFileView to make
7060             use of this information
7061           - Fixed a bug that caused FileDialog to crash when
7062             ".recently_used" file had a zero size
7063           - FilterIndex does now what it should
7064           - Some Refactoring
7065         * OpenFileDialog.cs, SaveFileDialog.cs: Updated to reflect latest
7066             FileDialog changes
7067
7068 2006-02-09  Jackson Harper  <jackson@ximian.com>
7069
7070         * ComboBox.cs: Don't touch if null.
7071
7072 2006-02-09  Peter Dennis Bartok  <pbartok@novell.com>
7073
7074         * Cursor.cs: 64bit safeness fix
7075         * XplatUIX11.cs: Removed several unneeded and one moronic cast.
7076
7077 2006-02-09  Jackson Harper  <jackson@ximian.com>
7078
7079         * Form.cs: If a form is made into an MDI form update the styles so
7080         all the props can get set correctly.
7081         - Kill the mdi_container when we dont need it anymore.
7082         * InternalWindowManager.cs: Add missing NOT
7083
7084 2006-02-08  Jackson Harper  <jackson@ximian.com>
7085
7086         * InternalWindowManager.cs: Respek clipping when drawing MDi
7087         decorations.
7088
7089 2006-02-08  Jackson Harper  <jackson@ximian.com>
7090
7091         * Hwnd.cs: Add bits to track non client expose events.
7092         * XplatUIX11.cs: Track non client expose events on the hwnd. This
7093         gives us a proper invalid rect and will allow for some nice
7094         optimizations with NC client drawing
7095         - MDI windows are children windows, so move their style handling
7096         into the child window block.
7097         * InternalWindowManager.cs: Remove a state reset that was
7098         getting invoked at the wrong time. Fixes managed windows getting
7099         into a 'stuck' captured state.
7100
7101 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7102
7103         * TextControl.cs (Document.ctor): Now initializing 
7104           selection_anchor. Fixes #77493
7105
7106 2006-02-07  Jackson Harper  <jackson@ximian.com>
7107
7108         * TrackBar.cs: The increment/decrements were backwards.
7109
7110 2006-02-07  Mike Kestner  <mkestner@novell.com>
7111
7112         * Theme*.cs : remove ThemeEngine.Current usage as it just points back
7113         to the instance itself.
7114
7115 2006-02-07  Peter Dennis Bartok  <pbartok@novell.com>
7116
7117         * X11DesktopColors.cs, ThemeGtk.cs: The GObject structure is based
7118           on ulongs and pointers, the size differs between 32bit and 64bit
7119           systems. 
7120
7121 2006-02-07  Mike Kestner  <mkestner@novell.com>
7122
7123         * XplatUIX11.cs : force the WorkingArea away from XGetWindowProperty
7124         for 64 bit platforms to work around a metacity bug. 
7125
7126 2006-02-07  Jackson Harper  <jackson@ximian.com>
7127
7128         * TrackBar.cs: Process the input keys we need, and hookup to
7129         KeyDown instead of using WndProc, so we get key messages.
7130
7131 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com>
7132
7133         * XplatUIX11.cs: Atoms are only 32bit on the wire, no matter what
7134           machine we're on. 
7135         * X11Dnd.cs(SetAllowDrop): Since atoms are always 32bit on the wire
7136           we need to translate the XdndVersion atoms array before sending it
7137
7138 2006-02-06  Peter Dennis Bartok  <pbartok@novell.com> 
7139
7140         * XplatUIX11.cs: 
7141           - The preceeding 64bit fixes had a bug: ChangeProperty expects the
7142             number of bits for the property, not the number of bytes. The
7143             change to provide IntPtr.Size broke 32bit. (64bit was also wrong
7144             but would not crash since it specified 8 bits instead of 4 bits)
7145           - More 64bit fixes: Switched all atoms from int to IntPtr (they are
7146             defined as XID -> long in the C headers)
7147           - Removed 'new IntPtr((int))' and '(IntPtr)' casts from all NetAtoms 
7148             references since those are now IntPtr to begin with
7149           - Switched all Atom.XXX 'int' casts to IntPtr casts
7150           - Fixed XGrabPointer DllImport signature to work for 64bit (cursor arg)
7151           - Fixed XInternAtom signature for 64bit, now returns an IntPtr
7152           - Added XChangeActivePointerGrab DllImport (for X11DnD)
7153         * X11Structs.cs:
7154           - Changed 'int' type for Atoms in XEvent structures to IntPtr
7155           - Changed atom in HoverStruct to be IntPtr
7156         * X11DnD.cs:
7157           - Removed local DllImports, switched code to use those from XplatUIX11
7158           - Removed/fixed casts related to the switch of Atom to be a IntPtr
7159
7160 2006-02-06  Mike Kestner  <mkestner@novell.com>
7161
7162         * XplatUIX11.cs : many more 64 bit pinvoke changes.  I've audited all the 
7163         method signatures in the import region.  There may still be some
7164         lingering struct marshaling issues, as I didn't drill down into those.
7165         Yet.
7166
7167 2006-02-06  Jackson Harper  <jackson@ximian.com>
7168
7169         * ComboBox.cs: Dont manually set the top_item, this is computed
7170         when the scrollbar position is set.
7171
7172 2006-02-06  Mike Kestner  <mkestner@novell.com>
7173
7174         * XplatUIX11.cs : 64 bit changes to XGetWindowProperty usage. Fixes
7175         startup crashes on amd64.  There's other fixes needed.  All pinvoke
7176         usage of Atom needs to be mapped to IntPtr for example.  And there are
7177         likely other int/long issues to be addressed.
7178
7179 2006-02-04  Alexander Olk  <alex.olk@googlemail.com>
7180
7181         * FileDialog.cs: One more...
7182
7183 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7184
7185         * FileDialog.cs: Next try
7186
7187 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7188
7189         * FileDialog.cs: First part of fix for #77464
7190
7191 2006-02-03  Alexander Olk  <alex.olk@googlemail.com>
7192
7193         * ButtonBase.cs, ContainerControl.cs, Forms.cs,
7194           ThemeWin32Classic.cs: Fix for #77458. Correct handling of
7195           AcceptButton border drawing.
7196
7197 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com> 
7198
7199         * Form.cs: Moved positioning of form after auto scaling is applied,
7200           otherwise it would possibly use wrong form size.
7201
7202 2006-02-03  Peter Dennis Bartok  <pbartok@novell.com>
7203
7204         * Control.cs (RecreateHandle): No need to re-create any child
7205           controls, the child windows will get destroyed automatically by
7206           the windowing system or driver, and re-created when the handle
7207           is being accessed the first time. Fixes #77456
7208         * Form.cs: No longer setting the form to closing if the handle is 
7209           being recreated. This seems like the right thing to do, don't
7210           have a bug or testcase for this, though.
7211
7212 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
7213
7214         * FileDialog.cs: Suspend/Resume layouting when changing sizes of
7215           controls to avoid unwanted side effects
7216
7217 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com> 
7218
7219         * Control.cs: 
7220           - ScaleCore needs to scale the bounds, not the ClientSize of the 
7221             control. Fixes #77416.
7222           - DefaultSize is 0,0 for control
7223         * TextBoxBase.cs: 
7224           - DefaultSize is 100, 20
7225           - SetBoundsCore: Now enforcing the height, no matter if the provided
7226             height is more or less than the preferred one, as long as AutoSize
7227             is on
7228         * Form.cs: Apply documented fudge factor. Part of item 3 fix for #77416
7229
7230 2006-02-02  Peter Dennis Bartok  <pbartok@novell.com>
7231
7232         * Control.cs:
7233           - ResumeLayout: Fixed logic when to call PerformLayout, we may not
7234             call unless both performLayout is true *and* we have a pending
7235             layout change
7236           - ResumeLayout: MS does not completely nest Suspend and Resume,
7237             they bottom out at 0, fixed our code to match that.
7238           - UpdateBounds/SetBoundsCore: Moved calling of UpdateDistances() to
7239             SetBoundsCore, we were updating even when we shouldn't. This fixes
7240             swf-anchors mis-anchoring when resizing the app fast and lots.
7241           - UpdateDistances: Now only setting the left and top distance if 
7242             we have a parent and are not suspended, this is based on
7243             a suggestion by Don Edvaldson in bug #77355.
7244           - OnVisibleChanged: Fixed logic when to create the control. We may
7245             not create the control if we have no parent or if it's not visible;
7246             switched to using Visible property instead of is_visible field 
7247             since the property also considers parent states. This fixes a bug
7248             when starting Paint.Net
7249
7250 2006-02-02  Jackson Harper  <jackson@ximian.com>
7251
7252         * Form.cs: If the forms handle hasn't been created yet don't call
7253         into xplatui to make it top most, just set the topmost flag on the
7254         form in CreateParams
7255         * XplatUIX11.cs: Handle WS_EX_TOPMOST.
7256
7257 2006-02-01  Jackson Harper  <jackson@ximian.com>
7258
7259         * ScrollableControl.cs: Refactored the Recalculate method a
7260         little, this wasn't handling all the variants of bottom and right
7261         bars needed to be added and added/removed based on their
7262         counterparts being added/removed (which changes the drawable
7263         size). Also we special case client widths and heights of 0 and
7264         don't add the scrollbar for those.
7265
7266 2006-02-01  Peter Dennis Bartok  <pbartok@novell.com>
7267
7268         * XplatUIX11.cs: 
7269           - Added method to get AbsoluteGeometry(); currently unused, but might
7270             be used in the future, if we try again to figure out toplevel
7271             coordinates with some more crappy window managers
7272           - Added FrameExtents() method to retrieve the WM set decoration size
7273           - Tried to fix up AddConfigureNotify and handling of ReparentNotify 
7274             to deal with at least KDE, FVWM and metacity (Fixes #77092)
7275         * Hwnd.cs: 
7276           - Added whacky_wm tracking var for metacity
7277           - Added logic to have default menu height if the actual menu height
7278             has not yet been calculated (part of fix for #77426)
7279         * Form.cs: Keep track whether client size has been set and re-set 
7280           it if a menu is added/removed afterwards (Fixes #77426)
7281
7282 2006-01-31  Jackson Harper  <jackson@ximian.com>
7283
7284         * Control.cs: When a new Site is set on the component attempt to
7285         pull the AmbientProperties from it.
7286
7287 2006-01-31  Peter Dennis Bartok  <pbartok@novell.com>
7288
7289         * ThemeWin32Classic.cs: Menu background is drawn in ColorMenu, not
7290           in the background of the owning form. Fixes #77332
7291
7292 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7293
7294         * MimeIcon.cs: Fix for #77409
7295
7296 2006-01-31  Alexander Olk  <alex.olk@googlemail.com>
7297
7298         * XplatUIX11GTK.cs: Initial import
7299
7300 2006-01-31  Jordi Mas i Hernandez <jordimash@gmail.com>
7301
7302         * FixedSizeTextBox: fixes class signature
7303
7304 2006-01-30  Jackson Harper  <jackson@ximian.com>
7305
7306         * FixedSizeTextBox.cs: New internal class that represents a
7307         textBox that will not be scaled.
7308         * TreeView.cs:
7309         * ComboBox.cs:
7310         * UpDownBase.cs: Use the new FixedSizeTextBox instead of a
7311         standard TextBox.
7312                 
7313 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com> 
7314
7315         * XplatUIX11.cs: Retrieve default screen number instead of
7316           assuming 0. Attempted fix for #77318
7317
7318 2006-01-30  Peter Dennis Bartok  <pbartok@novell.com>
7319
7320         * XplatUIWin32.cs: 
7321           - GetWindowPos: When a window is parented by FosterParent, use 
7322             the desktop instead of FosterParent as the base to get coordinates
7323           - CreateWindow: Don't make FosterParent the parent window for Popups
7324             if we don't want a taskbar entry, Popups automatically don't get one
7325         * Hwnd.cs: Need to call remove to actually remove the key from the
7326           hash table
7327
7328 2006-01-30  Mike Kestner  <mkestner@novell.com>
7329
7330         * MenuAPI.cs: adjust MainMenu item popup location to y=0.
7331
7332 2006-01-30  Jackson Harper  <jackson@ximian.com>
7333
7334         * TreeView.cs:
7335         * TreeNode.cs: Raise events no matter how the treenode is
7336         checked. Patch by Don Edvalson.
7337
7338 2006-01-30  Jackson Harper  <jackson@ximian.com>
7339
7340         * TreeNode.cs: Signature fix.
7341
7342 2006-01-29  Alexander Olk  <alex.olk@googlemail.com>
7343
7344         * ThemeClearlooks.cs: Fixed a crash in ProgressBar drawing.
7345
7346 2006-01-20  Mike Kestner  <mkestner@novell.com>
7347
7348         * Form.cs: Add ActiveTracker property to do Captures and perform mouse
7349         event forwarding when menus are active.
7350         * MenuAPI.cs: kill the GrabControl hack.  Use Form.ActiveTracker.
7351         Most of the patch is pdb's with a little rework.
7352
7353 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7354
7355         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs: 
7356           Removed GetMenuDC and ReleaseMenuDC methods; replaced
7357           by PaintEventStart(handle, false) and PaintEventEnd(handle, false)
7358         * Form.cs: Changed WM_NCPAINT handler to use PaintEventStart and End
7359         * InternalWindowManager.cs: Added use of PaintEventStart/End to
7360           handling of WM_NCPAINT message, now passing the PaintEventArgs to
7361           the PaintWindowDecorations method
7362         * MainMenu.cs: Switched logic from GetMenuDC to PaintEventStart
7363         * MdiChildContext.cs: Switched logic from GetMenuDC to PaintEventStart
7364         * MenuAPI.cs: Made tracker window invisible
7365         * XplatUIWin32.cs:
7366           - Removed GetMenuDC and ReleaseMenuDC methods
7367           - Implemented the client=false path for PaintEventStart and
7368             PaintEventEnd
7369
7370 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7371
7372         * XplatUIWin32.cs(SetBorderStyle): Fixed3D needs a border
7373         * XplatUIX11.cs(DeriveWindowStyles): Updated to match fixed Form
7374           styles
7375         * Form.cs: 
7376           - MaximizeBox, MinimizeBox: Recreate the handle when setting
7377             the style
7378           - CreateParams: Reworked the styles to match MS look'n'feel,
7379             removed automatic setting of MinimizeBox, MaximizeBox, etc. via
7380             the WS_OVERLAPPEDWINDOW style. This fixes #76823.
7381
7382 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com> 
7383
7384         * XplatUIX11.cs(GetWindowState): Now throwing an exception when the 
7385           window is not mapped, since otherwise every form that's being 
7386           created is considered minimized, which is wrong.
7387         * Form.cs: Catching the exception and returning our internal value
7388           instead
7389
7390 2006-01-26  Peter Dennis Bartok  <pbartok@novell.com>
7391
7392         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new driver method
7393           SetWindowMinMax() to have means to tell the driver about the minimum,
7394           maximum and maximized state window sizes. (Part of the fix for #76485)
7395         * Form.cs:
7396           - Implemented tracking of minimum and maximum window size, now calling
7397             new SetWindowMinMax() driver method to tell the driver (Part of the
7398             fix for #76485)
7399           - Finished handling of WM_GETMINMAXINFO method, now setting all values
7400             (Completes fix for #76485)
7401           - Calling new SetWindowMinMax driver method when the handle for a 
7402             form is created, to make sure the driver knows about it even if
7403             the values have been set before the window was created
7404           - Now eating the WM_WINDOWPOSCHANGED message if the form is minimized
7405             to avoid messing up our anchoring calculations (partial fix
7406             for #77355)
7407         * XplatUIStructs.cs: Added MINMAXINFO struct (moved from Win32 driver)
7408         * XplatUIX11.cs:
7409           - Added _NET_WM_STATE_HIDDEN property for detecting minimized state
7410           - Improved GetWindowState() to detect 'Minimized' state on Metacity 
7411             (and presumably other freedesktop.org compliant WMs). Left the
7412             assumption unmapped=minimized, needed for SetVisible to work.
7413           - Now setting the window state when creating windows
7414           - Fixed SetVisible to consider/set the window state when mapping
7415             a Form. We cannot set the state before it's mapped, and we cannot
7416             use Form.WindowState once it's mapped (since it would ask the
7417             driver and get 'normal'. Therefore, we grab the state before
7418             mapping, map, and then set state.
7419           - Implmemented SetWindowMinMax method; Metacity does not seem to
7420             honor the ZoomHints, though.
7421         * XplatUIWin32.cs:
7422           - Removed MINMAXINFO (moved to XplatUIStructs)
7423           - Added SetWindowMinMax stub (on Win32 the only way to set that
7424             information is in response to the WM_GETMINMAXINFO message, which
7425             is handled in Form.cs)
7426           - Added logic to SetVisible to set the proper window state when a 
7427             form is made visible (fixes #75720)
7428
7429 2006-01-26  Jackson Harper  <jackson@ximian.com>
7430
7431         * Control.cs (BeginInvoke): Automagically handle EventHandlers the
7432         same way we handle them with Invoke.
7433
7434 2006-01-25  Peter Dennis Bartok  <pbartok@novell.com> 
7435
7436         * Form.cs:
7437           - Added tracking of window state so CreateParams can return
7438             the appropriate style
7439           - Moved setting of WS_CAPTION style in CreateParams to allow
7440             styles without caption
7441         * DataGridTextBoxColumn.cs: We are now also creating the TextBox 
7442           control if the TextBox property is accessed. Fixes #77345
7443         * Control.cs:
7444           - get_Created: now uses is_disposed and is_created to determine
7445             return value (suggested by Jackson)
7446           - CreateHandle: No longer exits if the handle is being recreated
7447           - RecreateHandle: If the handle is not yet created call the 
7448             appropriate method to create either control or handle. If the
7449             control is already created CreateHandle will simply exit instead
7450             of just creating the handle
7451         * Hwnd.cs: Removed expose_pending tracking, no longer needed since we
7452           now SendMessage WM_DESTROY directly to the control when DestroyWindow
7453           is called.
7454         * XplatUIX11.cs: 
7455           - When DestroyWindow is called, instead of waiting for the 
7456             DestroyNotification from X11, we directly post it to the WndProc
7457             and immediately dispose the hwnd object.
7458             Same applies to DestroyChildWindows, and this obsoletes the
7459             expose_pending tracking. Contrary to Win32 behaviour we destroy our
7460             child windows before our own, to avoid X11 errors.
7461           - Removed the direct sending of WM_PAINT on UpdateWindow
7462         * XplatUIWin32.cs:
7463           - Reworked DoEvents and GetMessage to allow access to internal queue
7464             even when trying non-blocking access to the queue.  Fixes #77335. 
7465             Based on a patch suggestion by Don Edvalson. The new private
7466             GetMessage can now also be used as a backend for a PeekMessage
7467             frontend version.
7468         * XplatUI.cs: Improved debug output for CreateWindow
7469
7470 2006-01-25  Jackson Harper  <jackson@ximian.com>
7471
7472         * Help.cs: Allow param to be null. Patch by Don Edvalson.
7473
7474 2006-01-24  Jackson Harper  <jackson@ximian.com>
7475
7476         * ComboBox.cs: Clamp the max value set for the vertical scrollbar
7477         when we have a MaxDropItems lower then the selected index.
7478
7479 2006-01-24  Jackson Harper  <jackson@ximian.com>
7480
7481         * Control.cs: Don't allow selection of non visible controls, allow
7482         selection of controls without parents.
7483
7484 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7485
7486         * ThemeWin32Classic.cs: Fixes Datagrid drawing issues
7487         * DataGridDrawingLogic.cs: Add editing row only when is necessary
7488
7489 2006-01-23  Jackson Harper  <jackson@ximian.com>
7490
7491         * UpDownBase.cs: Make the textbox handle all the selection and
7492         tabbing. This fixes tabing to updown controls.
7493
7494 2006-01-24  Jordi Mas i Hernandez <jordimash@gmail.com>
7495
7496         * TextBoxBase.cs: fixes exception thown the object was null
7497
7498 2006-01-23  Jackson Harper  <jackson@ximian.com>
7499
7500         * ButtonBase.cs: Just use the base CreateParams. They set
7501         visibility and enabled correctly.
7502         * ComboBox.cs:
7503         * TrackBar.cs:
7504         * MonthCalendar.cs: Lets let the base set as much of the
7505         createparams as possible so we don't have duplicate code all over
7506         the place.
7507
7508 2006-01-22  Alexander Olk  <alex.olk@googlemail.com>
7509
7510         * ThemeGtk.cs: Added TrackBar and some experimental code to
7511           get double buffering back
7512
7513 2006-01-21  Jordi Mas i Hernandez <jordimash@gmail.com>
7514
7515         * DataGrid.cs: Allows row number set internally higher than the last
7516         when creating a new row. Restores the editing functionality.
7517
7518 2006-01-20  Mike Kestner  <mkestner@novell.com>
7519
7520         * MimeIcon.cs: delay Image creation until the icons are accessed
7521         instead of creating 190 scaled images on GnomeHandler startup.
7522
7523 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com> 
7524
7525         * TextBoxBase.cs (WndProc): When handling WM_KEYDOWN we need to
7526           first call base before processing the event. Fixes #77279
7527
7528 2006-01-19  Peter Dennis Bartok  <pbartok@novell.com>
7529
7530         * XplatUIWin32.cs, Cursor.cs: Fixed code that wrongly assumed
7531           that the stride for the GDI bitmap would match the stride of
7532           a DIB or a Cursor.
7533
7534 2006-01-19  Alexander Olk  <alex.olk@googlemail.com>
7535
7536         * ThemeGtk.cs: Added ProgressBar, RadioButton, CheckBox
7537
7538 2006-01-19  Jackson Harper  <jackson@ximian.com>
7539
7540         * ComboBox.cs: Hookup the text controls keydown event so we get
7541         those when the text control has the focus.
7542
7543 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7544
7545         * Label.cs: Now using the base events instead of defining new ones;
7546           this allows us to just call the base properties without having to
7547           duplicate all base property logic 
7548
7549 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7550
7551         * Label.cs: A label by default is not a tabstop (Fixes one of our
7552           failing nunit tests)
7553
7554 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com> 
7555
7556         * XplatUIWin32.cs: Fixed wrong DoEvents logic. Fixes #77282
7557         * XplatUIX11.cs: Removed WM_PAINT check from DoEvents. Fixes #77282
7558
7559 2006-01-18  Peter Dennis Bartok  <pbartok@novell.com>
7560
7561         * Cursor.cs: Reimplemented creating cursor bitmaps without using
7562           the Bitmap(Stream) constructor which is semi-broken on MS GDI+.
7563           This fixes #77218
7564         * XplatUIWin32.cs: 
7565           - Reimplemented creating Bitmaps from DIBs since the Bitmap(Stream) 
7566             constructor creates images that can't be saved. Part of the fix
7567             for #76103
7568           - Added handling of CF_BITMAP as CF_DIB to clipboard code (Fixes #76103)
7569           - SetWindowState: Switched ShowWindow flags (part of an upcoming 
7570             bug fix for handling window state in forms properly)
7571
7572 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7573
7574         * ThemeGtk.cs: Simplify ScrollBar drawing
7575
7576 2006-01-18  Jackson Harper  <jackson@ximian.com>
7577
7578         * Splitter.cs: Set the default dock style for the splitter control
7579         in the constructor.
7580
7581 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7582
7583         * ThemeGtk.cs: Corrected StateType and ShadowType for
7584           gtk_paint_box
7585
7586 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7587
7588         * Control.cs: Make use of Theme.DoubleBufferingSupported
7589         * ThemeGtk.cs:
7590           - Added drawing for flat style buttons
7591           - Added ScrollBar drawing
7592
7593 2006-01-18  Alexander Olk  <alex.olk@googlemail.com>
7594
7595         * ThemeClearlooks.cs: Removed some unneeded code.
7596         * ThemeGtk.cs: First part of ThemeGtk enhancements.
7597
7598 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7599
7600         * LinkLabel.cs: We need to update the hover drawing when
7601           leaving the control as well.
7602
7603 2006-01-18  Jordi Mas i Hernandez <jordimash@gmail.com>
7604
7605         * DataGrid.cs: Clicking on non empty areas in the columns
7606            area was giving an exception
7607
7608 2006-01-17  Jackson Harper  <jackson@ximian.com>
7609
7610         * ThemeWin32Classic.cs:
7611         * ListView.cs: Do not draw/clip the headers when the header style
7612         is None.
7613
7614 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7615
7616         * DataGrid.cs: Fixes 77260
7617         
7618 2006-01-17  Jordi Mas i Hernandez <jordimash@gmail.com>
7619
7620         * DataGrid.cs: Clicking on a column on a empty grid was giving
7621           an exception
7622
7623 2006-01-17  Peter Dennis Bartok  <pbartok@novell.com>
7624
7625         * DataGrid.cs (OnKeyDown): Don't use the array if it's empty
7626           or any keypress will crash the grid.
7627
7628 2006-01-17  Mike Kestner  <mkestner@novell.com>
7629
7630         * MainMenu.cs (OnMenuChanged): set Height=0 to cause relayout.
7631         * ThemeWin32Classic.cs (CalcItemSize): clear Height/Width for 
7632         invisible/previously-visible items.
7633         [Fixes #76909]
7634
7635 2006-01-17  Alexander Olk  <alex.olk@googlemail.com>
7636
7637         * ThemeClearlooks.cs:
7638         - Added CL_Draw_Button method; now other theme controls that are 
7639           not derived from button or do not have a button can draw buttons
7640           too
7641         - Updated ComboBox drawing
7642         - Beautified RadioButton drawing
7643         - Corrected drawing of bottom and left tabs
7644         - Beautified DateTimePicker and MonthCalendar
7645         - Added CPDrawButton and CPDrawRadioButton
7646
7647 2006-01-16  Jackson Harper  <jackson@ximian.com>
7648
7649         * ComboBox.cs: Set the initial value of the scrollbar to the
7650         current index. Reduce the numbers of refreshs and IndexOfs called.
7651
7652 2006-01-14  Alexander Olk  <alex.olk@googlemail.com>
7653
7654         * FileDialog.cs: When the file listview is focused hitting the
7655           backspace key moves the fileview to the parent directory
7656
7657 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7658
7659         * Form.cs: 
7660           - Added RecreateHandle call when changing taskbar visibility to 
7661             trigger reparenting in Win32 driver (Fixes #75719)
7662           - If a window has minimize or maximize buttons, it cannot have
7663             a help button
7664         * XplatUIWin32.cs:
7665           - CreateWindow: When no WS_EX_APPWINDOW style is found we parent
7666             the toplevel form with FosterParent (A toolwindow not on the
7667             taskbar) (Fixes #75719)
7668           - Made FosterParent a toolwindow
7669
7670 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7671
7672         * FileDialog.cs: Don't crash if InitialDirectory doesn't exist
7673
7674 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7675
7676         * ToolTip.cs: If SetToolTip is called from a control and the mouse
7677           is currently over that control, make sure that tooltip_window.Text
7678           gets updated
7679
7680 2006-01-13  Mike Kestner  <mkestner@novell.com>
7681
7682         * MimeIcon.cs: size_t on lp64 fix for gdk_pixbuf_save_to_file extern.
7683
7684 2006-01-13  Jackson Harper  <jackson@ximian.com>
7685
7686         * TreeView.cs: On MS GetNodeAt never actually factors in the X
7687         value passed.  Also redraw the selected node when we recieve
7688         focus, so tabbing between trees works correctly.
7689
7690 2006-01-13  Alexander Olk  <alex.olk@googlemail.com>
7691
7692         * MimeIcon.cs: GnomeHandler: older gnome versions don't have
7693           ~/.gconf/%gconf-tree.xml, so use
7694           .gconf/desktop/gnome/interface/%gconf.xml
7695
7696 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7697
7698         * TextControl.cs: Draw text in gray if control is disabled
7699
7700 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com> 
7701
7702         * TreeView.cs: Draw the focus rectangle outside the highlight, to
7703           make sure it's always visible. Fixes #76680.
7704
7705 2006-01-13  Peter Dennis Bartok  <pbartok@novell.com>
7706
7707         * TreeView.cs: Implemented Wheel scrolling. Fixes #76531
7708
7709 2006-01-13  Jonathan Chambers  <jonathan.chambers@ansys.com>
7710
7711         * PageSetupDialog.cs: Added.
7712         * PrintDialog.cs: Attributes.
7713         * PrintPreviewControl.cs: Updates.
7714         * PrintPreviewDialog.cs: Updates.
7715         
7716 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7717
7718         * Control.cs: Undid my selection check fix, since it's not needed
7719         * TextBoxBase.cs:
7720           - Now considering the presence of hscroll/vscroll when sizing
7721             vscroll/hscroll respectively. Fixed bug #77077
7722           - Added Left/Up/Down/Right to IsInputKey list to prevent
7723             ContainerControl from stealing them. This fixes what I broke
7724             with my last checkin.
7725
7726 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com> 
7727
7728         * ScrollableControl.cs: Implemented dockpadding. Fixes #77166. And
7729           I finally understand how the property can be set without a setter :-)
7730
7731 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7732
7733         * Application.cs:
7734           - Switched RunLoop to use static Message.Create to create a 
7735             Message object
7736           - Added PreProcessMessage call in runloop for keyboard events; this
7737             is part of the fix for #77219, I overlooked this originally in the
7738             MSDN doc for PreProcessMessage
7739         * Control.cs:
7740           - Removed call to PreProcessMessage from handling of keyboard 
7741             messages; it's supposed to be done in the message pump
7742           - Moved call to ProcessKeyEventArgs inside ProcessKeyMessage as
7743             per MSDN documentation.
7744           - IsInputChar: All chars are input chars by default; removed the 
7745             parent calling chain, MS does not document that
7746           - PreProcessMessage: If IsInputChar is true, we want to return false
7747             to allow dispatching of the message
7748           - When selecting the next control, now also check that we're not
7749             selecting ourselves again and therefore return a false positive.
7750         * TextBoxBase.cs:
7751           - Tried to match return values for IsInputKey and ProcessDialogKey
7752             to what MS returns; moved processing of our special keys outside
7753             ProcessDialogKey since MS does not seem to return true on those.
7754           - Moved code that previously was in ProcessDialogKey into new private
7755             ProcessKey method, which gets called upon receipt of WM_KEYDOWN
7756           - Reworked handling of WM_CHAR to not have to duplicate code from
7757             Control.cs anymore, instead we simply call down to base.
7758            
7759 2006-01-12  Jackson Harper  <jackson@ximian.com>
7760
7761         * ComboBox.cs: We always need to refresh the text area when
7762         EndUpdate is called. Fixes the combobox in the file dialog.
7763         * Control.cs: Don't create the creator_thread until the controls
7764         handle is created.  Also in InvokeRequired we check if the
7765         creator_thread is null. This gives the effect of InvokeRequired
7766         returning true if the controls handle is not created yet, and
7767         matches MS.
7768
7769 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7770
7771         * XplatUI.cs:
7772           - Added StartLoop() driver method. This is used to allow drivers to
7773             prepare for an upcoming GetMessage/TranslateMessage/DispatchMessage
7774             loop for a particular thread
7775           - Added EndLoop() driver method. This is called once the message
7776             pump for the thread is shut down
7777           - Added SupportsTransparency method to allow the driver to indicate
7778             opacity support for windows
7779         * Form.cs:
7780           - Removed TODO attribute, completed AllowTransparency property
7781           - Added documented logic to Opacity
7782         * GroupBox.cs, Label.cs, LinkLabel.cs, PropertyGrid.cs, Control.cs,
7783           ButtonBase.cs, CheckedListBox.cs: Combined Jackson's and Miguel's
7784           versions of CompatibleTextRendering
7785         * X11Structs.cs: Added opacity atom to our atom enumeration
7786         * Hwnd.cs: Added opacity tracking (we need to track since the opacity
7787           of a form might be set before it's reparented by the WM, and we need
7788           the opacity value without calling up to Form)
7789         * XplatUIDriver.cs: Added StartLoop(), EndLoop() and 
7790           SupportsTransparency() driver methods
7791         * Application.cs: Now calling StartLoop and EndLoop driver methods
7792         * XplatUIX11.cs:
7793           - Added opacity atom registration
7794           - Added StartLoop()/EndLoop() methods. They're empty right now but
7795             will need to get implemented when we switch to a per-thread queue
7796           - Implemented SupportsTransparency() method
7797           - Implemented SetWindowTransparency() method
7798           - Added support for setting the opacity value when a window is
7799             reparented (since the opacity needs to be set on the WM frame)
7800         * XplatUIOSX.cs, XplatUIWin32.cs:
7801           - Added SupportsTransparency(), StartLoop() and EndLoop() methods
7802
7803 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7804
7805         * ThemeClearlooks.cs: Don't crash if TabControl.Parent is null.
7806
7807 2006-01-12  Alexander Olk  <alex.olk@googlemail.com>
7808
7809         * FileDialog.cs: Added ToolTip for MWFFileView
7810         * MimeIcon.cs: Rewrote GnomeHandler.
7811           - Get currently used gnome icon theme from
7812             ($HOME)/.gconf/%gconf-tree.xml
7813           - Make use of inherited icon themes
7814           - Support SVG icon themes like Tango via librsvg
7815
7816 2006-01-12  Miguel de Icaza  <miguel@novell.com>
7817
7818         Revert's Jackson's revert which broke 2.0 builds.   Fix both
7819         builds. 
7820         
7821         * Application.cs: Move the use_compatible_text_rendering outside
7822         the NET_2_0 define.  If we ever need to use the
7823         use_compatible_text_rendering on the individual controls they will
7824         access the variable from the common shared code paths.
7825
7826 2006-01-12  Peter Dennis Bartok  <pbartok@novell.com>
7827
7828         * XplatUI.cs:
7829           - Added more granular debug options
7830           - Added method to print both window text and id
7831           - Switched debug output to use new Window() debug method
7832           - Added IsEnabled() driver method
7833           - Added EnableWindow() driver method
7834         * Form.cs:
7835           - Removed end_modal; no longer needed, new loop handles termination
7836             via 'closing' variable
7837           - If form is modal, setting DialogResult will now initiate loop
7838             termination via 'closing' variable
7839           - Added support for is_enabled/WS_DISABLED to CreateParams
7840           - Close() now just send the WM_CLOSE message; the WM_CLOSE handler
7841             does all the work
7842           - Removed code that's now in RunLoop from ShowDialog()
7843           - Added various documented sanity checks to ShowDialog()
7844           - Added handling of WM_DESTROY message; we set 'closing' on getting
7845             the message to indicate the message pump to terminate
7846           - Added handling of new internal WM_CLOSE_INTERNAL message - it's
7847             send by the Application.ExitThread method. (We send the message
7848             to destroy the window after all other events have been
7849             processed through the queue, instead of destroying the handle 
7850             directly)
7851           - Moved code from Close() method to WM_CLOSE handler; added logic
7852             to only send close-related events if the form is not displayed
7853             modal
7854         * Splitter.cs (..ctor): Fixed typo in resource name
7855         * Control.cs:
7856           - DrawBackgroundImage: Explicitly selecting the wrap mode for the
7857             brush now
7858           - set_Cursor: Now only setting calling into XplatUI if the handle for
7859             the control is already created; this avoids implict handle creation
7860             or crashes if it's not created
7861           - set_Enabled: Now setting the enabled state via the new driver method
7862             instead of just tracking it
7863           - CreateParams: Added logic to set WS_DISABLED based on enabled state
7864           - CreateControl: Reordered event firing and method calls to more
7865             closely fire events in the order MS does. Now setting the
7866             enabled state in the driver when creating the control.
7867           - SetVisibleCore: Moved when the OnVisibleChanged event is fired to
7868             match MS order
7869         * FolderBrowserDialog.cs, MessageBox.cs, ButtonBase.cs, TrackBar.cs,
7870           MonthCalendar.cs: get_CreateParams: Added setting of WS_DISABLED 
7871         * XplatUIStructs.cs: Added internal WM_CLOSE_INTERNAL mesage id
7872         * Hwnd.cs:
7873           - Added tracking of window enabled state (get_Enabled/set_Enabled)
7874           - Added EnabledHwnd property to easily allow a driver to find the
7875             handle of the first enabled window in the parent chain (this is
7876             used by drivers to pass up input events of disabled windows)
7877         * XplatUIDriver.cs: Added IsEnabled() method
7878         * Application.cs:
7879           - Removed crude and obsolete exiting tracking variable
7880           - Removed internal ModalRun(); replaced by RunLoop()
7881           - Implemented private CloseForms() method to allow closing all 
7882             windows owned by a particular (or all) threads
7883           - Exit() now properly closes all windows without forcing the message
7884             pump to quit
7885           - Removed obsolete InternalExit() method
7886           - Changed Run() methods to use new RunLoop() message pump
7887           - Implemented new RunLoop() method for both modal and non-modal forms
7888         * CommonDialog.cs:
7889           - get_CreateParams: Added setting of WS_DISABLED
7890           - Simplified ShowDialog(); now all the work is done in RunLoop(),
7891             invoked via Form.ShowDialog()
7892         * NativeWindow.cs: We don't remove the window from the collection when
7893           the handle is destroyed; there might still be messages for it in the
7894           queue (mainly the resulting WM_DESTROY); instead it will be removed
7895           when Control calls InvalidateHandle in the WM_DESTROY handler
7896         * XplatUIX11.cs:
7897           - CreateWindow: Added logic to handle the WS_DISABLED window style
7898           - EnableWindow: Implemented based on Hwnd.Enabled
7899           - GetMessage: Reset PostQuitState so the method can be called again
7900           - Implemented support for disabled windows (passing messages to the
7901             first enabled parent) in handling all input messages
7902           - Added optimizations for handling Expose events
7903           - Implemeted new driver method IsEnabled()
7904           - Now always resetting paint pending tracking vars when we start paint
7905           - Re-implemented UpdateWindow via just sending a WM_PAINT message
7906         * XplatUIOSX.cs: Added IsEnabled method stub
7907         * XplatUIWin32.cs: Implemented new IsEnabled() method
7908
7909 2006-01-11  Jackson Harper  <jackson@ximian.com>
7910
7911         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7912         LinkLabel.cs, PropertyGrid.cs: Unbreak 1.1 build. Consolidate the
7913         variables a little.
7914         * ColorDialog.cs: Clear out the old form before adding the new
7915         panel.  
7916
7917 2006-01-11  Jackson Harper  <jackson@ximian.com>
7918
7919         * X11Dnd.cs: Make sure to add all the text formats when adding
7920         strings to the data object.
7921         * TreeNodeCollection.cs: When adding to a sorted tree we need to
7922         do some redrawing too.  Also change the UpdateNode to an
7923         UpdateBelow so the newly added node gets painted.
7924         
7925 2006-01-11  Miguel de Icaza  <miguel@novell.com>
7926
7927         * ButtonBase.cs, CheckedListBox.cs, GroupBox.cs, Label.cs,
7928         LinkLabel.cs, PropertyGrid.cs: Implement the
7929         UseCompatibleTextRendering property for 2.x
7930
7931         * Application.cs (SetCompatibleTextRenderingDefault): Add. 
7932
7933 2006-01-11  Jackson Harper  <jackson@ximian.com>
7934
7935         * TreeView.cs: Use the property for setting the selected node so
7936         the correct events get raised.
7937         * TreeNode.cs: Update the tree when the fore/back colours of a
7938         node are set.
7939
7940 2006-01-10  Jackson Harper  <jackson@ximian.com>
7941
7942         * TreeView.cs: Allow setting SelectedNode to null.
7943
7944 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7945
7946         * Form.cs: Fix support for Form TransparencyKey and Opacity on Windows.
7947
7948 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7949
7950         * PrintControllerWithStatusDialog.cs: Update page number in dialog.
7951
7952 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7953
7954         * PrintDialog.cs: Added attributes and set default property values.
7955
7956 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7957
7958         * PrintControllerWithStatusDialog.cs: 
7959         Added PrintControllerWithStatusDialog.
7960
7961 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7962
7963         * XplatUI.cs, Form.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs, 
7964         XplatUIWin32.cs: Added support for Form TransparencyKey and Opacity on Windows.
7965
7966 2006-01-9  Jonathan Chambers  <jonathan.chambers@ansys.com>
7967
7968         * ComboBox.cs: Fix crash when there is no selected item (due to last commit)
7969
7970 2006-01-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
7971
7972         * ComboBox.cs: Added KeyDown event handler for processing arrow keys
7973         and PgUp/PgDown. Also, scroll to selected item upon dropdown. Bugs 76857 and 76788.
7974
7975 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7976
7977         * MimeIcon.cs: Added internal class SVGUtil.
7978
7979 2006-01-08  Alexander Olk  <alex.olk@googlemail.com>
7980
7981         * FileDialog.cs: Don't crash if there are two files with the
7982           same name but different locations.
7983
7984 2006-01-08  John BouAntoun  <jba-mono@optusnet.com.au>
7985
7986         * MonthCalendar.cs: Fixed annoying rendering bug when selecting
7987         dates across multiple month grids. Used to not highlight entire 
7988         month, but does now.
7989         
7990 2006-01-06  Jackson Harper  <jackson@ximian.com>
7991
7992         * MonthCalendar.cs: Removed DoEvents call to prevent a running
7993         message loop. Change timer intervals to numbers that seem more
7994         natural.
7995
7996 2006-01-06  John BouAntoun  <jba-mono@optusnet.com.au>
7997
7998         * DateTimePicker.cs: Modified CalculateDropDownLocation to use the screen
7999           object for location info since screen object is now implemented.
8000
8001 2006-01-05  Jackson Harper  <jackson@ximian.com>
8002
8003         * AsyncMethodData.cs: Check if the call is complete before doing a WaitOne
8004         * AsyncMethodResult.cs: We no longer use a WeakReference for the
8005         AsyncMethodResult, this is because we ALWAYS want the
8006         ManualResetEvent to get set.
8007         * Control.cs: When disposing use an async invoke to call shutdown
8008         code, so that thigns don't block on the finalizer thread.  Also
8009         check if we even have a message loop before trying to send
8010         messages, if we don't then don't bother sending messages.
8011         - No more weak references for async methods
8012         * XplatUIDriver.cs: No more weak references for async methods.
8013
8014 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8015
8016         * FontDialog.cs: Fix, don't throw an exception if FontFamily.Families
8017           returns two FontFamily with the same name
8018
8019 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8020
8021         * ThemeWin32Classic.cs, ThemeClearlooks.cs: Dropped stupid scheme of 
8022           drawing disabled text. Instead using the ColorGrayText color
8023
8024 2006-01-04  Jackson Harper  <jackson@ximian.com>
8025
8026         * TreeNode.cs: redraw the node when its image index is changed.
8027
8028 2006-01-04  Peter Dennis Bartok  <pbartok@novell.com>
8029
8030         * RichTextBox.cs: Same fix as last, just for SelectionColor. This
8031           time I checked there are no others like it.
8032
8033 2006-01-04  Jackson Harper  <jackson@ximian.com>
8034
8035         * AsyncMethodResult.cs: Use a ManualResetEvent instead of a mutex,
8036         this gives the behavoir I was looking for.
8037         * Control.cs: Special case Invoking EventHandlers, this matches MS
8038         and fixes part of bug #76326.
8039
8040 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8041
8042         * ThemeClearlooks.cs, FileDialog.cs:
8043           - Reflect the latest Theme class changes
8044           - Remove Mono.Unix.Syscall.time in FileDialg and replace it 
8045             with DateTime
8046             
8047 2006-01-04  Alexander Olk  <alex.olk@googlemail.com>
8048
8049         * Theme.cs: Cache UI resource images and resize them if needed
8050
8051 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8052
8053         * RichTextBox.cs: FormatText is 1-based, make it so when SelectionFont
8054           is called. This fixes the crash in Nexxia when setting the font
8055           attributes in the chat. [However, RTF needs a look-over to make sure
8056           that all SelectionXXX methods handle the special case that selection
8057           is empty and therefore the change must be applied to all text starting
8058           at the cursor/selection start]
8059
8060 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com> 
8061
8062         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8063           XplatUIOSX.cs: Added SendMessage and PostMessage methods
8064         * X11Keyboard.cs: Switched to new way of calling PostMessage
8065
8066 2006-01-03  Peter Dennis Bartok  <pbartok@novell.com>
8067
8068         * Theme.cs: Added theme interface for images to allow the theme to
8069           control what images are used for things like FileDialog, MessageBox
8070           icons, etc.
8071         * MessageBox.cs: Now uses the new Theme icon/image interfaces
8072
8073 2006-01-03  Alexander Olk  <alex.olk@googlemail.com>
8074
8075         * FileDialog.cs:
8076           - Removed some dead code
8077           - Opening a recently used file does work now
8078           - Small UI enhancements
8079           - Refactoring
8080
8081 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8082
8083         * FileDialog.cs: Forgot too add __MonoCS__
8084
8085 2006-01-02  Alexander Olk  <alex.olk@googlemail.com>
8086
8087         * FileDialog.cs: We are able to read recently used files now let's
8088           go on and write them.
8089
8090 2006-01-01  Alexander Olk  <alex.olk@googlemail.com>
8091
8092         * FileDialog.cs: Breathe some life into "last open"/"recently used"
8093           button
8094         * MimeIcon.cs: Do a check for the top level media type also
8095
8096 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8097
8098         * ThemeClearlooks.cs:
8099           - Added CPDrawStringDisabled
8100           - ButtonBase_DrawText: Workaround for a DrawString bug; cut off
8101             some chars if the text doesn't fit into text_rect
8102           - DrawListViewItem: If View = View.LargeIcon center the image;
8103             rewrote the drawing of ListViewItem.Text if View = 
8104             View.LargeIcon
8105
8106 2005-12-31  Alexander Olk  <alex.olk@googlemail.com>
8107
8108         * MimeIcon.cs: Use default KDE icon theme if there is no
8109           "48x48" directory for the current icon theme, fixes #77114
8110         * Mime.cs: Disable not working and actually not used code. 
8111         * ThemeWin32Classic.cs:
8112           - Replace "new SolidBrush" in GetControlBackBrush and
8113             GetControlForeBrush with ResPool.GetSolidBrush
8114           - Changed DrawListViewItem from private to protected virtual
8115         * FileDialog.cs:
8116           - Added form.MaximizeBox = true
8117           - Don't throw an exception if there is a broken symbolic link
8118
8119 2005-12-23  Jackson Harper  <jackson@ximian.com>
8120
8121         * TabControl.cs: Give the panels focus, keyboard navigation is
8122         fixed so this works correctly now.
8123         - We need these key events also.
8124         * ToolBar.cs: Remove some of the poor mans double buffering.
8125         
8126 2005-12-24  Alexander Olk  <alex.olk@googlemail.com>
8127
8128         * ComboBox.cs: The internal TextBox now returns the focus.
8129
8130 2005-12-23  Jackson Harper  <jackson@ximian.com>
8131
8132         * ThemeWin32Classic.cs:  Draw the text for all tab appearances.
8133
8134 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8135
8136         * Control.cs: Removed debug code
8137         * XplatUIX11.cs: Changed DestroyChildWindows to also consider
8138           implicit children
8139
8140 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com> 
8141
8142         * Control.cs: When creating the control, update the Z-order after
8143           all it's children are created, too. (Fixes nexxia not showing
8144           picturebox bug)
8145
8146 2005-12-23  Peter Dennis Bartok  <pbartok@novell.com>
8147
8148         * Control.cs: Do not update the anchoring distances if layout is
8149           suspended, instead do it once layout is resumed
8150
8151 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com> 
8152
8153         * Control.cs: 
8154           - After many hours of debugging, for both Jackson and
8155             myself, it turns out that it helps to set the parent of a control
8156             if you want to actually see it onscreen. In the spirit of that
8157             discovery, we're now setting the parent of the control and
8158             it's children when the control's handle is created. This fix
8159             will make Lutz Roeder's Reflector run happily. 
8160           - now just creating the handle instead of the whole control when
8161             getting a graphics context for the control.
8162
8163 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8164
8165         * ScrollableControl.cs: When calculating the canvas, don't consider
8166           the scrollbar widths. Instead, predict if horizontal scrollbar
8167           will affect canvas when deciding on vertical display and vice versa.
8168
8169 2005-12-22  Peter Dennis Bartok  <pbartok@novell.com>
8170
8171         * RichTextBox.cs: Set default RTF font for documents that don't
8172           have a font table (Fixes #77076)
8173
8174 2005-12-22  Jackson Harper  <jackson@ximian.com>
8175
8176         * TextBoxBase.cs: It's difficult to do, but you can have an empty
8177         clipboard. This prevents a NullRef in that case.
8178         * XplatUIX11.cs: Use CLIPBOARD not PRIMARY for our
8179         clipboard. PRIMARY is for the currently selected text only. (We
8180         should implement PRIMARY at some point.
8181
8182 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8183
8184         * XplatUIWin32.cs: Fixed the TEXTMETRIC structure, we were calling
8185           a Unicode function with a structure that was defined in Ansi way.
8186           This fixes #76942.
8187
8188 2005-12-21  Jackson Harper  <jackson@ximian.com>
8189
8190         * StatusBar.cs: Statusbar handles its fore/back colours on it's
8191         on. Because thats how it rolls. (and this avoids it using ambient
8192         colours).
8193         * ThemeWin32Classic.cs: Use the proper back color for filling.
8194         * Menu.cs: Use the system menu bar color for drawing menu
8195         bars. Using the window back color will bring ambient colours into
8196         the picture.
8197
8198 2005-12-21  Alexander Olk  <alex.olk@googlemail.com>
8199
8200         * ColorDialog.cs: Fixed a memory leak that caused a SIGSEV. A lot of
8201           Bitmaps were created and not disposed.
8202
8203 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8204
8205         * Control.cs (CreateControl): Don't do anything if the control is
8206           already created, otherwise we'd fire the OnCreated event more than
8207           once
8208
8209 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
8210
8211         * ComboBox.cs (FindStringCaseInsensitive): Don't search for emtpy strings,
8212           will always match. Instead return -1. Fixes #76464.
8213
8214 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com>
8215
8216         * TextControl.cs (RecalculateLine): Only wrap if the wrap point is
8217           neither the beginning nor the end of the line (Fixes bug #76479)
8218
8219 2005-12-21  Peter Dennis Bartok  <pbartok@novell.com> 
8220
8221         * Control.cs:
8222           - ControlNativeWindow.ControlFromHandle(): Now handling situation
8223             where handle is invalid
8224           - FromHandle(): Now using hashtable-based ControlFromHandle() lookup
8225             instead of slower linear search
8226         * NativeWindow.cs: Don't remove the window from the hashtable until
8227           after the driver has destroyed it (since the driver might use
8228           Control.FromHandle to lookup the control object
8229         * Hwnd.cs: Added DestroyPending property to track if a window is 
8230           already destroyed as far as the driver is concerned and only hasn't
8231           yet notified the control
8232         * XplatUIX11.cs:
8233           - Activate(): Check if the window is still valid before using the 
8234             handle
8235           - Implemented DestroyChildWindow() method to mark child windows as
8236             destroyed when a window is destroyed. This prevents situations 
8237             where we might call an X method based on queued events for a
8238             window that already has been destroyed but we haven't yet pulled
8239             the destroy method from the queue.
8240           - Added a call to the new DestroyChildWindow() method to the drivers
8241             DestroyWindow code. Also now marking the destroyed window itself
8242             as pending
8243
8244 2005-12-20  Jackson Harper  <jackson@ximian.com>
8245
8246         * StatusBar.cs:
8247         * StatusBarPanel.cs: Don't calculate panel sizes on draw
8248         anymore. Just do them when needed, also track the rects of panels
8249         so that we can optimize refreshing more in the future.
8250
8251 2005-12-20  Alexander Olk  <alex.olk@googlemail.com>
8252
8253         * ColorDialog.cs: Fixed focus drawing in small color controls
8254
8255 2005-12-19  Jackson Harper  <jackson@ximian.com>
8256
8257         * InternalWindowManager.cs:
8258         * MdiWindowManager.cs: Cleanup some coordinate system changes so
8259         moving windows works properly.
8260
8261 2005-12-19  Peter Dennis Bartok  <pbartok@novell.com> 
8262
8263         * Control.cs: 
8264           - Removed call to InitLayout() from SetBoundsCore(); doc says
8265             it's only called when a control is added to a container
8266           - Split InitLayout logic, moved to separate UpdateDistances() method
8267             since we need to perform those calculations more often than just
8268             when adding the control to a container. (Needed to fix #77022)
8269           - Now calling UpdateDistances() from UpdateBounds() (fixes #77022)
8270           - Reduced the OnBindingContextChanged events count, don't send them
8271             unless the control is created, we still aren't totally matching
8272             MS, but I can't quite figure out some of their rules
8273
8274 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8275
8276         * ThemeClearlooks.cs: Corrected distance between ProgressBar
8277           stripes
8278
8279 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8280
8281         * ThemeClearlooks.cs:
8282           - Updated ProgressBar drawing
8283           - Corrected drawing of ScrollBars and scroll buttons
8284           - Some temporary fixes for minor pixel artefacts
8285
8286 2005-12-18  Peter Dennis Bartok  <pbartok@novell.com> 
8287
8288         * Control.cs:
8289           - Reworked Controls.Add(), Controls.Remove() and set_Parent() to
8290             cause events to be sent in the same order as MS does.
8291           - Added ChangeParent() method to trigger various OnXXXChanged events
8292             that need to be fired when a parent changes (This is a reworking
8293             of the patch from r54254, with the X11 errors fixed)
8294           - Removed SuspendLayout()/ResumeLayout() calls from Controls.Clear()
8295             since on MS we get OnLayoutChanged events when calling Clear()
8296           - Changed Enabled property to consider parent state as well, if a
8297             parent is not enabled, the control will not be either
8298           - Changed Parent property to simply call Controls.Add() since that
8299             now does all the work required, this way we avoid code duplication
8300           - Threw in a few OnBindingsContextChanged calls to try and match
8301             when MS sends them. We seem to send a few too many, though.
8302           - Added call to CreateControl when adding the control to a parent.
8303             We were never calling CreateControl. Still needs some work, in
8304             some places we treat HandleCreated and ControlCreated as equal, 
8305             which is wrong
8306           - Removed obsolete commented out code from UpdateZOrder()
8307
8308 2005-12-18  Alexander Olk  <alex.olk@googlemail.com>
8309
8310         * ThemeClearlooks.cs: Updated TrackBar drawing.
8311
8312 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
8313
8314         * FileDialog.cs: Patch for #76901 by Atsushi Enomoto
8315
8316 2005-12-17  Alexander Olk  <alex.olk@googlemail.com>
8317
8318         * FileDialog.cs: Add the Help button and the open readonly
8319           checkbox only if needed
8320
8321 2005-12-16  Jackson Harper  <jackson@ximian.com>
8322
8323         * Control.cs: Make sure we have an active menu before trying to
8324         process commands on it. Prevents menu-less forms from crashing
8325         when Alt is pressed.
8326         * TreeNodeCollection.cs: Some fixes to prevent null refs. Patch by
8327         Dieter Bremes.
8328         * RichTextBox.cs: Expand statement to help out gmcs and fix the
8329         2.0 build.
8330
8331 2005-12-16  Jackson Harper  <jackson@ximian.com>
8332
8333         * InternalWindowManager.cs: Don't translate tool windows screen
8334         coordinates. This fixes windows 'bouncing' around when being moved.
8335
8336 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8337
8338         * TextBoxBase.cs:
8339           - MaxLength now treats 2^31-1 equal to unlimited length (this is
8340             not quite MS compatible, MS uses that number only for single line
8341             and 2^32-1 for multi-line, but I figure it won't hurt keeping
8342             the limit at 2GB)
8343           - Now enforcing the MaxLength limit when entering characters
8344           - Added argument to internal Paste() method to track if it's called
8345             from programatically or via keyboard, since keyboard driven pastes
8346             need to enforce max-length
8347           - Added logic to Paste to only paste as many chars as MaxLength 
8348             allows
8349         * RichTextBox.cs: Updated to use new obey argument for internal Paste()
8350         * TextControl.cs:
8351           - Added Length property to return number of characters in document
8352           - Added private CharCount property which only tracks actual chars
8353             in the document (no linefeeds) and fires event when CharCount
8354             changes
8355           - Added tracking of character count to all methods that alter it
8356           - Added LengthChanged event to allow applications to subscribe
8357             to any changes to the document
8358
8359 2005-12-15  Peter Dennis Bartok  <pbartok@novell.com> 
8360
8361         * TextBox.cs: 
8362           - Removed local password_char field (moved to TextBoxBase)
8363           - Now setting the document's password var when password is
8364             set
8365         * TextBoxBase.cs:
8366           - Added password_char field (needed here so MultiLine can
8367             access it)
8368           - Added logic to MultiLine property setter to set the document's
8369             variable when password display is allowed
8370           - Removed debug code and made some debug code conditional
8371         * TextControl.cs:
8372           - Added RecalculatePasswordLine() method to handle special password
8373             char only lines
8374           - Added PasswordChar property, also added related tracking vars
8375           - Draw() method now uses local text var for grabbing text to draw,
8376             this var is set to line.text unless we're doing password display,
8377             then it is set to the pre-generated all-password-chars line
8378           - Added calling RecalculatePasswordLine() method for password lines
8379
8380 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8381
8382         * Hwnd.cs: 
8383           - Added Reparented property to allow tracking of Window Manager
8384             reparenting actions (which affect X/Y calculations of toplevel 
8385             windows)
8386           - Made ToString() print window handles in hex
8387         * XplatUIX11.cs:
8388           - AddConfigureNotify(): Now uses reparented state off Hwnd to
8389             determine if X/Y needs offsetting
8390           - AddConfigureNotify(): Fixed offset calculations
8391           - Now adds ReparentNotify messages into the queue
8392           - Now processes ReparentNotify messages and causes a 
8393             WM_WINDOWPOSCHANGED message to be sent upstream if a window
8394             is reparented (as most likely it's X/Y coordinates are changed
8395             due to that)
8396
8397 2005-12-14  Jackson Harper  <jackson@ximian.com>
8398
8399         * XplatUIX11.cs: Tool windows still need to respek focus.
8400
8401 2005-12-14  Peter Dennis Bartok  <pbartok@novell.com> 
8402
8403         * Control.cs: Undid 54254 (causing XConfigure errors) so we can
8404           have a working release
8405
8406 2005-12-13  Jackson Harper  <jackson@ximian.com>
8407
8408         * Form.cs: Update styles after setting the border style regardless
8409         of whether or not the window is using a window manager.
8410
8411 2005-12-13  Jackson Harper  <jackson@ximian.com>
8412
8413         * Form.cs: We now hook into an internal window manager instead of just an
8414         MDI subsystem, this is so we can have properly behaving tool windows.
8415         * MdiClient.cs: Naming change, MdiChildContext is now WindowManager
8416         * InternalWindowManager.cs: New internal class that acts as a
8417         window manager for tool windows and as a base for mdi windows.
8418         * MdiWindowManager.cs: New class that acts as a window manager for
8419         mdi windows.
8420
8421 2005-12-12  Jackson Harper  <jackson@ximian.com>
8422
8423         * Control.cs: Updates so we match behavoir for for implicit
8424         controls. Fixes explosions in MDI.
8425
8426 2005-12-12  Jackson Harper  <jackson@ximian.com>
8427
8428         * Control.cs: Implement Invalidate (Region).
8429
8430 2005-12-12  Peter Dennis Bartok  <pbartok@novell.com> 
8431
8432         * Control.cs: 
8433           - Changed handling of Controls.Add/Controls.Remove to fire (almost) 
8434             the same events as MS does. MS fires events for each property 
8435             except, for unknown reasons, Cursor, when the control is reparented. 
8436             I can't seem to totally match add/remove since MS also fires some 
8437             VisibleChanged events, which makes no sense. Consolidated the
8438             parenting code into a separate method so it can be called from
8439             both Add and Remove. set_Parent no longer needs any special logic
8440             as it calls the parent's add method which implicitly fires
8441             all events
8442           - Removed some obsolete code and debug output
8443           - Enabled state is inherited from parents, if this is enabled
8444
8445 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com> 
8446
8447         * Form.cs: Removed commented out code
8448
8449 2005-12-08  Peter Dennis Bartok  <pbartok@novell.com>
8450
8451         * Control.cs:
8452           - Added internal version of Invoke, with additional argument 
8453             indicating if we're calling it from a Dispose() handler. That
8454             way we can avoid BeginInvoke throwing an exception if we're
8455             calling for an already destroyed window.
8456           - Added a dispose argument to BeginInvokeInternal, and made the
8457             check if a valid window handle chain exists conditional on
8458             it not being a dispose call
8459           - Removed code in DestroyHandle to destroy our children. Since we
8460             now handle the WM_DESTROY message we will catch all our children
8461             being destroyed.
8462           - Now calling OnHandleDestroyed from our new WM_DESTROY handler
8463         * Form.cs:
8464           - Added a field to track the application context of the form.
8465           - No need to set closing variable as response to WM_CLOSE, instead
8466             we destroy the window. We also call PostQuitMessage if the form
8467             has an application context (which makes it the main app form,
8468             which, when closed terminates the app)
8469         * XplatUI.cs:
8470           - Dropped Exit() method, it's naming was confusing
8471           - Added PostQuitMessage() which causes GetMessage to return false
8472             once the message queue is empty
8473         * XplatUIDriver.cs, XplatUIWin32.cs: Dropped Exit(), added 
8474           PostQuitMessage()
8475         * XplatUIOSX.cs: Switched signature for Exit method since Exit() is
8476           no longer a valid XplatUI method, but left it in since it's used
8477           internally. Added empty PostQuitMessage() method.
8478         * MenuAPI.cs: Replaced call to Exit() with call to
8479           PostQuitMessage, even though this is probably no longer needed.
8480         * Hwnd.cs: Added 'pretty' ToString() to support debugging.
8481         * X11Structs.cs: Added pretty XEvent.ToString() to support debugging.
8482         * Application.cs:
8483           - Replaced call to XplatUI.Exit() with PostQuitMessage()
8484           - Removed old debug code that would call XplatUI for exception
8485             display, enabled standard exception handling (Still not enabled
8486             though, until NativeWindow's ExternalExceptionHandler define
8487             is removed
8488         * NativeWindow.cs:
8489           - Added internal method to allow control to update NativeWindow
8490             after a window has been destroyed
8491           - Added handling of already destroyed windows when calling i
8492             DestroyWindow
8493           - Added removal of handle from list on ReleaseHandle
8494         * XplatUIX11.cs:
8495           - Dropped GetMessageResult var and related code
8496           - Added PostQuitState to field to track if PostQuitMessage has been
8497             called
8498           - Dropped Exit() method
8499           - Added PostQuitMessage() method
8500           - GetMessage now will return false if PostQuitState is set and no
8501             more messages are in the queue.
8502           - Expose handler will no longer generate WM_PAINT messages if we are
8503             in PostQuitState since it's very likely any windows have already
8504             been destroyed, and since Hwnd won't get updated until we have
8505             processed the DestroyNotify we'd be causing X errors.
8506         
8507 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8508
8509         * Control.cs(WndProc): Apparently I'm suffering from brain cloud.
8510           Thanks to Mike for pointing out the err of my ways.
8511
8512 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8513
8514         * Control.cs(PreProcessMessage): Moved menu handling back, but
8515           after all other key handling, to match MS (who handles Menu in
8516           DefWndProc)
8517         * Menu.cs (WndProc): Removed my brainfart
8518
8519 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8520
8521         * Control.cs(PreProcessMessage): Removed special menu handling 
8522         * Menu.cs (WndProc): Added handling of WM_SYSKEYUP for menu purposes.
8523
8524 2005-12-07  Mike Kestner  <mkestner@novell.com>
8525
8526         * Control.cs : special case SYSKEYUP so that we can adjust keynav
8527         state according in tracker.
8528         * Menu.cs : promote tracker field to base class and provide a tracker
8529         lookup capability.  Add/Remove shortcuts dynamically if the top menu
8530         has a tracker. Unparent items that are removed from the collection.
8531         * MenuAPI.cs : implement mnemonic, shortcut, and arrow-based keynav.
8532         * Theme*.cs: add always_show_hotkeys field to support configurability
8533         of mnemonic display.  win32 doesn't show mnemonics until Alt is
8534         pressed.
8535
8536 2005-12-07  Jackson Harper  <jackson@ximian.com>
8537
8538         * MdiChildContext.cs: Use Control.ResetCursor.
8539         * Control.cs: ResetCursor needs to set the property so that the
8540         correct XplatUI call gets made.
8541
8542 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8543
8544         * Control.cs: More fixes to make our key events match MS. We
8545           were not setting the modifier state on KeyData, and we were
8546           not generating any events when Alt was pressed with a key
8547           since handling of WM_SYSxxx was missing for the OnKey methods.
8548
8549 2005-12-07  Jackson Harper  <jackson@ximian.com>
8550
8551         * MdiChildContext.cs: reenable the sizing code.
8552         - When the mouse leaves a window reset its cursor.
8553
8554 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8555
8556         * ThemeClearlooks.cs: Reflect latest Hwnd changes
8557
8558 2005-12-07  Peter Dennis Bartok  <pbartok@novell.com>
8559
8560         * Hwnd.cs: Now using the theme 3d bordersize to calculate
8561           widths of Fixed3D borders
8562
8563 2005-12-07  Jackson Harper  <jackson@ximian.com>
8564
8565         * MdiClient.cs: Fix warnings. Earn Mike's love.
8566
8567 2005-12-07  Alexander Olk  <alex.olk@googlemail.com>
8568
8569         * ThemeClearlooks.cs:
8570           - Adjusted mouse over button color
8571           - Added first parts of CheckBox drawing
8572           - Added correct color for selected text background
8573           - Fixed ComboBox drawing
8574           - Added CPDrawBorder3D and CPDrawBorder
8575
8576 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8577
8578         * XplatUIX11.cs: Added call to XBell for AudibleAlert
8579
8580 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com> 
8581
8582         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIWin32.cs,
8583           XplatUIOSX.cs: Added AudibleAlert() method to have a means to
8584           alert users via sound. We could add an enum arg with different
8585           types of alerts in the future
8586
8587 2005-12-06  Peter Dennis Bartok  <pbartok@novell.com>
8588
8589         * Control.cs: Fix behaviour problems pointed out by Mike
8590
8591 2005-12-05  Mike Kestner  <mkestner@novell.com>
8592
8593         * StatusBarPanel.cs: add Invalidate method and hook it into all the
8594         prop setters.  Calls parent.Refresh for now, but could be maybe be
8595         optimized with an internal method on StatusBar at some point.
8596         [Fixes #76513]
8597
8598 2005-12-05  Peter Dennis Bartok  <pbartok@novell.com> 
8599
8600         * RichTextBox.cs: Implemented get_SelectionColor
8601
8602 2005-12-05  Alexander Olk  <alex.olk@googlemail.com>
8603
8604         * ThemeClearlooks.cs:
8605           - Removed dead code
8606           - Draw black button border only if button is Form.AcceptButton
8607           - Draw correct button color for pressed RadioButton if the mouse 
8608             has entered the button
8609           - Updated ProgressBar drawing!
8610           - Updated CPDrawSizeGrip drawing
8611           - Updated StatusBarPanel drawing
8612
8613 2005-12-05  Mike Kestner  <mkestner@novell.com>
8614
8615         * Control.cs (PreProcessMessage): add Keys.Alt based on LParam value.
8616         * X11Keyboard.cs (SendKeyboardInput): formal lParam for alt mod.
8617
8618 2005-12-04  Alexander Olk  <alex.olk@googlemail.com>
8619
8620         * ThemeClearlooks.cs: Initial check-in, activate with
8621           export MONO_THEME=clearlooks
8622         * ThemeEngine.cs: Added ThemeClearlooks
8623
8624 2005-12-03  Mike Kestner  <mkestner@novell.com>
8625
8626         * MenuAPI.cs: deactivate menus prior to calling item.PerformClick.
8627         [Fixes #76897]
8628
8629 2005-12-02  Jackson Harper  <jackson@ximian.com>
8630
8631         * Form.cs: If the child form has no menu the default main menu is
8632         used as the active menu.
8633
8634 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com> 
8635
8636         * ListBox.cs: Check if any items exist before trying to resolve 
8637           coordinates into items
8638
8639 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8640
8641         * ThemeWin32Classic.cs: Hatchbrush on Win32 seems to always use white
8642           as the second color for the background hatch
8643
8644 2005-12-02  Peter Dennis Bartok  <pbartok@novell.com>
8645
8646         * TextBoxBase.cs: Now uses Jackson's new and improved ImplicitScrollbar
8647         * RichTextBox.cs: FormatText position arguments are 1-based, now making
8648           sure that what we pass to FormatText is always 1-based. Fixes #76885
8649
8650 2005-11-29  Miguel de Icaza  <miguel@novell.com>
8651
8652         * NumericUpDown.cs (EndInit): When we are done initializing,
8653         reflect any updates on the UI.
8654
8655 2005-12-02  Jackson Harper  <jackson@ximian.com>
8656
8657         * ImplicitHScrollBar.cs:
8658         * ImplicitVScrollBar.cs: New scrollbars that don't take focus from
8659         their container controls.
8660         * TreeView.cs: Use the new implicit scrollbars.
8661
8662 2005-12-02  Jackson Harper  <jackson@ximian.com>
8663
8664         * TreeView.cs: Make top_node internal so the TreeNodeCollections
8665         can play with it.
8666         * TreeNodeCollection.cs: If we remove the topnode we need to
8667         update topnode to the next node in line.
8668         - When clearing nodes go through the same process as removing
8669         them, so they get depareneted and checked if they are top node.
8670
8671 2005-12-01  Jackson Harper  <jackson@ximian.com>
8672
8673         * TreeView.cs: When imagelists are used the image area is
8674         selectable as well as the text.
8675         - If there are no selected nodes select the first one.
8676         * TreeNodeCollection.cs: Getting the TreeView is mildly expensive,
8677         so don't do it more then we need to.
8678
8679 2005-12-01  Jackson Harper  <jackson@ximian.com>
8680
8681         * ThemeWin32Classic.cs: Reimplement the scroll arrow drawing so
8682         that arrows can be scaled.
8683
8684 2005-12-01  Jackson Harper  <jackson@ximian.com>
8685
8686         * TreeNode.cs : Fixed bugs that caused FullPathTest + Traverse to
8687         fail. Patch by Dieter Bremes
8688
8689 2005-11-30  Jackson Harper  <jackson@ximian.com>
8690
8691         * Form.cs: Property is 2.0 only
8692         * PrintDialog.cs: Signature fix.
8693
8694 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8695
8696         * TextControl.cs: 
8697           - No longer artificially moves text 2 pixels down (now that we have
8698             borders this is no longer needed)
8699           - Added calcs for left, hanging and right indent
8700
8701 2005-11-23  Mike Kestner  <mkestner@novell.com>
8702
8703         * Menu.cs: mark MenuChanged internal, since it's not exposed by MS.
8704
8705 2005-11-30  Jackson Harper  <jackson@ximian.com>
8706
8707         * MdiChildContext.cs: Set the cloned menus forms, as these don't
8708         get cloned as part of CloneMenu ().
8709         * Menu.cs: Make sure the parent of the items get set correctly
8710         when they are added.  And the owners are notified of the changes.
8711         * Form.cs: Create an ActiveMenu property, so that when MDI is used
8712         we can change the menu being displayed/handled by the form without
8713         changing the menu assosciated with the form.
8714         - Don't let Mdi children draw/handle menus.
8715         
8716 2005-11-30  Jackson Harper  <jackson@ximian.com>
8717
8718         * Menu.cs: Switch the MenuChanged method to OnMenuChanged and add
8719         a MenuChanged event. Just to make the API a little more
8720         consistent.
8721         * MainMenu.cs:
8722         * MenuItem.cs: Use the new OnMenuChanged
8723         * MdiChildContext.cs: Handle menu merging.
8724         * Form.cs: Implement MergedMenu.
8725         
8726 2005-11-30  Jackson Harper  <jackson@ximian.com>
8727
8728         * Menu.cs: We were misusing Add. Add goes behind the specified
8729         index according to the docs, and does not replace the specified
8730         index. So I added an Insert method.
8731
8732 2005-11-30  Peter Dennis Bartok  <pbartok@novell.com>
8733
8734         * TextBoxBase.cs:  Implemented Ctrl-Ins (Copy), Shift-Ins (Paste) and
8735           Shift-Del (Cut), apparently Emacs uses these old Win 2.x keys. This
8736           is for Jackson
8737         * RichTextBox.cs: Added calls to base for DnD events
8738
8739 2005-11-28  Peter Dennis Bartok  <pbartok@novell.com>
8740
8741         * TextControl.cs:
8742           - Fixed drag-selection related crash; style fixes
8743           - Implemented undo class
8744             o Implemented method to capture document state for specified
8745               range in document tree
8746             o Implemented method to restore captured document state
8747             o Implemented cursor tracking
8748             o Implemented basic undo stack
8749           - Added undo cursor tracking to methods altering cursor location
8750           - Added undo tracking to selection deletion (still missing
8751             other text-altering hookups)
8752         * RichTextBox.cs:
8753           - Added SelectionLength property
8754           - Implemented CanPaste()
8755           - Implemented Paste()
8756           - Added missing protected methods
8757           - Fixed RTF->Document conversion; now uses font index 0 and color 
8758             index 0 as the default font for the parsed text
8759           - Fixed RTF<->Document font size translation
8760           - Fixed RTF generation, now properly handles cross-tag boundaries
8761             for single line selection
8762           - No longer always appends blank line to generated RTF
8763           - Removed TODOs
8764           - Added missing attributes
8765           - Hooked up undo-related methods
8766         * TextBoxBase.cs:
8767           - Implemented Copy()
8768           - Implemented Paste()
8769           - Implemented Cut()
8770           - Fixed caret mis-behaviour on backspace across line-boundaries
8771
8772 2005-11-29  Jackson Harper  <jackson@ximian.com>
8773
8774         * MdiClient.cs: Add a method for activating mdi children. Very
8775         basic right now. I imagine someday it might need more girth.
8776         * MenuItem.cs: Implement MDI lists. When mdilist is true the mdi
8777         children windows names are added to the menu item.
8778         * ThemeWin32Classic.cs: Draw the arrow if the item is an
8779         mdilist. This happens regardless of whether or not there are any
8780         mdi windows to see in the list, and according to my tests happens
8781         before the items are even added. Also happens if there isn't even
8782         an mdi client to get windows from.
8783
8784 2005-11-29  Alexander Olk  <alex.olk@googlemail.com>
8785
8786         * ThemeWin32Classic.cs: Make DrawFlatStyleRadioButton protected
8787         * ThemeNice.cs: Fix drawing of flatstyle radiobuttons
8788
8789 2005-11-29  Jordi Mas i Hernandez <jordimash@gmail.com>
8790
8791         * DataGridTableStyle.cs:
8792           - Create always the styles for the missing columns even if they are
8793             provided by the user (not default table style)
8794         * DataGrid.cs:
8795           - Fixes bug 76770
8796           - Fixes SetDataBinding (always re-attach source)
8797           - Fixes SetNewDataSource (only clear styles if they are not for 
8798             this source)
8799          -  Expands OnTableStylesCollectionChanged to handle style refresh 
8800             and remove properly
8801
8802 2005-11-29  Jackson Harper  <jackson@ximian.com>
8803
8804         * FileDialog.cs: Implement missing bits, remove some dead
8805         code.
8806         * FontDialog.cs: Implement missing Apply stuff, and ToString. Move
8807         creation of the panel so that the options set on the dialog are
8808         seen when the panel is created.
8809         * TreeView.cs: raise a click when items are clicked.
8810         
8811 2005-11-29  Jackson Harper  <jackson@ximian.com>
8812
8813         * MdiClient.cs: Pass some signature methods through to base.
8814
8815 2005-11-28  Jackson Harper  <jackson@ximian.com>
8816
8817         * ListView.cs: Raise the click event when items are clicked.
8818
8819 2005-11-28  Jackson Harper  <jackson@ximian.com>
8820
8821         * MdiClient.cs: Make this algorithm even more beautiful.  And fix
8822         a nullref.
8823
8824 2005-11-27  Alexander Olk  <alex.olk@googlemail.com>
8825
8826         * ThemeNice.cs: - Removed 1 pixel bitmaps
8827           - Use SmoothingMode.AntiAlias where it makes sense
8828             (ScrollButton arrow for example)
8829           - Enhanced Button focus drawing
8830           - Fixed ComboBox drawing (no artefacts anymore, focus
8831             rectangle is back again, reduced size of ComboButton, etc.)
8832           - Fixed RadioButton focus drawing for Appearence.Button
8833           - Slight ScrollButton redesign
8834           - Some LinearGradientBrush size fixes
8835           - GroupBoxes have now rounded edges
8836           - Fixed StatusBar drawing
8837
8838 2005-11-25  Alexander Olk  <alex.olk@googlemail.com>
8839
8840         * ThemeNice.cs: - Remove dead code
8841           - use correct background colors for menus, etc.
8842           - Fake pixel drawing with 1 pixel bitmaps
8843
8844 2005-11-24  Jackson Harper  <jackson@ximian.com>
8845
8846         * MdiClient.cs: Size the scrollbars when resizing the window.
8847         - Resize the maximized windows when the client is resized
8848         * Form.cs: Make the child context available
8849         
8850 2005-11-23  Jackson Harper  <jackson@ximian.com>
8851
8852         * MdiChildContext.cs: Don't size windows if they are maximized.
8853
8854 2005-11-23  Mike Kestner  <mkestner@novell.com>
8855
8856         * ContextMenu.cs: use MenuTracker.
8857         * Control.cs: remove menu handle usage.
8858         * Form.cs: remove menu handle usage.
8859         * Hwnd.cs: remove menu handle usage.
8860         * MainMenu.cs: Draw method moved here from MenuAPI.DrawMenuBar. Proxy
8861         motion and clicks to the new Tracker handlers.
8862         * Menu.cs: add sizing accessors, SelectedItem prop, kill CreateItems
8863         and handle usage.
8864         * MenuAPI.cs: refactored to combine popup and menubar event handling.
8865         Killed the MENU and MENUITEM data types and associated collections
8866         since we now keep the info on Menu and MenuItem. Expanded TRACKER into
8867         MenuTracker class that exposes the leftovers from the old MenuAPI
8868         static methods. Restructured Capture handling so that only one grab is
8869         done for the entire menu hierarchy instead of handing off grabs to
8870         submenus. Tracker now has an invisible control to Capture when active.
8871         * MenuItem.cs: add sizing accessors, kill Create
8872         and handle usage.
8873         * Theme.cs: remove menu handle and MENU(ITEM) usage.
8874         * ThemeWin32Classic.cs: use Menu/MenuItem sizing props instead of
8875         MENU(ITEM). remove menu handle usage, use Menu directly.
8876         * XplatUIDriver.cs: remove menu handle usage.
8877         * XplatUIOSX.cs: remove menu handle usage.
8878         * XplatUIWin32.cs: remove menu handle usage.
8879         * XplatUIX11.cs: remove menu handle usage.
8880
8881 2005-11-22  Jackson Harper  <jackson@ximian.com>
8882
8883         * Hwnd.cs: Don't compute the menu size for
8884         DefaultClientRectangle.
8885         - Reenable menu sizes being computed for GetClienRectangle.
8886         * Form.cs: Remove comment of trechery
8887         
8888 2005-11-22  Jackson Harper  <jackson@ximian.com>
8889
8890         * Hwnd.cs: The adjustments for the menu bar are made when it is
8891         attached to the form.
8892
8893 2005-11-19  Jackson Harper  <jackson@ximian.com>
8894
8895         * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
8896         (just like on windows).
8897
8898 2005-11-19  Jackson Harper  <jackson@ximian.com>
8899
8900         * MdiChildContext.cs: Handle all the buttons ourselves. We can't
8901         use real buttons anymore because they are in non client area. The
8902         one TODO here is that I need to somehow invalidate a section of
8903         the non client area.
8904
8905 2005-11-18  Jackson Harper  <jackson@ximian.com>
8906
8907         * Control.cs: Put the enum check back in now that MDI doesnt have
8908         to use this to set border styles.
8909         * Form.cs: Only set mdi child windows borders if the handle has
8910         been created.
8911         * MdiChildContext.cs: Don't set the InternalBorderStyle, just pass
8912         this directly on to the driver.
8913         - Get the move start position before adjusting for the titlebar
8914         height, this fixes the windows "skipping" when they are first
8915         moved.
8916
8917 2005-11-18  Jackson Harper  <jackson@ximian.com>
8918
8919         * XplatUIX11.cs: Just compute the mdi borders separately as they
8920         don't totally match up with normal form borders.
8921
8922 2005-11-18  Jackson Harper  <jackson@ximian.com>
8923
8924         * Control.cs: Set WS_ styles for borders, so that the driver does
8925         not have to retrieve the control instance to figure out what kind
8926         of borders it should have.
8927         * Form.cs: Set the WS_EX_MDICHILD flag on mdi children, so the
8928         driver can know its an mdi child easily.
8929         * XplatUIX11.cs: Get the border styles and whether the window is
8930         MDI from the Styles and ExStyles params instead of having to get a
8931         control. This prevents a chicken and egg problem.       
8932
8933 2005-11-18  Jackson Harper  <jackson@ximian.com>
8934
8935         * MdiClient.cs: Fix typo so scrollbars show up correctly.
8936
8937 2005-11-18  Jackson Harper  <jackson@ximian.com>
8938
8939         * MdiClient.cs: Calculate when to add and remove scrollbars
8940         correctly.
8941         * MdiChildContext.cs: Adjust the y position to take the titlebar
8942         into account.
8943         - No height for FormBorderStyle.None
8944
8945 2005-11-18  Jackson Harper  <jackson@ximian.com>
8946
8947         * Control.cs: Allow non enum values to be used for
8948         InternalBorderStyle.  MDI does this to set a special border style.
8949         - New utility methods for converting points to/from client coords
8950         - Add the newly created control to the Controls collection before
8951         updating its style. This way UpdateStyle can walk the control
8952         heirarchy to find the control if needed.
8953         so I don't need to create a new Point object all the time.
8954         * Form.cs: Let MDI windows handle their border styles.
8955         - Set styles on MDI windows so the correct title style is derived.
8956         * MdiChildContext.cs: Move all the painting and window handling
8957         into the non client area.
8958         - Use correct sizing and put correct buttons on frames based on
8959         the FormBorderStyle.
8960         - Notify the mdi client about scrolling
8961         - Need to handle the buttons ourselves now, because they are all
8962         in non client areas and we can't add controls there.
8963         * MdiClient.cs: Halfway to scrolling, this implementation is
8964         somewhat broken though, we need to check to make sure other
8965         windows aren't causing scrolling before removing the bars. Also
8966         the bars need to be drawn on top, maybe I can switch implicit
8967         controls to be on top.
8968         * Hwnd.cs: caption_height and tool_caption_height are now
8969         properties of an hwnd, this way they can be set by the driver
8970         based on the type of window they are.  In X11 the window manager
8971         handles the decorations so caption_height is zero unless its an
8972         MDI window.
8973         - Add 3 pixel borders for MDI windows (0xFFFF).
8974         - Get rid of some code duplication, have DefaultClientRectanle
8975         just call GetClientRectangle.
8976         * XplatUIX11.cs: Pass caption_height and tool_caption_height to
8977         Hwnd now.
8978         - Set border styles differently for mdi windows.
8979         * XplatUIOSX.cs: Pass caption_height and tool_caption_height to
8980         Hwnd now.
8981         
8982 2005-11-15  Mike Kestner  <mkestner@novell.com>
8983
8984         * Menu.cs: when adding an item to the collection, if item is already 
8985         parented, remove it from the parent.
8986
8987 2005-11-13  Alexander Olk  <alex.olk@googlemail.com>
8988
8989         * X11DesktopColors.cs: Added KDE support
8990
8991 2005-11-11  Peter Dennis Bartok  <pbartok@novell.com>
8992
8993         * XplatUIWin32.cs: 
8994           - Clipboard methods now can translate Rtf format
8995           - No longer removes clipboard contents whenever a new format is added
8996             to allow placing multiple formats on the clipboard
8997         * Clipboard.cs: Clipboard now supports getting a IDataObject and
8998           will place all formats contained in it onto the clipboard. Also
8999           now cleans the clipboard before placing a new object onto it
9000         * RichTextBox.cs:
9001           - Implemented set_Rtf
9002           - Implemented set_SelectedRtf
9003           - Created InsertRTFFromStream() method to allow single code base
9004             for all properties and methods that insert RTF into document
9005           - Removed debug output
9006         * TextControl.cs:
9007           - Fixed Delete(int) to fix up line numbers
9008           - Fixed ReplaceSelection to combine start and end line
9009           - Fixed serious DeleteChars bug that would leave the document tree
9010             broken
9011           - Improved DumpTree with several logic checks to detect broken
9012             document trees
9013           - Removed debug lines
9014           - Fixed Caret.WordForward/WordBack moving code, now always also 
9015             updates caret.tag (fixes crash when word-selecting across tag
9016             boundaries via keyboard)
9017           - Added Insert() method for inserting multiline text into documents
9018           - Fixed DeleteChars() calculation errors that would cause a broken
9019             tag chain with multiple tag lines
9020           - DeleteChars() no longer crashes on multi-tag lines if not all tags
9021           - Split() no longer moves caret if split is at caret location
9022           - ReplaceSelection() now updates the cursor and re-displays it
9023           - ReplaceSelection() now uses new Insert() method to avoid code
9024             duplication
9025           - FormatText() can now handle formatting partial lines
9026         * TextBoxBase.cs:
9027           - Append now uses new TextControl.Insert() method (this avoids 
9028             duplicate code)
9029           - Implemented Ctrl-X (Cut) (
9030           - Implemented Ctrl-C (Copy)
9031           - Implemented Ctrl-V (Paste) (Still some bugs related to screen 
9032             regeneration when pasting text; roundtripping Copy&Paste within
9033             edit control still fails due to some calculation bugs in GenerateRTF)
9034           - The Delete key will now remove the current selection if it is visible
9035         * TextBox.cs: Removed debug lines
9036         * XplatUI.cs: Trigger initialization of DataFormats (which requires the
9037           driver to be initialized and can't therefore be done via a static ctor)
9038
9039 2005-11-10  Peter Dennis Bartok  <pbartok@novell.com>
9040
9041         * TextControl.cs: Added backend code for finding char arrays and strings
9042         * TextBoxBase.cs:
9043           - Added mouse wheel scroll support
9044           - Added support for VScroll and HScroll events
9045         * RichTextBox.cs:
9046           - Implemented all seven Find() variants
9047           - Implemented GetCharFromPosition()
9048           - Implemented GetCharIndexFromPosition()
9049           - Implemented GetLineFromIndex()
9050           - Implemented GetPositionFromCharIndex();
9051           - Implemented SaveFile for PlainText and UnicodeText
9052           - Fixed set_Font, now setting a new font applies that font to
9053             the whole document
9054           - Implemented generic Document to RTF converter
9055           - Implemented SaveFile for RichText format (still missing unicode
9056             conversion for non-ansi chars)
9057           - Implemented get_Rtf
9058           - Implemented get_SelectedRtf
9059
9060 2005-11-09  Peter Dennis Bartok  <pbartok@novell.com>
9061
9062         * Control.cs (WndProc): Call HandleClick after having sent OnMouseUp
9063           to allow any captures to be released before triggering OnClick. This
9064           way a click handler may capture the mouse without interference.
9065         * XplatUIX11.cs: Always send mouse messages to grab window if one exists.
9066           This way we send them even though X may not allow a grab (if the window
9067           isn't visible, for example)
9068
9069 2005-11-08  Pedro Martinez Julia <pedromj@gmail.com>
9070
9071         * DataGridViewRowEventArgs.cs: DataGridView implementation
9072         * DataGridViewElement.cs: DataGridView implementation
9073         * DataGridViewComboBoxCell.cs: DataGridView implementation
9074         * DataGridViewDataErrorContexts.cs: DataGridView implementation
9075         * DataGridViewCellErrorTextNeededEventArgs.cs: DataGridView implementation
9076         * DataGridViewColumnHeadersHeightSizeMode.cs: DataGridView implementation
9077         * ImageLayout.cs: DataGridView implementation
9078         * DataGridViewComboBoxColumn.cs: DataGridView implementation
9079         * DataGridViewCellMouseEventHandler.cs: DataGridView implementation
9080         * DataGridViewSelectionMode.cs: DataGridView implementation
9081         * IDataGridViewEditingControl.cs: DataGridView implementation
9082         * DataGridViewSortCompareEventHandler.cs: DataGridView implementation
9083         * DataGridViewCellStyleContentChangedEventHandler.cs: DataGridView implementation
9084         * DataGridViewAutoSizeModeEventHandler.cs: DataGridView implementation
9085         * DataGridViewColumnStateChangedEventHandler.cs: DataGridView implementation
9086         * DataGridViewColumnSortMode.cs: DataGridView implementation
9087         * DataGridView.cs: DataGridView implementation
9088         * DataGridViewRowStateChangedEventHandler.cs: DataGridView implementation
9089         * DataGridViewRowPostPaintEventArgs.cs: DataGridView implementation
9090         * DataGridViewDataErrorEventArgs.cs: DataGridView implementation
9091         * Padding.cs: DataGridView implementation
9092         * DataGridViewCellParsingEventArgs.cs: DataGridView implementation
9093         * DataGridViewCellStateChangedEventHandler.cs: DataGridView implementation
9094         * DataGridViewRowEventHandler.cs: DataGridView implementation
9095         * DataGridViewCellPaintingEventHandler.cs: DataGridView implementation
9096         * DataGridViewCellFormattingEventHandler.cs: DataGridView implementation
9097         * DataGridViewButtonCell.cs: DataGridView implementation
9098         * DataGridViewCellStyleContentChangedEventArgs.cs: DataGridView implementation
9099         * DataGridViewEditMode.cs: DataGridView implementation
9100         * DataGridViewCellValueEventArgs.cs: DataGridView implementation
9101         * DataGridViewRowCancelEventArgs.cs: DataGridView implementation
9102         * DataGridViewRowHeadersWidthSizeMode.cs: DataGridView implementation
9103         * DataGridViewCheckBoxColumn.cs: DataGridView implementation
9104         * DataGridViewCellToolTipTextNeededEventHandler.cs: DataGridView implementation
9105         * DataGridViewAutoSizeColumnsMode.cs: DataGridView implementation
9106         * DataGridViewCellEventHandler.cs: DataGridView implementation
9107         * DataGridViewEditingControlShowingEventHandler.cs: DataGridView implementation
9108         * DataGridViewCellStyleConverter.cs: DataGridView implementation
9109         * DataGridViewSelectedRowCollection.cs: DataGridView implementation
9110         * DataGridViewBindingCompleteEventHandler.cs: DataGridView implementation
9111         * DataGridViewColumnEventArgs.cs: DataGridView implementation
9112         * DataGridViewRowHeightInfoPushedEventHandler.cs: DataGridView implementation
9113         * DataGridViewRowContextMenuStripNeededEventHandler.cs: DataGridView implementation
9114         * QuestionEventArgs.cs: DataGridView implementation
9115         * IDataGridViewEditingCell.cs: DataGridView implementation
9116         * DataGridViewTriState.cs: DataGridView implementation
9117         * DataGridViewColumnDesignTimeVisibleAttribute.cs: DataGridView implementation
9118         * DataGridViewCellStateChangedEventArgs.cs: DataGridView implementation
9119         * DataGridViewColumnCollection.cs: DataGridView implementation
9120         * DataGridViewCellValueEventHandler.cs: DataGridView implementation
9121         * DataGridViewRowDividerDoubleClickEventHandler.cs: DataGridView implementation
9122         * DataGridViewCellFormattingEventArgs.cs: DataGridView implementation
9123         * DataGridViewColumn.cs: DataGridView implementation
9124         * DataGridViewCellBorderStyle.cs: DataGridView implementation
9125         * DataGridViewCellContextMenuStripNeededEventHandler.cs: DataGridView implementation
9126         * DataGridViewCellValidatingEventArgs.cs: DataGridView implementation
9127         * DataGridViewRow.cs: DataGridView implementation
9128         * DataGridViewImageCellLayout.cs: DataGridView implementation
9129         * DataGridViewImageCell.cs: DataGridView implementation
9130         * DataGridViewTopLeftHeaderCell.cs: DataGridView implementation
9131         * DataGridViewCheckBoxCell.cs: DataGridView implementation
9132         * DataGridViewHeaderCell.cs: DataGridView implementation
9133         * DataGridViewCellErrorTextNeededEventHandler.cs: DataGridView implementation
9134         * DataGridViewRowHeightInfoPushedEventArgs.cs: DataGridView implementation
9135         * DataGridViewAutoSizeColumnsModeEventHandler.cs: DataGridView implementation
9136         * DataGridViewTextBoxColumn.cs: DataGridView implementation
9137         * QuestionEventHandler.cs: DataGridView implementation
9138         * DataGridViewCellStyleScopes.cs: DataGridView implementation
9139         * DataGridViewSortCompareEventArgs.cs: DataGridView implementation
9140         * DataGridViewCellContextMenuStripNeededEventArgs.cs: DataGridView implementation
9141         * DataGridViewCell.cs: DataGridView implementation
9142         * DataGridViewCellEventArgs.cs: DataGridView implementation
9143         * DataGridViewClipboardCopyMode.cs: DataGridView implementation
9144         * DataGridViewCellStyle.cs: DataGridView implementation
9145         * DataGridViewColumnHeaderCell.cs: DataGridView implementation
9146         * DataGridViewRowPrePaintEventHandler.cs: DataGridView implementation
9147         * DataGridViewRowCancelEventHandler.cs: DataGridView implementation
9148         * TextFormatFlags.cs: DataGridView implementation
9149         * DataGridViewCellToolTipTextNeededEventArgs.cs: DataGridView implementation
9150         * DataGridViewDataErrorEventHandler.cs: DataGridView implementation
9151         * DataGridViewAdvancedCellBorderStyle.cs: DataGridView implementation
9152         * DataGridViewCellPaintingEventArgs.cs: DataGridView implementation
9153         * DataGridViewButtonColumn.cs: DataGridView implementation
9154         * DataGridViewRowsRemovedEventArgs.cs: DataGridView implementation
9155         * HandledMouseEventArgs.cs: DataGridView implementation
9156         * DataGridViewCellParsingEventHandler.cs: DataGridView implementation
9157         * DataGridViewColumnDividerDoubleClickEventHandler.cs: DataGridView implementation
9158         * DataGridViewCellMouseEventArgs.cs: DataGridView implementation
9159         * DataGridViewAutoSizeRowsMode.cs: DataGridView implementation
9160         * DataGridViewRowCollection.cs: DataGridView implementation
9161         * DataGridViewAdvancedBorderStyle.cs: DataGridView implementation
9162         * DataGridViewCellCancelEventHandler.cs: DataGridView implementation
9163         * DataGridViewHitTestType.cs: DataGridView implementation
9164         * DataGridViewAutoSizeModeEventArgs.cs: DataGridView implementation
9165         * DataGridViewColumnStateChangedEventArgs.cs: DataGridView implementation
9166         * DataGridViewColumnEventHandler.cs: DataGridView implementation
9167         * DataGridViewRowDividerDoubleClickEventArgs.cs: DataGridView implementation
9168         * DataGridViewAutoSizeRowMode.cs: DataGridView implementation
9169         * DataGridViewRowHeightInfoNeededEventArgs.cs: DataGridView implementation
9170         * DataGridViewRowsDeletedEventArgs.cs: DataGridView implementation
9171         * DataGridViewTextBoxEditingControl.cs: DataGridView implementation
9172         * DataGridViewContentAlignment.cs: DataGridView implementation
9173         * DataGridViewRowPostPaintEventHandler.cs: DataGridView implementation
9174         * DataGridViewComboBoxEditingControl.cs: DataGridView implementation
9175         * DataGridViewCellValidatingEventHandler.cs: DataGridView implementation
9176         * DataGridViewSelectedColumnCollection.cs: DataGridView implementation
9177         * DataGridViewPaintParts.cs: DataGridView implementation
9178         * DataGridViewCellCollection.cs: DataGridView implementation
9179         * DataGridViewRowsAddedEventArgs.cs: DataGridView implementation
9180         * DataGridViewImageColumn.cs: DataGridView implementation
9181         * DataGridViewRowsRemovedEventHandler.cs: DataGridView implementation
9182         * DataGridViewElementStates.cs: DataGridView implementation
9183         * DataGridViewRowHeightInfoNeededEventHandler.cs: DataGridView implementation
9184         * DataGridViewColumnDividerDoubleClickEventArgs.cs: DataGridView implementation
9185         * DataGridViewRowPrePaintEventArgs.cs: DataGridView implementation
9186         * DataGridViewRowStateChangedEventArgs.cs: DataGridView implementation
9187         * DataGridViewEditingControlShowingEventArgs.cs: DataGridView implementation
9188         * DataGridViewCellCancelEventArgs.cs: DataGridView implementation
9189         * DataGridViewRowHeaderCell.cs: DataGridView implementation
9190         * DataGridViewBindingCompleteEventArgs.cs: DataGridView implementation
9191         * DataGridViewTextBoxCell.cs: DataGridView implementation
9192         * DataGridViewBand.cs: DataGridView implementation
9193         * DataGridViewAutoSizeColumnModeEventArgs.cs: DataGridView implementation
9194         * DataGridViewHeaderBorderStyle.cs: DataGridView implementation
9195         * DataGridViewRowsAddedEventHandler.cs: DataGridView implementation
9196         * DataGridViewAutoSizeColumnMode.cs: DataGridView implementation
9197         * DataGridViewAutoSizeColumnModeEventHandler.cs: DataGridView implementation
9198         * DataGridViewAutoSizeColumnsModeEventArgs.cs: DataGridView implementation
9199         * DataGridViewRowErrorTextNeededEventHandler.cs: DataGridView implementation
9200         * DataGridViewSelectedCellCollection.cs: DataGridView implementation
9201         * DataGridViewRowContextMenuStripNeededEventArgs.cs: DataGridView implementation
9202         * DataGridViewRowErrorTextNeededEventArgs.cs: DataGridView implementation
9203         * DataGridViewComboBoxDisplayStyle.cs: DataGridView implementation
9204
9205 2005-11-08  Peter Dennis Bartok  <pbartok@novell.com>
9206
9207         * ThemeWin32Classic.cs: 
9208           - Draw the outside focus rectangle around buttons
9209           - Use CPDrawFocusRectangle to draw focus rectangles until Cairo
9210             doesn't use end caps for every dash of a line anymore. This
9211             workaround ignores the forecolor.
9212
9213 2005-11-08  Kornél Pál  <kornelpal@hotmail.com>
9214
9215         * ImageList.cs: Don't use ArgbColor with LayoutKind.Explicit as it isn't
9216           endian safe.
9217
9218 2005-11-07  Jackson Harper  <jackson@ximian.com>
9219
9220         * X11Dnd.cs: Set the X/Y positions on the DragEventArgs correctly.
9221
9222 2005-11-07  Jackson Harper  <jackson@ximian.com>
9223
9224         * ScrollableControl.cs: Calculate the maximum and change vars
9225         (more) correctly so that scrollbars appear as a sensible size.
9226
9227 2005-11-04  Jackson Harper  <jackson@ximian.com>
9228
9229         * TreeNodeCollection.cs: Refresh when nodes are cleared from the
9230         collection.
9231         * TreeView.cs: When the tree is sorted null out the top_node so
9232         that it is recalculated.
9233         - Use dotted lines instead of dashed lines to match MS better.
9234
9235 2005-11-04  Jordi Mas i Hernandez <jordimash@gmail.com>
9236
9237         * ListView.cs: 
9238           - Implements key search for items. Useful when browsing files with FileDialog
9239           - When changing view mode or when clear the items reset scrollbar positions
9240
9241 2005-11-04  Jackson Harper  <jackson@ximian.com>
9242
9243         * CurrencyManager.cs: Implement the MetaDataChanged event, the
9244         Reset method, and the CheckEmpty. CheckEmpty is just a total guess
9245         as to what the method may do as there is no real way of creating a
9246         derived CurrencyManager and calling the method. 
9247
9248 2005-11-03  Jackson Harper  <jackson@ximian.com>
9249
9250         * ThemeWin32Classic.cs: Implement ownerdrawing in the tab control
9251         * TabControl.cs: Add Ownerdrawing bits, add the UpdateTabSelection
9252         method which seems to just be used internally to refresh the tabs.
9253
9254 2005-11-03  Jackson Harper  <jackson@ximian.com>
9255
9256         * TabControl.cs: Implement the remove method. Fix some broken
9257         comments.
9258
9259 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9260
9261         * DateTimePicker.cs:
9262           - Added missing DateTimePickerAccessibleObject class
9263           - Added missing events
9264           - Added OnFontChanged method
9265         * Form.cs: Added missing attributes
9266         * TreeView.cs: Added missing attributes
9267
9268 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com> 
9269
9270         * GridItemCollection.cs: Fix signatures
9271
9272 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9273
9274         * XplatUI.cs: Updated build rev/date
9275         * ComboBox.cs, DataGridTextBoxColumn.cs Control.cs, 
9276           DataGridTableStyle.cs, DataGrid.cs, DateTimePicker.cs: Signature fixes
9277         * Application.cs: Trigger context-specific ExitThread events
9278
9279 2005-11-03  Jackson Harper  <jackson@ximian.com>
9280
9281         * Menu.cs:
9282         * MainMenu.cs:
9283         * GridTableStylesCollection.cs:
9284         * Timer.cs:
9285         * TabPage.cs:
9286         * HelpProvider.cs:
9287         * StatusBar.cs:
9288         * MonthCalendar.cs: Signature fixes
9289
9290 2005-11-03  Jackson Harper  <jackson@ximian.com>
9291
9292         * TreeNodeCollection.cs: Remove should not be virtual.
9293         * TreeView.cs: Implement the last of the missing methods.
9294
9295 2005-11-03  Jackson Harper  <jackson@ximian.com>
9296
9297         * TreeNodeConverter.cs: Implement to get off my class-status back.
9298
9299 2005-11-03  Jackson Harper  <jackson@ximian.com>
9300
9301         * TreeView.cs: Hookup the bits for drag and drop.
9302         * TreeNode.cs: Don't cache the tree_view or index anymore, now
9303         that nodes can be moved from tree to tree easily this just causes
9304         all sorts of problems.
9305         * TreeNodeCollection: Don't need to give treenodes an index and
9306         treeview anymore when they are added, these are computed on the
9307         fly. Also make sure to remove a node before its added.
9308
9309 2005-11-03  Peter Dennis Bartok  <pbartok@novell.com>
9310
9311         * TextControl.cs:
9312           - Added CaretSelection enum
9313           - Added comparison methods to Marker struct, makes selection code
9314             more readable
9315           - Added SelectionStart and SelectionEnd as 'moveable' location for
9316             the CaretDirection enum and handler
9317           - Added selection_prev variable to track optimized invalidation for
9318             word and line selection
9319           - Added SelectionVisible property (returns true if there is a valid 
9320             selection)
9321           - Switched CaretHasFocus to only display the caret if there is no
9322             visible selection
9323           - Avoiding StringBuilder.ToString to retrieve a single char, instead
9324             using the direct character index; should be much faster
9325           - Added various conditional debug statements
9326           - Fixed invalidation calculation for selection ranges
9327           - Added ExpandSelection() method to support word and line selection
9328           - Switched SetSelectionToCaret to use new Marker compare overloads
9329           - Added central IsWordSeparator() method to determine word 
9330             separators/whitespace and FindWordSeparator() to streamline common
9331             usage of IsWordSeparator()
9332         * TextBoxBase.cs:
9333           - Removed unneeded grabbed variable, it was just mirroring
9334             Control.Capture
9335           - No longer firing OnTextChanged event when Text setter is called,
9336             since the base will fire the event for us
9337           - Added handling of Ctrl-Up/Down selection
9338           - Added handling of Shift-Cursorkey selection
9339           - Added handling for Ctrl-Delete and Ctrl-Backspace to remove
9340             words
9341           - Added handling of Shift and Ctrl-Shift-Home/End selection
9342           - Removed some debug output
9343           - Added handling for single/double/tripple-click to place caret/
9344             select word/select line respectively (Fixes bug #76031)
9345           - Added support for drag expansion of word/line selection
9346         * RichTextBox.cs: Handle GotFocus event to trigger redrawing of
9347           current selection
9348
9349 2005-11-02  Jackson Harper  <jackson@ximian.com>
9350
9351         * X11Dnd.cs: If the drag is going to and from a MWF window just
9352         copy the data instead of sending it out through the X Selection
9353         mechanism.
9354
9355 2005-11-02  Jackson Harper  <jackson@ximian.com>
9356
9357         * X11Dnd.cs:
9358         * XplatUIX11.cs: When in a drag we don't want motion notify
9359         messages to get passed on to the other controls. This prevents
9360         mouse move messages from showing up in the drag source.
9361
9362 2005-11-02  Jackson Harper  <jackson@ximian.com>
9363
9364         * X11Dnd.cs: Remove unneeded call to XAllowEvents.  Make sure that
9365         the correct button is release to end a drag.
9366         * XplatUIX11.cs: Make the button state internal so the drag system
9367         can access it.  Dragging needs to know about all button releases,
9368         not just left button.
9369
9370 2005-11-02  Miguel de Icaza  <miguel@novell.com>
9371
9372         * Form.cs (Icon): If the icon is null, reset the icon to the
9373         default value. 
9374
9375         * Cursor.cs: When writing the AND-mask bitmap do not include the
9376         number of colors, but hardcode those to two (black and white),
9377         fixes the loading of color cursors (Paint Dot Net).
9378
9379         * Form.cs: To debug, allow MONO_MWF_SCALING=disable variable to
9380         turn off autoscaling.
9381
9382         * Cursor.cs: Allow resource type to be 1 or 2 (from ImageMagic).
9383
9384 2005-11-02  Jackson Harper  <jackson@ximian.com>
9385
9386         * X11Dnd.cs: Make sure to send a status message if the pointer
9387         enters a control that can not accept a drop, otherwise the cursor
9388         isn't updated correctly. Also tried to compress the lines of code
9389         a bit.
9390
9391 2005-11-02  Jackson Harper  <jackson@ximian.com>
9392
9393         * X11Dnd.cs: Change cursors based on drag action. Also attempt to
9394         set actions correctly.  This isn't perfect as XDND and win32 have
9395         some differences on how you allow actions. I'll clear this up by
9396         adding a path for drag from MWF to MWF windows.
9397         * XplatUIX11.cs: Hook into the dnd system.
9398
9399 2005-11-02  Jordi Mas i Hernandez <jmas@softcatala.org>
9400
9401         * ListView.cs: Fixes scroll bar visibility. Hide them if they were
9402         previously shown but they are no longer need it. Very obvious when 
9403         browsing files with FileDialog.
9404
9405 2005-11-01  Peter Dennis Bartok  <pbartok@novell.com>
9406
9407         * Control.cs: We always need to call OnPaintBackground. We pretty much
9408           ignore AllPaintingInWmPaint and always do the painting there, whether 
9409           it's set or not, since we always ignore the WM_ERASEBKGND message 
9410           (which we don't generate on X11). This fixes #76616.
9411         * Panel.cs: Removed unneeded background painting. This happens properly
9412           in Control.cs already
9413
9414 2005-10-31  Mike Kestner  <mkestner@novell.com>
9415
9416         * Menu.cs: Add items to collection before setting their index.
9417         * MenuItem.cs : add range checking with ArgumentException like MS.
9418         [Fixes #76510]
9419
9420 2005-10-31  Jackson Harper  <jackson@ximian.com>
9421
9422         * ListBox.cs: Invalidate if the area is visible at all not just
9423         contained in the visible rect. Fixes unselection of semi visible
9424         items.
9425
9426 2005-10-31  Jackson Harper  <jackson@ximian.com>
9427
9428         * Control.cs: Consistently name the dnd methods. Make them
9429         internal so we can override them to match some MS behavoir
9430         internally.
9431         * Win32DnD.cs: Use the new consistent names.
9432
9433 2005-10-31  Jackson Harper  <jackson@ximian.com>
9434
9435         * TreeView.cs: Don't draw the selected node when we lose focus.
9436
9437 2005-10-31  Jackson Harper  <jackson@ximian.com>
9438
9439         * X11Dnd.cs: We still need to reset the state even though a full
9440         reset isn't being done, otherwise status's still get sent all over
9441         the place.
9442
9443 2005-10-31  Jackson Harper  <jackson@ximian.com>
9444
9445         * Control.cs: Make the dnd_aware flag internal so the dnd
9446         subsystem can check it. Catch exceptions thrown in dnd handlers to
9447         match MS behavoir.
9448         * Hwnd.cs: Add a flag for whether or not a window is dnd aware.
9449         * X11Dnd.cs: Handle null data in the converters. Set the XDND
9450         version when sending a XdndEnter. Use the control/hwnd dnd_aware
9451         flags to reduce the number of dnd enters/status's sent.
9452
9453 2005-10-31  Jackson Harper  <jackson@ximian.com>
9454
9455         * X11Dnd.cs: Don't need the sizeof here. Patch by Jordi Mas.
9456
9457 2005-10-31  Jordi Mas i Hernandez <jordi@ximian.com>
9458
9459         * PictureBox.cs: Fixes 76512
9460
9461 2005-10-28  Jackson Harper  <jackson@ximian.com>
9462
9463         * X11Dnd.cs: Early implementation to support winforms being a drag
9464         source for data on X11. Also restructured the converters so they
9465         can go both ways now.
9466         * XplatUIX11.cs: Tie ins to the the Dnd stuff.
9467         
9468 2005-10-27  Peter Dennis Bartok  <pbartok@novell.com>
9469
9470         * XplatUIX11.cs: Fixed FIXME - implemented ASCII encoding for XA_STRING
9471           clipboard requests
9472
9473 2005-10-27  Jackson Harper  <jackson@ximian.com>
9474
9475         * TreeNode.cs: Implement serialization so my DnD examples will work.
9476
9477 2005-10-24  Kornél Pál  <kornelpal@hotmail.com>
9478
9479         * ButtonBase.cs, ListView.cs, NotifyIcon.cs, PictureBox.cs, ToolBar.cs,
9480           TreeView.cs: Don't dispose objects that are not owned.
9481           
9482 2005-10-24  Peter Dennis Bartok  <pbartok@novell.com>
9483
9484         * Cursor.cs: Defaulting the Current cursor to Cursors.Default. We
9485           should retrieve the current cursor and report that, but XplatUI
9486           doesn't (yet) have an interface for that (and I'm not sure I even
9487           can, on X11)
9488         * XplatUIWin32.cs: Fixed override behaviour. The override is temporary,
9489           until any message loop processing is done (and the WM_SETCURSOR
9490           replaces the cursor to the proper one)
9491         * XplatUIX11.cs: 
9492           - Fixed override behaviour, we can't set the cursor globally on X11, 
9493             just for our windows.
9494           - Invalidating the System.Drawing X11 display handle when we are
9495             shutting down
9496         * Control.cs: Fix to make csc happy
9497
9498 2005-10-23  Peter Dennis Bartok  <pbartok@novell.com>
9499
9500         * TextBoxBase.cs: 
9501           - get_Text: Add last line (without trailing newline) to returned
9502             value (Fixes 76212)
9503           - get_TextLength: Count last line in returned length
9504           - ToString: Call Text property instead of duplicating code
9505
9506 2005-10-23  Kornél Pál  <kornelpal@hotmail.com>
9507
9508         * ImageList.cs: Dispose ImageAttributes objects.
9509
9510 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9511
9512         * ImageList.cs: Use attribute constructors with less arguments where
9513           possible.
9514
9515 2005-10-22  Kornél Pál  <kornelpal@hotmail.com>
9516
9517         * ImageList.cs: Added lastKeyIndex field and use in IndexOfKey.
9518           Use typeof instead of strings when assembly is referenced. Added
9519           some more comments.
9520
9521 2005-10-21  Jackson Harper  <jackson@ximian.com>
9522
9523         * ListView.cs: Raise a double click event. Also tried to somewhat
9524         fix when the selectedindexchanged event is raised. Its still
9525         broken though.
9526
9527 2005-10-21  Jackson Harper  <jackson@ximian.com>
9528
9529         * TreeView.cs: New method to invalidate the plus minus area of a
9530         node without invalidating the whole node (maybe this can be used
9531         in some more places).
9532         * TreeNodeCollection.cs: When adding to an empty node we need to
9533         invalidate its plus minus area so the little block shows up.
9534         
9535 2005-10-21  Jackson Harper  <jackson@ximian.com>
9536
9537         * TreeView.cs: Make sure that when we invalidate a node the bounds
9538         are big enough to cover the selected box and the focus
9539         rectangle. Use a different colour for the lines connecting nodes
9540         so they show up with all themes.
9541
9542 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9543
9544         * NativeWindow.cs: Don't call anything that could call into the driver,
9545           we might be on a different thread.
9546
9547 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com> 
9548
9549         * Control.cs(Dispose): Since Dispose might run on a different thread,
9550           make sure that we call methods that could call into the driver via
9551           invoke, to avoid thread issues
9552
9553 2005-10-21  Peter Dennis Bartok  <pbartok@novell.com>
9554
9555         * XplatUI.cs: Removed finalizer
9556         * XplatUIX11.cs: Removed Destructor, was causing crashes due to X11
9557           not allowing to be called on the finalizer thread.
9558
9559 2005-10-21  Kornél Pál  <kornelpal@hotmail.com>
9560
9561         * ImageList.cs:
9562           - Reverted r51889 and r51891.
9563           - Added ImageListItem class that stores unmodified image items and image
9564             properties required to create list images until handle is created.
9565           - Added AddItem and moved image creation logic to AddItemInternal.
9566           - Added CreateHandle method that creates images based on unmodified items.
9567           - Added DestroyHandle that changes state to store unmodified items.
9568           - Add and AddStrip methods no more create handle.
9569           - ReduceColorDepth has no return value.
9570           - Dispose destroys handle.
9571           - Modified other methods to reflect the above changes.
9572           - Implemented key support.
9573           - Added profile 2.0 members and attributes.
9574           - Added private Reset and ShouldSerialize methods that provide the same
9575             behavior as MS.NET but the Visual Studio .NET designer seems to ignore
9576             them as they are private.
9577           - Added some more comments about implementation details.
9578
9579 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9580
9581         * DataGrid.cs: Adds support for vertical scrolling using the mousewheel
9582
9583 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9584
9585         * Binding.cs: No PushData/PullData if there is no binding (fixes crash)
9586
9587 2005-10-21  Jordi Mas i Hernandez <jordi@ximian.com>
9588
9589         * DataGridDrawingLogic.cs: Fixes column hit calcultation
9590         * DataGridColumnStyle.cs: Remove debug message
9591
9592 2005-10-20  Jackson Harper  <jackson@ximian.com>
9593
9594         * TreeView.cs: We can always get input keys regardless of whether
9595         or not editing is enabled. They are used for navigation.
9596
9597 2005-10-20  Jackson Harper  <jackson@ximian.com>
9598
9599         * TreeNode.cs: Use the viewport rect for determining if a node
9600         needs to be moved for visibility. Don't use Begin/End edit. This
9601         calls a full refresh when its done.
9602         * TreeView.cs: New SetBottom works correctly.  Make the viewport
9603         rect property internal so the treenodes can see it. When clicking
9604         on a node we need to ensure that its visible because it might just
9605         be partly visible when clicked.
9606
9607 2005-10-20  Jackson Harper  <jackson@ximian.com>
9608
9609         * TreeNodeCollection.cs: Remove debug code.
9610
9611 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9612
9613         * Datagrid.cs: Implements column sorting in Datagrid
9614         * DataGridColumnStyle.cs: Implements column sorting in Datagrid
9615
9616 2005-10-20  Jackson Harper  <jackson@ximian.com>
9617
9618         * TreeNodeCollection.cs: Remove items properly. Update the correct
9619         area after removing them.
9620
9621 2005-10-20  Jordi Mas i Hernandez <jordi@ximian.com>
9622
9623         * Datagrid.cs: Should not call base.OnPaintBackground
9624
9625 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9626
9627         * XplatUIX11.cs (GetMessage):
9628           - Now properly calculates NC_xBUTTONDOWN coordinates off the whole
9629             window instead of client window
9630           - Now properly calculates NC_xBUTTONUP message coordinates
9631           - ScreenToMenu now properly calculates it's coordinates of whole 
9632             window, since menus are in the whole window, not in the client
9633             window
9634           - Added WholeToScreen coordinate translation method
9635
9636 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com> 
9637
9638         * XplatUIX11.cs (GetMessage): Don't return in situations where we don't
9639           want to return a message, loop back to the beginning of the function
9640           and grab the next real message to process instead.
9641
9642 2005-10-20  Peter Dennis Bartok  <pbartok@novell.com>
9643
9644         * Splitter.cs: Properly set limits if no filler control is used
9645
9646 2005-10-19  Jackson Harper  <jackson@ximian.com>
9647
9648         * ColorDialog.cs: Don't show the help button if it is not enabled
9649         instead of disabling it (this is what MS does). Don't create the
9650         panel until the dialog is run, otherwise the vars (such as
9651         ShowHelp) are not set yet.
9652
9653 2005-10-19  Jackson Harper  <jackson@ximian.com>
9654
9655         * TreeView.cs: Implement Begin/EndEdit more correctly so refreshes
9656         are reduced when adding nodes.
9657         * TreeNode.cs:
9658         * TreeNodeCollection.cs: Use UpdateNode instead of refreshing the
9659         tree.
9660         
9661 2005-10-19  Jackson Harper  <jackson@ximian.com>
9662
9663         * FolderBrowserDialog.cs: End editing our treeview so the window
9664         actually gets refreshed.
9665
9666 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9667
9668         * Control.cs: Fixed logic flip on when to call OnPaintBackground. 
9669           Obsoleted handling of WM_ERASEBKGND, now always draws our background
9670           inside of WM_PAINT
9671
9672 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9673
9674         * MenuAPI.cs: Returns after Hidding window
9675         * XplatUIX11.cs: Added TODO found while debugging menu issues
9676
9677 2005-10-18  Peter Dennis Bartok  <pbartok@novell.com>
9678
9679         * XplatUIX11.cs: Do not re-map the whole window when it's size
9680           becomes non-zero unless it's supposed to be actually visible
9681
9682 2005-10-18  Jackson Harper  <jackson@ximian.com>
9683
9684         * TreeView.cs: We don't need to keep a count anymore.
9685         * TreeNodeCollection.cs: Fix off by one in RemoveAt, Insert can
9686         use the Grow method.
9687
9688 2005-10-18  Jackson Harper  <jackson@ximian.com>
9689
9690         * TreeNodeCollection.cs: Insert is not supported on arrays, so
9691         implement it manually here.
9692
9693 2005-10-18  Jackson Harper  <jackson@ximian.com>
9694
9695         * ImageList.cs: Dont kill the list when the colour depth is
9696         changed, just change the colour depth of all the images.
9697         - Same goes for setting the image size. Just resize them all
9698         instead of killing the list softly.
9699
9700 2005-10-18  Jackson Harper  <jackson@ximian.com>
9701
9702         * Control.cs: Don't invalidate empty rectangles.
9703
9704 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9705
9706         * ListViewItem.cs:
9707           - Adds checked item to the Checked/Item lists (where empty before)
9708           - Do not add items to the Selected lists if they are already present
9709         * ListView.cs:
9710           - Fixes IsFixedSize, SyncRoot, IsReadOnly in many collections
9711           - When deleting items make sure that we delete them for the Selected
9712           and Checked list also.
9713
9714 2005-10-18  Jordi Mas i Hernandez <jordi@ximian.com>
9715
9716         * Label.cs: Dispose objects no longer used
9717         * ThemeWin32Classic.cs: Dispose objects no longer used
9718
9719 2005-10-18  Jackson Harper  <jackson@ximian.com>
9720
9721         * TabControl.cs: Don't refresh the whole control when the tabs are
9722         scrolled, we just need to refresh the tab area.
9723
9724 2005-10-17  Jackson Harper  <jackson@ximian.com>
9725
9726         * XplatUIX11.cs: Compress code a little bit. Only calculate the
9727         after handle when we need it.
9728
9729 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9730
9731         * Control.cs: When the parent size changes, recalculate anchor 
9732           positions. Partial fix for #76462
9733
9734 2005-10-17  Peter Dennis Bartok  <pbartok@novell.com>
9735
9736         * ThemeWin32Classic.cs: Make sure the picturebox has it's background 
9737           drawn. Fixes #76462
9738
9739 2005-10-17  Jackson Harper  <jackson@ximian.com>
9740
9741         * MonthCalendar.cs: Don't create the numeric up down until our
9742         handle is created. Otherwise our handle is created in the
9743         constructor and we don't know if we are a WS_CHILD or WS_POPUP
9744         yet.
9745
9746 2005-10-17  Jackson Harper  <jackson@ximian.com>
9747
9748         * TreeView.cs: Merge in patch by Rafael Teixeira to align strings
9749         correctly.
9750
9751 2005-10-17  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
9752         * TreeNode.cs : small logical fix (was using local var instead of field)
9753         
9754 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9755
9756         * ThemeWin32Classic.cs: Fixes vert/horz scrollbar colours
9757
9758 2005-10-17  Jordi Mas i Hernandez <jordi@ximian.com>
9759
9760         * ThemeWin32Classic.cs: Fixes focus drawing in for non-flat/popup buttons
9761
9762 2005-10-16  Peter Dennis Bartok  <pbartok@novell.com> 
9763
9764         * Control.cs: 
9765           - Re-implemented anchoring code. My first version was really broken.
9766             This fixes bug #76033. Unlike the previous implementation we will
9767             no longer have round errors since all numbers are calculated from
9768             scratch every time. Removed various anchor-related obsolete vars.
9769           - InitLayout no longer causes layout event firing and layout to be 
9770             performed
9771
9772 2005-10-16  Jackson Harper  <jackson@ximian.com>
9773
9774         * Hwnd.cs: Compute invalid area correctly (fixes my last commit
9775         which was broken).
9776
9777 2005-10-16  Jackson Harper  <jackson@ximian.com>
9778
9779         * TabControl.cs: Remove debug code.
9780
9781 2005-10-16  Jackson Harper  <jackson@ximian.com>
9782
9783         * XEventQueue.cs: Increase the default queue size (very simple
9784         apps needed to grow the queue).
9785         * Hwnd.cs: No finalizer so we don't need to suppress
9786         finalization. Compute the invalid area manually so a new rectangle
9787         does not newto be created.
9788         * ScrollableControl.cs: Don't set any params (otherwise visibility
9789         isn't set correctly).
9790         * MdiChildContext.cs: New constructor takes the mdi parent so it
9791         doesn't have to be computed and avoids a crash on windows. Draw
9792         the window icon properly, and allow the text to be seen.
9793         * Form.cs: Use new MdiChildContext constructor. Make sure the
9794         child context isn't null in wndproc.
9795         * TabControl.cs: Don't set focus, this is muddling keyboard
9796         behavoir. Expand the tab rows when a window size increase will
9797         allow extra tabs to be seen. Don't allow tabs smaller than the
9798         width of a window to be scrolled out of view.
9799         * TreeNode.cs:
9800         * TreeView.cs: Use measure string to calculate a nodes width, the
9801         width is cached and only updated when the text or the font is
9802         changed. Don't check for expand/collapse clicks on the first level
9803         nodes if root lines are disabled.
9804         
9805 2005-10-16  Ritvik Mayank  <mritvik@novell.com>
9806
9807         * TextBoxBase.cs: Fixes #76352 (passing tab key in a multiline textbox)
9808
9809 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9810
9811         * DataGridBoolColumn.cs: fixes warning
9812
9813 2005-10-16  Jordi Mas i Hernandez <jordi@ximian.com>
9814
9815         * ControlPaint.cs: Fixes methods Dark, DarkDark, Light, LightLight
9816         to match more to match more precisely the MS Net behavior
9817
9818 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9819
9820         * Hwnd.cs: Added field to track if window is mapped
9821         * XplatUIX11.cs: 
9822           - Unmap windows if they become 0-size, re-map when 
9823             they are >0 again; fixes #76035
9824           - Re-set our error handler after initializing X11Desktop
9825             to override any error handlers Gtk or whatever was called
9826             may have set.
9827
9828 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com> 
9829
9830         * CheckedListBox.cs: Removed unused vars
9831         * ListView.cs: Fixed signatures
9832         * RichTextBox.cs: Removed unused vars
9833         * TextBoxBase.cs: Removed unused vars
9834         * XplatUIWin32.cs: Removed unused vars
9835         * XplatUIX11.cs: Removed unused vars
9836         * XplatUI.cs: Updated version and date to latest published
9837
9838 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9839
9840         * Cursor.cs: Added private .ctor to work around a bug in
9841           resourceset (Thanks to Geoff Norton for the help on this)
9842         * SplitterEventArgs.cs: Made fields accessible so we don't
9843           waste boatloads of objects and can reuse the same one
9844           in Splitter
9845         * XplatUIWin32.cs(DrawReversibleLine): Now also considers
9846           any captions and borders when generating screen coordinates
9847         * Splitter.cs: Reimplemented control, now fully complete, uses
9848           rubberband drawing, supports and obeys all properties, has
9849           proper cursors
9850
9851 2005-10-13  Miguel de Icaza  <miguel@novell.com>
9852
9853         * Form.cs (Form): Setup default values for autoscale and
9854         autoscale_base_size;  Make these instance variables, not static
9855         variables. 
9856
9857         (OnLoad): on the first load, adjust the size of the form.
9858
9859 2005-10-13  Peter Dennis Bartok  <pbartok@novell.com>
9860
9861         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added 
9862           width argument to DrawReversibleRectangle()
9863         * XplatUIWin32.cs, XplatUIX11.cs: 
9864           - Implemented width for DrawReversibleRectangle()
9865           - Added logic to DrawReversibleRectangle that recognizes a zero
9866             width or height and only draws a line in that situation
9867         
9868 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com> 
9869
9870         * XplatUI.cs, XplatUIDriver.cs: Added GetAutoScaleSize()
9871         * XplatUIOSX.cs: Stubbed GetAutoScaleSize() method
9872         * XplatUIWin32.cs, XplatUIX11.cs: Implemented GetAutoScaleSize()
9873           method (it uses our FosterParent window to get a graphics context)
9874
9875 2005-10-12  Peter Dennis Bartok  <pbartok@novell.com>
9876
9877         * XplatUI.cs, XplatUIDriver.cs: Removed EraseWindowBackground 
9878           and SetWindowBackground methods
9879         * Control.cs:
9880           - Setting proper ControlStyles
9881           - We no longer call XplatUI.SetWindowBackground and XplatUI.
9882             EraseWindowBackground, instead we draw the window background
9883             ourselves in PaintControlBackground. This behaviour is
9884             required to match MS, where, when OnPaintBackground is not
9885             called, the background is not drawn.
9886           - Removed unneeded Refresh() in set_Text
9887         * Hwnd.cs: Dropped the ErasePending support. No longer needed
9888         * XplatUIX11.cs:
9889           - Created DeriveStyles method to translate from CreateParams to
9890             FormBorderStyle and TitleStyle, also handles BorderStyle (which
9891             matches FormBorderStyle enum values)
9892           - Consolidated SetHwndStyles and CalculateWindowRect border/title
9893             style calculations into single DeriveStyles method
9894           - Fixed CreateWindow to (finally) use Gravity. This prevents X11
9895             from redrawing the whole window on any resize or expose.
9896           - Fixed CreateWindow usage of SetWindowValuemask. Before not
9897             all styles were applied to our whole/client window appropriately
9898           - Removed EraseWindowBackground() and SetWindowBackground() methods
9899           - Removed handling of WM_ERASEBKGND message from DefWndProc, we
9900             no longer clear/redraw the background through X
9901           - Removed handling of erase_pending bit, we have no use for it (or
9902             so it seems)
9903         * XplatUIOSX.cs:
9904           - Removed generation and handling of WM_ERASEBKGND message
9905           - Removed EraseWindowBackground() and SetWindowBackground() methods
9906           - Removed handling of hwnd.ErasePending flag
9907         * XplatUIWin32.cs:
9908           - Removed EraseWindowBackground() and SetWindowBackground() methods
9909           - We no longer call EraseWindowBackground on PaintEventStart, we 
9910             ignore the fErase flag, erasing is handled in Control in the
9911             background handler
9912         * Button.cs, GroupBox.cs, Label.cs, CheckBox.cs, ProgressBar.cs,
9913           LinkLabel.cs, ListControl.cs, TabPage.cs, UpDownBase.cs,
9914           TextBoxBase.cs, TextBox.cs, ListView.cs, ButtonBase.cs, 
9915           CheckedListBox.cs, MdiClient.cs, Panel.cs, DataGrid.cs, 
9916           DataGridTextBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, 
9917           TabControl.cs, ScrollableControl.cs, ToolBar.cs, PictureBox.cs,
9918           DateTimePicker.cs, StatusBar.cs, MonthCalendar.cs: Setting proper ControlStyles
9919
9920 2005-10-12  Jonathan Chambers <jonathan.chambers@ansys.com>
9921
9922         * PropertyGrids.cs: Get sub properties
9923         * PropertyGridView.cs: Fix drawing code
9924
9925 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9926
9927         * ListBox.cs: Fixes 76383
9928
9929 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9930
9931         * DataGridTextBoxColumn.cs: Sets location and size before attachment
9932         * ThemeWin32Classic.cs: Fixes border drawing and calculations
9933         * DataGridDrawingLogic.cs: Fixes border drawing and calculations
9934
9935
9936 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9937
9938         * ComboBox.cs: Fixes border drawing
9939
9940 2005-10-10  Miguel de Icaza  <miguel@novell.com>
9941
9942         * MimeIcon.cs: Ignore errors if the file can not be read.
9943
9944 2005-10-11  Jordi Mas i Hernandez <jordi@ximian.com>
9945
9946         * Theme.cs, ThemeWin32Classic.cs, ListBox.cs:
9947          - Fixed border calculations
9948          - Fixed horizontal scrolling in single column listboxes
9949          - Fixed drawing issues
9950
9951 2005-10-10  Peter Dennis Bartok  <pbartok@novell.com>
9952
9953         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched from BorderStyle to 
9954           FormBorderStyle enum
9955         * XplatUIX11.cs: Switched BorderStyle to FormBorderStyle, added 
9956           code to determine FormBorderStyles from CreateParams
9957         * Form.cs:
9958           - Fixed bug where we'd set the wrong window styles if we were
9959             not creating an MDI window
9960           - Added call to XplatUI.SetBorderStyle when form borders are set
9961         * Control.cs: Casting BorderStyles to accommodate changed XplatUI APIs
9962         * Hwnd.cs:
9963           - Removed obsolete edge style
9964           - Switched from BorderStyle to FormBorderStyle
9965         
9966 2005-10-10  Jackson Harper  <jackson@ximian.com>
9967
9968         * Form.cs: Use the property to get the window handle instead of
9969         accessing it directly. Prevents a null reference exception.
9970
9971 2005-10-10  Jackson Harper  <jackson@ximian.com>
9972
9973         * TreeView.cs: Don't adjust the rect given to DrawString now that
9974         our libgdiplus draws correctly.
9975
9976 2005-10-08  Jackson Harper  <jackson@ximian.com>
9977
9978         * TreeView.cs: Don't try to find the clicked on node if there are
9979         no nodes in the tree.
9980
9981 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9982
9983         * RichTextBox.cs:
9984
9985           restore
9986
9987 2005-10-08  Alexander Olk  <alex.olk@googlemail.com>
9988
9989         * ImageListStreamer.cs, TreeView.cs, UpDownBase.cs, RichTextBox.cs,
9990           ColorDialog.cs, TextControl.cs, Panel.cs, MdiChildContext.cs,
9991           ErrorProvider.cs:
9992           Use ResPool for brushes and dispose System.Drawing objects that
9993           are not used anymore.
9994
9995 2005-10-07  Jackson Harper  <jackson@ximian.com>
9996
9997         * MdiChildContext.cs: Use the new borders instead of drawing them
9998         ourselves.
9999
10000 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10001
10002         * Calling UpdateBounds after changing the window's BorderStyle 
10003         since the style can change the ClientSize
10004
10005 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10006
10007         * Control.cs: Made PaintControlBackground virtual
10008         * Panel.cs: Overriding PaintControlBackground instead of using paint
10009           event; paint event method was interfering with 'real' users of the
10010           event.
10011
10012 2005-10-06  Jordi Mas i Hernandez <jordi@ximian.com>
10013
10014         * ThemeWin32Classic.cs: remove border drawing since it is handled
10015         by the base control class now and was causing double border drawing.
10016
10017 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10018
10019         * Panel.cs: Redraw our background on paint. Not a pretty solution,
10020           but it does seem to match MS behaviour. This fixes bug #75324
10021
10022 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10023
10024         * XplatUIX11.cs: A better DrawReversibleRectangle version, however
10025           somewhat hackish looking
10026
10027 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10028
10029         * TextBoxBase.cs:
10030           - We now accept Enter even if AcceptEnter is false, if the containing
10031             form does not have an AcceptButton configured (fixes bug #76355)
10032           - Calculations are now fixed to no longer use Width/Height, but
10033             ClientSize.Width/Height, since we now support borders (this was
10034             a result of fixing borders and therefore bug #76166)
10035           - We no longer show the horizontal scrollbar if TextBox.WordWrap is 
10036             true (fixes bug #76354)
10037         
10038 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10039
10040         * Control.cs: 
10041           - Defaulting BorderStyle and setting it in XplatUI when our window 
10042             is created
10043           - Added enum check to InternalBorderStyle setter
10044         * XplatUIX11.cs: 
10045           - Added drawing of window borders
10046           - Now properly calculates WM decorations offset for toplevel 
10047             windows (fixes bug #74763)
10048         * XplatUIWin32.cs: 
10049           - Implemented BorderStyles for windows (we're letting win32 draw 
10050             the border for us)
10051           - Fixed the signature for SetWindowLong
10052         * PictureBox.cs, DataGrid.cs, TextBoxBase.cs, ToolBar.cs, Panel.cs,
10053           ListBox.cs, Label.cs: Now uses Control.InternalBorderStyle for 
10054           setting borders
10055         * UpDownBase.cs: Remove drawing of borders, this is handled by
10056           the driver, outside the client area
10057         * ListView.cs: Removed bogus border calculations. The control should
10058           be oblivious to borders, since those are not part of the client
10059           area. 
10060         * X11DesktopColors.cs: Commented out (currently) unneeded variables
10061         * ThemeWin32Classic.cs: Removed border calculations from ListView 
10062           drawing code
10063
10064 2005-10-06  Jackson Harper  <jackson@ximian.com>
10065
10066         * MdiChildContext.cs: Clear out the old virtual position remove
10067         all the unneeded calls to CreateGraphics.
10068
10069 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10070
10071         * TextControl.cs: Use proper color for highlighted text; fixes #76350
10072
10073 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com> 
10074
10075         * Form.cs: 
10076           - Added loading and setting of our new default icon
10077           - Only set icon if window is already created
10078
10079 2005-10-06  Peter Dennis Bartok  <pbartok@novell.com>
10080
10081         * Label.cs:
10082           - Do not explicitly set the foreground and background colors, to
10083             allow inheriting from parents (fixes #76302)
10084           - Use Control's InternalBorderStyle property to deal with borders
10085
10086 2005-10-06  Jackson Harper  <jackson@ximian.com>
10087
10088         * MdiChildContext.cs: Use the new xplatui function to draw a
10089         reversible rect.
10090
10091 2005-10-06  Jackson Harper  <jackson@ximian.com>
10092
10093         * Form.cs: Add the parent before creating the child context cause
10094         we need the parent when setting up the child.
10095
10096 2005-10-06  Jackson Harper  <jackson@ximian.com>
10097
10098         * FolderBrowserDialog.cs: redo the tree population code so a
10099         second thread isn't used. Should be a lot faster and more stable
10100         now.
10101
10102 2005-10-05  Jackson Harper  <jackson@ximian.com>
10103
10104         * TreeView.cs: There are no expand/collapse boxes if the node has
10105         no children.
10106
10107 2005-10-05  Jackson Harper  <jackson@ximian.com>
10108
10109         * X11DesktopColors.cs: Get menu colours for the gtk theme.
10110
10111 2005-10-05  Alexander Olk  <alex.olk@googlemail.com>
10112
10113         * FileDialog.cs: Fix InitialDirectory
10114
10115 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10116
10117         * ComboBox.cs:
10118                 - Fixes changing between styles
10119                 - Fixes simple mode
10120                 - Fixes last item crashing when navigating with keyboard
10121
10122 2005-10-05  Jordi Mas i Hernandez <jordi@ximian.com>
10123
10124         * LinkLabel.cs: Related to 76045. Stops the LinkLabel been drawn as a Label
10125
10126 2005-10-05  Jackson Harper  <jackson@ximian.com>
10127
10128         * TreeView.cs: If updating the root node do a full refresh.
10129         * TreeNode.cs: The root node should be expanded by default. Also
10130         added a utility prop to tell if we are the root node.
10131         * TreeNodeCollection.cs: Only refresh if the node we are being
10132         added to is expanded. Also added a comment on a potential
10133         optimization.
10134         
10135 2005-10-04  Peter Dennis Bartok  <pbartok@novell.com>
10136
10137         * Cursor.cs, Hwnd.cs: Added call to GC.SuppressFinalize() 
10138           in dispose method. Fixes #76330
10139
10140 2005-10-04  Jordi Mas i Hernandez <jordi@ximian.com>
10141
10142         * ListView.cs, ThemeWin32Classic.cs, ListViewItem.cs:
10143
10144                 - Implements vertical and horizontal scrolling using XplatUI
10145                 - Fixes keyboard navagation
10146                 - Fixes EnsureVisible
10147                 - Drawing fixes
10148                 - Handles and draws focus properly
10149
10150
10151 2005-10-04  Kornél Pál  <kornelpal@hotmail.com>
10152
10153         * ImageList.cs: Use upper case initials for internal fields. ImageStream:
10154           Create handle. NET_2_0: Destroy handle when value is null.
10155
10156 2005-10-03  Jackson Harper  <jackson@ximian.com>
10157
10158         * ScrollBar.cs: My last scrollbar patch was broken. This is a
10159         revert and a new patch to prevent the thumb from refreshing so
10160         much.
10161
10162 2005-10-02  Jackson Harper  <jackson@ximian.com>
10163
10164         * ScrollBar.cs: Don't update position if it hasn't actually
10165         changed. This occurs when you hold down the increment/decrement
10166         buttons and the thumb gets to the max/min.
10167
10168 2005-10-01  Jackson Harper  <jackson@ximian.com>
10169
10170         * Form.cs:
10171         * MdiChildContext.cs:
10172         * MdiClient.cs: Implement ActiveMdiChild in Form.
10173
10174 2005-10-01  Jordi Mas i Hernandez <jordi@ximian.com>
10175
10176         * ComboBox.cs: Include ComboBoxEdit flag for the edit item
10177
10178 2005-10-01  Peter Dennis Bartok  <pbartok@novell.com>
10179
10180         * X11DesktopColors.cs: Bow out gracefully if the Gtk libs cannot
10181           be found
10182
10183 2005-09-30  Jackson Harper  <jackson@ximian.com>
10184
10185         * ListBox.cs: Don't do a full refresh unless some data has
10186         actually changed.
10187
10188 2005-09-30  Jackson Harper  <jackson@ximian.com>
10189
10190         * TreeView.cs: Make sure that the checkboxes size is factored in
10191         even when not visible.
10192
10193 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10194
10195         * FileDialog.cs: Fix Jordi's build break
10196
10197 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
10198
10199         * FileDialog.cs: 
10200                 - Use standard the Windows colours for the combobox as espected
10201                 - Dispose objects that use resouces when no longer need them
10202
10203 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com> 
10204
10205         * X11DesktopColors.cs: Initial incomplete implementation
10206         * XplatUIX11.cs: Added call to initialize X11DesktopColors
10207
10208 2005-09-30  Peter Dennis Bartok  <pbartok@novell.com>
10209
10210         * Theme.cs: 
10211           - Switched Theme color names to match the names defined in 
10212             System.Drawing.KnownColors. Life's hard enough, no need to make 
10213             it harder.
10214           - Added setters to all theme color properties so themes can set
10215             their color schemes. The setters also propagate the color changes
10216             to System.Drawing.KnownColors via reflection
10217         * ControlPaint.cs,  Label.cs, TextControl.cs, ToolTip.cs, ThemeNice.cs,
10218           ComboBox.cs, MdiChildContext.cs, TextBoxBase.cs, DateTimePicker.cs
10219           DataGridColumnStyle.cs, MonthCalendar.cs, TreeView.cs: Updated to
10220           use the new, more logical theme color names
10221         * XplatUIWin32.cs: Updated the GetSysColorIndex enum to include new
10222           post-NT colors
10223         * ThemeWin32Classic.cs:
10224           - Removed code to set the old classic Windows colors. Instead it
10225             now relies on the colors returned by System.Drawing.KnownColors
10226             which will be either modern static colors (Unix) or colors
10227             read from the user's configuration (Win32)
10228           - Updated to use the new, more logical theme color names
10229           - Switched DataGrid drawing code to use only Theme colors instead of
10230             a mix of System.Drawing.KnownColors and Theme colors
10231           - DrawFrameControl(): Removed code that fills the button area, the
10232             fill would overwrite any previous fill done by a control. This
10233             fixes bug #75338 
10234           - Added DrawReversibleRectangle() stub
10235         * ScrollableControl.cs: Set visible state to false when scrollbars
10236           are removed (pdn fix)
10237         * XplatUI.cs, XplatUIOSX.cs, XplatUIDriver.cs: Added 
10238           DrawReversibleRectangle() method to allow drawing primitive 
10239           'rubber bands'
10240         * XplatUIX11.cs: Implemented DrawReversibleRectangle()
10241
10242 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10243
10244         * ImageList.cs: Add(Icon): Create handle.
10245
10246 2005-09-30  Jordi Mas i Hernandez <jordi@ximian.com>
10247
10248         * ListView.cs:
10249         * ThemeWin32Classic.cs:
10250                 - Fixes detail mode
10251                 - Sets clippings
10252                 - Issues with drawing
10253
10254 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10255
10256         * ImageList.cs: Moved RecreateHandle back to ImageList as event
10257           source has to be the ImageList.
10258
10259 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10260
10261         * ImageList.cs: Add(Icon): Use Graphics.DrawIcon instead of Icon.ToBitmap.
10262
10263 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10264
10265         * ImageList.cs: ReduceColorDepth: Clean up pointer operations.
10266
10267 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10268
10269         * ImageList.cs: ImageCollection: Removed owner field as it is no more used.
10270
10271 2005-09-29  Jonathan Chambers <jonathan.chambers@ansys.com>
10272         * GridItem.cs: Fixed TODOs
10273         * GridItemCollection.cs: Added ICollection interface
10274
10275 2005-09-30  Kornél Pál  <kornelpal@hotmail.com>
10276
10277         * ImageList.cs: Resize icons when needed.
10278
10279 2005-09-29  Jordi Mas i Hernandez <jordi@ximian.com>
10280
10281         * ListViewItem.cs
10282                 - Fixes GetBounds and returns on screen rects
10283         * ListView.cs:
10284                 - Fixes vertical and horzintal scrolling of items
10285         * ThemeWin32Classic.cs:
10286                 - Fixes drawing
10287                 
10288 2005-09-29  Raja R Harinath  <harinath@gmail.com>
10289
10290         * ImageList.cs (ImageStream) [NET_2_0]: Reflect re-factoring.
10291
10292 2005-09-29  Kornél Pál  <kornelpal@hotmail.com>
10293
10294         * ImageList.cs: Added comments about handle creation. Moved Handle,
10295           HandleCreated and OnRecreateHandle implementations to ImageCollection.
10296           Handle is created in Add methods.
10297
10298 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
10299          
10300         * DataGridDrawingLogic.cs: 
10301                 - Takes rows into account on Colum calculations
10302                 - Returns the column when clickig
10303         * DataGrid.cs:
10304                 - Fixes default HitTestInfo values
10305                 - Fixes HitTestInfo.ToString
10306                 - Fixes ResetBackColor          
10307         
10308 2005-09-28  Jackson Harper  <jackson@ximian.com>
10309
10310         * MdiChildContext.cs: Obey rules for fixed sized windows (no
10311         sizing or cursor changes). Also added some temp code to draw the
10312         titlebars text (Makes dev a little easier).
10313
10314 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
10315
10316         * ImageList.cs: AddStrip: Throw ArgumentException when Image is not a Bitmap.
10317
10318 2005-09-28  Jordi Mas i Hernandez <jordi@ximian.com>
10319          
10320         * ListBox.cs: Fixes bug 76253
10321
10322 2005-09-28  Kornél Pál  <kornelpal@hotmail.com>
10323
10324         * ImageList.cs: Added comments about the current implementation. Added
10325           ReduceColorDepth, IndexedColorDepths and GetNearestColor to can use
10326           Format32bppArgb to preserve transparency and can use Graphics.FromImage
10327           while using the specified ColorDepth. ReduceColorDepth uses unsafe code
10328           with Bitmap.LockBits for better performance. Revised the whole file to
10329           match MS.NET behaviour and provide better performance. Non-public
10330           interface members are calling public members even when they throw
10331           NotSupportedException for better maintainability. Moved ColorDepth,
10332           ImageSize, ImageStream and TransparentColor implementations to
10333           ImageCollection for better performance as these properties are not used
10334           by ImageList.
10335         * ImageListStreamer.cs: Added a new internal constructor that takes an
10336           ImageList.ImageCollection and serializes Images based on
10337           ImageCollection.ToArray(). Renamed ImageColorDepth to ColorDepth to
10338           match ImageList property name.
10339
10340 2005-09-28  Kazuki Oikawa <kazuki@panicode.com>
10341
10342         * ListBox.cs: Fixes IndexFromPoint for last item
10343
10344 2005-09-27  Jackson Harper  <jackson@ximian.com>
10345
10346         * Form.cs: Set the position of new mdi children correctly.
10347
10348 2005-09-27  Jackson Harper  <jackson@ximian.com>
10349
10350         * MdiClient.cs: New mdi children need to be added to the back of
10351         the controls collection so the zorder is set correctly. Also add a
10352         count of all the child windows that have been created.
10353
10354 2005-09-27  Jackson Harper  <jackson@ximian.com>
10355
10356         * Form.cs (CreateParams): Setup MDI forms correctly.
10357
10358 2005-09-27  Jackson Harper  <jackson@ximian.com>
10359
10360         * MdiChildContext.cs:
10361         * MonthCalendar.cs:
10362         * UpDownBase.cs:
10363         * ListBox.cs:
10364         * ListView.cs:
10365         * TextBoxBase.cs:
10366         * TreeView.cs:
10367         * ScrollableControl.cs:
10368         * ComboBox.cs: Add implicit controls using the new implict control
10369         functionality in ControlCollection. Also try to block multiple
10370         control add in a suspend/resume layout to save some cycles.
10371         
10372 2005-09-27  Jackson Harper  <jackson@ximian.com>
10373
10374         * Control.cs: Add functionality to the controls collection to add
10375         'implicit controls' these are controls that are created by the
10376         containing control but should not be exposed to the user. Such as
10377         scrollbars in the treeview.
10378         * Form.cs: The list var of the ControlsCollection is no longer
10379         available because of the potential of implicit controls getting
10380         ignored by someone accessing the list directly.
10381
10382 2005-09-26  Peter Dennis Bartok  <pbartok@novell.com>
10383
10384         * Control.cs: Fixed SetChildIndex; it no longer causes a child to
10385           loose it's parent. (Fixed bug introduced in r49103 when we added
10386           setting the child parent to null on Remove)
10387
10388 2005-09-26  Gert Driesen  <drieseng@users.sourceforge.net>
10389
10390         * DataGridBoolColumn.cs: Marked CheckState private to fix public API.
10391         * Splitter.cs: Added missing attributes for BorderStyle property.
10392         * TextBoxBase.cs: Marked Calculate* methods internal.
10393         * TextBox.cs: Fixed DefaultValue for PasswordChar property to match
10394         MS.NET.
10395
10396 2005-09-26  Jordi Mas i Hernandez <jordi@ximian.com>
10397          
10398         * ListBox.cs: Fixes navigation to the last item in multicolumn lists
10399
10400 2005-09-25  Jackson Harper  <jackson@ximian.com>
10401
10402         * TreeView.cs: Update the node bounds correctly regardless of
10403         whether the node is visible.
10404
10405 2005-09-25  Jackson Harper  <jackson@ximian.com>
10406
10407         * ImageList.cs: Don't dispose the image after it is added to the
10408         image list. Only reformat images that need to be resized.
10409
10410 2005-09-25  Jackson Harper  <jackson@ximian.com>
10411
10412         * ImageList.cs: Don't set the format when changing the image.
10413
10414 2005-09-25  Jackson Harper  <jackson@ximian.com>
10415
10416         * TreeView.cs: We can't just assume the node has a font. Use the
10417         treeviews font if no node font is available.
10418
10419 2005-09-25  Jackson Harper  <jackson@ximian.com>
10420
10421         * TreeView.cs: Allow the scrollbars to be reset with negative
10422         values.
10423         - Don't add scrollbars to negative sized windows.
10424
10425 2005-09-23  Jackson Harper  <jackson@ximian.com>
10426
10427         * XplatUIX11.cs: Update to use Mono.Posix.Native instead of plain
10428         old Mono.Posix. Also remove some stray code that shouldn't have
10429         been committed.
10430
10431 2005-09-23  Jackson Harper  <jackson@ximian.com>
10432
10433         * TreeView.cs: Attempt at proper sizing of the horizontal
10434         scrollbar. Also don't resize the scrollbars unless they are
10435         visible.
10436
10437 2005-09-23  Jackson Harper  <jackson@ximian.com>
10438
10439         * TreeView.cs: We don't need to expand the invalid area when the
10440         selection changes, as this is all drawn in the node's bounding
10441         box. The area needs to be expanded (previous typo was contracting
10442         it) when the focus rect moves.
10443
10444 2005-09-23  Jackson Harper  <jackson@ximian.com>
10445
10446         * TreeView.cs: Display the selection box under the correct
10447         circumstances. We were rendering white text with no selection box
10448         before.
10449
10450 2005-09-23  Peter Dennis Bartok  <pbartok@novell.com>
10451
10452         * TextControl.cs(Split): Now updates selection start/end if it points 
10453           into a line that's being split. Fixes a FIXME and bug #75258
10454
10455 2005-09-23  Jackson Harper  <jackson@ximian.com>
10456
10457         * Binding.cs:
10458         * ListControl.cs: Don't use the path when retrieving binding
10459         managers from the binding context. My bat sense tells me that the
10460         path is only used on insertion.
10461
10462 2005-09-22  Jackson Harper  <jackson@ximian.com>
10463
10464         * Splitter.cs: Set the cursor an easier way. (Thanks peter).
10465
10466 2005-09-22  Jackson Harper  <jackson@ximian.com>
10467
10468         * Splitter.cs: There are special cursors used for splitting.
10469         * XplatUIX11.cs: The VSplit and HSplit cursors were backwards.
10470
10471 2005-09-22  Jackson Harper  <jackson@ximian.com>
10472
10473         * Splitter.cs: Change the cursor appropriately when the splitter
10474         is moused over, so the user actually knows there is a splitter
10475         there.
10476
10477 2005-09-22 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10478
10479        * Label.cs : Fix ToString method to give same output as MS.NET
10480
10481 2005-09-22  Jackson Harper  <jackson@ximian.com>
10482
10483         * TreeView.cs: Create the scrollbars when the handle is created
10484         and add them right away, just make them invisble. Also account for
10485         the window being shrunk vertically to the point that the vert
10486         scrollbar needs to be added.
10487         - Remove some 0.5 adjustments to get around anti aliasing issues.
10488         
10489 2005-09-22  Jordi Mas i Hernandez <jordi@ximian.com>
10490          
10491         * MainMenu.cs: Fixes default value
10492         * MenuItem.cs: Fixes default value
10493
10494 2005-09-22  Kazuki Oikawa  <kazuki@panicode.com>
10495
10496         * AsyncMethodResult.cs: Fixes Control.Invoke is blocked infinitely.
10497
10498 2005-09-21  Jackson Harper  <jackson@ximian.com>
10499
10500         * Control.cs: Don't try to set the border style on the window if
10501         it hasn't been created. When the window is created the border
10502         style will be used.
10503
10504 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10505
10506         * Control.cs (Update): Don't call XplatUI if we don't have a
10507           window handle yet
10508
10509 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10510
10511         * ContainerControl.cs: Instead of throwing an exception, print
10512           a one-time warning about Validate not being implemented
10513         * XplatUIWin32.cs: Removed debug output
10514
10515 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com> 
10516
10517         * Control.cs: Only set XplatUI background if we expect the windowing
10518           system to handle the background. This stops controls that draw their
10519           own background from flickering
10520
10521         * XplatUIX11.cs: Support custom visuals and colormaps for window 
10522           creation. This allows, amongst other things, using MWF X11 windows 
10523           with OpenGL.
10524
10525 2005-09-21  Peter Dennis Bartok  <pbartok@novell.com>
10526
10527         * OpenFileDialog.cs, ContentsResizedEventArgs.cs, LibSupport.cs, GridItem.cs,
10528           CursorConverter.cs, SplitterEventHandler.cs, PropertyGridTextBox.cs,
10529           GridTablesFactory.cs, MethodInvoker.cs, AccessibleEvents.cs,
10530           SplitterEventArgs.cs, XplatUI.cs, Mime.cs, PropertySort.cs,
10531           TreeViewCancelEventHandler.cs, Form.cs, PropertyGridCommands.cs,
10532           IDataGridEditingService.cs, DateBoldEventHandler.cs, Label.cs,
10533           KeyboardLayouts.cs, TextControl.cs, ProgressBar.cs, ToolTip.cs,
10534           RadioButton.cs, OSFeature.cs, LinkLabel.cs, ColorDialog.cs,
10535           ThemeNice.cs, ErrorIconAlignment.cs, TreeNode.cs, MimeGenerated.cs,
10536           ComboBox.cs, DataGridTextBoxColumn.cs, ArrangeStartingPosition.cs,
10537           GridColumnStylesCollection.cs, 
10538           IDataGridColumnStyleEditingNotificationService.cs,
10539           PropertyGrid.cs, IFeatureSupport.cs, ICommandExecutor.cs,
10540           MdiLayout.cs, GridEntry.cs, ControlBindingsCollection.cs,
10541           GridTableStylesCollection.cs, TreeViewCancelEventArgs.cs, 
10542           TreeNodeCollection.cs, AmbientProperties.cs, 
10543           RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
10544           DataObject.cs, ErrorProvider.cs, Splitter.cs,
10545           DataGridLineStyle.cs, Shortcut.cs, Control.cs,
10546           FontDialog.cs, SecurityIDType.cs, GridItemType.cs,
10547           BindingMemberInfo.cs, DataGridCell.cs, MdiChildContext.cs,
10548           IRootGridEntry.cs, PropertyGridView.cs, DataGridParentRowsLabelStyle.cs,
10549           FolderBrowserDialog.cs, OpacityConverter.cs, HelpProvider.cs,
10550           IComponentEditorPageSite.cs, DataGridTableStyle.cs, NavigateEventArgs.cs,
10551           NotifyIcon.cs, ContentsResizedEventHandler.cs, MenuItem.cs,
10552           PropertyTabChangedEventHandler.cs, TextBoxBase.cs, OpenTreeNodeEnumerator.cs,
10553           SelectionMode.cs, TextBox.cs, ListBindingConverter.cs,
10554           FileDialog.cs, KeysConverter.cs, DomainUpDown.cs,
10555           DataFormats.cs, SaveFileDialog.cs, GridItemCollection.cs,
10556           ArrangeDirection.cs, FeatureSupport.cs, SelectionRangeConverter.cs,
10557           RichTextBoxScrollBars.cs, NodeLabelEditEventHandler.cs, TreeNodeConverter.cs,
10558           MimeIcon.cs, X11Structs.cs, PropertyGridEntry.cs,
10559           ImageList.cs, ThemeWin32Classic.cs, X11Keyboard.cs,
10560           CheckedListBox.cs, HelpNavigator.cs, DateTimePickerFormat.cs,
10561           MdiClient.cs, DataGridDrawingLogic.cs, DataGridBoolColumn.cs,
10562           NodeLabelEditEventArgs.cs, Screen.cs, PropertyManager.cs,
10563           ComponentModel.cs, PropertiesTab.cs, CurrencyManager.cs,
10564           SizeGrip.cs, DateBoldEventArgs.cs, X11Dnd.cs, Panel.cs,
10565           Hwnd.cs, OSXStructs.cs, DrawMode.cs, XplatUIDriver.cs,
10566           RichTextBox.cs, PropertyTabChangedEventArgs.cs, CommonDialog.cs,
10567           DataGrid.cs, XplatUIX11.cs, RichTextBoxStreamType.cs, Win32DnD.cs,
10568           ErrorBlinkStyle.cs, TreeViewEventHandler.cs,
10569           PropertyValueChangedEventHandler.cs, IFileReaderService.cs,
10570           DataGridTextBox.cs, SelectedGridItemChangedEventArgs.cs, ScrollBar.cs,
10571           ListBox.cs, TreeViewAction.cs, Help.cs, TrackBar.cs,
10572           AxHost.cs, PropertyValueChangedEventArgs.cs, XplatUIOSX.cs,
10573           RichTextBoxFinds.cs, UpDownEventArgs.cs, Cursors.cs,
10574           CategoryGridEntry.cs, RichTextBoxWordPunctuations.cs, DataGridColumnStyle.cs,
10575           SelectedGridItemChangedEventHandler.cs, DateTimePicker.cs, NavigateEventHandler.cs,
10576           Clipboard.cs, UpDownEventHandler.cs, MonthCalendar.cs,
10577           SendKeys.cs, DataGridPreferredColumnWidthTypeConverter.cs, TreeView.cs,
10578           ThreadExceptionDialog.cs, ImageListConverter.cs, XplatUIWin32.cs,
10579           TreeViewEventArgs.cs: Fixed whitespace and set eol-style:native attribute
10580
10581 2005-09-21  Jackson Harper  <jackson@ximian.com>
10582
10583         * TreeNode.cs: Call Before/After Expand not Collapse when
10584         expanding.
10585
10586 2005-09-20  Jackson Harper  <jackson@ximian.com>
10587         
10588         * XplatUIX11.cs: Use the more hand looking hand (in most themes).
10589
10590 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10591          
10592         * ListViewItem.cs:
10593                 - Fixes bug 76120
10594                 - Fixes proper storing of subitems
10595                 - Fixes not updated items
10596
10597 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com>
10598
10599         * Control.cs, TextBoxBase.cs, TextControl.cs: Don't do certain
10600           things if our window handle isn't created yet. Also disabled 
10601           debug for TextBoxBase
10602
10603 2005-09-20  Peter Dennis Bartok  <pbartok@novell.com> 
10604
10605         * MenuAPI.cs: Remove filtering of events to allow menu usage
10606
10607 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10608
10609         * Cursor.cs: Allow null to be passed to Cursor.Current.
10610
10611 2005-09-20  Alexander Olk  <alex.olk@googlemail.com>
10612
10613         * ThemeWin32Classic.cs:
10614           - Change some private methods/fields to protected virtual so that 
10615             they can be accessed and overriden in derived classes
10616           - First refactoring of some methods. Derived themes now don't 
10617             need to duplicate the complete code from ThemeWin32Classic
10618         * ThemeNice.cs:
10619           - Added nice StatusBar
10620           - Derive from ThemeWin32Classic and not Theme
10621           - Removed duplicate ThemeWin32Classic code
10622
10623 2005-09-20  Miguel de Icaza  <miguel@novell.com>
10624
10625         * Control.cs (ControlCollection.Add): If the value null is passed
10626         the control is ignored. 
10627
10628         Optimize this loop.
10629
10630 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com> 
10631
10632         * MenuAPI.cs: Replaced Application.Run() with a loop that tracks
10633           PostQuitMessage state.
10634         * XplatUIWin32.cs: Removed bogus PostQuitMessage P/Invoke with HWND arg
10635
10636 2005-09-19  Peter Dennis Bartok  <pbartok@novell.com>
10637
10638         * Application.cs: Our constructor will never get called, move 
10639           initialization to fields; fixes bug #75933
10640
10641 2005-09-19 Hisham Mardam Bey <hisham.mardambey@gmail.com>
10642
10643         * FileDialog.cs :
10644                 - Allow files to be selected properly using file name
10645                 combo box.
10646                 - Add ability to change diretory (absolute / relative)
10647                 using file name combo box.
10648
10649 2005-09-16  Jordi Mas i Hernandez <jordi@ximian.com>
10650          
10651         * ListBox.cs: 
10652                 - Fixes Multicolumn listboxes item wrong calculations
10653                 - Allows to click when only one item is in the listbox
10654                 - Fixes crash when no items using keyboard navigation
10655
10656 2005-09-16  Alexander Olk  <alex.olk@googlemail.com>
10657
10658         * ComboBox.cs: Reverted almost everything from the latest patch which
10659           broke ComboBox
10660
10661 2005-09-16  Kazuki Oikawa <kazuki@panicode.com>
10662         
10663         * ToolTip.cs:
10664                 - Fixed #Mtd2 of ToolTipTest.RemoveToolTipTest.
10665         * ComboBox.cs:
10666                 - When DropDownStyle is Simple, it does not show scrollbar 
10667                 to the last item of the list.
10668                 - When DropDownStyle is Simple, it crashed when the list was 
10669                 scrolled down with the down cursor key.
10670                 - Fixed a bug that when DropDownStyle is DropDownList, the 
10671                 selected item was not shown.
10672                 - The position of the selected item was not preserved when 
10673                 the next dropdown happened.
10674         * ThemeWin32Classic.cs:
10675                 - Items were wrapped at the right end.
10676         * CheckedListBox.cs:
10677                 - Fixed Add method
10678         * ListBox.cs:
10679                 - Items should be fully shown.
10680                 - When resizing and vertical scrollbar disappeared, the item 
10681                 of index 0 should be on the top of the list.
10682                 - GetItemRectangle should consider the size of ver. scrollbar
10683         * StatusBar.cs:
10684                 - SizingGrip area should not be allocated when it is not 
10685                 displayed.
10686                 - Now it reflects MinWidth of the containing panel and 
10687                 fixed a crash that happens when its width becomes so small.
10688
10689 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10690
10691         * CheckedListBox.cs: Fixes bug 76028
10692         * ListBox.cs: Fixes bug 76028
10693
10694 2005-09-13  Jordi Mas i Hernandez <jordi@ximian.com>
10695
10696         * ThemeWin32Classic.cs: Sets clipping on DataGridPaintRowsHeaders
10697         * DataGridDrawingLogic.cs: fixes issues with Datagrid drawing
10698
10699 2005-09-12  Jordi Mas i Hernandez <jordi@ximian.com>
10700
10701         * XplatUIX11.cs: fixes System.NullReferenceException in some situations
10702
10703 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10704
10705         * IRootGridEntry.cs: Changed namespace to PropertyGridInternal 
10706
10707 2005-09-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10708
10709         * IRootGridEntry.cs: Added
10710         * PropertyGridCommands.cs: Added
10711         * PropertiesTab.cs: Added missing methods and property
10712         * PropertyGridView.cs: Made class internal
10713         * PropertyGridTextBox.cs: Made class internal
10714
10715 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10716
10717         * MimeIcon.cs: Try to check some other environment variables
10718           if "DESKTOP_SESSION" returns "default"
10719
10720 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10721
10722         * ThemeNice.cs: Corrected background colors (e.g. menus)
10723         * ColorDialog.cs: Use correct background colors for controls
10724
10725 2005-09-09  Alexander Olk  <alex.olk@googlemail.com>
10726
10727         * ThemeNice.cs: Merged r49535 from ThemeWin32Classic
10728
10729 2005-09-08  Peter Dennis Bartok  <pbartok@novell.com>
10730
10731         * RichTextBox.cs: Added initial implementation
10732         * lang.cs: Removed. Was accidentally checked in long time ago
10733         * TODO: Removed. Contents were obsolete
10734
10735 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10736                                                                                 
10737         * PropertiesTab.cs : Added
10738
10739 2005-09-06  Jonathan Chambers  <jonathan.chambers@ansys.com>
10740                                                                                 
10741         * PropertyGrid.cs : Update
10742         * PropertyGridView.cs : Update
10743         * System.Windows.Forms.resx : Added images and strings
10744
10745 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com> 
10746
10747         * ThemeNice.cs: Do not dispose Pens retrieved from ResPool
10748  
10749 2005-09-06  Peter Dennis Bartok  <pbartok@novell.com>
10750
10751         * XplatUIX11.cs: Force a flush after Ungrab; if case the app enters
10752           a busy loop right after the Ungrab the X11 display is otherwise 
10753           blocked
10754
10755 2005-09-06  Jordi Mas i Hernandez <jordi@ximian.com>
10756
10757         * ThemeWin32Classic.cs: Optimise the use of clipping
10758
10759 2005-09-05  Jordi Mas i Hernandez <jordi@ximian.com>
10760
10761         * DataGrid.cs: fixes recursion bug
10762
10763 2005-09-03  Alexander Olk  <alex.olk@googlemail.com>
10764
10765         * ThemeNice.cs: 
10766           - Draw RadioButton and CheckBox Buttons with DrawButtonBase
10767           - Cleanup
10768
10769 2005-09-02  Alexander Olk  <alex.olk@googlemail.com>
10770
10771         * ThemeNice.cs: Draw nice ProgressBars
10772
10773 2005-09-01  Miguel de Icaza  <miguel@novell.com>
10774
10775         * VScrollBar.cs: Another buglet found by Aaron's tool. 
10776
10777         * ProgressBar.cs: Fix three recursive bugs found by Aaron Tomb's
10778         bug finder.
10779
10780 2005-08-30  Alexander Olk  <alex.olk@googlemail.com>
10781
10782         * ThemeNice.cs:
10783           - Added nicer menu drawing
10784           - Updated DrawTab
10785           - some refactoring
10786
10787 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10788
10789         * CreateParams.cs (ToString): Made output match MS
10790         * Control.cs (Text): Don't set Text or Focus via XplatUI unless 
10791             handle is already created (to avoid forcing window creation)
10792         * XplatUIX11.cs: Set window text to caption after creating window,
10793           in case Text was set before window was created
10794         * Form.cs: Use this.Text instead of a static string as caption
10795
10796 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10797
10798         * NotifyIcon.cs: Don't set the window to visible; this screws
10799           up Win32 (causes WM_NCPAINT to be sent on Win32, which calls
10800           OnPaint without a bitmap)
10801         * XplatUIX11.cs: Removed Visible optimization in AddExpose; doesn't 
10802           happen very often anyway; we could add the check to the WM_PAINT 
10803           event generation code
10804
10805 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com>
10806
10807         * NotifyIcon.cs: Fill the icon area with a background color, to 
10808           avoid 'residue' when transparent icons are drawn
10809         * XplatUIX11.cs:
10810           - Handle whole_window == client_window when destroying windows
10811           - SystrayAdd(): Set client_window to whole_window value to
10812             get mouse and other events passed to NotifyIcon
10813
10814 2005-08-30  Peter Dennis Bartok  <pbartok@novell.com> 
10815
10816         * Form.cs: Set proper default for Opacity property
10817         * NotifyIcon.cs:
10818           - ShowSystray(): Don't bother creating telling the OS
10819             about the systray item if no icon is provided
10820           - Now handles WM_NCPAINT message to deal with whole/client window
10821             split
10822           - Create window as visible to not get caught by Expose optimization
10823         * Hwnd.cs: Removed debug message
10824         * ComboBox.cs, ScrollBar.cs, ListBox.cs, TrackBar.cs, TabControl.cs,
10825           StatusBar.cs, TreeView.cs, XplatUIOSX.cs, XplatUIWin32.cs: Switched 
10826             PaintEventStart/End to use new client argument
10827         * TextBoxBase.cs:
10828           - Commented out debug messages
10829           - Switched PaintEventStart/End to use new client argument
10830         * XplatUI.cs: Added client window bool to PaintEventStart()/
10831           PaintEventEnd() calls, to support drawing in non-client areas
10832         * XplatUIDriver.cs: 
10833           - Added client window bool to PaintEventStart()/PaintEventEnd() 
10834             calls, to support drawing in non-client areas
10835           - Added conditional compile to allow using MWF BeginInvoke 
10836             on MS runtime
10837         * XplatUIX11.cs:
10838           - Added some conditional debug output
10839           - Fixed SystrayAdd() method to support new (for SystrayAdd, anyway)
10840             whole/client window split
10841           - Implemented handling of client argument to PaintEventStart()/End()
10842         * Control.cs:
10843           - Throw exception if BeginInvoke() is called and the window handle
10844             or one of the window's parent handles is not created
10845           - Added conditional compile to allow using MWF BeginInvoke on
10846             MS runtime
10847           - get_Parent(): Only sets parent if handle is created. This avoids
10848             forcing window handle creation when parent is set.
10849           - Now fires Layout and Parent changed events in proper order
10850           - Switched to use Handle instead of window.Handle for Z-Order setting,
10851             the get_Parent() patch above causes us to possibly get null for 'window'
10852           - Implemented handling of client argument to PaintEventStart()/End()
10853           - Now reports back to windows that WM_SETCURSOR was handled (to avoid
10854             default handling)
10855           - Now sends a Refresh() to all child windows when Refresh() is called
10856
10857 2005-08-29  Peter Dennis Bartok  <pbartok@novell.com> 
10858
10859         * Form.cs: Added (non-functional) Opacity property
10860         * XplatUIWin32.cs (SystrayAdd): Removed bogus line of code
10861
10862 2005-08-29  Alexander Olk  <xenomorph2@onlinehome.de>
10863         * ThemeNice.cs: New theme for MWF, based on ThemWin32Classic
10864           use export MONO_THEME=nice to activate it.
10865           Currently supported controls:
10866           - Button
10867           - ComboBox
10868           - ScrollBar
10869           - TabControl (TabAlignment.Top only, other will follow)
10870         * ThemeEngine.cs: Add theme nice
10871         * ButtonBase.cs: Redraw button on MouseEnter and MouseLeave everytime,
10872           if enabled
10873
10874 2005-08-25  Jonathan Chambers  <jonathan.chambers@ansys.com> 
10875
10876         * Splitter.cs: Resize docked control and its neighbor.
10877
10878 2005-08-24  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10879         -- Making Windows with Menus layout correctly --
10880         * Form.cs : The first leg of the fix
10881                 Menu setter - adjust Client Size as needed to make space for the menu
10882                 SetClientSizeCore - doesn't call base version to be able to pass the 
10883                         menu handle to XplatUI.CalculateWindowRect
10884         * Hwnd.cs: Fix for menu_height, now gets from MenuAPI.MENU
10885         * XplatUIX11.cs: The critical second leg of the fix
10886                 GetWindowPos needs to use a recalculated client_rect
10887                 so that resizing the window doesn't break layout of child controls. 
10888                 Also a more complete rule to avoid X Server roundtrips in SetWindowPos
10889                 Lots of \t\n killed
10890
10891 2005-08-23  Peter Dennis Bartok  <pbartok@novell.com> 
10892
10893         * Label.cs: Now properly recalculates width and height on Font and Text
10894           changes if AutoSize is set
10895
10896 2005-08-19  Rafael Teixeira <rafaelteixeirabr@hotmail.com> 
10897         * TreeView.cs : Revamped drawing logic, and support for FullRowSelect
10898
10899 2005-08-19  Jordi Mas i Hernandez <jordi@ximian.com>
10900
10901         * ImageList.cs: Makes ToString method compatible with MS
10902
10903 2005-08-18  Jordi Mas i Hernandez <jordi@ximian.com>
10904
10905         * MenuAPI.cs: fixes bug 75716
10906
10907 2005-08-11 Umadevi S <sumadevi@novell.com>
10908         * Control.cs: Fixed Remove & RemoveAt to make the parent of the control null.
10909
10910 2005-08-11 Umadevi S <sumadevi@novell.com>
10911         * Contorl.cs: Fixed ResetRightToLeft and ResetImeMode to work correctly
10912
10913 2005-08-10  Umadevi S <sumadevi@novell.com>
10914         * CheckedListBox.cs: Fixed event firing on Adding to the CheckedListBox
10915
10916 2005-08-07  Jordi Mas i Hernandez <jordi@ximian.com>
10917
10918         * Menu.cs: fixes bug 75700
10919         * MenuAPI.cs: fixes navigation issues
10920
10921 2005-08-09  Umadevi S <sumadevi@novell.com>
10922         * CheckedListBox.cs - simple fix for GetItemChecked.
10923
10924 2005-08-08  Jordi Mas i Hernandez <jordi@ximian.com>
10925
10926         * ComboBox.cs: Serveral fixes
10927         * ListBox.cs: Serveral fixes
10928
10929 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10930
10931         * ComboBox.cs: Fixes FindString methods and GetItemHeight
10932         * ListBox.cs: Fixes FindString methods
10933
10934 2005-08-05  Jordi Mas i Hernandez <jordi@ximian.com>
10935
10936         * DataGrid.cs: fixes bugs exposed by new tests
10937
10938 2005-08-04  Peter Dennis Bartok  <pbartok@novell.com> 
10939
10940         * Mime.cs: Compile Mono assembly references only if compiling
10941           with Mono (Allows to build with VS.Net again)
10942
10943 2005-07-28  Marek Safar  <marek.safar@seznam.cz>
10944
10945         * Control.cs (PaintControlBackground): Draw background image
10946         corrrectly.
10947         (CheckForIllegalCrossThreadCalls): Stubbed.
10948         
10949         * Form.cs (OnCreateControl): Center when should be centered.
10950         
10951         * ThemeWin32Classic.cs (DrawPictureBox): Pass size.
10952
10953 2005-07-19  Jordi Mas i Hernandez <jordi@ximian.com>
10954
10955         * Binding.cs: Binding to properties should be case unsensitive
10956
10957 2005-07-18 vlindos@nucleusys.com
10958
10959         * DataGrid.cs: fixes setmember order
10960
10961 2005-07-07  Alexander Olk  <xenomorph2@onlinehome.de>
10962
10963         * MimeIcon.cs: added MimeIcon stuff (MimeIconEngine)
10964         * FileDialog.cs: FileDialog is now resizable and uses the new
10965           MimeIconEngine
10966
10967 2005-07-06  Jordi Mas i Hernandez <jordi@ximian.com>
10968
10969         * DataGridTextBoxColumn.cs: default value
10970         * GridColumnStylesCollection.cs: fixes event firing, checking MappingName
10971         * GridTableStylesCollection.cs: fixes checking MappingName
10972         * DataGridDrawingLogic.cs: fixes drawing logic issues
10973         * DataSourceHelper.cs: rewritten to make compatible with more data sources
10974         * DataGrid.cs: fixes    
10975
10976 2005-07-06  Alexander Olk  <xenomorph2@onlinehome.de>
10977
10978         * MimeGenerated.cs: Use case sensitive comparer for
10979           NameValueCollections
10980
10981 2005-07-01  Jordi Mas i Hernandez <jordi@ximian.com>
10982
10983         * DataGridTextBoxColumn.cs: bug fixes, code refactoring 
10984         * ThemeWin32Classic.cs: bug fixes, code refactoring
10985         * DataGridDrawingLogic.cs:  bug fixes, code refactoring
10986         * DataGrid.cs: bug fixes, code refactoring
10987         * DataGridTextBox.cs: bug fixes, code refactoring
10988         * DataGridColumnStyle.cs:  bug fixes, code refactoring
10989         * Theme.cs:  bug fixes, code refactoring
10990
10991 2005-07-01  Peter Bartok  <pbartok@novell.com> 
10992
10993         * TextControl.cs: Quick fix for the reported crash on ColorDialog
10994           and other text box usage
10995
10996 2005-07-01  Jackson Harper  <jackson@ximian.com>
10997
10998         * TabControl.cs: Make sure the bottom of the tab covers the pages
10999         border.
11000
11001 2005-06-30  Peter Bartok  <pbartok@novell.com> 
11002
11003         * Form.cs (ShowDialog): Assign owner of the dialog
11004         * TextBoxBase.cs: Always refresh caret size when deleting, caret
11005           might have been moved to a tag with different height
11006
11007 2005-06-30  Jackson Harper  <jackson@ximian.com>
11008
11009         * Form.cs: Don't create an infinite loop when setting focus
11010         * MenuItem.cs: Don't dirty the parents if we don't have any
11011
11012 2005-06-29  Ben Maurer  <bmaurer@ximian.com>
11013
11014         * LibSupport.cs: Rename
11015
11016 2005-06-29  Peter Bartok  <pbartok@novell.com>
11017
11018         * TextBoxBase.cs: Re-align caret after deleting a character
11019         * TextControl.cs:
11020           - DeleteChars(): Ensure that tag covers the provided position
11021           - StreamLine(): Drop reference for dropped tag
11022
11023 2005-06-29  Peter Bartok  <pbartok@novell.com> 
11024
11025         * TextControl.cs: 
11026           - Selections now work properly, anchoring at the initial location
11027             and properly extending in either direction (SetSelectionToCaret(),
11028             SetSelectionStart() and SetSelectionEnd())
11029           - No longer redraws the whole control on selection change, now
11030             calculates delta between previous and new selection and only
11031             invalidates/redraws that area
11032           - Fixed FindPos() math off-by-one errors
11033           - Changed DeleteChars() to verify the provided tag covers the
11034             provided position, selections may have a tag that doesn't cover
11035             the position if the selection is at a tag border
11036           - Fixed off-by-one errors in DeleteChars()
11037           - Added missing streamlining check in DeleteChars() to remove
11038             zero-length tags
11039           - Implemented Invalidate() method, now properly calculates exposures
11040             between two given lines/positions
11041           - Implemented SetSelection()
11042           - Obsoleted and removed FixupSelection()
11043           - Improved RecalculateDocument() logic, removing code duplication
11044
11045 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11046
11047         * LibSupport.cs: changes to match different input/output arguments.
11048
11049 2005-06-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11050
11051         * LibSupport.cs: added libsupport.so init routine.
11052
11053 2005-06-29  Jordi Mas i Hernandez <jordi@ximian.com>
11054         
11055         * ControlBindingsCollection.cs
11056                 - Throws an exception on null datasource when adding
11057                 - Checks for duplicated bindings when adding
11058
11059 2005-06-28  Jackson Harper  <jackson@ximian.com>
11060
11061         * TreeView.cs (OnKeyDown): Support left and right properly
11062         (navigates as well as expanding and collapsing.
11063         - Add support for Multiply, this expands all the selected nodes
11064         children.
11065         - Fix some tabbing.
11066
11067 2005-06-28  Jackson Harper  <jackson@ximian.com>
11068
11069         * TreeView.cs: Implement keyboard navigation, currently supports,
11070         LEFT, RIGHT, UP, DOWN, PGUP, PGDOWN, HOME, END, ADD, SUBTRACT. Add
11071         support for toggling checkboxes with the space bar.
11072
11073 2005-06-28  Jackson Harper  <jackson@ximian.com>
11074
11075         * OpenTreeNodeEnumerator.cs: Don't move past the begining of the
11076         tree.
11077
11078 2005-06-28  Jackson Harper  <jackson@ximian.com>
11079
11080         * TreeView.cs: Add missing event.
11081
11082 2005-06-27  Peter Bartok  <pbartok@novell.com> 
11083
11084         * TextControl.cs:
11085           - Made line ending size configurable (now allows for counting 
11086             lineendings as \n or \r\n)
11087           - Added margin to viewport to keep caret visible on right side
11088           - Fixed translation routines for line/pos to documentpos to consider
11089             cr/lf when counting (Fixes RichTextBox.SelectionFont issues)
11090           - Fixed some line-endings to be unix style
11091           - Fixed Document.FormatText to perform it's calculations 1-based
11092           - Added descriptions for a few methods that might otherwise get 
11093             used wrong
11094           - Added NOTE section with some basic conventions to remember at 
11095             the top of the file
11096           - Major fixup for RichTextBox selection drawing:
11097             * Fixed crashes when multiple tags on a single line were selected
11098             * fixed selection box drawing not overlaying text
11099             * fixed bogus offset calculation for tags not starting at index 1
11100             * Switched behaviour from using multiple Substrings of a 
11101               StringBuilder.ToString() to using multiple 
11102               StringBuilder.ToString(start, length) statements, hoping this is
11103               faster (kept original version commented out in the code, in case
11104               original version was faster)
11105         * TextBox.cs (set_TextAlignment): TextBox always needs to wrap if 
11106           alignment != Left
11107         * TextBoxBase.cs (CalculateDocument): Made protected so RichTextBox can
11108           call it as well
11109
11110 2005-06-27  Jackson Harper  <jackson@ximian.com>
11111
11112         * TabControl.cs: Move to the left and right with the arrow
11113         keys. These keys don't cycle beyond first and last like
11114         tab. Refresh all the tabs when scrolling them to the left or
11115         right.
11116
11117 2005-06-27  Jackson Harper  <jackson@ximian.com>
11118
11119         * TabControl.cs:
11120           - ToString: Added method
11121           - CreateParams: Remove TODO and comment
11122           - OnKeyDown: Cycle through bounds properly.
11123           - SelectedIndex: Scroll to the right or left if we need to
11124           display the newly selected tab.
11125
11126 2005-06-23  Jackson Harper  <jackson@ximian.com>
11127
11128         * TabControl.cs: Stay in bounds when cycling. Make sure Handled is
11129         set.
11130
11131 2005-06-23  Jackson Harper  <jackson@ximian.com>
11132
11133         * TabControl.cs: Keyboard handling. We now support CTRL-TAB,
11134         CTRL-SHIFT-TAB, and HOME, END are there any others?
11135
11136 2005-06-23  Jackson Harper  <jackson@ximian.com>
11137
11138         * XplatUIX11.cs: Get the modifier keys from the keyboard driver.
11139
11140 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11141         
11142         * DataGridTextBoxColumn.cs: fixes and enhancements
11143         * ThemeWin32Classic.cs: fixes and enhancements
11144         * DataGridBoolColumn.cs:  fixes and enhancements
11145         * DataGridDrawingLogic.cs:  fixes and enhancements
11146         * CurrencyManager.cs: fixes and enhancements
11147         * DataGrid.cs: fixes and enhancements
11148         * DataGridColumnStyle.cs:  fixes and enhancements
11149
11150 2005-06-22  Jackson Harper  <jackson@ximian.com>
11151
11152         * TabControl.cs: Add some missing methods that just call into the
11153         base. Make the TabPageCollection's IList interface behave in the
11154         same manner as the MS implementation.
11155
11156 2005-06-22  Peter Bartok  <pbartok@novell.com> 
11157
11158         * TextControl.cs: Added sanity check
11159         * TextBoxBase.cs: 
11160           - Fixed wrapping behaviour, don't set wrap on single line controls
11161             (this fixes the breakage of colordialog introduced in an earlier
11162              checkin)
11163           - Added rudimentary support for autoscrolling right-aligned controls
11164             (still needs fixing, also, center alignment scroll is missing)
11165
11166 2005-06-22  Jordi Mas i Hernandez <jordi@ximian.com>
11167         
11168         * ScrollBar.cs: Fixes thumbpos on Maximum values
11169
11170 2005-06-21  Jonathan Chambers <jonathan.chambers@ansys.com>
11171         
11172         * PropertyGridView.cs: Pass context information to UITypeEditors 
11173
11174 2005-06-21  Peter Bartok  <pbartok@novell.com> 
11175
11176         * TextBoxBase.cs:
11177           - Now calling PositionCaret with absolute space coordinates
11178           - Enabled vertical scrolling
11179           - Better tracking of scrollbar changes, tied into WidthChange
11180             event
11181           - Improved cursor tracking
11182           - Removed debug output
11183         * TextControl.cs:
11184           - PositionCaret coordinates are now works in absolute space, not 
11185             the canvas
11186           - Improved tracking of document size
11187           - Added events for width and height changes
11188
11189 2005-06-21  Peter Bartok  <pbartok@novell.com>
11190
11191         * Form.cs: Set focus to active control when form is activated
11192         * TextControl.cs: 
11193           - Added word-wrap functionality to RecalculateLine() 
11194           - Added some short function descriptions for VS.Net to aid in
11195             writing dependent controls
11196           - Added Caret property, returning the current coords of the caret
11197           - Added ViewPortWidth and ViewPortHeight properties
11198           - Added Wrap property
11199           - Added CaretMoved event
11200           - Removed some old debug code
11201           - Split() can now create soft splits
11202           - Added PreviousTag()/NextTag() to allow walking "tag-lists"
11203           - Added method to format existing text
11204           - Fixed size/alignment calculations to use viewport
11205           - RecalculateDocument now can handle changing line-numbers while
11206             calculating lines
11207
11208         * TextBox.cs:
11209           - Added some wrap logic, we don't wrap if alignment is not left
11210           - Added casts for scrollbar var, base class switched types to
11211             also support RichTextBoxA
11212           - Implemented handling of scrollbar visibility flags
11213
11214         * TextBoxBase.cs:
11215           - Switched scrollbars type to RichTextBoxScrollBars to support
11216             RichTextBox
11217           - Added tracking of canvas width/height
11218           - Switched scrollbars to be not selectable (to keep focus on text)
11219           - Added central CalculateDocument() method to handle all redraw
11220             requirements
11221           - Added ReadOnly support
11222           - Added WordWrap support
11223           - Fixed handling of Enter key (we now treat it as a DialogKey)
11224           - Fixed caret positioning when h or v scroll is not zero
11225           - Fixed placing/generation of vertical scrollbar
11226           - Added CalculateScrollBars() method to allow updating scrollbar
11227             limits and visibility
11228           - Fixed handling of horizontal scroll
11229           - Added handling of vertical scroll
11230           - Implemented auto-'jump' when caret moves to close to a left or
11231             right border and there is text to be scrolled into view (currently
11232             there's the potential for a stack overflow, until a bug in
11233             scrollbar is fixed)
11234
11235 2005-06-21  Geoff Norton  <gnorton@customerdna.com>
11236         
11237         * XplatUIOSX.cs: Initial implementation of WM_ERASEBKGND
11238
11239 2005-06-19  Alexander Olk  <xenomorph2@onlinehome.de>
11240
11241         * Mime.cs:
11242         - added inodes.
11243         - return application/x-zerosize for files with size zero
11244           (if no extension pattern matches).
11245         - check matches collection for strings too.
11246         - return only the first mime type if the name value
11247           collection has more than one mime type.
11248
11249 2005-06-18  Jonathan Chambers <jonathan.chambers@ansys.com>
11250         
11251         * PropertyGrid.cs: Cleaned up some TODOs
11252         * PropertyGridView.cs: Added support for UITypeEditors
11253
11254 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11255         
11256         * DataGrid.cs: clears cached value
11257
11258 2005-06-17  Jordi Mas i Hernandez <jordi@ximian.com>
11259
11260         * DataGridTextBoxColumn.cs: new rows, speed improvements, fixes, readonly prop.
11261         * DataGridDrawingLogic.cs: new rows, speed improvements, fixes, readonly prop.
11262         * DataGrid.cs: new rows, speed improvements, fixes, readonly prop.
11263         * DataGridColumnStyle.cs: new rows, speed improvements, fixes, readonly prop.
11264         
11265 2005-06-16  Jordi Mas i Hernandez <jordi@ximian.com>
11266
11267         * ThemeWin32Classic.cs: fixes colour
11268
11269 2005-06-15  Peter Bartok  <pbartok@novell.com>
11270
11271         * MWFCategoryAttribute.cs: Added (Needed for PropertyGrid designer support)
11272         * MWFDescriptionAttribute.cs: Added (Needed for PropertyGrid designer support)
11273         * ButtonBase.cs: Added MWFCategory and MWFDescription attributes
11274         * Control.cs: Added some MWFCategory and MWFDescription attributes
11275         * ScrollBar.cs: Added some MWFCategory and MWFDescription attributes
11276
11277 2005-06-15  Alexander Olk  <xenomorph2@onlinehome.de>
11278
11279         * Mime.cs, MimeGenerated.cs: First draft of MWF mime stuff, see Mime.cs for
11280         usage
11281
11282 2005-06-14  Jordi Mas i Hernandez <jordi@ximian.com>
11283
11284         * DataGridTextBoxColumn.cs: default datagrid settings for Default Styles, fixes
11285         * DataGridTableStyle.cs: default datagrid settings for Default Styles, fixes
11286         * DataGridDrawingLogic.cs: default datagrid settings for Default Styles, fixes
11287         * DataGridBoolColumn.cs: default datagrid settings for Default Styles, fixes
11288         * DataGrid.cs: default datagrid settings for Default Styles, fixes
11289         * DataGridColumnStyle.cs: default datagrid settings for Default Styles, fixes
11290
11291 2005-06-13  Jackson Harper  <jackson@ximian.com>
11292
11293         * XplatUIX11.cs: Override SetAllowDrop on X11 so an error message
11294         isn't printed when the user enables dropping. (X11 does accept
11295         drops).
11296         
11297 2005-06-13  Jackson Harper  <jackson@ximian.com>
11298
11299         * TreeView.cs: Remove some TODOS.
11300
11301 2005-06-13  Jackson Harper  <jackson@ximian.com>
11302
11303         * Form.cs: Hook into the mdi framework.
11304         * MdiClient.cs: Use the base control collections add method so
11305         parents get setup correctly. Set the default back colour and dock
11306         style.
11307         * MdiChildContext.cs: New class, this bad actor handles an
11308         instance of an MDI window. Right now there is only basic
11309         support. You can drag, close, and resize windows. Minimize and
11310         Maximize are partially implemented.
11311
11312 2005-06-13  Jackson Harper  <jackson@ximian.com>
11313
11314         * XplatUIX11.cs: Mash numbers together properly, otherwise we get
11315         freaky when both vals are negative. NOTE: There are probably other
11316         places in XplatUIX11 that this needs to be done.
11317
11318 2005-06-13  Jordi Mas i Hernandez <jordi@ximian.com>
11319
11320         * DataGrid.cs: implement missing methods, move KeyboardNavigation
11321         * DataGridColumnStyle.cs: fixes signature
11322
11323 2005-06-12  Jackson Harper  <jackson@ximian.com>
11324
11325         * XplatUIX11.cs: Use sizing cursors similar to the ones on
11326         windows.
11327
11328 2005-06-11  Jackson Harper  <jackson@ximian.com>
11329
11330         * StatusBarPanel.cs: Signature cleanups. Implement
11331         BeginInit/EndInit.
11332
11333 2005-06-10  Jordi Mas i Hernandez <jordi@ximian.com>
11334
11335         * DataGridTextBoxColumn.cs: Honors aligment
11336         * GridColumnStylesCollection.cs: Contains is case unsensitive
11337         * GridTableStylesCollection.cs: several fixes
11338         * DataGridTableStyle.cs: default column creation
11339         * DataGridDrawingLogic.cs: fixes
11340         * CurrencyManager.cs: ListName property
11341         * DataGrid.cs: multiple styles support
11342         * DataGridColumnStyle.cs: fixes
11343         
11344
11345 2005-06-10  Peter Bartok  <pbartok@novell.com>
11346
11347         * Control.cs(Select): Moved SetFocus call to avoid potential
11348           loops if controls change the active control when getting focus
11349         * UpDownBase.cs: Fixes to allow proper keyboard focus after clicking
11350           the up/down buttons
11351
11352 2005-06-10  Matthias Felgner  <matthiasf@voelcker.ocm>
11353
11354         * ImageListConverter.cs: Implemented
11355
11356 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11357
11358         * MonthCalendar.cs: Wired in NumericUpDown control for year
11359
11360 2005-06-10  John BouAntoun <jba-mono@optusnet.com.au>
11361
11362         * MonthCalendar.cs: Removed MonoTodo attributes on Click and
11363           DoubleClick events, since they are not meant to be fired.
11364
11365 2005-06-09  Peter Bartok  <pbartok@novell.com>
11366
11367         * UpDownBase.cs, NumericUpDown.cs, DomainUpDown.cs: Integrated
11368           Jonathan's standalone controls into MWF, implemented missing
11369           events, attributes and methods; added xxxAccessible classes
11370         * AccessibleObject.cs: Made fields internal so other classes
11371           can change them if needed
11372
11373 2005-06-09  Jonathan Gilbert  <2a5gjx302@sneakemail.com>
11374
11375         * UpDownBase.cs: Complete implementation
11376         * NumericUpDown.cs: Complete implementation
11377         * DomainUpDown.cs: Complete implementation
11378
11379 2005-06-09  Jordi Mas i Hernandez <jordi@ximian.com>
11380
11381         * DataGridTextBoxColumn.cs: drawing fixes
11382         * DataGridCell.cs: fixes ToString method to match MSNet
11383         * DataGridTableStyle.cs: fixes
11384         * DataGridBoolColumn.cs: fixes, drawing
11385         * DataGridDrawingLogic.cs: fixes, new methods
11386         * DataGridTextBox.cs: Keyboard and fixes
11387         * DataGrid.cs:
11388                 - Keyboard navigation
11389                 - Scrolling fixes
11390                 - Row selection (single, multiple, deletion, etc)
11391                 - Lots of fixes
11392         
11393 2005-06-07  Jackson Harper  <jackson@ximian.com>
11394
11395         * ThemeWin32Classic.cs: Clear the background area when drawing
11396         buttons.
11397
11398 2005-06-06  Peter Bartok  <pbartok@novell.com>
11399
11400         * ImageListStreamer.cs: Fixed signature for GetData
11401         * CheckBox.cs: Fixed base class for CheckBoxAccessibleObject
11402         * ComboBox.cs:
11403           - Added missing ChildAccessibleObject class
11404           - Added missing OnXXXFocus overrides, switched to using those
11405             instead of the event handler
11406         * Control.cs:
11407           - Added Parent property for ControlAccessibleObject
11408           - Fixed signatures
11409           - Fixed attributes
11410           - Added ResetBindings()
11411         * ListBindingConverter.cs: Implemented some methods
11412         * ButtonBase.cs: Added missing ButtonBaseAccessibleObject class
11413         * ImageList.cs: Implemented basic handle scheme, removed TODOs
11414         * ContainerControl.cs: Fixed signature, now subscribing to the
11415           ControlRemoved event instead of overriding the handler, LAMESPEC
11416         * CurrencyManager.cs: Added missing attribute
11417         * MonthCalendar.cs: Added missing properties
11418
11419 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11420
11421         * DataGridColumnStyle.cs: fixes for DataGridColumnStyle
11422         
11423 2005-06-06  Gaurav Vaish and Ankit Jain
11424
11425         * DataSourceHelper.cs: Gaurav Vaish and Ankit Jain patch for databinding
11426         * DataGrid.cs: Gaurav Vaish and Ankit Jain patch for databinding
11427         
11428 2005-06-06  Jordi Mas i Hernandez <jordi@ximian.com>
11429
11430         * Control.cs: fixes CreateParams Width / Height.
11431
11432 2005-06-05  Peter Bartok  <pbartok@novell.com>
11433
11434         * Win32DnD.cs: Removed compilation warnings
11435
11436 2005-06-05  Peter Bartok  <pbartok@novell.com>
11437
11438         * Control.cs (CreateParams): Since we don't know if one of the
11439           properties we use is overridden, lets make sure if we fail accessing
11440           we continue with a backup plan
11441
11442 2005-06-05  Peter Bartok  <pbartok@novell.com>
11443
11444         * Win32DnD.cs:
11445           - Removed debug output
11446           - Added MarshalAs attribute to ensure proper marshalling of FORMATETC
11447             struct
11448           - Plugged resource leak
11449         * XplatUIStructs.cs: Changed ClipboardFormats size to ushort, to match
11450           MS size
11451
11452 2005-06-05  Peter Bartok  <pbartok@novell.com>
11453
11454         * XplatUIWin32.cs: Removed DnD code
11455         * Win32DnD.cs: Implemented drop source and drop target functionality
11456
11457 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11458
11459         * UpDownBase.cs: remove duplicate addition of event, enable some code
11460         that was commented out.
11461         * NumericUpDown.cs: added missing attributes and Hexadecimal property.
11462         Validate input when a key is pressed. It works fine now for every
11463         combination of Hexadecimal. Only missing some drawing love when sharing
11464         space with other controls.
11465
11466 2005-06-04  Peter Bartok  <pbartok@novell.com>
11467
11468         * Control.cs:
11469           - We need to pass a window for DragDrop, so enable callback events
11470           - Added DnD callback events when being a DragSource
11471         * XplatUI.cs (StartDrag): Added window handle argument
11472         * XplatUIDriver.cs (StartDrag): Added window handle argument
11473         * QueryContinueDragEventArgs: Made fields internally accessible so
11474           drivers can set them
11475         * GiveFeedbackEventArgs: Made fields internally accessible so drivers
11476           can set them
11477
11478 2005-06-03  Jordi Mas i Hernandez <jordi@ximian.com>
11479
11480         * DataGridTextBoxColumn.cs: column text editing
11481         * DataGridTableStyle.cs: Respect columns styles created by the user
11482         * DataGridDrawingLogic.cs: lots of drawing fixes and enhanments
11483         * DataGridBoolColumn.cs: bool column editing
11484         * DataGrid.cs: fixes to scrolling, properties, etc
11485         * DataGridTextBox.cs: handle keyboard
11486         * DataGridColumnStyle.cs: fixes
11487
11488 2005-06-02  Jackson Harper  <jackson@ximian.com>
11489
11490         * ImageListStreamer.cs: Somewhat broken implementation of
11491         GetObjectData. The RLE needs some work to match MS properly.
11492
11493 2005-06-02  Jackson Harper  <jackson@ximian.com>
11494
11495         * X11Dnd.cs: Attempting to keep at least one file in MWF
11496         monostyled.
11497
11498 2005-06-02  Peter Bartok  <pbartok@novell.com>
11499
11500         * X11DnD.cs: Use Marshal.SizeOf instead of sizeof, no /unsafe required
11501           that way
11502
11503 2005-06-02  Peter Bartok  <pbartok@novell.com>
11504
11505         * Control.cs: Removed MonoTODO from DoDragDrop and added call to Xplat
11506         * XplatUI.cs: Added DoDragDrop() method
11507         * XplatUIDriver.cs: Added DoDragDrop() method
11508
11509 2005-06-02  Jackson Harper  <jackson@ximian.com>
11510
11511         * Splitter.cs: Implement BorderStyle.
11512
11513 2005-06-02  Jackson Harper  <jackson@ximian.com>
11514
11515         * XplatUIX11.cs: Tie into the X11Dnd subsystem.
11516         * X11Dnd.cs: New file. A subsystem that handles drag and drop on
11517         X11 using XDND.
11518
11519 2005-06-02  Peter Bartok  <pbartok@novell.com>
11520
11521         * DataObject.cs:
11522           - Added Data setter
11523           - Fixed broken insertion code for SetData, now also
11524             overwrites any existing entry of the same format name
11525         * Hwnd.cs: Added list of pointers that automatically gets
11526           freed when the window is disposed
11527         * XplatUI.cs: Call driver initialization method when loading
11528           a driver
11529         * Control.cs:
11530           - OnDragLeave takes EventArgs, not DragEventArgs
11531           - Added setting of WS_EX_ACCEPTFILES style when dropping is
11532             supported
11533           - Forces style update when drop state changes
11534         * XplatUIWin32.cs: Implemented Drag'n'Drop (as good as possible,
11535           not perfect since we cannot (yet) call the IDataObject.GetData()
11536           method, we keep getting 0x80004005 error, dunno why)
11537
11538 2005-06-02  Peter Bartok  <pbartok@novell.com>
11539
11540         * DragEventArgs.cs: Make fields internal so we can cache the
11541           object and re-set the fields from XplatUI
11542
11543 2005-06-02  Jackson Harper  <jackson@ximian.com>
11544
11545         * Control.cs: Add some internal methods so the DnD subsystem can
11546         raise DnD events. Also call into the driver when AllowDrop is set.
11547         * XplatUI.cs:
11548         * XplatUIDriver.cs: New method for setting whether or not a window
11549         is allowed to accept drag and drop messages.
11550                 
11551 2005-06-01  Jordi Mas i Hernandez <jordi@ximian.com>
11552         
11553         * ScrollBar.cs: Make sure that values sent in Scroll events
11554         are always between Maximum and Minimum.
11555
11556 2005-06-01  Marek Safar  <marek.safar@seznam.cz>
11557
11558         * Menu.cs: Call MenuChanged when menuitem visibility has been
11559         changed.
11560         * MenuItem.cs: Rebuild menu when item is (not) visible.
11561         * MainMenu.cs: MainMenu has special MenuChanged.
11562         * Theme.cs: Caption and FrameBorderSize are not fixed.
11563         * XplatUI.cs: Added CaptionHeight,FrameBorderSize.
11564         * XplatUIDriver.cs: Introduced Caption and FrameBorderSize.
11565         * XplatUIX11.cs,
11566         * XplatUIOSX: Caption and FrameBorderSize not implemented yet.
11567         * XplatUIWin32.cs: Get Caption and FrameBorderSize from system.
11568
11569 2005-05-30  Jackson Harper  <jackson@ximian.com>
11570
11571         * DataFormat.cs: We can't statically initialize this stuff because
11572         it calls into the xplatui and could create a loop. So we lazy init
11573         it.
11574
11575 2005-05-28  Jackson Harper  <jackson@ximian.com>
11576
11577         * Control.cs: Proper implementation of Product(Name/Version).
11578
11579 2005-05-27  Jackson Harper  <jackson@ximian.com>
11580
11581         * DataObject.cs: Dont crash if no data is found.
11582
11583 2005-05-26  Rafael Teixeira  <rafaelteixeirabr@hotmail.com>
11584         * MdiClient.cs: Add missing Localizable attribute to BackgroundImage property
11585                 as per status page, guessing it should be set to true
11586
11587 2005-05-26  Jordi Mas i Hernandez <jordi@ximian.com>
11588
11589         * DataGridTextBoxColumn.cs: Draws text and basic text formatting
11590         * DataGridTableStyle.cs: set proper formatting text, def header text
11591         * ThemeWin32Classic.cs: new themable paramaters
11592         * DataGridBoolColumn.cs: paint check box, get data, fixes
11593         * DataGridDrawingLogic.cs: huge improvements in painting, fixes, new methods
11594         * DataGrid.cs: fixes properties, implements vertical and horizontal scrolling
11595         * DataGridColumnStyle.cs: fixes
11596         * Theme.cs: new themable paramaters
11597                 
11598 2005-05-26  Peter Bartok  <pbartok@novell.com>
11599
11600         * ContainerControl.cs: Pass AdjustFormScrollbars() call on to base
11601
11602 2005-05-24 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11603         * Control.cs: Fixed LowOrder and HighOrder to preserve sign.
11604
11605 2005-05-24  Peter Bartok  <pbartok@novell.com>
11606
11607         * OpenFileDialog.cs, Form.cs, Menu.cs, GroupBox.cs, UserControl.cs,
11608           Label.cs, DataGridTextBoxColumn.cs, PropertyGrid.cs, ErrorProvider.cs
11609           Splitter.cs, Control.cs, FontDialog.cs, TabPage.cs,
11610           FolderBrowserDialog.cs, HelpProvider.cs, DataGridTableStyle.cs,
11611           NotifyIcon.cs, FileDialog.cs, ListView.cs, SaveFileDialog.cs,
11612           ToolBarButton.cs, ImageList.cs, DataGridBoolColumn.cs, Panel.cs,
11613           DataGrid.cs, DataGridTextBox.cs, ListBox.cs, TrackBar.cs,
11614           AxHost.cs, TabControl.cs, ScrollableControl.cs, ToolBar.cs,
11615           DataGridColumnStyle.cs, PictureBox.cs, DateTimePicker.cs,
11616           StatusBar.cs, MonthCalendar.cs, TreeView.cs: Added
11617           missing attributes, etc
11618         * DataGridPreferredColumnWidthTypeConverter.cs: Added
11619
11620 2005-05-24  Peter Bartok  <pbartok@novell.com>
11621
11622         * Help.cs: Added, implemented trivial functions, throws up MessageBox
11623           when user tries to get help
11624         * DataObject.cs, DataFormats.cs, LinkArea.cs,
11625           SelectionRangeConverter.cs, Clipboard.cs : Removed unused variables
11626           to suppress warnings
11627         * XplatUIWin32.cs, XplatUIOSX.cs, XplatUIX11.cs: Removed unused code to
11628           avoid unreachable code warning
11629
11630 2005-05-20  Peter Bartok  <pbartok@novell.com>
11631
11632         * CursorConverter.cs (ConvertTo): Switched to use Cursor.GetObjectData
11633
11634 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11635
11636         * DataGridTextBoxColumn.cs: Basic painting methods
11637         * DataGridTableStyle.cs: Set table style in the column
11638         * ThemeWin32Classic.cs: Use Theme for colors
11639         * DataGridDrawingLogic.cs: Implement more drawing
11640         * DataGrid.cs: drawing, theming, enhacements, fixes
11641         * DataGridColumnStyle.cs: fixes, drawing
11642         * Theme.cs: theming for Datagrid
11643
11644 2005-05-20  Peter Bartok  <pbartok@novell.com>
11645
11646         * Cursor.cs: Implemented GetObjectData() method
11647
11648 2005-05-20  Peter Bartok  <pbartok@novell.com>
11649
11650         * Cursors.cs: Added setting of cursor name
11651         * Cursor.cs:
11652           - Implemented constructors
11653           - Implemented Draw and DrawStretched
11654           - Implemented Current property
11655           - Implemented == and != operators
11656           - Implemented Dispose()
11657           - Implemented ToString
11658           - Added missing attributes
11659         * XplatUIX11.cs:
11660           - Added missing reset for OverrideCursor when DoEvents is called
11661           - Fixed creation of cursor, logic was wrong
11662         * XplatUIWin32.cs:
11663           - Added missing reset for OverrideCursor when DoEvents is called
11664           - Fixed creation of cursor, bit arrays were swapped
11665         * Clipboard.cs: Removed obsolete MonoTODO attribute
11666
11667 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11668
11669         * ComboBox.cs: fixes OnSelectedItemChanged
11670         * ControlBindingsCollection.cs: fixes item range check
11671
11672 2005-05-20  Jordi Mas i Hernandez <jordi@ximian.com>
11673
11674         * UpDownBase.cs:
11675                 - Calc preferred height properly
11676                 - Implement missing properties
11677                 
11678         * NumericUpDown.cs: Implement missing events
11679
11680 2005-05-19  Jackson Harper  <jackson@ximian.com>
11681
11682         * TabControl.cs: New method that resizes the tab pages before
11683         redrawing them. This as needed as the control is double buffered
11684         and sizing will not be recalculated unless ResizeTabPages is
11685         called.
11686         * TabPage.cs: Set base.Text instead of Text in the constructor so
11687         that UpdateOwner does not get called. Use the new Redraw method of
11688         TabControl instead of Refresh so the sizing is recalculated.
11689         * ThemeWin32Classic.cs: Draw the text for button tabs.
11690
11691 2005-05-19  Jackson Harper  <jackson@ximian.com>
11692
11693         * Control.cs: Paint control background images. Fix typo where
11694         PaintControlBackground was not getting called correctly.
11695
11696 2005-05-19  Peter Bartok  <pbartok@novell.com>
11697
11698         * ScrollableControl.cs (DisplayRectangle): Undid my last change until
11699           I can investigate, apparently I broke FileDialog
11700
11701 2005-05-19  Marek Safar  <marek.safar@seznam.cz>
11702
11703         * AxHost.cs: Some simple properties.
11704         * Control.cs: window must be accessible after ctor.
11705         * Form.cs: Added TransparencyKey property.
11706         * TextBoxBase.cs: Implemented Clear. Text property can be null.
11707         * XplatUIWin32.cs: SetBorderStyle implemented.
11708
11709 2005-05-18  Peter Bartok  <pbartok@novell.com>
11710
11711         * DataObject.cs: Entries are not global but particular to the
11712           DataObject, now it behaves that way
11713         * XplatUIWin32.cs: Implemented Clipboard methods
11714         * Clipboard.cs: Implemented
11715         * ScrollableControl.cs (DisplayRectangle): Fixed calculation
11716         * XplatUIOSX.cs: Updated to final clipboard prototypes
11717         * XplatUIX11.cs: Implemented Clipboard methods
11718         * XplatUIDriver.cs: Updated to final clipboard prototypes
11719         * XplatUIStructs.cs:
11720           - Added BITMAPINFOHEADER struct
11721           - Added ClipboardFormats enum
11722         * X11Structs.cs:
11723           - Added ClipboardStruct
11724           - Added Atom enum items for clipboard types
11725           - Fixed atom types for Selection event structures
11726         * DataFormats.cs:
11727           - Added internal properties and methods for drivers to enumerate
11728             all known formats
11729           - Switched initialization method to allow drivers to assign their
11730             own IDs even for the MS predefined clipboard IDs
11731         * XplatUI.cs: Updated to final clipboard interface
11732
11733 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11734         * PropertyGridView.cs: Fixed compiler warnings.
11735
11736 2005-05-18 Jonathan S. Chambers <jonathan.chambers@ansys.com>
11737         * PropertyGrid.cs: Added some event calls
11738         * PropertyGridView.cs: Change drawing code to use double buffering
11739         * PropertyGridTextBox.cs: Changed Text property name
11740         * GridItem.cs: Added Bounds property.
11741         * GridEntry.cs: Added Bounds property.
11742
11743 2005-05-17  Lluis Sanchez Gual  <lluis@novell.com>
11744
11745         * Binding.cs: Use IsInstanceOfType instead of IsAssignableFrom
11746         since GetType() may not return the correct type if the object is
11747         a remoting proxy.
11748
11749 2005-05-17  Jordi Mas i Hernandez <jordi@ximian.com>
11750
11751         * TreeNodeCollection.cs: fixes get/set item ranges
11752         
11753 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11754
11755         * ListBox.cs: Kazuki Oikawa's PreferredHeight and ItemHeight fixes
11756                 
11757 2005-05-15  Jordi Mas i Hernandez <jordi@ximian.com>
11758
11759         * ComboBox.cs: Fix item range comparation
11760         * ListView.cs: Fix item range comparation
11761
11762 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11763
11764         * FontDialog.cs:
11765           - Clear example panel when OnPaint is called
11766           - Better solution for displaying the example panel text
11767           - Select default indexes in the ListBoxes
11768
11769 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11770
11771         * XplatUIOSX.cs: Avoid painting into invisible views.  Fixes #74926
11772
11773 2005-05-11  Peter Bartok  <pbartok@novell.com>
11774
11775         * LinkArea.cs: Added and implemented LinkAreaTypeConverter class
11776         * SelectionRangeConverter.cs: Implemented
11777         * PropertyGrid.cs: Fixed attribute value
11778         * Control.cs:
11779           - Invoke(): Don't call Begin/EndInvoke if it is not neccessary
11780           - Added Sebastien Pouliot's CAS Stack Propagation fixes
11781         * XplatUIDriver.cs: Added new XplatUIDriverSupport class, for code
11782           that's common to all drivers. First methods to go there are
11783           Sebastien Pouliot's CAS Stack Propagation helper methods
11784         * XplatUIWin32.cs, XplatUIX11.cs, AsyncMethodData.cs: Fixes by
11785           Sebastien Pouliot for CAS Stack Propagation
11786
11787 2005-05-11  Geoff Norton  <gnorton@customerdna.com>
11788
11789         * OSXStructs.cs:
11790           XplatUIOSX.cs: More cosmetic cleanup courtesy of Artyom Tyazhelov (Artyom.Tyazhelov@helmes.ee)
11791
11792 2005-05-12  Jordi Mas i Hernandez <jordi@ximian.com>
11793
11794         * DataGridTextBoxColumn.cs: fixed some members
11795         * GridColumnStylesCollection.cs: indexed column is case insensitive
11796         * DataGridTableStyle.cs: fixes
11797         * ThemeWin32Classic.cs: add new theme parameter
11798         * Theme.cs: add new theme parameter
11799         * DataGridDrawingLogic.cs: Datagrid's drawing logic
11800         * DataGrid.cs: fixes, new internal properties, etc.
11801         * DataGridColumnStyle.cs: allows to set grid value
11802         *
11803
11804 2005-05-10  Peter Bartok  <pbartok@novell.com>
11805
11806         * AccessibleObject.cs:
11807           - Removed MonoTODO attribute on help, method is correct
11808           - Fixed Bounds property
11809         * AxHost.cs: Moved MonoTODO
11810         * ButtonBase.cs: Now setting AccessibleObject properties
11811         * RadioButton.cs: Setting proper AccessibleObject role
11812         * CheckBox.cs: Setting proper AccessibleObject role
11813         * ControlBindingsCollection.cs: Added properties, methods and attributes
11814         * DataFormats.cs: Fixed awkward internal API, and changed to enable
11815           userdefined DataFormats.Format items as well
11816         * ListControl.cs: Removed data_member from the public eye
11817         * OpenFileDialog.cs:
11818           - Made class sealed
11819           - Added missing attributes
11820         * SaveFileDialog.cs: Added missing attributes
11821         * ImageListStreamer.cs: Fixed code that caused warnings
11822         * LinkLabel.cs: Removed unreachable code
11823         * TreeView.cs: Fixed code that caused warnings
11824         * PropertyGridView.cs: Fixed code that caused warnings
11825         * GridColumnStylesCollection.cs: Added missing attributes
11826         * GridTableStylesCollection: Added missing attribute
11827         * PropertyManager: Added .ctor
11828         * SecurityIDType: Added
11829         * DataObject.cs: Implemented class
11830         * LinkArea.cs: Added missing attribute
11831
11832 2005-05-11  Jordi Mas i Hernandez <jordi@ximian.com>
11833
11834         * RadioButton.cs: call base method to allow to fire OnClick event
11835         * UpDownBase.cs: OnMouseUp call base method
11836         * CheckedListBox.cs: call base method before returning
11837         * TrackBar.cs: call base method before returning
11838         
11839
11840 2005-05-10  Peter Bartok  <pbartok@novell.com>
11841
11842         * XplatUIX11.cs: Fix for #74902, check pending timers when peeking
11843           for messages
11844
11845 2005-05-10  Peter Bartok  <pbartok@novell.com>
11846
11847         * DataFormats.cs: Implemented
11848         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs,
11849           XplatUIX11.cs: Added Clipboard APIs
11850         * XplatUIWin32.cs: Implemented Clipboard APIs
11851         * FolderBrowserDialog.cs: Added missing event, attributes
11852
11853 2005-05-10  Jordi Mas i Hernandez <jordi@ximian.com>
11854
11855         * CheckBox.cs: call base method to allow to fire OnClick event
11856
11857 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com>
11858
11859         * XplatUI.cs: Use PlatformID.Unix under NET_2_0.
11860
11861 2005-05-06  Peter Bartok  <pbartok@novell.com>
11862
11863         * XplatUIX11.cs: Redid Jackson's fix, it was causing a busy loop
11864         * Screen.cs: Implemented
11865         * HelpNavigator.cs: Added
11866         * XplatUIWin32.cs: Added SystemParametersInfo call, fixed WorkArea
11867           property
11868         * HelpProvider.cs: Implemented all we can do until we have a CHM
11869           help library (which means that "What's This" does work now)
11870
11871 2005-05-06  Jackson Harper  <jackson@ximian.com>
11872
11873         * XplatUIX11.cs: Fix waking up the main loop.
11874                 
11875 2005-05-05  Peter Bartok  <pbartok@novell.com>
11876
11877         * XplatUI.cs: Updated revision
11878         * Form.cs: Removed enless loop
11879         * GroupBox.cs (OnPaint): Added call to base.OnPaint()
11880         * Label.cs (OnPaint): Added call to base.OnPaint()
11881         * ToolTip.cs: Made ToolTipWindow reusable for other controls
11882         * LinkLabel.cs (OnPaint): Added call to base.OnPaint()
11883         * UpDownBase.cs (OnPaint): Moved base.OnPaint() call to end of method
11884         * AxHost.cs: Added
11885         * ButtonBase.cs: Moved base.OnPaint() call to end of method
11886         * ThemeWin32Classic.cs: Replaced references to ToolTip with references
11887           to ToolTip.ToolTipWindow for drawing and size methods; this allows
11888           reuse of ToolTipWindow by other controls
11889         * SizeGrip.cs: Moved base.OnPaint() call to end of method
11890         * XplatUIX11.cs: Now clipping drawing area (experimental)
11891         * PictureBox.cs: Moved base.OnPaint() call to end of method
11892         * Theme.cs: Fixed ToolTip abstracts to match new format
11893         * ErrorProvider.cs: Implemented
11894
11895 2005-05-05  Jordi Mas i Hernandez <jordi@ximian.com>
11896
11897         * Label.cs: fire events using OnAutoSizeChanged and OnTextAlignChanged
11898         * LinkLabel.cs:
11899                 - Adds cursors
11900                 - Handles focus
11901                 - Implements LinkBehavior
11902                 - Fixes many issues
11903
11904 2005-05-03  Jackson Harper  <jackson@ximian.com>
11905
11906         * ListView.cs: Calculate the scrollbar positioning on resize and
11907         paint, so they get put in the correct place.
11908
11909 2005-05-03  Alexander Olk  <xenomorph2@onlinehome.de>
11910
11911         * ColorDialogs.cs: The small color panels are now handled by
11912           SmallColorControl. This fixes drawing of the focus rectangle
11913           and adds a 3D border.
11914
11915 2005-05-03  Peter Bartok  <pbartok@novell.com>
11916
11917         * Control.cs: Modified version of Jonathan Chamber's fix for
11918           double-buffering
11919
11920 2005-05-03  Jackson Harper  <jackson@ximian.com>
11921
11922         * ListView.cs: Remove redraw variable. Control now handles whether
11923         or not a redraw needs to be done, and will only raise the paint
11924         event if redrawing is needed.
11925
11926 2005-05-03  Jackson Harper  <jackson@ximian.com>
11927
11928         * Splitter.cs: No decorations for the splitter form. Cache the
11929         hatch brush.
11930
11931 2005-05-03  Jackson Harper  <jackson@ximian.com>
11932
11933         * TreeView.cs: Use dashed lines to connect nodes. Use the
11934         ControlPaint method for drawing the focus rect instead of doing
11935         that in treeview.
11936
11937 2005-05-02  Peter Bartok  <pbartok@novell.com>
11938
11939         * LinkLabel.cs: Fixed the fixes from r43566 and 43521
11940
11941 2005-04-29  Jackson Harper  <jackson@ximian.com>
11942
11943         * ThemeWin32Classic.cs: Don't clear the GC that will clear the
11944         entire image buffer. Just clear the clipping rectangle.
11945
11946 2005-04-29  Jackson Harper  <jackson@ximian.com>
11947
11948         * ThemeWin32Classic.cs: Don't draw list view items that are
11949         outside the clipping rectangle.
11950
11951 2005-04-29  Jordi Mas i Hernandez <jordi@ximian.com>
11952
11953         * ListBox.cs: added horizontal item scroll
11954
11955 2005-04-29  Jackson Harper  <jackson@ximian.com>
11956
11957         * ThemeWin32Classic.cs: Remove some old debug code that was
11958         causing flicker with the new double buffering code.
11959
11960 2005-04-29  John BouAntoun  <jba-mono@optusnet.com.au>
11961
11962         * MonthCalendar.cs, DateTimePicker.cs: Made monthcalendar dropdwon
11963         behave like combobox and comboboxlist (still not sure if this is
11964         correct though).
11965
11966 2005-04-28  Jackson Harper  <jackson@ximian.com>
11967
11968         * ThemeWin32Classic.cs: Don't fill the middle of progress
11969         bars. This fills areas outside of the clip bounds that don't need
11970         to be filled.
11971
11972 2005-04-28  Jackson Harper  <jackson@ximian.com>
11973
11974         * Control.cs: Don't expose functionality to touch the image buffers.
11975         * ProgressBar.cs:
11976         * ListView.cs: We do not need to (and no longer can) manipulate
11977         the image buffers directly. All of this is handled by Control.
11978
11979 2005-04-28  Peter Bartok  <pbartok@novell.com>
11980
11981         * RichTextBoxSelectionAttribute.cs, RichTextBoxSelectionTypes.cs,
11982           RichTextBoxScrollBars.cs, RichTextBoxStreamType.cs,
11983           RichTextBoxFinds.cs, RichTextBoxWordPunctuations.cs: Added
11984
11985 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11986
11987         * Combobox:
11988                 - Adjust control's height for non-simple comboboxes (bug fix)
11989                 - Remove dead code
11990         * MenuAPI.cs: remove unused var
11991         * ScrollBar.cs: remove unsed var
11992                  
11993         * ListBox.cs: unselect items when clearing
11994
11995 2005-04-28  Jordi Mas i Hernandez <jordi@ximian.com>
11996
11997         * ListControl.cs: honors OnPositionChanged and default Selected Item
11998         * ListBox.cs: unselect items when clearing
11999
12000 2005-04-27  Jackson Harper  <jackson@ximian.com>
12001
12002         * X11Keyboard.cs: Initialize a default keyboard and give a warning
12003         if a "correct" keyboard is not found. This will make us not crash,
12004         but might give some users bad keyboard layouts...seems to be the
12005         same thing rewind does.
12006
12007 2005-04-27  Jackson Harper  <jackson@ximian.com>
12008
12009         * BindingManagerBase.cs: Attach the current/position changed
12010         handlers to their respective events.
12011
12012 2005-04-27  Jackson Harper  <jackson@ximian.com>
12013
12014         * Control.cs: Make sure that the first WM_PAINT does a full draw,
12015         not just a blit.
12016         * ThemeWin32Classic.cs: Don't fill the background for picture
12017         boxes. This could overright user drawing.
12018         * ComboBox.cs: Just fill the clipping rect not the entire client
12019         rect when drawing the background. This prevents pieces of the
12020         image buffer from getting overwritten and is theoretically faster.
12021
12022 2005-04-26  Jordi Mas i Hernandez <jordi@ximian.com>
12023
12024         * ComboBox.cs: Databinding support fixes, fire missing events
12025         * ListControl.cs: implement missing methods and properties, fixes
12026         * ThemeWin32Classic.cs: Databiding support on Drawing
12027         * CheckedListBox.cs: Databinding support fixes, fire missing events
12028         * ListBox.cs: Databinding support fixes, fire missing events
12029         
12030 2005-04-25  Peter Bartok  <pbartok@novell.com>
12031
12032         * LinkLabel.cs: Length of LinkArea is not allowed to be negative
12033
12034 2005-04-25  Jackson Harper  <jackson@ximian.com>
12035
12036         * TreeView.cs: Use the horizontal scrollbars height not width when
12037         determining how much of the client area is available.
12038
12039 2005-04-25  Jackson Harper  <jackson@ximian.com>
12040
12041         * Control.cs: Double buffering is handled differently now. As per
12042         the spec, the extra buffer is created in the WM_PAINT message and
12043         passed down to the control's drawing code.
12044         * GroupBox.cs:
12045         * Label.cs:
12046         * CheckBox.cs:
12047         * ProgressBar.cs:
12048         * RadioButton.cs:
12049         * ColorDialog.cs:
12050         * ComboBox.cs:
12051         * PropertyGridView.cs:
12052         * UpDownBase.cs:
12053         * MessageBox.cs:
12054         * MenuAPI.cs:
12055         * ListView.cs:
12056         * ButtonBase.cs:
12057         * SizeGrip.cs:
12058         * ScrollBar.cs:
12059         * ListBox.cs:
12060         * TrackBar.cs:
12061         * ToolBar.cs:
12062         * PictureBox.cs:
12063         * DateTimePicker.cs:
12064         * StatusBar.cs:
12065         * TreeView.cs: Update to new double buffering system.
12066         * MonthCalendar.cs: Uncomment block, as Capture is now
12067         working. Update to new double buffering
12068         * LinkLabel.cs: Lazy init the link collection. Update to new double buffering
12069         * PaintEventArgs.cs: New internal method allows us to set the
12070         graphics object. This is used for double buffering.
12071         * ThemeWin32Classic.cs: Give the picture box drawing code a clip
12072         rectangle. The internal paint_area var has been removed from
12073         StatusBar. The clipping rect should be used instead.
12074         * Theme.cs: Give the PictureBox drawing method a clipping rect.
12075         * TabPage.cs: The RefreshTabs method was removed, so just call the
12076         tab controls Refresh method now.
12077         * TabControl.cs: Update to new double buffering. Make sure the
12078         handle is created before sizing the tab pages, otherwise we will
12079         get stuck in a loop.
12080
12081 2005-04-24  Borja Sanchez Zamorano <borsanza@gmail.com>
12082
12083         * LinkLabel.cs: Fix typo, bug #74719; patch
12084           from Borja Sanchez Zamorano
12085
12086 2005-04-22  Jackson Harper  <jackson@ximian.com>
12087
12088         * TreeNode.cs: Implement Handle stuff.
12089         * TreeView.cs: Utility methods so nodes can get/lookup by handle.
12090
12091 2005-04-22  Jordi Mas i Hernandez <jordi@ximian.com>
12092
12093         * DataGridTextBoxColumn.cs: call base constructors, fixes
12094         * GridColumnStylesCollection.cs: missing events, methods, and functionality
12095         * GridTableStylesCollection.cs: fixes, check duplicate mapping names
12096         * DataGridTableStyle.cs: implements create default column styles
12097         * DataGridBoolColumn.cs: which types can handle
12098         * DataGrid.cs: missing methods, fixes, new functionality
12099         * DataGridColumnStyle.cs: fixes
12100
12101 2005-04-20  Alexander Olk  <xenomorph2@onlinehome.de>
12102         * FolderBrowserDialog.cs:
12103         - Use a thread to fill the TreeView
12104         - Adjusted some sizes
12105
12106 2005-04-19  Peter Bartok  <pbartok@novell.com>
12107
12108         * LinkLabel.cs: (Re-)create the pieces when setting the Text
12109           property. Fixes #74360.
12110
12111 2005-04-19  Jackson Harper  <jackson@ximian.com>
12112
12113         * XEventQueue.cs: Lock when getting the lockqueue size.
12114         * PictureBox.cs: Call base OnPaint
12115         
12116 2005-04-19  Peter Bartok  <pbartok@novell.com>
12117
12118         * XplatUIX11.cs: Fixed bug introduced with the HWND rewrite, Async
12119           messages were no longer being processed (this broke BeginInvoke)
12120
12121           
12122 2005-04-18  Jackson Harper  <jackson@ximian.com>
12123
12124         * TreeView.cs: buglet that caused node images to get drawn
12125         regardless of whether or not they were in the clipping rectangle.
12126
12127 2005-04-18  Jackson Harper  <jackson@ximian.com>
12128
12129         * CurrencyManager.cs: There are four rules for GetItemProperties:
12130         - If the type is an array use the element type of the array
12131         - If the type is a typed list, use the type
12132         - If the list contains an Item property that is not an object, use
12133         that property
12134         - use the first element of the list if there are any elements in
12135         the list.
12136         
12137 2005-04-17  Jackson Harper  <jackson@ximian.oom>
12138
12139         * TreeView.cs: Calculate plus minus and checkbox bounds when there is a
12140         click. This handles offsets for scrolling properly and reduces
12141         memory. Also fixed GetNode to not offset now that TopNode works
12142         properly.
12143         * TreeNode.cs: No longer need to track the plus minus or checkbox bounds.
12144         
12145 2005-04-17  Jackson Harper  <jackson@ximian.com>
12146
12147         * CursorConverter.cs: Initial implementation.
12148
12149 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12150
12151         * ListControl.cs: work towards complex data binding support on ListControl
12152         * CurrencyManager.cs: work towards complex data binding support on ListControl
12153         * ListBox.cs: work towards complex data binding support on ListControl
12154
12155
12156 2005-04-15  Jordi Mas i Hernandez <jordi@ximian.com>
12157
12158         * GridTableStylesCollection.cs: fixes name and constructor
12159         * DataGridTableStyle.cs: fixes
12160         * DataGridBoolColumn.cs: fixes names and constructors
12161         * DataGrid.cs: define methods and properties. Some init implementations
12162         * DataGridCell.cs: define methods and properties. Some init implementations
12163         * GridTablesFactory.cs: Define methods and properties
12164
12165 2005-04-15  Geoff Norton  <gnorton@customerdna.com>
12166
12167         * XplatUIOSX.cs:  Handle proper mouse tracking even if the current
12168         graphics port changes.  We still want the coordinates in global screen
12169         coordinates.
12170
12171 2005-04-14  Jackson Harper  <jackson@ximian.com>
12172
12173         * TreeView.cs: Handle clicks when plus minus is disabled. Don't
12174         check plus minus or checkbox clicks unless those features are enabled.
12175
12176 2005-04-14  Jackson Harper  <jackson@ximian.com>
12177
12178         * TreeView.cs: Add methods for setting the top and bottom visible
12179         nodes. TreeNode::EnsureVisible uses these methods.
12180         * TreeNode.cs: Implement EnsureVisible
12181
12182 2005-04-13  Jordi Mas i Hernandez <jordi@ximian.com>
12183
12184         * Form.cs: Pospone menu assignation if the window has not been created yet
12185         * XplatUIWin32.cs: Fixes Win32SetWindowPos, then does not change window
12186         size and position
12187
12188 2005-04-12  Jackson Harper  <jackson@ximian.com>
12189
12190         * TreeView.cs: Set the TopNode properly when scrolling
12191         occurs. This has the added benifit of reducing the amount of
12192         walking that needs to be done when drawing. Also removed an old
12193         misleading TODO.
12194         * OpenTreeNodeEnumerator.cs: Fix moving backwards.
12195         
12196 2005-04-11  Jordi Mas i Hernandez <jordi@ximian.com>
12197
12198         * Timer.cs: fixes interval setting when the timer is already enabled
12199         
12200 2005-04-10  Alexander Olk  <xenomorph2@onlinehome.de>
12201
12202         * FolderBrowserDialog.cs: First approach
12203
12204 2005-04-09  Peter Bartok  <pbartok@novell.com>
12205
12206         * FolderBrowserDialog: Added
12207
12208 2005-04-07  Jordi Mas i Hernandez <jordi@ximian.com>
12209
12210         * LinkLabel.cs: move drawing code into the theme
12211         * ThemeWin32Classic.cs: drawing code and painting background bugfix
12212         * Theme.cs: define DrawLinkLabel method
12213
12214 2005-04-05  Jackson Harper  <jackson@ximian.com>
12215
12216         * BindingContext.cs: Use weak references so these bad actors don't
12217         stay alive longer then they need to.
12218
12219 2005-04-05  Jackson Harper  <jackson@ximian.com>
12220
12221         * ListControl.cs: Basic implementation of complex databinding.
12222         * ComboBox.cs:
12223         * ListBox.cs: Add calls to ListControl databinding methods.
12224
12225 2005-04-05  Alexander Olk  <xenomorph2@onlinehome.de>
12226
12227         * FileDialog.cs:
12228           - Don't change PopupButtonState to Normal when the
12229             PopupButton gets pressed several times.
12230           - Renamed ButtonPanel to PopupButtonPanel
12231
12232 2005-04-05  Jordi Mas i Hernandez <jordi@ximian.com>
12233
12234         * ColorDialog.cs: Use cached objects instead of creating them
12235         * LinkLabel.cs: Use cached objects instead of creating them
12236         * Splitter.cs: Use cached objects instead of creating them
12237         * FontDialog.cs: Use cached objects instead of creating them
12238         * PropertyGridView.cs: Use cached objects instead of creating them
12239         * MessageBox.cs: Use cached objects instead of creating them
12240         * FileDialog.cs: Use cached objects instead of creating them
12241         * ThemeWin32Classic.cs: Use cached objects instead of creating them
12242         * TreeView.cs: Use cached objects instead of creating them
12243         
12244 2005-04-04  Jordi Mas i Hernandez <jordi@ximian.com>
12245
12246         * Control.cs: use Equals to compare the font since no == op
12247         * ScrollBar.cs: use Equals to compare the font since no == op
12248
12249 2005-04-04  Alexander Olk  <xenomorph2@onlinehome.de>
12250
12251         * SaveFileDialog.cs: Open stream in OpenFile with FileMode Create
12252
12253 2005-04-01  Jackson Harper  <jackson@ximian.com>
12254
12255         * Binding.cs: Implement IsBinding.
12256         * BindingManagerBase.cs:
12257         * PropertyManager.cs:
12258         * CurrencyManager.cs: Add IsSuspended property.
12259
12260 2005-04-01  Jackson Harper  <jackson@ximian.com>
12261
12262         * Binding.cs: Had some IsAssignableFrom calls backwards.
12263
12264 2005-04-01  Jackson Harper  <jackson@ximian.com>
12265
12266         * Binding.cs: Handle null data members when pulling data.
12267         * PropertyManager.cs: Handle the data member being a property that
12268         does not exist.
12269
12270 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12271
12272         * DataGridTextBoxColumn.cs: fixes signature
12273         * DataGrid.cs: calls right constructor
12274
12275 2005-04-01  Jordi Mas i Hernandez <jordi@ximian.com>
12276
12277         * DataGridTextBoxColumn.cs: implements DataGridTextBoxColumn class
12278         * GridColumnStylesCollection.cs: implements GridColumnStylesCollection
12279         * GridTableStylesCollection.cs: implements GridTableStylesCollection
12280         * DataGridTableStyle.cs: implements DataGridTableStyle
12281         * DataGridBoolColumn.cs: implements DataGridBoolColumn
12282         * DataGridTextBox.cs: implements DataGridTextBox
12283         * DataGridColumnStyle.cs: implements DataGridColumnStyle
12284
12285 2005-03-31  Alexander Olk  <xenomorph2@onlinehome.de>
12286
12287         * FileDialog.cs: Added simple PopupButton class for ButtonPanel
12288
12289 2005-03-29  Peter Bartok  <pbartok@novell.com>
12290
12291         * Application.cs:
12292           - Properly implemented CompanyName property
12293           - Fixed LocalUserAppDataPath and UserAppDataPath, now properly
12294             returns a path that includes CompanyName, ProductName and
12295             Version (fixes bug #70330)
12296
12297 2005-03-29  Stefan Buehler  <sbuehler@gmx.ch>
12298
12299         * TabPage.cs: Don't use Owner.DisplayRectangle unless owner is valid,
12300           fixes bug #72588.
12301
12302 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12303
12304         * FileDialog.cs, SaveFileDialog.cs OpenFileDialog.cs:
12305         
12306           - Added ReadOnly CheckBox
12307           - Further refactoring: moved some code from Open-/SaveFileDialog
12308             to FileDialog
12309
12310 2005-03-28  Alexander Olk  <xenomorph2@onlinehome.de>
12311
12312         * OpenFileDialog.cs: Fixed CheckFileExists
12313         * FileDialog.cs:
12314           Moved FileView and DirComboBox outside FileDialog class.
12315           They can now be used outside FileDialog
12316
12317 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
12318
12319         * FileDialog.cs: Added a contextmenu to change ShowHiddenFiles
12320         * SaveDialog.cs, OpenFileDialog.cs: Fixes for Reset() method
12321
12322 2005-03-27  Alexander Olk  <xenomorph2@onlinehome.de>
12323
12324         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
12325           - Added missing CreatePrompt property in SaveDialog
12326           - Overall SaveDialog handling should be better now
12327           - Added non standard ShowHiddenFiles property
12328           - Added extension, CreatePrompt and OverwritePrompt support in SaveDialog
12329           - Added InitialDirectory and RestoreDirectory support
12330
12331 2005-03-26  Alexander Olk  <xenomorph2@onlinehome.de>
12332
12333         * FileDialog.cs: Made dirComboBox usable
12334
12335 2005-03-24  Alexander Olk  <xenomorph2@onlinehome.de>
12336
12337         * FileDialog.cs: Added Filter support (case sensitiv)
12338
12339 2005-03-24  Jackson Harper  <jackson@ximian.com>
12340
12341         * TabControl.cs: Need a couple more pixels for the lines.
12342
12343 2005-03-23  Jackson Harper  <jackson@ximian.com>
12344
12345         * TabControl.cs: Give the tab page focus when it is selected.
12346
12347 2005-03-23  Jackson Harper  <jackson@ximian.com>
12348
12349         * TabControl.cs: Account for the drawing of tabs borders when
12350         invalidating. If the slider was clicked dont do click detection on
12351         the tabs.
12352
12353 2005-03-23  Jackson Harper  <jackson@ximian.com>
12354
12355         * TabControl.cs: Fix typo, emilinates an unneeded expose event.
12356
12357 2005-03-22  Jonathan Chambers  <jonathan.chambers@ansys.com>
12358
12359         * CategoryGridEntry.cs: Added
12360         * GridItem.cs: Added helper properties
12361         * PropertyGridTextBox.cs: Custom textbox control for PropertyGrid.
12362         * GridEntry.cs: Updated code for collection
12363         * PropertyGrid.cs: Cleaned up some formatting
12364         * PropertyGridView.cs: Added drop down functionality for enums.
12365         * GridItemCollection.cs: Added enumerator logic
12366         * PropertyGridEntry.cs: Added
12367
12368 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12369
12370         * FileDialog.cs:
12371           - Removed unnecessary commented code
12372           - Fixed handling for entering the filename manually in the combobox
12373
12374 2005-03-19  Alexander Olk  <xenomorph2@onlinehome.de>
12375
12376         * FileDialog.cs, OpenFileDialog.cs: OpenFileDialog Multiselect now works
12377
12378 2005-03-18  Peter Bartok  <pbartok@novell.com>
12379
12380         * ThemeWin32Classic.cs: Moved listview column headers a bit, to avoid
12381           them being touching the border
12382
12383 2005-03-18  Peter Bartok  <pbartok@novell.com>
12384
12385         * TextControl.cs: Quick hack to center text better
12386
12387 2005-03-18  Peter Bartok  <pbartok@novell.com>
12388
12389         * ControlPaint.cs:
12390           - Don't throw NotImplemented exceptions, just print a notice once
12391             instead (requested by Miguel). This makes running existing SWF
12392             apps a bit easier
12393         * Control.cs:
12394           - Commented out Drag'N'Drop XplatUI call (no driver support yet)
12395           - Added context menu trigger on right click
12396         * Panel.cs: Trigger invalidate on resize
12397         * StatusBar.cs:
12398           - Removed old double-buffer drawing
12399           - Added ResizeRedraw style to force proper update of statusbar
12400         * ListView.cs:
12401           - Removed debug output
12402         * ThemeWin32Classic.cs:
12403           - Fixed drawing of status bar, now draws Text property if there
12404             are no defined panels
12405
12406 2005-03-18  Jackson Harper  <jackson@ximian.com>
12407
12408         * ImageList.cs: When the image stream is set pull all the images
12409         from it.
12410         * ImageListStreamer.cs: Implement reading image list streams.
12411
12412 2005-03-18  Peter Bartok  <pbartok@novell.com>
12413
12414         * ThemeWin32Classic.cs (DrawPictureBox):
12415           - Fixed calculations for centered drawing
12416           - Fixed drawing for normal mode, not scaling the image on normal
12417
12418 2005-03-18  Peter Bartok  <pbartok@novell.com>
12419
12420         * ComboBox.cs: Now also firing the OnKeyPress events for the embedded
12421           textbox
12422         * FileDialog.cs:
12423           - Made Open/Save button the accept button for FileDialog
12424           - Tied the cancel button to the IButtonControl cancel button
12425           - Save/Open now properly builds the pathname
12426           - Now handles user-entered text
12427           - Preventing crash on right-click if no item is selected
12428           - Fixed Text property, now uses contents of textbox
12429           - Fixed SelectedText property, now just returns the text part that
12430             is selected in the text box
12431
12432 2005-03-18  Jackson Harper  <jackson@ximian.com>
12433
12434         * ThemeWin32Classic.cs: Use the proper func for drawing the focus
12435         rect, make sure to de-adjust the interior rect after drawing the
12436         tab text.
12437
12438 2005-03-18  Peter Bartok  <pbartok@novell.com>
12439
12440         * MenuAPI.cs: Remove menu *before* executing selected action to
12441           prevent the menu from 'hanging around'
12442           
12443 2005-03-17  Geoff Norton  <gnorton@customerdna.com>
12444
12445         * XplatUIOSX.cs: Implemented WorkingArea property
12446
12447 2005-03-17  Peter Bartok  <pbartok@novell.com>
12448
12449         * XplatUIX11.cs: Fixed menu coord calculations
12450         * MenuAPI.cs: Now using new ScreenToMenu()/MenuToScreen() methods
12451           for calculating offsets
12452
12453 2005-03-17  Peter Bartok  <pbartok@novell.com>
12454
12455         * Hwnd.cs: Do not consider menu presence for default client
12456           rectangle location/size
12457         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs, XplatUIOSX.cs,
12458           XplatUIWin32.cs: Added MenuToScreen() and ScreenToMenu() coord
12459           translation functions
12460         * FileDialog.cs: Fixed (what I presume is a) typo
12461
12462 2005-03-17  Jonathan Gilbert  <logic@deltaq.org>
12463
12464         * XplatUIX11.cs: Added call to XInitThreads() to allow multi-threaded
12465           X access (avoids X-Async errors)
12466
12467 2005-03-16  Jackson Harper  <jackson@ximian.com>
12468
12469         * TabControl.cs: Raise the SelectedIndexChanged event.
12470
12471 2005-03-16  Alexander Olk  <xenomorph2@onlinehome.de>
12472
12473         * FileDialog.cs, OpenFileDialog.cs, SaveFileDialog.cs:
12474           - Removed vertical ToolBar and replaced it with a custom panel
12475             (desktop and home button already work)
12476           - Added Help button (some controls get resized or relocated then)
12477           - Draw correct text depending on Open or Save.
12478           - Fixed some typos...
12479
12480 2005-03-16  Jordi Mas i Hernandez <jordi@ximian.com>
12481
12482         * ScrollBar.cs:
12483           - Only change Maximum and Minimum when need it (bug fix)
12484
12485 2005-03-15  Peter Bartok  <pbartok@novell.com>
12486
12487         * Form.cs: Use Handle for icon, to trigger creation if
12488           the window does not yet exist
12489         * Control.cs:
12490           - CanSelect: Slight performance improvement
12491           - Focus(): Preventing possible recursion
12492           - Invalidate(): Removed ControlStyle based clear flag setting
12493           - WM_PAINT: fixed logic for calling OnPaintBackground
12494           - WM_ERASEBKGND: Fixed logic, added call to new driver method
12495             EraseWindowBackground if the control doesn't paint background
12496         * XplatUIWin32.cs:
12497           - Moved EraseWindowBackground() method to internal methods
12498           - Removed unused WM_ERASEBKGND handling in GetMessage; msg never comes;
12499             is sent via SendMessage on BeginPaint call on Win32
12500         * XplatUIX11.cs:
12501           - Added EraseWindowBackground() method
12502           - No longer sends WM_ERASEBKGND on .Expose, but on call to
12503             PaintEventStart, which more closely matches Win32 behaviour
12504           - Fixed Invalidate() call, now updates new ErasePending Hwnd property
12505           - Fixed SetFocus() to properly deal with client and whole windows
12506         * Hwnd.cs: Added ErasePending property
12507         * XplatUIOSX.cs: Stubbed EraseWindowBackground() method
12508         * XplatUI.cs, XplatUIDriver.cs: Added EraseWindowBackground() method
12509
12510 2005-03-12  Geoff Norton  <gnorton@customerdna.com>
12511
12512         * XplatUIOSX.cs:
12513           - Fix hard loop when timers exist.
12514           - Fix bugs with middle and right click for 3 button mice.
12515
12516 2005-03-11  Peter Bartok  <pbartok@novell.com>
12517
12518         * XplatUIX11.cs:
12519           - get_WorkingArea: Need to call X directly, GetWindowPos only
12520             returns cached data now
12521           - Added sanity check to GetWindowPos hwnd usage
12522
12523 2005-03-11  Jackson Harper  <jackson@ximian.com>
12524
12525         * BindingManagerBase.cs: This method isn't used anymore as
12526         PullData now updates the data in the control.
12527
12528 2005-03-11  Jordi Mas i Hernandez <jordi@ximian.com>
12529
12530         * Form.cs: fixes menu drawing on X11
12531         * MenuAPI.cs:  fixes menu drawing on X11
12532
12533 2005-03-11  Peter Bartok  <pbartok@novell.com>
12534
12535         * Control.cs: Changed OnCreateControl behaviour based on a suggestion
12536           from Jonathan Gilbert; should fix bug #73606
12537         * XplatUIX11.cs: Fixed NC Mouse message coordinates, they need to be
12538           in Screen coordinates. Thanks, Jordi.
12539         * Form.cs: Added missing attribute
12540
12541 2005-03-11  Peter Bartok  <pbartok@novell.com>
12542
12543         * Form.cs:
12544           - Rudimentary Mdi support
12545           - Removed outdated FormParent code
12546           - Implemented lots of missing properties and methods, still missing
12547             transparency support
12548           - Added missing attributes
12549           - Implemented support for MaximumBounds
12550           - Added firing of various events
12551         * XplatUI.cs: Added SetIcon() method
12552         * XplatUIDriver.cs: Added SetIcon() abstract
12553         * XplatUIOSX.cs: Stubbed out SetIcon() method
12554         * XplatUIX11.cs:
12555           - Implemented SetIcon() support
12556           - Moved SetMenu() and SetBorderStyle() to proper alphabetical pos
12557           - Switched to unix line endings
12558         * XplatUIWin32.cs:
12559           - Made POINT internal so for can access it as part of MINMAX
12560           - Implemented SetIcon() support
12561           - Implemented support for CLIENTCREATESTRUCT (but might have to drop
12562             native Mdi support again, might have to go managed)
12563         * Control.cs: Now fires the StyleChanged event
12564         * MdiClient.cs: Added; still mostly empty
12565
12566 2005-03-10  Peter Bartok  <pbartok@novell.com>
12567
12568         * SaveFileDialog.cs: Added emtpy file
12569
12570 2005-03-08  Peter Bartok  <pbartok@novell.com>
12571
12572         * Control.cs: Fixed bug #73190; now invokes CreateControl (which
12573           in turn triggers OnCreateContro) when creating a handle for the
12574           first time.
12575         * TextControl.cs: Fixed endless loop in certain cases when
12576           replacing the current selection
12577
12578 2005-03-08  Jordi Mas i Hernandez <jordi@ximian.com>
12579
12580         * ScrollBar.cs:
12581           - Honors NewValue changes in Scroll events allowing apps to change it
12582           - Adds First and Last Scroll events
12583           - Fixes Thumb events
12584
12585 2005-03-07  Peter Bartok  <pbartok@novell.com>
12586
12587         * Hwnd.cs: Added DefaultClientRectangle property
12588         * XplatUI.cs: Now using the X11 driver Where() method, which provides
12589           more detailed debug information
12590         * XplatUIX11.cs:
12591           - Fixed size-change feedback loop, where we would pull an old size
12592             off the queue and mistakenly change our window's size to an
12593             earlier value
12594           - Now compressing ConfigureNotify events, to reduce looping and
12595             redraw issues
12596         * TextBoxBase.cs: Preventing crash when no text is set and ToString()
12597           is called
12598
12599 2005-03-07  Jackson Harper  <jackson@ximian.com>
12600
12601         * Binding.cs: Push data pushes from data -> property. Check if the
12602         property is readonly when attempting to set it.
12603
12604 2005-03-07  Jackson Harper  <jackson@ximian.com>
12605
12606         * Binding.cs: Format and parse data correctly. Use ASsignableFrom
12607         instead of IsSubclassOf. Pulling data now sets the value on the
12608         control.
12609         * PropertyManager.cs:
12610         * CurrencyManager.cs: Just need to pull data when updating now,
12611         because PullData will set the value on the control.
12612
12613 2005-03-04  Jackson Harper  <jackson@ximian.com>
12614
12615         * Binding.cs: Implement data type parsing and converting on pulled
12616         data. TODO: Are there more ways the data can be converted?
12617
12618 2005-03-04  Jackson Harper  <jackson@ximian.com>
12619
12620         * Binding.cs: Support <Property>IsNull checks. Also bind to the
12621         controls Validating method so we can repull the data when the
12622         control loses focus.
12623
12624 2005-03-03  Jordi Mas i Hernandez <jordi@ximian.com>
12625
12626         * ColumnHeader.cs:
12627           - Fixes null string format
12628           
12629         * ListView.cs:
12630           - Adds enum type checks
12631           - Fixes redrawing and recalc need after changing some properties
12632           - Fixes on focus_item set after the event
12633           - Fixes adding columns after the control has been created
12634           
12635         * ThemeWin32Classic.cs:
12636           - Fixes CheckBox focus rectangle
12637           - Fixes ColumnHeader drawing
12638
12639
12640 2005-03-03  Jackson Harper  <jackson@ximian.com>
12641
12642         * Binding.cs: Bind to <Property>Changed events so we can detect
12643         when properties are changed and update the data.
12644
12645 2005-03-02  Jordi Mas i Hernandez <jordi@ximian.com>
12646
12647         * ImageList.cs:
12648           - Changes 32-bit pixel format to Format32bppArgb to allow transparency
12649           - Fixes ImageList constructor with ImageList container
12650           - Fixes image scaling (wrong parameters at DrawImage)
12651
12652 2005-02-02  Jackson Harper  <jackson@ximian.com>
12653
12654         * Binding.cs: Make property searches case-insensitive. Eliminate
12655         some duplicated code.
12656
12657 2005-03-01  Jordi Mas i Hernandez <jordi@ximian.com>
12658
12659         * ComboBox.cs:
12660                 - Handle focus event
12661                 - Fix scrollbar events
12662                 - Discard highlighted item if remove it
12663                 - Fixes SelectedItem with strings
12664
12665 2005-03-01  Peter Bartok  <pbartok@novell.com>
12666
12667         * Control.cs:
12668           - Fixed Visible property, now follows (once again) parent chain
12669             to return false if any control in the chain is visible=false
12670           - Fixed OnParentVisibleChanged, now just calls OnVisibleChanged event
12671           - Fixed several places where is_visible instead of Visible was used
12672           - Implemented FIXME related to focus selection when setting focused
12673             control to be invisible
12674
12675         * XplatUIWin32.cs: Now using proper method to find out if window is
12676           visible. Thanks to Jordi for pointing it out
12677
12678 2005-02-28  Jordi Mas i Hernandez <jordi@ximian.com>
12679
12680         * ComboBox.cs: show/hide scrollbar instead of creating it
12681
12682 2005-02-27  Jackson Harper  <jackson@ximian.com>
12683
12684         * CurrencyManager.cs: Add PositionChanged stuff.
12685
12686 2005-02-27  Peter Bartok  <pbartok@novell.com>
12687
12688         * XplatUI.cs, XplatUIDriver.cs: Added new GetMenuOrigin() method
12689         * XplatUIOSX.cs: Added GetMenuOrigin() stub
12690         * XplatUIWin32.cs: Implemented GetMenuOrigin()
12691         * XplatUIX11.cs:
12692           - Implemented GetMenuDC()
12693           - Implemented GetMenuOrigin()
12694           - Implemented ReleaseMenuDC()
12695           - Implemented generation of WM_NCPAINT message
12696           - Implemented generation and handling of WM_NCCALCSIZE message
12697         * Form.cs: Added debug helper message for Jordi's menu work
12698         * Hwnd.cs:
12699           - Modified ClientRect property; added setter, fixed getter to handle
12700             setting of ClientRect
12701           - Added MenuOrigin property
12702
12703 2005-02-26  Peter Bartok  <pbartok@novell.com>
12704
12705         * XplatUIX11.cs:
12706           - Destroys the caret if a window that's being destroyed contains it
12707           - Ignores expose events coming from the X11 queue for windows that
12708             already are destroyed
12709           - Now uses the proper variable for handling DestroyNotify, before we
12710             marked the wrong window as destroyed
12711           - Improved/added some debug output
12712
12713 2005-02-26  Peter Bartok  <pbartok@novell.com>
12714
12715         * X11Keyboard.cs: Fixes to work on 64bit systems
12716
12717 2005-02-26  Peter Bartok  <pbartok@novell.com>
12718
12719         * Control.cs:
12720           - Now calling OnHandleDestroyed from DestroyHandle()
12721             instead of Dispose()
12722           - Removed bogus call to controls.Remove() from DestroyHandle()
12723
12724 2005-02-26  Peter Bartok  <pbartok@novell.com>
12725
12726         * Control.cs: Properly destroy child windows when our handle is
12727           destroyed
12728
12729 2005-02-25  Peter Bartok  <pbartok@novell.com>
12730
12731         * XplatUI.cs:
12732           - Added 'DriverDebug' define to allow tracing XplatUI API calls
12733           - Alphabetized Static Methods and Subclasses
12734
12735         * XplatUIX11.cs:
12736           - Added XException class to allow custom handling of X11 exceptions
12737           - Created custom X11 error handler, tied into XException class
12738           - Added support for MONO_XEXCEPTIONS env var to allow the user
12739             to either throw an exception on X errors or continue running
12740             after displaying the error
12741           - Added handling of DestroyNotify message
12742           - Added handler for CreateNotify message (still disabled)
12743           - Improved (tried to at least) Where method to provide file and lineno
12744         * X11Structs.cs:
12745           - Added XErrorHandler delegate
12746           - Added XRequest enumeration (to suppor translation of errors)
12747
12748 2005-02-25  Jackson Harper  <jackson@ximian.com>
12749
12750         * PropertyManager.cs: Implement editing features
12751         * CurrencyManager.cs:
12752         * Binding.cs: First attempt at UpdateIsBinding
12753         * BindingManagerBase.cs: Call UpdateIsBinding before
12754         pushing/pulling data.
12755
12756 2005-02-25  Jordi Mas i Hernandez <jordi@ximian.com>
12757
12758         * MenuAPI.cs: Respect disabled items
12759         * ThemeWin32Classic.cs
12760                 - Caches ImageAttributes creation for DrawImageDisabled
12761                 - Fixes vertical menu line drawing
12762                 - Draws disabled arrows in disable menu items
12763
12764 2005-02-24  Peter Bartok  <pbartok@novell.com>
12765
12766         * Hwnd.cs:
12767           - Added UserData property to allow associating arbitrary objects
12768             with the handle
12769           - Fixed leak; now removing Hwnd references from static windows array
12770         * XplatUIWin32.cs:
12771           - Fixed Graphics leak in PaintEventEnd
12772           - Removed usage of HandleData, switched over to Hwnd class
12773         * HandleData.cs: Removed, obsoleted by Hwnd.cs
12774
12775 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12776
12777         * ThemeWin32Classic.cs: Adds Cliping to TrackBar drawing
12778         * ScrollBar.cs: Fixes bug
12779         * TrackBar.cs: removes death code, clipping, mimize refreshes,
12780          keyboard navigation enhancements
12781
12782 2005-02-24  Jordi Mas i Hernandez <jordi@ximian.com>
12783
12784         * Control.cs: Call DefWndProc at WM_PAINT only if UserPaint not defined
12785         * GroupBox.cs: Add control styles
12786         * Label.cs: Add control styles
12787         * UpDownBase.cs: Add control styles
12788         * ListBox.cs: Add control styles
12789         * XplatUIWin32.cs: Fixes wrong parameter order
12790
12791
12792 2005-02-23  Chris Bacon  <chris.bacon@docobo.co.uk>
12793
12794         * ListView.cs: Assign owner for ColumnHeader. Patch by Chris Bacon
12795
12796 2005-02-23  Jackson Harper  <jackson@ximian.com>
12797
12798         * PropertyManager.cs: Implement property binding. This doesn't
12799         seem to work yet though as (I think) there are some bugs in
12800         System.ComponentModel.PropertyDescriptor.
12801         * BindingContext.cs: Use new PropertyManager constructor.
12802
12803 2005-02-23  Jordi Mas i Hernandez <jordi@ximian.com>
12804
12805         * ProgressBar.cs: use clip region in ProgressBar
12806         * ThemeWin32Classic.cs: use clip region in ProgressBar
12807
12808 2004-02-22  Jackson Harper  <jackson@ximian.com>
12809
12810         * BindingsCollection.cs: Remove some debug code.
12811
12812 2005-02-22  Jackson Harper  <jackson@ximian.com>
12813
12814         * BindingContext.cs:
12815         * ControlBindingsCollection.cs:
12816         * CurrencyManager.cs:
12817         * Binding.cs:
12818         * BindingManagerBase.cs: Initial implementation
12819         * BindingsCollection.cs: Add an internal contains method that the
12820         BindingManagerBase uses to ensure bindings aren't added twice to
12821         the collection.
12822         * PropertyManager.cs: Stubbed out.
12823         * Control.cs:
12824         * ContainerControl.cs: Hook up databinding
12825         
12826 2005-02-22  Geoff Norton  <gnorton@customerdna.com>
12827
12828         * XplatUIOSX.cs:
12829           OSXStructs.cs: Refactored to handle the new Hwnd NC logic area.
12830           Fixed Invalidate/Update chain.
12831           Fixed tons of other minor bugs (this is almost a complete rewrite).
12832
12833 2005-02-22  Jordi Mas i Hernandez <jordi@ximian.com>
12834
12835         * ComboBox.cs: do subcontrol creation when the control is created
12836
12837 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12838
12839         * Label.cs: fixes image drawing (image and imagelist)
12840         * ThemeWin32Classic.cs: cache brushes
12841         
12842 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12843
12844         * Form.cs: Move menu drawing code to Theme class
12845         * ComboBox.cs: Move ComboBox drawing code to Theme class
12846         * MenuItem.cs: Move menu drawing code to Theme class
12847         * MenuAPI.cs: Move menu drawing code to Theme class
12848         * ThemeWin32Classic.cs: New methods
12849         * CheckedListBox.cs: Move CheckedListbox drawing code to Theme class
12850         * ListBox.cs: Move Listbox drawing code to Theme class
12851         * Theme.cs: New methods
12852
12853 2005-02-20  Peter Bartok  <pbartok@novell.com>
12854
12855         * Control.cs:
12856           - Fixed ProcessKeyEventArgs to also handle WM_SYSKEY messages (and
12857             only process mnemonics on those)
12858           - Fixed event sequence for key handling; first calling
12859             ProcessKeyEventArgs now
12860         * TextBoxBase.cs:
12861           - Removed WM_KEYDOWN hook, instead we now use ProcessDialogKey()
12862             for processing non-character keys
12863           - Fixed WM_CHAR to generate proper event sequence before processing
12864         * XplatUIWin32.cs: Added ALT key state to ModifierKeys property
12865           generation
12866
12867 2005-02-19  Peter Bartok  <pbartok@novell.com>
12868
12869         * UserControl.cs: Added TextChanged event; added attributes
12870         * SizeGrip.cs: Implemented resizing and optional display of grip
12871         * Form.cs: Fixed attribute
12872         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs:
12873           Changed meaning of ScrollWindow bool argument; instead of the
12874           clear attribute (which will be true usually anyway), it gives the
12875           option of moving child controls as well.
12876         * XplatUIX11.cs:
12877           - Changed to match new ScrollWindow argument
12878           - Fixed GetWindowPos/SetWindowPos behaviour for toplevel controls,
12879             now handles the implicit parent window a WM puts around us
12880         * ScrollableControl.cs: Implemented (not the prettiest, but it seems
12881           to work)
12882         * TextBoxBase.cs: Adjusted to new ScrollWindow arguments
12883         * TreeView.cs: Adjusted to new ScrollWindow arguments
12884
12885 2005-02-19  Jordi Mas i Hernandez <jordi@ximian.com>
12886
12887         * Form.cs: Menu integration with non-client area
12888         * MenuItem.cs: Menu integration with non-client area
12889         * MenuAPI.cs: Menu integration with non-client area
12890
12891 2005-02-18  Peter Bartok  <pbartok@novell.com>
12892
12893         * MethodInvoker.cs: Added
12894         * MdiLayout.cs: Added
12895         * SendKeys.cs: Started implementation
12896         * ErrorIconAlignment.cs: Added
12897
12898 2005-02-18  Peter Bartok  <pbartok@novell.com>
12899
12900         * XplatUIWin32.cs: Implemented SetMenu(); fixed GetMenuDC()
12901         * Form.cs: Added handling for Menu-related Non-client messages
12902
12903 2005-02-17  Peter Bartok  <pbartok@novell.com>
12904
12905         * UpDownBase.cs: Fixed typo, compilation errors
12906         * DomainUpDown.cs: Fixed attribute value
12907
12908 2005-02-16  Miguel de Icaza  <miguel@novell.com>
12909
12910         * UpDownBase.cs: Attach entry events.
12911         Propagate events.
12912         Add ForeColor property, Focused, InterceptArrowKeys (interception
12913         does not work yet).
12914
12915 2005-02-17  Jordi Mas i Hernandez <jordi@ximian.com>
12916
12917         * Form.cs:
12918                 - Redraw non client are on Setmenu
12919                 - Calc proper menu starting point
12920
12921 2005-02-17  Peter Bartok  <pbartok@novell.com>
12922
12923         * Application.cs: Fixed message_filter check
12924
12925 2005-02-17  Peter Bartok  <pbartok@novell.com>
12926
12927         * Application.cs: Now calls registered message filters
12928         * DockStyle.cs: Fixed attribute
12929         * Form.cs: Fixed attribute
12930         * Menu.cs: Fixed attribute
12931         * ToolTip.cs: Fixed attribute
12932         * TreeNode.cs: Added missing attributes and arranged in regions
12933         * PropertyGrid.cs: Fixed signatures
12934         * TreeNodeCollection.cs: Added attributes
12935         * Splitter.cs: Added missing attributes; arranged into regions
12936         * TabPage.cs: Added missing attributes; arranged into regions
12937         * TextBoxBase.cs: Added missing attributes
12938         * TextBox.cs: Added missing attributes
12939         * ArrangeDirection.cs: Added missing attributes
12940         * TreeNodeConverter.cs: Added stub (needed for TreeNode)
12941         * ToolBarButton.cs: Fixed attributes
12942         * AnchorStyles.cs: Fixed attribute
12943         * TrackBar.cs: Fixed attributes
12944         * TabControl.cs: Added missing attributes and arranged into regions
12945         * ToolBar.cs: Fixed attribute
12946         * StatusBar.cs: Fixed signature, organized into regions and added
12947           attributes
12948         * StatusBarPanel.cs: Fixed attributes
12949         * ContentsResizedEventArgs.cs: Implemented
12950         * ContentsResizedEventHandler.cs: Implemented
12951         * DateBoldEventArgs.cs: Implemented
12952         * DateBoldEventHandler.cs: Implemented
12953         * UpDownEventArgs.cs: Implemented
12954         * UpDownEventHandler.cs: Implemented
12955         
12956 2005-02-16  Jordi Mas i Hernandez <jordi@ximian.com>
12957
12958         * Form.cs: first Menu NC refactoring
12959         * MenuAPI.cs: first Menu NC refactoring
12960         
12961 2005-02-16  Peter Bartok  <pbartok@novell.com>
12962
12963         * ImeMode.cs: Added missing attributes
12964         * Menu.cs: Fixed attribute
12965         * GroupBox.cs: Fixed attribute
12966         * Label.cs: Fixed attribute
12967         * ColorDialog.cs (RunDialog): Removed TODO attribute
12968         * ComboBox.cs: Fixed attributes
12969         * ListControl.cs: Added missing attributes
12970         * PropertyGrid.cs: Fixed attributes
12971         * Control.cs: Fixed attributes
12972         * ListViewItem.cs: Added TypeConverter attribute
12973         * NotifyIcon.cs: Fixed attributes
12974         * ListView.cs: Fixed attributes
12975         * ButtonBase.cs: Fixed attribute
12976         * ImageList.cs: Added missing attributes
12977         * ContainerControl.cs: Fixed signature
12978         * CheckedListBox.cs: Fixed attribute; added missing attributes
12979         * Panel.cs: Fixed attributes
12980         * PropertyTabChangedEventArgs.cs: Added missing attribute
12981         * PropertyValueChangedEventArgs.cs: Added missing attribute
12982         * Binding.cs: Fixed attribute
12983         * ListViewItemConverter: Implemented ListViewSubItemConverter class
12984         * ListBox.cs: Fixed attribute; added missing attributes;
12985         * ScrollableControl.cs: Added missing attributes
12986         * PictureBox.cs: Added missing attributes; implemented missing property
12987         * DateTimePicker.cs: Added missing attributes
12988         * Theme.cs (ToolWindowCaptionHeight): Fixed type
12989         * MonthCalendar.cs: Fixed attributes
12990         * StatusBarPanel.cs: Added missing attributes
12991         * SystemInformation.cs (ToolWindowCaptionHeight): Fixed type
12992
12993 2005-02-16  Peter Bartok  <pbartok@novell.com>
12994
12995         * TextBoxBase.cs: The previous method to enforce height yet remember
12996           the requested high was less than ideal, this is an attempt to do
12997           it better.
12998         * Control.cs: Added comment about possible problem
12999         * Copyright: Updated format
13000         * GridItemType.cs: Fixed swapped values
13001
13002 2005-02-15  Jackson Harper  <jackson@ximian.com>
13003
13004         * BaseCollection.cs: Use property so we never access an
13005         uninitialized list. Also initialize the list in the property.
13006
13007 2005-02-15  Peter Bartok  <pbartok@novell.com>
13008
13009         * GroupBox.cs (ProcessMnemonic): Implemented
13010         * Label.cs (ProcessMnemonic): Implemented
13011         * ThemeWin32Classic.cs (DrawGroupBox): Added stringformat to show
13012           hotkeys
13013
13014 2005-02-15  Peter Bartok  <pbartok@novell.com>
13015
13016         * RadioButton.cs (ProcessMnemonic): Implemented
13017         * CheckBox.cs (ProcessMnemonic): Implemented
13018         * Control.cs:
13019           - Added handling of WM_SYSxxx keyboard messages to support mnemonic
13020             handling
13021           - Added internal method to allow calling ProcessMnemonic from other
13022             controls
13023         * ContainerControl.cs:
13024           - Started support for handling validation chain handling
13025           - Implemented ProcessMnemonic support
13026           - Added Select() call to Active, to make sure the active control
13027             receives focus
13028         * Form.cs: Setting toplevel flag for Forms (this was lost in the
13029           FormParent rewrite)
13030         * ThemeWin32Classic.cs:
13031           - DrawCheckBox(): Fixed stringformat to show hotkeys
13032           - DrawRadioButton(): Fixed stringformat to show hotkeys
13033         * CommonDialog.cs: Removed WndProc override, not needed
13034
13035 2005-02-14  Peter Bartok  <pbartok@novell.com>
13036
13037         * XplatUIX11.cs: Fixed NotImplemented exceptions for properties,
13038           missed those in the rewrite
13039
13040 2005-02-14  Miguel de Icaza  <miguel@novell.com>
13041
13042         * NumericUpDown.cs (Increment, ToString): Add.
13043         (DecimalPlaces): implement.
13044         
13045         Add attributes.
13046         
13047         * UpDownBase.cs: Add the designer attributes.
13048
13049 2005-02-13  Peter Bartok  <pbartok@novell.com>
13050
13051         * Panel.cs: Removed border_style, now in Control
13052         * XplatUIDriver.cs: Added SetBorderStyle, SetMenu, GetMenuDC and
13053           ReleaseMenuDC Methods; renmaed ReleaseWindow to UngrabWindow
13054
13055 2005-02-13  Peter Bartok  <pbartok@novell.com>
13056
13057         * MouseButtons.cs: Added missing attributes
13058         * XplatUIStructs.cs: Added enumeration for title styles
13059         * LeftRightAlignment.cs: Added missing attributes
13060         * Hwnd.cs: Switched to use client_window as handle (slower, but makes
13061           it compatible with Graphics.FromHwnd()
13062         * SelectedGridItemChangedEventArgs.cs: Fixed property type
13063         * Keys.cs: Added missing attributes
13064         * SelectionRange.cs: Added missing attributes
13065         * SelectionRangeConverter.cs: Added
13066         * XplatUI.cs:
13067           - Introduced SetBorderStyle, SetMenu, GetMenuDC and
13068             ReleaseMenuDC methods
13069           - Renamed ReleaseWindow to UngrabWindow
13070           - Added proper startup notice to allow version identification
13071         * Form.cs:
13072           - Added missing attributes
13073           - Removed FormParent concept
13074         * Label.cs: Removed border_style field, now in Control
13075         * RadioButton.cs: Now properly selects RadioButton when focus is
13076           received
13077         * ThemeGtk.cs: Fixed SetDisplay call to match new X11 behaviour
13078         * Control.cs:
13079           - Added missing attributes
13080           - Added borderstyle handling
13081           - Removed FormParent concept support
13082           - Fixed calls to XplatUI to match changed APIs
13083           - Fixed bug that would case us to use disposed Graphics objects
13084           - Removed unneeded internal methods
13085           - PerformLayout(): Fixed to handle DockStyle.Fill properly
13086           - SelectNextControl(): Fixed to properly check common parents
13087         * TextBoxBase.cs: Removed border_style field (now in Control)
13088         * MessageBox.cs:
13089           - Patch by Robert Thompson (rmt@corporatism.org): Added icon support,
13090             fixed calculations for form size
13091           - Added support for localized strings and icons
13092           - Improved form size calculations, added border
13093         * ListView.cs: Removed border_style field (now in Control)
13094         * X11Structs.cs: Moved several structs from X11 driver here
13095         * X11Keyboard.cs: Changed debug message
13096         * Application.cs: Removed FormParent concept support
13097         * CommonDialog.cs:
13098           - Resetting end_modal flag
13099           - Removed FormParent concept support
13100         * NativeWindow.cs: Removed FormParent concept support
13101         * XplatUIX11.cs: Rewritten, now using the new Hwnd class, implementing
13102           Client area and Non-Client whole window to allow support for WM_NC
13103           messages
13104         * XplatUIOSX.cs: Updated to match latest driver spec; added exception
13105           prevent using it until it supports Hwnd as per Geoff Norton's request
13106         * ToolBar.cs: Fixed drawing, was not doing proper drawing
13107         * PictureBox.cs: Removed border_style field, now in Control
13108         * XplatUIWin32.cs: Added new driver methods
13109
13110 2005-02-12  Peter Bartok  <pbartok@novell.com>
13111
13112         * OpacityConverter.cs: Implemented
13113         * Hwnd.cs: Internal class to support drivers that need to emulate
13114           client area/non-client area window behaviour
13115
13116 2005-02-11  Peter Bartok  <pbartok@novell.com>
13117
13118         * KeysConverter.cs: Implemented
13119
13120 2005-02-11  Jordi Mas i Hernandez <jordi@ximian.com>
13121
13122         * Menu.cs: fixes methods GetContextMenu, GetMainMenu, ToString
13123         * LinkLabel: Added missing attributes
13124         * MainMenu.cs: fixes ToString
13125         * MenuItem.cs: fixes methods GetContextMenu, GetMainMenu
13126         * ListBox.cs: fixes event position
13127         * TrackBar.cs: adds missing attributes and events
13128         
13129 2005-02-10  Jordi Mas i Hernandez <jordi@ximian.com>
13130
13131         * MenuItem.cs: Use SystemInformation and bug fixes
13132         * MenuAPI.cs: Use SystemInformation and bug fixes
13133
13134 2005-02-09  Jackson Harper  <jackson@ximian.com>
13135
13136         * X11Keyboard.cs: We ignore some keys, but still need to set/reset
13137         their keystate otherwise things like VK_MENU get stuck "on".
13138
13139 2005-02-09  Kazuki Oikawa <kazuki@panicode.com>
13140
13141         * ListBox.cs: Fixes AddRange bug
13142         
13143 2005-02-09  Jordi Mas i Hernandez <jordi@ximian.com>
13144
13145         * ProgressBar.cs
13146                 - Add missing attributes
13147                 - Add missing method
13148                 
13149         * CheckedListBox.cs: Added missing attributes
13150                 - Add missing attributes
13151                 - Remove extra method
13152         
13153         * ComboBox.cs: Added missing attributes
13154         * VScrollBar.cs: Added missing attributes
13155         * ScrollBar.cs:  Added missing attributes
13156         * ListBox.cs: Fixes signature, add missing consts
13157         * LinkArea.cs:   Added missing attributes
13158         
13159
13160 2005-02-08  Peter Bartok  <pbartok@novell.com>
13161
13162         * Menu.cs: Added missing attributes
13163         * MainMenu.cs: Added missing attributes
13164         * GroupBox.cs: Added missing attributes
13165         * Label.cs: Added missing attributes
13166         * CheckBox.cs: Implemented CheckBoxAccessibleObject class
13167         * ColorDialog.cs:
13168           - Added Instance and Options properties
13169           - Added missing attributes
13170         * Cursor.cs: Made Serializable
13171         * NotifyIcon: Added missing attributes
13172         * MenuItem.cs: Added missing attributes
13173         * TextBoxBase.cs: Implemented AppendText() and Select() methods
13174         * Panel.cs: Added Missing attributes
13175         * MonthCalendar.cs: Fixed CreateParams
13176
13177 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13178         
13179         * LinkLabel.cs:
13180                 - Fixes signature
13181                 - Fixes issues with links
13182                 - Adds the class attributes
13183
13184 2005-02-08  Jordi Mas i Hernandez <jordi@ximian.com>
13185         
13186         * ComboBox.cs:
13187                 - Fixes button when no items available in dropdown
13188                 - Fixes repainting problems
13189                 - Adds the class attributes
13190                 
13191 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13192
13193         * XplatUIOSX.cs: Detect the menu bar and title bar height from
13194         the current theme.  Cache these on startup.
13195
13196 2005-02-07  Jackson Harper  <jackson@ximian.com>
13197
13198         * ScrollBar.cs: Give the correct clipping rect to the theme. Dirty
13199         the scrollbar buttons when they are depressed.
13200
13201 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13202
13203         * XplatUIOSX.cs: Really fix working at resolutions not 1024x768.
13204         Get the display size from the main displayid.  We currently dont
13205         support multiple display configurations.
13206
13207 2005-02-07  Geoff Norton  <gnorton@customerdna.com>
13208
13209         * XplatUIOSX.cs: Ensure the window doesn't get stuck behind the statusbar.
13210
13211 2005-02-07  Miguel de Icaza  <miguel@novell.com>
13212
13213         * UpDownBase.cs: Add ReadOnly and UpDownAlign properties.
13214
13215 2005-02-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
13216
13217         * PropertyGrid.cs: Updated. Patch by Jonathan Chambers
13218
13219 2005-02-04  Jackson Harper  <jackson@ximian.com>
13220
13221         * ThemeWin32Classic.cs: Respect the clipping rect when
13222         drawing. Only fill the intersection of clips and rects so there
13223         isn't a lot of large fills.
13224         * ScrollBar.cs: Pass the correct clipping rect to the theme
13225         engine. Remove some debug code.
13226
13227 2005-02-05  John BouAntoun  <jba-mono@optusnet.com.au>
13228         
13229         * DateTimePicker.cs:
13230                 - Fixed crash on DateTime.Parse, use Constructor instead
13231
13232 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
13233         
13234         * MenuItem.cs:
13235         * MenuAPI.cs:
13236                 - Owner draw support (MeasureItem and DrawItem)
13237
13238 2005-02-04  Jordi Mas i Hernandez <jordi@ximian.com>
13239         
13240         *  Menu.cs:
13241                 - Implements FindMergePosition and MergeMenu functions (very poor documented)
13242                 - Fixes MenuItems.Add range
13243         * MenuItem.cs:
13244                 - MergeMenu and Clone and CloneMenu functions
13245
13246 2005-02-03  Jackson Harper  <jackson@ximian.com>
13247
13248         * ScrollBar.cs: Make abstract
13249         * ScrollableControl.cs: Create H/V scrollbars now that scrollbar
13250         is abstract.
13251
13252 2005-02-03  Jackson Harper  <jackson@ximian.com>
13253
13254         * ScrollBar.cs: First part of my scrollbar fixups. This removes
13255         all the unneeded refreshes and uses invalidates with properly
13256         computed rects.
13257
13258 2005-02-03  Peter Bartok  <pbartok@novell.com>
13259
13260         * ComponentModel.cs: Added
13261         * IDataGridEditingService.cs: Added
13262         * Timer.cs: Added missing attributes
13263         * ToolTip.cs: Added missing attributes
13264
13265 2005-02-03  Jonathan Chambers  <jonathan.chambers@ansys.com>
13266
13267         * PropertyGridView.cs: Added. Patch by Jonathan Chambers
13268
13269 2005-02-03  Peter Bartok  <pbartok@novell.com>
13270
13271         * ListBox.cs: Added missing attributes
13272
13273 2005-02-03  Jordi Mas i Hernandez <jordi@ximian.com>
13274         
13275         * ListBox.cs:
13276                 - Fixes font height after font change
13277                 - Avoid generating unnecesary OnSelectedIndexChanged on clearing
13278                 
13279 2005-02-02  Peter Bartok  <pbartok@novell.com>
13280
13281         * HandleData.cs: Introduced static methods to allow class
13282           to be more self-contained and track it's own HandleData objects
13283         * XplatUIOSX.cs, XplatUIWin32.cs, XplatUIX11.cs: Fixed usage of
13284           HandleData to use new static methods
13285
13286 2005-02-02  Jordi Mas i Hernandez <jordi@ximian.com>
13287
13288         * Combobox.cs:
13289                 - Fixes default size and PreferredHeight
13290                 - Missing events
13291                 - ObjectCollection.Insert implementation
13292                 
13293         * ListControl.cs
13294                 - Fixes signature
13295         * ListBox.cs:
13296                 - Several fixes
13297                 - ObjectCollection.Insert implementation
13298                 - No selection after clean
13299                 - Small fixes
13300
13301 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13302
13303         * ThemeWin32Classic.cs: quick fix to comboboxbutton pushed painting
13304
13305 2005-02-01  Jordi Mas i Hernandez <jordi@ximian.com>
13306
13307         * Combobox.cs:
13308                 - Caches ItemHeight calculation for OwnerDrawVariable
13309                 - Handles dropdown properly
13310                 - Fixes several minor bugs
13311
13312 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13313
13314         * ListBox.cs:
13315                 - Fixes 71946 and 71950
13316                 - Fixes changing Multicolumn on the fly
13317                 - Fixes keyboard navigation on Multicolumn listboxes
13318
13319 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13320         
13321         * XplatUIOSX.cs: Call ExitToShell in our teardown to avoid a
13322         crash reporter log.
13323
13324 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13325
13326         * XplatUIOSX.cs: Allow applications to actually exit.
13327
13328 2005-01-31  Geoff Norton  <gnorton@customerdna.com>
13329
13330         * XplatUIOSX.cs: SetWindowStyle implemented.  Reposition views in
13331         their parent at creation time rather than lazily later.  Fixes a major
13332         regression we were experiencing.
13333
13334 2005-01-31      John BouAntoun  <jba-mono@optusnet.com.au>
13335
13336         * ThemeWin32Classic.cs: more date time picker painting fixes
13337         * DateTimePicker.cs: more monthcalendar drop down fixes
13338         * MonthCalendar.cs: more CreateParams fixes to ensure correct drop down
13339
13340 2005-01-31  Jordi Mas i Hernandez <jordi@ximian.com>
13341
13342         * ScrollBar.cs:
13343                 - When moving the thumb going outside the control should stop the moving
13344                 - Adds the firing of missing events
13345                 - Fixes no button show if Size is not specified
13346                 - End / Home keys for keyboard navigation
13347
13348 2005-01-30  Peter Bartok  <pbartok@novell.com>
13349
13350         * NotifyIcon.cs (CalculateIconRect): Removed debug output and added
13351           sanity check to prevent theoretical loop
13352         * XplatUIWin32.cs (SetVisible): Removed debug output
13353         * XplatUIX11.cs (SystrayChange): Added sanity check
13354         * ScrollableControl.cs (OnVisibleChanged): Now calls base method
13355         * Control.cs (OnVisibleChanged): Added workaround for ParentForm
13356           behaviour, valid until the X11 client window rewrite is done
13357         * TextBox.cs (ctor): Setting proper default foreground and background
13358           colors
13359
13360 2005-01-30      John BouAntoun  <jba-mono@optusnet.com.au>
13361
13362         * Theme: Added DrawDateTimePicker to interface
13363         * ThemeWin32Classic.cs: Added DrawDateTimePicker (incomplete)
13364         * DateTimePicker.cs: Created (still needs keys and painting code)
13365         * DateTimePickerFormat.cs: added
13366         * MonthCalendar.cs: fixed CreateParams for popup window mode
13367           
13368 2005-01-29  Peter Bartok  <pbartok@novell.com>
13369
13370         * ControlPaint.cs: Fixed luminace value returned on achromatic colors,
13371           this should also the calculations for ligher/darker
13372         * Theme.cs: Fixed defaults for ScrollBar widths/heights
13373
13374 2005-01-29  Peter Bartok  <pbartok@novell.com>
13375
13376         * ArrangeDirection.cs: Added
13377         * ArrangeStartingPositon.cs: Added
13378         * SystemInformation.cs: Implemented
13379         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13380           XplatUIX11.cs, Theme.cs: Added/implemented new static properties
13381           used by SystemInformation class
13382         * X11Strucs.cs: Added XSizeHints structure
13383         * MenuAPI.cs:
13384           - Fixed CreateParams to make sure the menu window is always visible
13385           - TrackPopupMenu: Added check to make sure we don't draw the
13386             menu offscreen
13387
13388 2005-01-29  Peter Bartok  <pbartok@novell.com>
13389
13390         * HandleData.cs: Added method for altering invalid area
13391         * TextBoxBase.cs: Implemented TextLength
13392
13393 2005-01-28  Peter Bartok  <pbartok@novell.com>
13394
13395         * XplatUIX11.cs: Improvement over last patch, not sending
13396           the WM_PAINT directly anymore, instead we scroll any pending
13397           exposed areas and let the system pick out the WM_PAINT later
13398
13399 2005-01-28  Peter Bartok  <pbartok@novell.com>
13400
13401         * SWF.csproj: Deleted, no longer used. Instead,
13402           Managed.Windows.Forms/SWF.csproj should be used
13403         * XplatUIX11.cs: Instead of posting the WM_PAINT, we send it
13404           directly, to avoid a potential race condition with the next
13405           scroll
13406
13407 2005-01-28  Peter Bartok  <pbartok@novell.com>
13408
13409         * XplatUI.cs: Made class internal
13410
13411 2005-01-28  Jordi Mas i Hernandez <jordi@ximian.com>
13412
13413         * CheckedListBox.cs:
13414                 - Draw focus
13415                 - Fixed Drawing
13416                 - Missing methods and events
13417
13418 2005-01-27  Peter Bartok  <pbartok@novell.com>
13419
13420         * Application.cs (Run): Don't use form if we don't have one
13421
13422 2005-01-27  Peter Bartok  <pbartok@novell.com>
13423
13424         * TextBoxBase.cs (get_Lines): Fixed index off by one error
13425
13426 2005-01-27  Peter Bartok  <pbartok@novell.com>
13427
13428         * GridEntry.cs: Added; Patch by Jonathan S. Chambers
13429         * GridItem.cs: Added; Patch by Jonathan S. Chambers
13430         * GridItemCollection.cs: Added; Patch by Jonathan S. Chambers
13431         * GridItemType.cs: Added; Patch by Jonathan S. Chambers
13432         * PropertyGrid.cs: Added; Patch by Jonathan S. Chambers
13433         * PropertySort.cs: Added; Patch by Jonathan S. Chambers
13434         * PropertyTabChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13435         * PropertyTabChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13436         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13437         * PropertyValueChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13438         * SelectedGridItemChangedEventArgs.cs: Added; Patch by Jonathan S. Chambers
13439         * SelectedGridItemChangedEventHandler.cs: Added; Patch by Jonathan S. Chambers
13440
13441 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13442
13443         * Combobox.cs:
13444                 - Draw focus on Simple Combobox
13445                 - Fixes drawing issues
13446                 - fixes 71834
13447
13448 2005-01-27  Peter Bartok  <pbartok@novell.com>
13449
13450         * Form.cs:
13451           - Place window in default location, instead of hardcoded 0/0
13452           - Send initial LocationChanged event
13453         * Control.cs:
13454           - UpdateBounds after creation to find out where the WM placed us
13455           - Make sure that if the ParentForm changes location the Form
13456             is notified
13457         * XplatUIX11.cs: XGetGeometry will not return the coords relative
13458             to the root, but to whatever the WM placed around us.
13459             Translate to root coordinates before returning toplevel
13460             coordinates
13461         * XplatUIWin32.cs: Removed debug output
13462         * XplatUIOSX.cs, XplatUI.cs, XplatUIDriver.cs: Added toplevel
13463           flag to GetWindowPos, to allow translation of coordinates on X11
13464
13465 2005-01-27  Jordi Mas i Hernandez <jordi@ximian.com>
13466
13467         * ListBox.cs: connect LostFocus Event
13468
13469 2005-01-27  Peter Bartok  <pbartok@novell.com>
13470
13471         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
13472           XplatUIX11.cs: Extended the Systray API
13473         * Form.cs: Removed debug output
13474         * Application.cs: Fixed focus assignment, always need to call
13475           XplatUI.Activate() since Form.Activate() has rules that may
13476           prevent activation
13477         * NotifyIcon.cs: Should be complete now
13478         * ToolTip.cs: Worked around possible timer bug
13479
13480 2005-01-27  Jackson Harper  <jackson@ximian.com>
13481
13482         * TabControl.cs:
13483         - Only invalidate the effected tabs when the
13484         selected index changes. This reduces drawing and gets rid of some
13485         flicker.
13486         - Only refresh if the tabs need to be shifted, otherwise only
13487         invalidate the slider button.
13488         - On windows the tabs are not filled to right if the slider is
13489         visible.
13490         
13491 2005-01-27  Jackson Harper  <jackson@ximian.com>
13492
13493         * TabControl.cs: Only refresh on mouseup if we are showing the
13494         slider. Also only invalidate the button whose state has changed.
13495
13496 2005-01-26  Peter Bartok  <pbartok@novell.com>
13497
13498         * XplatUI.cs, XplatUIDriver.cs: Added Systray methods
13499         * XplatUIWin32.cs: Implemented SystrayAdd(), SystrayChange()
13500           and SystrayRemove() methods
13501         * XplatUIOSX.cs: Stubbed Systray methods
13502         * XplatUIX11.cs:
13503           - Implemented SystrayAdd(), SystrayChange() and SystrayRemove()
13504             methods
13505           - Fixed broken XChangeProperty calls (marshalling messed up things)
13506         * X11Structs.cs: Added enums and structs required for Size hinting
13507         * NotifyIcon.cs: Added & implemented
13508
13509 2005-01-26  Jackson Harper  <jackson@ximian.com>
13510
13511         * TabControl.cs: Space vertically layed out tabs properly.
13512
13513 2005-01-26  Peter Bartok  <pbartok@novell.com>
13514
13515         * Form.cs (CreateClientParams): Always set the location to 0,0
13516           since we're a child window.
13517
13518         * Control.cs (SetVisibleCore): Always explicitly setting the location
13519           of a toplevel window, apparently X11 doesn't like to move windows
13520           while they're not mapped.
13521
13522 2005-01-26  Jackson Harper  <jackson@ximian.com>
13523
13524         * TabControl.cs: Implement FillToRight size mode with vertically
13525         rendered tabs.
13526
13527 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13528
13529         * ControlPaint.cs, ThemeWin32Classic.cs
13530                 - Fixes DrawFocusRectangle
13531
13532 2005-01-26  Jordi Mas i Hernandez <jordi@ximian.com>
13533
13534         * MenuAPI.cs:
13535                 - MenuBar tracking only starts when item is first clicked
13536                 - Fixes menu hidding for multiple subitems
13537                 - Unselect item in MenuBar when item Executed
13538                 - Fixes bug 71495
13539
13540 2005-01-25  Jordi Mas i Hernandez <jordi@ximian.com>
13541
13542         * ListControl.cs:
13543                 - IsInputKey for ListBox
13544         * ListBox.cs:
13545                 - Focus item
13546                 - Shift and Control item selection
13547                 - Implement SelectionMode.MultiExtended
13548                 - Fixes RightToLeft
13549         * ComboBox.cs:
13550                 - IsInputKey implemented
13551                 - Do not generate OnTextChangedEdit on internal txt changes
13552                 
13553 2005-01-23  Peter Bartok  <pbartok@novell.com>
13554
13555         * AccessibleObject.cs: Partially implemented Select()
13556         * MonthCalendar.cs: Added missing attributes and events
13557         * Form.cs: Fixed CreateParams behaviour, now controls derived from
13558           form can properly override CreateParams.
13559         * XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs, XplatUIWin32.cs,
13560           XplatUIX11.cs: Dropped RefreshWindow method, not needed if
13561           Control performs Invalidate & Update
13562         * NativeWindow (CreateHandle): Added special handling for Form
13563           and Form.FormParent classes to allow overriding of From.CreateParams
13564         * Control.cs:
13565           - ControlNativeWindow: Renamed 'control' variable to more intuitive
13566             name 'owner'
13567           - ControlNativeWindow: Added Owner property
13568           - Removed usage of Refresh() on property changes, changed into
13569             Invalidate(), we need to wait until the queue is processed for
13570             updates, direct calls might cause problems if not all vars for
13571             Paint are initialized
13572           - Added call to UpdateStyles() when creating the window, to set any
13573             styles that CreateWindow might have ignored.
13574           - Added support for Form CreateParent overrides to UpdateStyles()
13575         * MessageBox.cs: Removed no longer needed FormParent override stuff,
13576           CreateParams are now properly overridable
13577         * CommonDialog.cs: Removed no longer needed FormParent override stuff,
13578           CreateParams are now properly overridable
13579
13580 2005-01-23  Miguel de Icaza  <miguel@ximian.com>
13581
13582         * UpDownBase.cs (ctor): Connect TextChanged in the entry to the
13583         OnTextBoxChanged.
13584
13585         Capture LostFocus and OnTextBoxChanged.  The later introduces a
13586         recursive invocation that I have not figured out yet.
13587
13588         Reset the timer when not using (it was accumulating).
13589
13590
13591         (OnTextBoxChanged): Set UserEdit to true here to track whether the
13592         user has made changes that require validation.
13593
13594         Reset changing to avoid loops.
13595
13596 2005-01-22  Miguel de Icaza  <miguel@ximian.com>
13597
13598         * NumericUpDown.cs: Display value at startup.
13599
13600         * UpDownBase.cs (Text): Do not call UpdateEditText here, only call
13601         ValidateEditText.
13602
13603         * NumericUpDown.cs: Minimum, Maximum, Text, Value properties
13604         filled in.  Added some basic parsing of text.
13605
13606         Still missing the OnXXX method overrides, and figuring out the
13607         events that must be emitted.
13608
13609         * UpDownBase.cs: Handle UserEdit on the Text property.
13610         
13611 2005-01-22  Jordi Mas i Hernandez <jordi@ximian.com>
13612
13613         * ComboBox.cs:
13614           - Fixes IntegralHeight
13615           - ToString method
13616
13617 2005-01-21  Jackson Harper  <jackson@ximian.com>
13618
13619         * TabControl.cs: Set the SelectedIndex property when SelectedTab
13620         is set so that the page visibility is updated and the tabs are
13621         sized correctly.
13622
13623 2005-01-21  Jackson Harper  <jackson@ximian.com>
13624
13625         * TabControl.cs: Use cliping rectangle for blitting. Give the
13626         theme the clipping rect so we can do clipping while
13627         drawing. Remove some debug code.
13628
13629 2005-01-21  Jackson Harper  <jackson@ximian.com>
13630
13631         * TabPage.cs: Add a new method so tab pages can force the tab
13632         control to recalculate the tab page sizes.
13633         * TabControl.cs: UpdateOwner needs to make the tab control recalc
13634         sizes.
13635
13636 2005-01-20  Jackson Harper  <jackson@ximian.com>
13637
13638         * ThemeWin32Classic.cs: Clip text to the staus bar panels rects.
13639
13640 2005-01-20  Jackson Harper  <jackson@ximian.com>
13641
13642         * TreeView.cs: Set the bounds for nodes properly. They were
13643         getting screwed up when checkboxes were not enabled, but images
13644         were.
13645
13646 2005-01-20  Jordi Mas i Hernandez <jordi@ximian.com>
13647
13648         * ListBox.cs:
13649                 - Owner draw support
13650                 - Fixes
13651                 
13652 2005-01-20  Jackson Harper  <jackson@ximian.com>
13653
13654         * XplatUIStructs.cs: More misc keys
13655         * X11Keyboard.cs: Ignore some control keys.
13656
13657 2005-01-20  Jackson Harper  <jackson@ximian.com>
13658
13659         * X11Structs.cs: Add the modmaps to the keymask struct and tabify.
13660         * X11Keyboard.cs: Set the AltGr mask when we get a key event.
13661
13662 2005-01-19  Peter Bartok  <pbartok@novell.com>
13663
13664         * Control.cs: Un-selecting the control when it is loosing focus
13665
13666 2005-01-19  Jackson Harper  <jackson@ximian.com>
13667
13668         * TreeView.cs: Hook up to the text controls leave event so we can
13669         end editing when the users clicks outside the text box.
13670         
13671 2005-01-19  Jackson Harper  <jackson@ximian.com>
13672
13673         * X11Keyboard.cs: Fix typo that was causing the wrong keycodes to
13674         get set in the conversion array.
13675
13676 2005-01-19  Peter Bartok  <pbartok@novell.com>
13677
13678         * Application.cs (ModalRun): Added a call to CreateControl to ensure
13679           focus is properly set
13680         * Button.cs:
13681           - Added missing attributes
13682           - removed styles, those are already set in the base class
13683         * ButtonBase.cs:
13684           - Added missing attributes
13685           - Added clip window styles
13686         * CheckBox.cs: Added missing attributes
13687         * CommonDialog.cs:
13688           - FormParentWindow.CreateParams: Added required clip styles
13689         * Form.cs (ProcessDialogKey): Fixed handling of Escape key, now
13690           also filters modifier keys
13691         * MessageBox.cs:
13692           - Added assignment of Accept and Cancel button to enable Enter
13693             and Esc keys in MessageBox dialogs
13694           - FormParentWindow.CreateParams: Added required clip styles
13695         * RadioButton.cs: Added missing attributes
13696         * TextControl.cs: No longer draws selection if control does not
13697           have focus
13698         * TextBoxBase.cs:
13699           - Now draws simple rectangle around test area to make it obvious
13700             there's a control. This is a hack until we properly support borders
13701           - A few simple fixes to support selections better, now erases selected
13702             text when typing, and resets selection when using movement keys
13703
13704 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
13705
13706         * UpDownBase.cs: Added some new properties.
13707
13708         * DomainUpDown.cs: Implement a lot to get my test working.
13709
13710 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13711
13712         * XplatUIOSX.cs: Fix a minor bug to bring the close box back
13713
13714 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13715
13716         * OSXStructs (WindowAttributes): Fixed csc complaints
13717
13718 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13719
13720         * XplayUIOSX.cs:
13721           OSXStructs.cs: Initial refactor to move enums and consts into
13722           OSXStructs and use them in the driver for greater readability.
13723
13724 2005-01-19  Geoff Norton  <gnorton@customerdna.com>
13725
13726         * XplatUIOSX.cs: Initial support for Standard Cursors.
13727         * OSXStructs.cs: Move our structs here; added ThemeCursor enum
13728
13729 2005-01-19  Jordi Mas i Hernandez <jordi@ximian.com>
13730
13731         * ComboBox.cs: ability to change style when the ctrl is already
13732         created, missing methods and events, bug fixes, signature fixes
13733
13734 2005-01-19  Peter Bartok  <pbartok@novell.com>
13735
13736         * Cursors.cs (ctor): Added ctor to fix signature
13737
13738 2005-01-18  Peter Bartok  <pbartok@novell.com>
13739
13740         * Button.cs: Implemented DoubleClick event
13741         * ButtonBase.cs:
13742           - Fixed keyboard handling to behave like MS, where the press of
13743             Spacebar is equivalent to a mousedown, and the key release is
13744             equivalent to mouseup. Now a spacebar push will give the same
13745             visual feedback like a mouse click.
13746           - Added missing attributes
13747           - Added ImeModeChanged event
13748           - Added support for generating DoubleClick event for derived classes
13749         * CheckBox.cs:
13750           - Implemented DoubleClick event
13751           - Added missing attributes
13752         * CommonDialog.cs: Added missing attribute
13753         * ContextMenu.cs: Added missing attributes
13754         * RadioButton.cs:
13755           - AutoChecked buttons do not allow to be unselected when clicked
13756             (otherwise we might end up with no selected buttons in a group)
13757           - Added missing attributes
13758           - Implemented DoubleClickEvent
13759         * ThreadExceptionDialog.cs: Enabled TextBox code
13760
13761 2005-01-18  Peter Bartok  <pbartok@novell.com>
13762
13763         * Form.cs: Removed debug output
13764         * Button.cs: Added support for DoubleClick method
13765
13766 2005-01-18  Peter Bartok  <pbartok@novell.com>
13767
13768         * Form.cs:
13769           - Added method to parent window that allows triggering size
13770             calculations when a menu is added/removed
13771           - set_Menu: Cleaned up mess from early days of Form and Control,
13772             now properly triggers a recalc when a menu is added/removed
13773           - Added case to select form itself as focused form if no child
13774             controls exist
13775           - Added PerformLayout call when showing dialog, to ensure properly
13776             placed controls
13777         * Control.cs:
13778           - Select(): Made internal so Form can access it
13779           - Focus(): Only call Xplat layer if required (avoids loop), and sets
13780             status
13781         * Application.cs (Run): Removed hack and calls PerformLayout instead
13782           to trigger calculation when Form becomes visible
13783
13784 2005-01-18  Jordi Mas i Hernandez <jordi@ximian.com>
13785
13786         * ComboBox.cs: fixes for ownerdraw
13787
13788 2005-01-18  Peter Bartok  <pbartok@novell.com>
13789
13790         * TextControl.cs:
13791           - Sentinel is no longer static, each Document gets it's own, this
13792             avoids locking or alternatively overwrite problems when more
13793             than one text control is used simultaneously.
13794           - Switched to use Hilight and HilightText brushes for text selection
13795
13796         * TextBoxBase.cs (PaintControl): Disabled AntiAliasing to improve looks
13797
13798 2005-01-18  Peter Bartok  <pbartok@novell.com>
13799
13800         * Control.cs:
13801           - Hooked up the following events:
13802                 o ControlAdded
13803                 o ControlRemoved
13804                 o HandleDestroyed
13805                 o ImeModeChanged
13806                 o ParentChanged
13807                 o TabStopChanged
13808                 o Invalidated
13809                 o SystemColorsChanged
13810                 o ParentFontChanged
13811                 o Move
13812           - Removed debug output
13813           - Added a call to the current theme's ResetDefaults when a color change
13814             is detected
13815         * Form.cs: Now setting the proper ImeMode
13816         * Theme.cs: Defined a method to force recreation of cached resources
13817           and rereading of system defaults (ResetDefaults())
13818         * ThemeWin32Classic.cs: Added ResetDefaults() stub
13819
13820 2005-01-17  Peter Bartok  <pbartok@novell.com>
13821
13822         * Control.cs: Added missing attributes
13823
13824 2005-01-17  Jackson Harper  <jackson@ximian.com>
13825
13826         * TreeNode.cs: Implement editing. Add missing properties selected
13827         and visible.
13828         * TreeView.cs: Implement node editing. Also some fixes to use
13829         Invalidate (invalid area) instead of Refresh when selecting.
13830
13831 2005-01-17  Peter Bartok  <pbartok@novell.com>
13832
13833         * Control.cs:
13834           - Implemented InvokeGotFocus() method
13835           - Implemented InvokeLostFocus() method
13836           - Implemented InvokePaint() method
13837           - Implemented InvokePaintBackground() method
13838           - Implemented InvokeClick() method
13839           - Implemented FindForm() method
13840           - Implemented RectangleToClient() method
13841           - Implemented ClientToRectangle() method
13842           - Implemented ResetBackColor() method
13843           - Implemented ResetCursor() method
13844           - Implemented ResetFont() method
13845           - Implemented ResteForeColor() method
13846           - Implemented ResetImeMode() method
13847           - Implemented ResetLeftToRight() method
13848           - Implemented ResetText() method
13849           - Implemented Scale() methods
13850           - Implemented ScaleCore() method
13851           - Implemented Update() method
13852           - Removed unused variables
13853           - Stubbed AccessibilityNotifyClients and
13854             ControlAccessibleObject.NotifyClients() methods (dunno what to do
13855             with those yet)
13856           - Now setting proper default for RightToLeft property
13857           - Fixed bug in SetClientSizeCore that would cause windows to get
13858             really big
13859           - Now sending Click/DoubleClick events
13860           - Now selecting controls when left mouse button is clicked on
13861             selectable control
13862         * AccessibleEvents.cs: Added
13863         * XplatUI.cs, XplatUIDriver.cs: Added UpdateWindow() method
13864         * XplatUIOSX.cs: Stubbed UpdateWindow() method
13865         * XplatUIWin32.cs: Implemented UpdateWindow() method
13866         * XplatUIX11.cs: Implemented UpdateWindow() method
13867         * Form.cs: Removed stray semicolon causing CS0162 warning
13868         * ThemeWin32Classic.cs: Fixed unused variable warnings
13869         * ScrollableControl.cs: Now calls base method for ScaleCore
13870         * ButtonBase.cs: Now disabling StandardClick and StandardDoubleClick
13871           style to avoid interference with internal click handler (which is
13872           different than standard Control click handling)
13873         * RadioButton.cs:
13874           - Now unchecks all sibling radio buttons when control is
13875             selected (Fixes #68756)
13876           - Removed internal tabstop variable, using the one inherited from
13877             Control
13878
13879 2005-01-17  Jackson Harper  <jackson@ximian.com>
13880
13881         * NavigateEventArgs.cs: Fix base type.
13882         * LinkLabel.cs: Sig fix
13883         
13884 2005-01-17  Jackson Harper  <jackson@ximian.com>
13885
13886         * TreeView.cs: Only invalidate the effected nodes bounds when
13887         selecting nodes.
13888
13889 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13890
13891         * XplatUIWin32.cs: fixes Win32 marshaling
13892         * XplatUIX11.cs: fixes method signature
13893
13894 2005-01-17  Peter Bartok  <pbartok@novell.com>
13895
13896         * XplatUIX11.cs: Clean up resources when we no longer need them
13897
13898 2005-01-17  Peter Bartok  <pbartok@novell.com>
13899
13900         * XplatUI.cs, XplatUIDriver.cs: Added SetCursor(), ShowCursor(),
13901           OverrideCursor(), DefineCursor(), DefineStdCursor(), GetCursorInfo()
13902           and DestroyCursor() methods.
13903         * Cursor.cs: Partially implemented, now supports standard cursors;
13904           still contains some debug code
13905         * Cursors.cs: Implemented class
13906         * Control.cs:
13907           - WndProc(): Added handling of WM_SETCURSOR message, setting the
13908             appropriate cursor
13909           - Implemented Cursor property
13910           - Replaced break; with return; more straightforwar and possibly
13911             faster
13912           - Now properly setting the result for WM_HELP
13913         * X11Structs.cs: Added CursorFontShape enum
13914         * XplatUIStructs.cs:
13915           - Added StdCursor enum (to support DefineStdCursor() method)
13916           - Added HitTest enum (to support sending WM_SETCURSOR message)
13917         * XplatUIX11.cs:
13918           - Now sends the WM_SETCURSOR message
13919           - Implemented new cursor methods
13920         * XplatUIOSX.cs: Stubbed new cursor methods
13921         * XplatUIWin32.cs:
13922           - Implemented new cursor methods
13923           - Added GetSystemMetrics function and associated enumeration
13924
13925 2005-01-15  Peter Bartok  <pbartok@novell.com>
13926
13927         * Control.cs:
13928           - WndProc(): Now handles EnableNotifyMessage
13929           - SelectNextControl(): Fixed bug where if no child or sibling
13930             controls exist we looped endlessly
13931
13932 2005-01-14  Jackson Harper  <jackson@ximian.com>
13933
13934         * TreeView.cs: Recalculate the tab pages when a new one is added
13935         so that the proper bounding rects are created.
13936
13937 2005-01-14  Jackson Harper  <jackson@ximian.com>
13938
13939         * TreeView.cs: Draw a gray box instead of a grip in the lower
13940         right hand corner when there are both horizontal and vertical
13941         scroll bars.
13942
13943 2005-01-14  Jackson Harper  <jackson@ximian.com>
13944
13945         * Control.cs: When erasing backgrounds use FromHwnd instead of
13946         FromHdc when there is a NULL wparam. This occurs on the X driver.
13947         * XplatUIX11.cs: Set the wparam to NULL.
13948
13949 2005-01-13  Jackson Harper  <jackson@ximian.com>
13950
13951         * PictureBox.cs: Implement missing methods (except ToString, need
13952         to test that on windows) and events. When visibility is changed we
13953         need to redraw the image because the buffers are killed. When size
13954         is changed refresh if the sizemode needs it.
13955
13956 2005-01-13  Peter Bartok  <pbartok@novell.com>
13957
13958         * Control.cs (SelectNextControl): Was using wrong method to select
13959           a control
13960
13961 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13962
13963         * ComboBox.cs: fixes dropstyle
13964
13965 2005-01-13  Peter Bartok  <pbartok@novell.com>
13966
13967         * Form.cs:
13968           - Implemented Select() override
13969           - Now handles WM_SETFOCUS/WM_KILLFOCUS messages
13970           - Now sets keyboard focus on startup
13971         * Control.cs (SelectNextControl): Now properly handles directed=true
13972         * TextBoxBase.cs:
13973           - WndProc: Now passes tab key on to base if AcceptTabChar=false
13974           - Added (really bad) focus rectangle (mostly for testing)
13975         * TextBox.cs: Added code to handle getting/loosing focus and invalidating
13976           to enforce redraw on focus changes
13977         * ContainerControl.cs:
13978           - Fixed detection of Shift-Tab key presses
13979           - Fixed traversal with arrow keys
13980         * XplatUIX11.cs: Implemented simulated keyboard focus; not sure if we're
13981           gonna keep this or if it's complete yet
13982         
13983 2005-01-13  Jordi Mas i Hernandez <jordi@ximian.com>
13984
13985         * ComboBox.cs: missing properties, fixes
13986
13987 2005-01-13  Peter Bartok  <pbartok@novell.com>
13988
13989         * Panel.cs (ctor): Setting Selectable window style to off
13990         * Splitter.cs (ctor): Setting Selectable window style to off
13991         * GroupBox.cs (ctor): Setting Selectable window style to off
13992         * Label.cs (ctor): Setting Selectable window style to off
13993
13994 2005-01-12  Miguel de Icaza  <miguel@ximian.com>
13995
13996         * UpDownBase.cs (InitTimer): If the timer has been already
13997         created, enable it.
13998
13999         Use a TextBox instead of a Label.
14000
14001 2005-01-12  Jackson Harper  <jackson@ximian.com>
14002
14003         * TreeView.cs: Refresh the tree after sorting the nodes. Always
14004         draw the connecting node lines (when ShowLines is true).
14005         * TreeNode.cs: The nodes index can now be updated. This is used
14006         when a node collection is sorted.
14007         * TreeNodeCollection.cs: Implement sorting. Nodes can be sorted on
14008         insert or an existing unsorted node collection can be sorted.
14009         
14010 2005-01-12  Peter Bartok  <pbartok@novell.com>
14011
14012         * ContainerControl.cs: Implemented ProcessDialogKeys()
14013
14014 2005-01-12  Peter Bartok  <pbartok@novell.com>
14015
14016         * Control.cs:
14017           - Implemented SelectNextControl() method
14018           - Several focus related bug fixes
14019           - Fixed Docking calculations to match MS documentation and
14020             behaviour
14021
14022 2005-01-12  Jordi Mas i Hernandez <jordi@ximian.com>
14023
14024         * ContainerControl.cs, ListControl.cs, ListBox.cs: keyboard navigation and
14025         bug fixes
14026
14027 2005-01-12  Peter Bartok  <pbartok@novell.com>
14028
14029         * Control.cs:
14030           - Fixed broken Contains() method
14031           - Implemented GetNextControl() method. Finally. This is the pre-
14032             requisite for focus handling.
14033
14034 2005-01-12  Peter Bartok  <pbartok@novell.com>
14035
14036         * OSXStrucs.cs: Added
14037
14038 2005-01-12  Peter Bartok  <pbartok@novell.com>
14039
14040         * XplatUIWin32.cs:
14041           - Removed PeekMessageFlags
14042           - Implemented SetWindowStyle() method
14043         * XplatUIStructs.cs: Added PeekMessageFlags
14044         * X11Structs: Added missing border_width field to XWindowChanges struct
14045         * XplatUIX11.cs:
14046           - PeekMessage: Now throws exception if flags which are not yet
14047             supported are passed
14048           - Implemented SetWindowStyle() method
14049           - Fixed SetZOrder to handle AfterHwnd properly
14050         * XplatUI.cs: Added SetWindowStyle() method
14051         * XplatUIDriver.cs: Added SetWindowStyle() abstract
14052         * Control.cs:
14053           - Implemented UpdateStyles() method
14054           - Implemented UpdateZOrder() method
14055         * XplatUIOSX.cs: Added SetWindowStyle() stub
14056
14057 2005-01-12  Geoff Norton  <gnorton@customerdna.com>
14058
14059         * XplatUIOSX.cs: Fix SetZOrder (this needs more testing with a 3
14060         button mouse).
14061
14062
14063 2005-01-11  Jackson Harper  <jackson@ximian.com>
14064
14065         * TreeView.cs: Still need to draw lines to siblings even if out of
14066         the current node is out of the clip.
14067
14068 2005-01-11  Jackson Harper  <jackson@ximian.com>
14069
14070         * TreeView.cs: When setting the hbar/vbar/grip position use
14071         SetBounds so that perform layout is only called once. Also suspend
14072         and resume layout so layout is only done once for all controls.
14073         - Removed some debug fluff
14074         * SizeGrip.cs: Call base implmentation in overriding methods.
14075         - When visibility is changed the drawing buffers are killed so we
14076         need to redraw.
14077
14078 2005-01-11  Jackson Harper  <jackson@ximian.com>
14079
14080         * TreeView.cs: Calculate the open node count while drawing. This
14081         saves us an entire tree traversal for every paint operation. Use
14082         a member var for the open node count so less vars are passed around.
14083
14084 2005-01-11  John BouAntoun  <jba-mono@optusnet.com.au>
14085
14086         * MonthCalendar.cs:
14087         - fixed selection to use mousemove, not mouse polling on timer
14088         * ThemeWin32Classic.cs
14089         - removed redundant unused variable "no_more_content"
14090         
14091 2005-01-11  Peter Bartok  <pbartok@novell.com>
14092
14093         * XplatUIX11.cs (DoEvents): Needs to return when no more events
14094           are pending, so it now calls PeekMessage instead of GetMessage;
14095           implemented a incomplete version of PeekMessage
14096         
14097 2005-01-11  Peter Bartok  <pbartok@novell.com>
14098
14099         * XplatUIWin32.cs: Switched P/Invokes to unicode charset to avoid
14100           I18n issues
14101         * TextBoxBase.cs: Added sending of TextChanged event
14102
14103 2005-01-10  Jackson Harper  <jackson@ximian.com>
14104
14105         * TreeView.cs: Try not to draw outside the clipping rectangle on
14106         each node element.
14107
14108 2005-01-10  Jordi Mas i Hernandez <jordi@ximian.com>
14109
14110         * ComboBox.cs: keyboard navigation, item navigation, bug fixes
14111
14112 2005-01-10  Jackson Harper  <jackson@ximian.com>
14113
14114         * TreeView.cs:
14115         - Implement fast scrolling. Now only the newly
14116         exposed nodes are drawn and the old image is moved using the
14117         XplatUI::ScrollWindow method.
14118         - Factor in height of nodes when calculating whether or not the
14119         node is in the clipping rect.
14120
14121 2005-01-10  Jackson Harper  <jackson@ximian.com>
14122
14123         * TreeNodeCollection.cs: Refresh the tree when a new node is added.
14124
14125 2005-01-10  Peter Bartok  <pbartok@novell.com>
14126
14127         * Application.cs: Added temporary hack to resolve all our resize
14128           required issues on startup. This will get fixed properly at
14129           some point in the future
14130
14131 2005-01-10  Jackson Harper  <jackson@ximian.com>
14132
14133         * SizeGrip.cs: New internal class that is used as a sizing
14134         grip control...hence the name.
14135
14136 2005-01-10  Peter Bartok  <pbartok@novell.com>
14137
14138         * Control.cs: Implemented proper TabIndex handling, now assigning
14139           a tabindex when a control is added to a container
14140         * GroupBox.cs (ctor): Now sets the Container style bit, required
14141           for Control.GetNextControl()
14142
14143 2005-01-09  Jackson Harper  <jackson@ximian.com>
14144
14145         * TextBoxBase.cs: Clear window when scrolling (fixes build).
14146
14147 2005-01-09  Peter Bartok <pbartok@novell.com>
14148
14149         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIOSX.cs,
14150           XplatUIX11.cs: Added ability to control ScrollWindow expose and
14151           an overload for ScrollWindow to allow only scrolling a rectangle
14152
14153 2005-01-09  Peter Bartok <pbartok@novell.com>
14154
14155         * Form.cs:
14156           - Implemented SetDesktopBounds method
14157           - Implemented SetDesktopLocation method
14158
14159 2005-01-08  Jackson Harper  <jackson@ximian.com>
14160
14161         * TreeView.cs: Only set the vbar's Maximum and LargeChange when
14162         the node count has changed, this removes to VScroll::Refresh calls
14163         when drawing.
14164
14165 2005-01-08  Geoff Norton  <gnorton@customerdna.com>
14166
14167         * XplatUIOSX.cs: Fix GetWindowState & SetWindowState
14168
14169 2005-01-07  Jackson Harper  <jackson@ximian.com>
14170
14171         * TreeNode.cs: Just update the single node when it is
14172         checked. Don't refresh after toggling, the Expand/Collapse already
14173         handles this.
14174         * TreeView.cs: Respect clipping a little more when drawing. Try
14175         not to redraw things that don't need to be redrawn. Just hide the
14176         scrollbars when they are no longer needed instead of removing
14177         them, so they don't have to be created again and again.
14178         
14179 2005-01-07  Geoff Norton  <gnorton@customerdna.com>
14180
14181         * XplatUIOSX.cs (SetCaretPos):  We need to translate the view
14182         coordinates to window space to place the caret properly, FIXED.
14183         Implement GetWindowState & SetWindowState
14184
14185 2005-01-06  Peter Bartok <pbartok@novell.com>
14186
14187         * Form.cs:
14188           - Implemented ClientSize property
14189           - Implemented DesktopBounds property
14190           - Implemented DesktopLocation property
14191           - Implemented IsRestrictedWindow property
14192           - Implemented Size property
14193           - Implemented TopLevel property
14194           - Implemented FormWindowState property
14195         * Control.cs:
14196           - Implemented GetTopLevel() method
14197           - Implemented SetTopLevel() method
14198         * X11Structs.cs (Atom):
14199           - Added AnyPropertyType definition
14200           - Added MapState definiton and updated XWindowAttribute struct
14201         * XplatUI.cs: Added GetWindowState() and SetWindowState() methods
14202         * XplatUIDriver.cs: Added GetWindowState() and SetWindowState() methods
14203         * XplatUIOSX.cs: Stubbed GetWindowState() and SetWindowState() methods
14204         * XplatUIWin32.cs:
14205           - Implemented GetWindowState() and SetWindowState() methods
14206           - Fixed Win32GetWindowLong return type
14207         * XplatUIX11.cs:
14208           - Introduced central function for sending NET_WM messages
14209           - Implemented GetWindowState() and SetWindowState() methods
14210         * TextBoxBase.cs (set_Lines):
14211           - Now uses Foreground color for text added via Text property (Duh!)
14212           - Added code to remember programmatically requested size (fixes
14213             behaviour when Multiline is set after Size)
14214           - Added AutoSize logic
14215
14216 2005-01-06  Jackson Harper  <jackson@ximian.com>
14217
14218         * TreeView.cs: Draw the image after the checkbox if checkboxes are enabled.
14219
14220 2005-01-06  Jackson Harper  <jackson@ximian.com>
14221
14222         * ListBox.cs: Don't allow the horizontal scrollbars maximum to be
14223         set to less then 0.
14224
14225 2005-01-06  Jackson Harper  <jackson@ximian.com>
14226
14227         * ScrollableControl.cs: Lazy init the scrollbars.
14228         
14229 2005-01-06  Jackson Harper  <jackson@ximian.com>
14230
14231         * Theme.cs: Speed up getting pens and solid brushes, by using
14232         their ARGB as a hash instead of tostring and not calling Contains.
14233
14234 2005-01-06  Peter Bartok <pbartok@novell.com>
14235
14236         * Form.cs:
14237           - Implemented OnActivated and OnDeactivate event trigger
14238           - Implemented Activate() method
14239           - Fixed ShowDialog() to activate the form that was active before
14240             the dialog was shown
14241         * XplatUIX11.cs:
14242           - Added global active_window var that tracks the currently active
14243             X11 window
14244           - Now always grabs Property changes from the root window to always
14245             catch changes on the active window property
14246           - Added code to PropertyNotify handler to send Active/Inactive
14247             messages when state changes. This puts X11 and Win32 en par on
14248             WM_ACTIVATE notifications (except for double notifications when
14249             the user clicks away from our modal window to another one of our
14250             windows)
14251
14252 2005-01-05  Jackson Harper  <jackson@ximian.com>
14253
14254         * ImageList.cs: Implment ctor
14255
14256 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14257
14258         * XplatUIOSX.cs: Implement Activate/SetTopmost
14259
14260 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14261
14262         * XplatUIOSX.cs: Implement SetZOrder, minor cleanup
14263
14264 2005-01-05  Geoff Norton  <gnorton@customerdna.com>
14265
14266         * XplatUIOSX.cs: Implement GetActive/SetFocus.
14267
14268 2005-01-05  Peter Bartok <pbartok@novell.com>
14269
14270         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs,
14271           XplatUIOSX.cs: Added GetActive method to return the currently
14272           active window for the application (or null, if none is active)
14273         * Form.cs:
14274           - Implemented ActiveForm
14275           - Commented out owner assignment for modal dialogs (causes problems
14276             on Win32, since the owner will be disabled)
14277           - Reworked some Active/Focus handling (still incomplete)
14278         * CommonDialog.cs: Commented out owner assignment for modal dialogs
14279           (causes problems on Win32, since the owner will be disabled)
14280         * IWin32Window: Added ComVisible attribute
14281
14282 2005-01-05  Peter Bartok <pbartok@novell.com>
14283
14284         * ToolTip.cs (WndProc): Enable setting focus now that we have the
14285           required XplatUI functions.
14286
14287 2005-01-05  Peter Bartok <pbartok@novell.com>
14288
14289         * XplatUI.cs, XplatUIOSX.cs, XplatUIWin32.cs, XplatUIDriver.cs,
14290           XplatUIX11.cs, X11Structs.cs, Form.cs: Framework code required
14291           to implement focus and activation handling; still incomplete and
14292           with debug output
14293
14294 2005-01-04  Peter Bartok <pbartok@novell.com>
14295
14296         * TextBoxBase.cs: Changed access level for Document property to
14297           match switch to internal for TextControl
14298
14299 2005-01-04  Peter Bartok <pbartok@novell.com>
14300
14301         * AccessibleObject: Added ComVisible attribute
14302
14303 2005-01-04  Jackson Harper  <jackson@ximian.com>
14304
14305         * X11Keyboard.cs: Remove unneeded var.
14306
14307 2005-01-04  Jackson Harper  <jackson@ximian.com>
14308
14309         * XplatUIX11.cs (DoEvents): Implement, Just cast aside all events
14310         but PAINT.
14311         * XplatUIX11.cs (GetMessage): Call Exit when we get an unknown
14312         ClientMessage. This makes apps exit cleanly (more often).
14313         
14314 2005-01-04  Jackson Harper  <jackson@ximian.com>
14315
14316         * TreeNode.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) for
14317         handling focus, return correct colors and fonts,
14318         * TreeView.cs: Patches by Kazuki Oikawa (kazuki@panicode.com) to
14319         handle selection, horizontal scrolling, and mouse interaction.
14320
14321 2005-01-04  Peter Bartok <pbartok@novell.com>
14322
14323         * ICommandExecutor.cs: Added
14324         * IDataGridColumnStyleEditingNotificationService.cs: Added
14325         * IFeatureSupport.cs: Added
14326         * IFileReaderService.cs: Added
14327         * IDataObject.cs: Added ComVisible attribute
14328         * AmbientProperties.cs: Added
14329         * BaseCollection.cs: Added missing attributes
14330         * ListBindingConverter.cs: Added (stubbed, required for certain attributes)
14331         * BaseCollection.cs: Added missing attributes
14332         * Binding.cs: Added TypeConverter attribute
14333         * BindingContext.cs: Added DefaultEvent attribute
14334         * BindingsCollection.cs: Added DefaultEvent attribute
14335         * Button.cs: Added DefaultValue attribute
14336         * DragEventArgs.cs: Added ComVisible attribute
14337         * GiveFeedbackEventArgs.cs: Added ComVisible attribute
14338         * KeyEventArgs.cs: Added ComVisible attribute
14339         * KeyPressEventArgs.cs: Added ComVisible attribute
14340         * MouseEventArgs.cs: Added ComVisible attribute
14341         * NavigateEventArgs.cs: Added
14342         * NavigateEventHandler.cs: Added
14343         * FeatureSupport.cs: Added
14344         * OSFeature.cs: Added
14345         * Theme.cs: Added abstract Version property to support OSFeature
14346         * ThemeWin32Classic.cs: Added Version property to
14347           support OSFeature.Themes
14348         * ProgressBar.cs: Removed OnPaintBackground override, not required since
14349           the proper styles to avoid background drawing are set, also doesn't
14350           match MS signature
14351         * QueryAccessibilityHelpEventArgs.cs: Added ComVisible attribute
14352         * QueryContinueDragEventArgs.cs: Added ComVisible attribute
14353         * ScrollEventArgs.cs: Added ComVisible attribute
14354         * SplitterEventArgs.cs: Added ComVisible attribute
14355         * AccessibleSelection.cs: Added Flags attribute
14356         * Appearance.cs: Added ComVisible attribute
14357         * Border3DSide.cs: Added ComVisible attribute
14358         * Border3DStyle.cs: Added ComVisible attribute
14359         * BorderStyle.cs: Added ComVisible attribute
14360         * DragAction.cs: Added ComVisible attribute
14361         * ErrorBlinkStyle.cs: Added
14362         * ScrollEventType.cs: Added ComVisible attribute
14363         * AnchorStyles.cs: Added Editor attribute
14364         * DockStyle.cs: Added Editor attribute
14365         * HorizontalAlignment.cs: Added ComVisible attribute
14366         * HelpEventArgs.cs: Added ComVisible attribute
14367         * PaintEventArgs.cs: Added IDisposable
14368
14369 2005-01-04  Peter Bartok <pbartok@novell.com>
14370
14371         * TextControl.cs: Switched Line, LineTag and Document classes to
14372           internal
14373
14374 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14375
14376         * ComboBox.cs, ThemeWin32Classic.cs, ListBox.cs, Theme.cs:
14377         Simple mode, fixes, IntegralHeight, etc.
14378
14379 2005-01-04  Peter Bartok <pbartok@novell.com>
14380
14381         * TextBoxBase.cs: Using proper font variable now
14382
14383 2005-01-04  Peter Bartok <pbartok@novell.com>
14384
14385         * Form.cs (ShowDialog): Set parent to owner, if provided
14386         * GroupBox.cs: Removed unused vars
14387         * TextControl.cs:
14388           - Added GetHashCode() for Document and LineTag classes
14389           - Removed unused variables
14390           - Added CharIndexToLineTag() and LineTagToCharIndex() methods
14391             to allow translation between continuous char position and line/pos
14392         * CheckBox.cs: Removed vars that are provided by base class
14393         * RadioButton.cs: Removed vars that are provided by base class, added
14394           new keyword where required
14395         * LinkLabel.cs: Added new keyword where required
14396         * Control.cs (WndProc): Removed unused variable
14397         * TextBoxBase.cs:
14398           - Finished SelectionLength property
14399           - Implemented SelectionStart property
14400           - Implemented Text property
14401           - Removed unused vars
14402         * MessageBox.cs: Added new keyword where required
14403         * TextBox.cs: Removed Text property code (now in TextBoxBase), fixed
14404           WndProc signature
14405         * MenuAPI.cs: Added new keyword where required
14406         * ButtonBase.cs: Removed vars that are provided by base class, added
14407           new keyword where required
14408         * ThemeWin32Classic.cs (DrawMonthCalendarDate): Now cast Math.Floor
14409           argument to double, to allow compiling with csc 2.0 (Atsushi ran
14410           into this)
14411         * Application.cs (Run): Now triggers the ThreadExit event
14412         * CommonDialog.cs: Added new keyword where required; now properly sets
14413           parent (owner) for dialog
14414         * XplatUIX11.cs: Commented out unused vars
14415         * StatusBar.cs: Fixed signature for Text property
14416         * TabPage.cs: Undid Jordi's removal of unused var, now using the var
14417
14418 2005-01-04  Jordi Mas i Hernandez <jordi@ximian.com>
14419
14420         * ComboBox.cs, TabPage.cs, MenuAPI.cs, ThemeWin32Classic.cs,
14421         TrackBar.cs, MonthCalendar.cs: remove unused vars
14422
14423 2005-01-03  Jackson Harper  <jackson@ximian.com>
14424
14425         * ThemeWin32Classic.cs:
14426         * X11Keyboard.cs: Remove unused vars.
14427
14428 2005-01-03  Peter Bartok  <pbartok@novell.com>
14429
14430         * TextBox.cs:
14431           - set_Text: Tied into TextControl
14432           - set_TextAlignment: Tied into TextControl
14433         * TextControl.cs:
14434           - Added alignment properties and implemented alignment handling
14435             and drawing (still has a bug, not generating proper expose events)
14436           - Added new Line() constructor to allow passing the line alignment
14437           - Fixed selection setting, properly handling end<start now
14438           - Added aligment considerations to RecalculateDocument()
14439         * TextBoxBase.cs:
14440           - Now properly enforces control height for single line controls
14441           - Added support for CharacterCasing
14442           - Added IsInputKey override
14443           - Fixed Keys.Enter logic
14444           - Added SetBoundsCore override
14445           - Fixed mouse selection handling
14446
14447 2005-01-03  Jackson Harper  <jackson@ximian.com>
14448
14449         * TreeView.cs:
14450           - Collapse and uncheck all nodes when CheckBoxes is disabled.
14451           - Checkboxes are always aligned to the bottom of the node,
14452           regardless of item height.
14453           - Use the node bounds to draw the text so we can center it when
14454           the item height is greater then the font height.
14455           - Node::Bounds are only the text part of the node.
14456         * TreeNode.cs: New method to combine collapsing and unchecking all
14457           nodes recursively.
14458
14459 2005-01-02  Jackson Harper  <jackson@ximian.com>
14460
14461         * TreeView.cs: Draw checkmarks, handle detecting check mark clicks
14462         * TreeNode.cs: Add a bounding box for the checkbox, refresh the
14463         tree when a check is changed. TODO: Only refresh the checked node.
14464
14465 2004-12-30  Jackson Harper  <jackson@ximian.com>
14466
14467         * TreeView.cs: Draw checkbox boxes when checkboxes are enabled.
14468         * TreeNode.cs: When collapsing make sure to never collapse the
14469         root node.
14470
14471 2004-12-29  Jackson Harper  <jackson@ximian.com>
14472
14473         * TreeView.cs: Align lines to the bottom of plus minus boxes properly.
14474         
14475 2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
14476
14477         * X11Structs.cs X11Keyboard.cs XplatUIX11.cs: Fix 64 bit issues.
14478
14479 2004-12-28  Peter Bartok  <pbartok@novell.com>
14480
14481         * MessageBox.cs (get_CreateParams): Don't use owner var if it's
14482           not yet assigned
14483
14484 2004-12-28  Peter Bartok  <pbartok@novell.com>
14485
14486         * Control.cs (WndProc): Added WM_HELP handler, now generates
14487           HelpRequested event
14488         * Form.cs: Added HelpButton property and required support code
14489         * XplatUIStructs.cs: Added HELPINFO structure for WM_HELP handling
14490
14491 2004-12-28  Peter Bartok  <pbartok@novell.com>
14492
14493         * CommonDialog.cs:
14494           - Made DialogForm.owner variable internal
14495           - Added check to ensure owner form is set before setting
14496             owner properties in CreateParams
14497
14498 2004-12-28  Geoff Norton  <gnorton@customerdna.com>
14499
14500         * XplatUIOSX.cs: Implement mouse hovering.  Fix QDPoint struct to avoid
14501           swizzling.  Implement ClientToScreen and ScreenToClient.  Implement
14502           GetCursorPos.  Fix major visibility issues.  Rework the windowing
14503           system to support borderless/titleless windows (implements menus).
14504           Fix GetWindowPos.  Implement initial background color support for
14505           views.
14506
14507 2004-12-28  Peter Bartok  <pbartok@novell.com>
14508
14509         * Form.cs (get_CreateParams): Make sure we have an owner before using
14510           the owner variable. Implement proper default if no owner exists
14511
14512 2004-12-28  Peter Bartok  <pbartok@novell.com>
14513
14514         * In preparation for making Managed.Windows.Forms the default build target
14515           for System.Windows.Forms, the following stubbed files were added.
14516           Dialogs are currently being implemented by contributors and are only
14517           short-term place holders.
14518         * ColorDialog.cs: Initial check-in (minmal stub)
14519         * DataGrid.cs: Initial check-in (minimal stub)
14520         * DataGridLineStyle.cs: Initial check-in (minimal stub)
14521         * DataGridParentRowsLabelStyle.cs: Initial check-in (minimal stub)
14522         * DataGridTableStyle.cs: Initial check-in (minimal stub)
14523         * FontDialog.cs: Initial check-in (minimal stub)
14524         * FileDialog.cs: Initial check-in (minimal stub)
14525         * GridColumnStylesCollection.cs: Initial check-in (minimal stub)
14526         * GridTableStylesCollection.cs: Initial check-in (minimal stub)
14527         * OpenFileDialog: Initial check-in (minimal stub)
14528         * IComponentEditorPageSite.cs: Initial check-in
14529         * Splitter.cs: Initial check-in (for Jackson)
14530         * SplitterEventArgs.cs: Initial check-in (for Jackson)
14531         * SplitterEventHandler.cs: Initial check-in (for Jackson)
14532         * TextBox.cs: Initial check-in; still needs some wiring to
14533           TextControl backend
14534         * Form.cs: Implemented ControlBox property
14535         * MessageBox.cs: Added proper coding for Minimize/Maximize/ControlBox
14536         * CommonDialog.cs: Added proper coding for Minimize/Maximize/ControlBox
14537         * TextControl.cs: Added selection functionality; added todo header
14538         * TextBoxBase.cs:
14539           - Implemented Lines property
14540           - Implemented TextHeight property
14541           - Implemented SelectedText property
14542           - Implemented SelectionLength property
14543           - Implemented SelectAll method
14544           - Implemented ToString method
14545           - Removed and cleaned up some debug code
14546           - Implemented (still buggy) mouse text selection
14547
14548 2004-12-27  Jordi Mas i Hernandez <jordi@ximian.com>
14549
14550         * ComboBox.cs: Complete DropDownList implementation, fixes.
14551
14552 2004-12-26  Jordi Mas i Hernandez <jordi@ximian.com>
14553
14554         * ThemeWin32Classic, Theme.cs: ComboBox drawing methods
14555         * ComboBoxStyle.cs: ComboBoxStyle enum
14556         * ComboBox.cs: Initial work on ComboBox control
14557
14558 2004-12-21  Peter Bartok  <pbartok@novell.com>
14559
14560         * Control.cs (ctor, CreateParams): Moved setting of is_visible
14561           forward so that anything that creates a window gets the default,
14562           also no longer uses Visible property in CreateParams to avoid
14563           walking up the parent chain and possibly get the wrong visible
14564           status. Fixed IsVisible to no longer walk up to the parent.
14565
14566 2004-12-21  Peter Bartok  <pbartok@novell.com>
14567
14568         * Form.cs (ShowDialog): Unset modality for the proper window
14569  
14570 2004-12-20  Peter Bartok  <pbartok@novell.com>
14571
14572         * CommonDialog.cs: Initial check-in
14573
14574 2004-12-20  Peter Bartok  <pbartok@novell.com>
14575
14576         * Control.cs (Visible): Now uses the parent window instead of the
14577           client area window for the property
14578
14579         * Form.cs
14580           - ShowDialog(): Now uses the proper window for modality
14581           - The default visibility state for the form parent is now false. This
14582             will prevent the user from seeing all the changes to the form and
14583             its controls before the application hits Application.Run()
14584           - Removed some stale commented out code
14585
14586         * NativeWindow.cs:
14587           - Added FindWindow() method to have a method to check for existence
14588             of a window handle
14589           - Added ability to override default exception handling (for example
14590             when debugging with VS.Net; to do this the ExternalExceptionHandler
14591             define must be set
14592           - Removed some useless debug output
14593
14594         * XplatUIX11.cs:
14595           - Removed r37929 (SetModal patch from Ashwin Bharambe), was
14596             not working as expected
14597           - Implemented modal_window stack and checking for _WM_ACTIVE_WINDOW
14598             property to allow switching back to the modal window if focus is
14599             given to another one of our windows (Application Modal)
14600           - Now only sets override_redirect if we create a window
14601             without WS_CAPTION
14602           - Moved EventMask selection before mapping of newly created window
14603             so we can catch the map event as well
14604           - Implemented Activate() method via the _WM_ACTIVE_WINDOW property
14605           - Added various Atom related DllImports
14606           - Implemented Exit() method
14607           - .ctor() : No longer shows window if WS_VISIBLE is not defined
14608             in the CreateParams
14609
14610         * MessageBox.cs: Now properly deals with the FormParent window by
14611           providing an override the FormParent CreateParams property to
14612           set as POPUP instead of OVERLAPPED window.
14613
14614 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14615
14616         * XplatUIOSX.cs: Implement DestroyWindow.  Implement ScrollWindow
14617         Minor code cleanup.
14618
14619 2004-12-19  Geoff Norton  <gnorton@customerdna.com>
14620         
14621         * XplatUIOSX.cs (SetModal): Implement this method on OSX.
14622
14623 2004-12-18  Peter Bartok  <pbartok@novell.com>
14624
14625         * XplatUIX11.cs (SetModal): Applied patch from Ashwin Bharambe,
14626           implementing SetModal() method
14627
14628 2004-12-18  Peter Bartok  <pbartok@novell.com>
14629
14630         * X11Structs.cs (XGCValues): Fixed type of function element
14631         * XplatUI.cs: Added ScrollWindow() method
14632         * XplatUIDriver.cs: Added ScrollWindow() abstract
14633         * XplatUIWin32.cs: Implemented ScrollWindow() method
14634         * XplatUIX11.cs: Implemented ScrollWindow() method
14635         * XplatUIOSX.cs: Stubbed out ScrollWindow() method
14636
14637 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14638
14639         * XplatUIOSX.cs:  Fix cursor to use an Invert instead of drawing it
14640         Some more keyboard support (INCOMPLETE)
14641
14642 2004-12-17  Peter Bartok  <pbartok@novell.com>
14643
14644         * TextControl.cs:
14645         - Added color attribute to line tags.
14646         - Added color argument to all functions dealing with tags
14647         - Added color argument support to various functions
14648         - Fixed miss-calculation of baseline/shift in certain circumstances
14649
14650         * TextBoxBase.cs: Added new color option to test code
14651
14652 2004-12-17  Jackson Harper  <jackson@ximian.com>
14653
14654         * TreeNode.cs:
14655         * MonthCalendar.cs: Signature fixes
14656
14657 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14658
14659         * XplatUIOSX.cs: Find the missing caret; caret was dissappearing after a
14660         keyboard event moved it.  Create a new graphics context for each paint resolves this
14661
14662 2004-12-17  Geoff Norton  <gnorton@customerdna.com>
14663
14664         * XplatUIOSX.cs: Fix hard cpu eat on loop with existing timers,
14665         Make caret exist and go blink blink.  Initial keyboard support.
14666         Fix exception handler, Add Invalidate support.  Change way RefreshWindow
14667         works.
14668
14669 2004-12-17  Jackson Harper  <jackson@ximian.com>
14670
14671         * XplatUIStructs.cs: Updated set of virtual keycodes.
14672         * KeyboardLayouts.cs: SCROLL_LOCK is now SCROLL
14673
14674 2004-12-17  Jackson Harper  <jackson@ximian.com>
14675
14676         * XplatUIX11.cs: Prune old keyboard code.
14677
14678 2004-12-17  Jackson Harper  <jackson@ximian.com>
14679
14680         * XplatUIX11.cs: When generating mouse wparams get the modifier
14681         keys from the ModifierKeys property.
14682
14683 2004-12-17  Jackson Harper  <jackson@ximian.com>
14684
14685         * X11Keyboard.cs: Send up/down input when generating
14686         messages. Remove some unused vars.
14687
14688 2004-12-17  Jackson Harper  <jackson@ximian.com>
14689
14690         * TabControl.cs:
14691         * TreeView.cs: get rid of warnings.
14692
14693 2004-12-17  Jackson Harper  <jackson@ximian.com>
14694
14695         * XplatUIStructs.cs: Fix a couple wrong virtual keycodes.
14696
14697 2004-12-17  Jordi Mas i Hernandez <jordi@ximian.com>
14698
14699         * ListBox.cs: bug fixes, changes for CheckedListBox.cs
14700           CheckedListBox.cs: Implementation
14701
14702 2004-12-17  Peter Bartok  <pbartok@novell.com>
14703
14704         * TextControl.cs (RecalculateLine): Fixed baseline aligning calcs
14705
14706 2004-12-16  Peter Bartok  <pbartok@novell.com>
14707
14708         * TextControl.cs:
14709           - InsertCharAtCaret(): Fixed start pos fixup
14710           - CaretLine_get: No longer derives the line from the tag, the tag
14711             could be stale if lines in the document have been added or deleted
14712           - RebalanceAfterDelete(): Fixed bug in balancing code
14713           - RebalanceAfterAdd(): Fixed really stupid bug in balancing code
14714           - Line.Streamline(): Now can also elminate leading empty tags
14715           - DumpTree(): Added a few more tests and prevented exception on
14716             uninitialized data
14717           - Added Debug section for Combining lines
14718           - Delete(): Now copies all remaining properties of a line
14719           
14720         * TextBoxBase.cs:
14721           - Left mousebutton now sets the caret (and middle button still acts
14722             as formatting tester, which must go away soon)
14723           - Added Debug section for Deleting/Combining lines
14724           - Fixed calculations for UpdateView after Combining lines
14725
14726 2004-12-16  Peter Bartok  <pbartok@novell.com>
14727
14728         * TextControl.cs: Now properly aligns text on a baseline, using the
14729           new XplatUI.GetFontMetrics() method. Simplified several calculations
14730         * TextBoxBase.cs: Moved #endif to allow compiling if Debug is not
14731           defined
14732
14733 2004-12-16  Peter Bartok  <pbartok@novell.com>
14734
14735         * XplatUI.cs: Added GetFontMetrics() method
14736         * XplatUIDriver.cs: Added GetFontMetrics() abstract
14737         * XplatUIX11.cs: Implemented GetFontMetrics() method, now calls
14738           into libgdiplus, our private GetFontMetrics function
14739         * XplatUIOSX.cs: Implemented GetFontMetrics() method, same as X11
14740         * XplatUIWin32.cs: Implemented GetFontMetrics() method
14741
14742 2004-12-16  Jackson Harper  <jackson@ximain.com>
14743
14744         * XplatUIStruct.cs: Add enum for dead keys
14745         * X11Keyboard.cs: Map and unmap dead keys.
14746
14747 2004-12-16  Jackson Harper  <jackson@ximian.com>
14748
14749         * X11Keyboard.cs: Detect and use the num lock mask.
14750
14751 2004-12-16  Peter Bartok  <pbartok@novell.com>
14752
14753         * Control.cs (CreateGraphics): Added check to make sure the
14754           handle of the window exists before calling Graphics.FromHwnd()
14755
14756 2004-12-16  Peter Bartok  <pbartok@novell.com>
14757
14758         * TextBoxBase.cs: Initial check-in. DO NOT TRY TO USE THIS YET. It
14759           contains a lot of code that's not supposed to be there for the
14760           real thing, but required for developing/testing the textbox
14761           backend.
14762
14763 2004-12-16  Peter Bartok  <pbartok@novell.com>
14764
14765         * TextControl.cs:
14766         - Fixed Streamline method
14767         - Added FindTag method to Line
14768         - Added DumpTree method for debugging
14769         - Added DecrementLines() method for deleting lines
14770         - Fixed UpdateView to update the cursor to end-of-line on single-line
14771           updates
14772         - Added PositionCaret() method
14773         - Fixed MoveCaret(LineDown) to move into the last line, too
14774         - Added InsertChar overload
14775         - Fixed InsertChar tag offset calculations
14776         - Added DeleteChar() method
14777         - Added Combine() method for folding lines
14778         - Fixed Delete() method, no longer allocates wasted Line object and
14779           now copies all properties when swapping nodes
14780         - Delete() method now updates document line counter
14781
14782 2004-12-15  Jackson Harper  <jackson@ximian.com>
14783
14784         * XplatUIX11.cs: Get the modifier keys from the keyboard driver
14785         * X11Keyboard.cs: Expose the currently selected modifier keys
14786         through a property.
14787
14788 2004-12-15  Peter Bartok  <pbartok@novell.com>
14789
14790         * TextControl.cs: Initial check-in. Still incomplete
14791
14792 2004-12-15  Jackson Harper  <jackson@ximian.com>
14793
14794         * TreeNode.cs:
14795         * TreeView.cs: Fix build on csc (second time today ;-))
14796
14797 2004-12-15  Jackson Harper  <jackson@ximian.com>
14798
14799         * TreeView.cs: Store the treenodes plus/minus box bounds when it
14800         is calculated and use this for click testing.
14801         * TreeNode.cs: Add functionality to store the nodes plus minus box bounds.
14802
14803 2004-12-15  Jackson Harper  <jackson@ximian.com>
14804
14805         * TreeView.cs: Pass the nodes image index to the image list when
14806         drawing that image.
14807
14808 2004-12-15  Jackson Harper  <jackson@ximian.com>
14809
14810         * X11Keyboard.cs: Set messages hwnd.
14811         * XplatUIX11.cs: Pass proper hwnd wot keyboard driver. Set hwnd on
14812         post_message calls.
14813
14814 2004-12-15  Jackson Harper  <jackson@ximian.com>
14815
14816         * X11Keyboard.cs: Fix to compile with csc.
14817         
14818 2004-12-15  Jackson Harper  <jackson@ximian.com>
14819
14820         * X11Structs.cs: Add key mask values
14821         * XplatUIStruct.cs: Add keyboard event flags, and keyboard definitions
14822         * X11Keyboard.cs: New file - Extrapolates and interpolates key
14823         down/up foo into WM_CHAR foo
14824         * KeyboardLayouts.cs: Common keyboard layouts
14825         * XplatUIX11.cs: Add the keyboard driver. Add functionality to
14826         post messages into the main queue.
14827
14828 2004-12-13  Jordi Mas i Hernandez <jordi@ximian.com>
14829
14830         * Button.cs: implement ProcessMnemonic
14831         * ThemeWin32Classic.cs: use ResPool (caching) instead of creating
14832           brushes everytime
14833         * Control.cs: fixes IsMnemonic (support for &&, case insensitive, etc)
14834         * ButtonBase.cs: Show HotkeyPrefix (not the &)
14835
14836 2004-12-12  John BouAntoun  <jba-mon@optusnet.com.au>
14837         
14838         * MonthCalendar.cs: Implemented click-hold for next/previous month
14839           and date selection
14840           
14841 2004-12-11  Peter Bartok  <pbartok@novell.com>
14842
14843         * X11Structs.cs:
14844           - Added XKeyboardState (moved from XplatUIX11.cs)
14845           - Added XCreateGC related enums and structures
14846           - Added GXFunction for XSetFunction
14847
14848         * XplatUIStructs.cs: Added missing WS_EX_xxx definitions
14849
14850         * XplatUI.cs: Added CreateCaret(), DestroyCaret(), SetCaretPos() and
14851           CaretVisible() calls
14852
14853         * ToolTip.cs: Added code to prevent stealing focus from app windows
14854
14855         * XplatUIDriver.cs: Added abstracts for caret functions (CreateCaret,
14856           DestroyCaret, SetCaretPos and CaretVisible)
14857
14858         * XplatUIX11.cs:
14859           - Added implementation for caret functions
14860           - Moved hover variables into a struct, to make it a bit easier
14861             on the eyes and to debug
14862           - Removed XKeyboardState (moved to XplatUIX11.cs)
14863           - Moved Keyboard properties into the properties region
14864
14865         * Control.cs (get_Region): Control.CreateGraphics is the appropriate
14866           call to get a graphics context for our control
14867
14868         * XplatUIOSX.cs: Added empty overrides for the new caret functions
14869
14870         * TreeView.cs: Fixed bug. No matter what color was set it would always
14871           return SystemColors.Window
14872
14873         * XplatUIWin32.cs: Implemented caret overrides
14874
14875 2004-12-10  Jordi Mas i Hernandez <jordi@ximian.com>
14876
14877         * ListBox.cs: fire events, implement missing methods and properties,
14878         sorting.
14879
14880 2004-12-10  John BouAntoun <jba-mono@optusnet.com.au>
14881
14882         * MonthCalendar.cs: invalidation bug fixing
14883         * ThemeWin32Classic.cs: paint fixing
14884
14885 2004-12-09  Geoff Norton  <gnorton@customerdna.com>
14886
14887         * XplatUIOSX.cs: Refactor to pass the real hwnd into Graphics.FromHwnd, we
14888         prepare the CGContextRef there now.
14889
14890 2004-12-09  John BouAntoun <jba-mono@optusnet.com.au>
14891
14892         * MonthCalendar.cs:
14893           - optimisationL only invalidate areas that have changed
14894         * ThemeWin32Classic.cs:
14895           - only paint parts that intersect with clip_area
14896
14897 2004-12-09  Peter Bartok  <pbartok@novell.com>
14898
14899         * Application.cs: Undid changes from r37004 which cause problems
14900         on X11
14901
14902 2004-12-09  Ravindra  <rkumar@novell.com>
14903
14904         * ToolBar.cs: Added support for displaying ContextMenu
14905         attached to a button on ToolBar.
14906         * ToolBarButton.cs: Uncomment/fixed the DropDownMenu
14907         property.
14908
14909 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14910
14911         * Label.cs: autosize works in text change and removes unnecessary
14912         invalidate
14913
14914 2004-12-09  Jordi Mas i Hernandez <jordi@ximian.com>
14915
14916         * ThemeWin32Classic.cs, XplatUIOSX.cs, XplatUIWin32.cs:
14917         remove warnings
14918
14919 2004-12-08  Geoff Norton  <gnorton@customerdna.com>
14920
14921         * XplatUIOSX.cs: Added mouse move/click/grab support
14922         Remove some debugging WriteLines not needed anymore.
14923         Add window resizing/positioning.
14924         Fix visibility on reparenting.
14925
14926 2004-12-08  Peter Bartok  <pbartok@novell.com>
14927
14928         * XplatUIOSX.cs: Added Idle event, now compiles on VS.Net
14929
14930 2004-12-07  Geoff Norton  <gnorton@customerdna.com>
14931
14932         * XplatUIOSX.cs: Initial checkin
14933         * XplatUI.cs: Use the Quartz driver if the environment is set to use it
14934
14935 2004-12-03  Ravindra <rkumar@novell.com>
14936
14937         * ListView.cs: Added some keybindings and fixed scrolling.
14938         ScrollBars listen to ValueChanged event instead of Scroll
14939         Event. This would let us take care of all changes being
14940         done in the scrollbars' values programmatically or manually.
14941         * ListView.cs (CanMultiselect): Added a check for shift key.
14942         * ListView.cs (EnsureVisible): Fixed. Do proper scrolling.
14943         * ListViewItem.cs (Clone): Fixed. We need to make a copy
14944         of ListViewSubItemCollection as well.
14945
14946 2004-12-06  Peter Bartok <pbartok@novell.com>
14947
14948         * Control.cs (Parent): Added check and exception to prevent
14949         circular parenting
14950
14951 2004-12-03  Jordi Mas i Hernandez <jordi@ximian.com>
14952
14953         * ListBox.cs: implemented clipping, selection single and multiple,
14954         bug fixing
14955
14956 2004-12-03  Ravindra <rkumar@novell.com>
14957
14958         * ListView.cs (ListView_KeyDown):
14959         * ListView.cs (ListView_KeyUp): Fixed multiple selection handling
14960         when CTRL key is pressed.
14961         * ListViewItem.cs (Selected): Fixed setting the property.
14962
14963 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14964
14965         * Application.cs (OnThreadException): Use ThreadExceptionDialog.
14966
14967         * Form.cs: Add ActiveForm, FormBorderStyle, MaximizeBox,
14968         MinimizeBox, ShowInTaskbar, TopMost properties.
14969
14970         * ThreadExceptionDialog.cs: Implemented (disabled TextBox until
14971         will be implemented).
14972
14973 2004-12-03  Marek Safar  <marek.safar@seznam.cz>
14974
14975         * OwnerDrawPropertyBag.cs: New internal parameterless ctor.
14976
14977         * TreeNode.cs: Implemented ICloneable, Fixed to pass my simple
14978         tests.
14979         
14980         * TreeNodeCollection.cs: Add exception throwing for Add,AddRange.
14981         
14982         * TreeView.cs: BackColor is Colors.Window.
14983
14984 2004-12-01  Jackson Harper  <jackson@ximian.com>
14985
14986         * TreeView.cs: When resizing the tree if the user is making it
14987         smaller we don't get expose events, so we need to handle adding
14988         the horizontal scrollbar in the size changed handler as well as
14989         the expose handler.
14990
14991 2004-12-02  Jordi Mas i Hernandez <jordi@ximian.com>
14992
14993         * DrawItemState.cs: fixes wrong enum values
14994
14995 2004-12-01  Jackson Harper  <jackson@ximian.com>
14996
14997         * TreeView.cs: Resize the hbar as well as the vbar on resize.
14998
14999 2004-12-01  Jackson Harper  <jackson@ximian.com>
15000
15001         * NodeLabelEditEventArgs.cs:
15002         * NodeLabelEditEventHandler.cs:
15003         * OpenTreeNodeEnumerator.cs:
15004         * TreeNode.cs:
15005         * TreeNodeCollection.cs:
15006         * TreeView.cs:
15007         * TreeViewAction.cs:
15008         * TreeViewCancelEventArgs.cs:
15009         * TreeViewCancelEventHandler.cs:
15010         * TreeViewEventArgs.cs:
15011         * TreeViewEventHandler.cs: Initial implementation.
15012
15013 2004-12-01  Ravindra <rkumar@novell.com>
15014
15015         * ListView.cs (CalculateListView): Fixed scrolling related
15016         calculations. Also, removed some debug statements from other
15017         places.
15018         * ListViewItem.cs: Changed access to 'selected' instance variable
15019         from private to internal.
15020         * ThemeWin32Classic.cs (DrawListViewItem): Fixed SubItem drawing.
15021
15022 2004-12-01  Jordi Mas i Hernandez <jordi@ximian.com>
15023
15024         * ThemeWin32Classic.cs: remove cache of brush and pens for
15025         specific controls and use the global system, fixes scrollbutton
15026         bugs (for small sizes, disabled, etc)
15027         
15028         * ScrollBar.cs: does not show the thumb for very small controls
15029         (as MS) and allow smaller buttons that the regular size
15030
15031 2004-12-01  Miguel de Icaza  <miguel@ximian.com>
15032
15033         * UpDownBase.cs: Add abstract methods for the interface.
15034         Add new virtual methods (need to be hooked up to TextEntry when it
15035         exists).
15036         Add override methods for most features.
15037         Computes the size, forces the height of the text entry.
15038
15039         * NumericUpDown.cs: Put here the current testing code.
15040
15041         * Set eol-style property on all files that do not have mixed line
15042         endings, to minimize the future problems.  There are still a few
15043         files with mixed endings, and someone should choose whether they
15044         want to move it or not.
15045
15046 2004-11-30  Jordi Mas i Hernandez <jordi@ximian.com>
15047
15048         * MonthCalendar.cs, ListView.cs: use Theme colours instead of
15049         System.Colors
15050         
15051 2004-11-30  Ravindra <rkumar@novell.com>
15052
15053         * ThemeWin32Classic.cs (DrawListViewItem): Fixed selected item
15054         drawing and replaced use of SystemColors by theme colors.
15055         * ListView.cs (ListView_Paint): Fixed painting done during scrolling.
15056         * ListView.cs (ListViewItemCollection.Add): Throw exception when
15057         same ListViewItem is being added more than once.
15058
15059 2004-11-30  John BouAntoun <jba-mono@optusnet.com.au>
15060
15061         * MonthCalendar.cs:
15062           - ControlStyles love to make the control not flicker
15063           
15064 2004-11-30  Peter Bartok  <pbartok@novell.com>
15065
15066         * CharacterCasing.cs: Added
15067
15068 2004-11-29  Peter Bartok  <pbartok@novell.com>
15069
15070         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15071           TreeViewAction.cs, TreeViewEventArgs.cs: Removed new files.
15072           I am removing these files as they conflict with already completed
15073           work. While it is fantastic to get contributions to MWF, I
15074           respectfully ask that everyone please coordinate their contributions
15075           through mono-winforms-list or #mono-winforms at this time. We're
15076           explicitly avoiding stubbing and don't want controls that don't have
15077           their basic functionality implemented in svn. Please also see
15078           http://www.mono-project.com/contributing/winforms.html
15079
15080
15081 2004-11-29  Marek Safar  <marek.safar@seznam.cz>
15082
15083         * Application.cs (ModalRun): Don't hang after exit.
15084
15085         * Theme.cs: New TreeViewDefaultSize property.
15086
15087         * ThemeWin32Classic.cs: Replaced hardcoded defaultWindowBackColor
15088         with less hardcoded SystemColors constant.
15089         Implemented TreeViewDefaultSize.
15090
15091         * TreeNode.cs, TreeNodeCollection.cs, TreeView.cs,
15092         TreeViewAction.cs, TreeViewEventArgs.cs: New files.
15093
15094
15095 2004-11-29  John BouAntoun <jba-mono@optusnet.com.au>
15096
15097         * MonthCalendar.cs:
15098           - Fix NextMonthDate and PrevMonthDate click moving calendar
15099
15100 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15101
15102         * MonthCalendar.cs:
15103           - Fix usage of ScrollChange Property when scrolling months
15104
15105 2004-11-26  Jordi Mas i Hernandez <jordi@ximian.com>
15106
15107         * Menu.cs, MainMenu.cs, MenuItem.cs, MenuAPI.cs
15108          - Fixes menu destroying
15109          - Support adding and removing items on already created menus
15110
15111 2004-11-26  John BouAntoun <jba-mono@optusnet.com.au>
15112
15113         * MonthCalendar.cs:
15114           - Re-worked all bolded dates handling to match win32
15115         * ThemeWin32Classic.cs:
15116           - Fixed rendering with bolded dates
15117
15118 2004-11-25  Jordi Mas i Hernandez <jordi@ximian.com>
15119
15120         * ListBox.cs, Theme.cs, ThemeWin32Classic.cs:
15121         - Horizontal scroolbar
15122         - Multicolumn
15123         - Fixes
15124
15125
15126 2004-11-25  John BouAntoun <jba-mono@optusnet.com.au>
15127
15128         * MonthCalendar.cs:
15129           - Fix Usage of MaxSelectionCount from SelectionRange
15130           - Fixed Shift + Cursor Selection
15131           - Fixed Shift + (Pg up/Pg dn, Home/End) selection
15132           - Fixed normal cursor selection to be compat with win32
15133           - Fixed Shift + Mouse Click selection
15134
15135 2004-11-24  Peter Bartok <pbartok@novell.com>
15136
15137         * XplatUI.cs (DispatchMessage): Switched to return IntPtr
15138         * XplatUIDriver.cs (DispatchMessage): Switched to return IntPtr
15139         * XplatUIX11.cs:
15140           - CreatedKeyBoardMsg now updates keystate with Alt key
15141           - Added workaround for timer crash to CheckTimers, Jackson will
15142             develop a proper fix and check in later
15143           - Implemented DispatchMessage
15144           - Removed calling the native window proc from GetMessage (call
15145             now moved to DispatchMessage)
15146
15147         * KeyEventArgs.cs (Constructor): Now combines modifierkeys into
15148           the keydata (Fixes bug #69831)
15149
15150         * XplatUIWin32.cs:
15151           - (DispatchMessage): Switched to return IntPtr
15152           - Added DllImport for SetFocus
15153
15154 2004-11-24  Ravindra <rkumar@novell.com>
15155
15156         * ThemeWin32Classic.cs: Fixed ListView border and checkbox
15157         background drawing.
15158         * ListViewItem.cs: Fixed various properties, calculations
15159         and Clone() method. Fixed ListViewSubItemCollection.Clear() method.
15160         * ListView.cs: Fixed calculations, BackColor, ForeColor properties
15161         and some internal properties. Fixed MouseDown handler and Paint
15162         method.
15163
15164 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15165
15166         * MonthCalendar.cs: Add TitleMonth ContextMenu handling
15167
15168 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15169
15170         * ContainerControl.cs: correct accidental check in of local changes
15171
15172 2004-11-24  John BouAntoun <jba-mono@optusnet.com.au>
15173
15174         * ThemeWin32Classic.cs:
15175                 - Fixed Drawing Last month in grid (sometimes not showing)
15176         * MonthCalendar.cs:
15177                 - Fixed title width calculation bug (makeing title small)
15178
15179 2004-11-23  Peter Bartok <pbartok@novell.com>
15180
15181         * XplatUIX11.cs:
15182           - Added generation of WM_MOUSEHOVER event
15183           - Added missing assignment of async_method atom
15184           - Fixed WM_ERASEBKGND; now only redraws the exposed area
15185
15186 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15187
15188         * ThemeWin32Classic.cs:
15189                 - Fixed Drawing of today circle when showtodaycircle not set
15190                 - fixed drawing of first and last month in the grid (gay dates)
15191         * MonthCalendar.cs:
15192                 - Fixed Drawing of today circle
15193                 - Fixed drawing of grady dates
15194                 - Fixed HitTest for today link when ShowToday set to false
15195                 - Fixed DefaultSize to obey ShowToday
15196
15197 2004-11-23  John BouAntoun <jba-mono@optusnet.com.au>
15198
15199         * ThemeWin32Classic.cs: Fixed DrawMonthCalendar and private support methods
15200         * System.Windows.Forms/Theme.cs
15201         * MonthCalendar.cs: added for MonthCalendar
15202         * SelectionRange.cs: added for MonthCalendar
15203         * Day.cs: added for MonthCalendar: added for MonthCalendar
15204         * DateRangeEventArgs.cs: added for MonthCalendar
15205         * DateRangeEventHandler.cs: added for MonthCalendar
15206
15207 2004-11-22  Ravindra <rkumar@novell.com>
15208
15209         * ThemeWin32Classic.cs: Fixed ListViewDrawing with 'UseItemStyleForSubItems'
15210         property.
15211
15212 2004-11-22  Miguel de Icaza  <miguel@ximian.com>
15213
15214         * UpDownBase.cs (InitTimer): Use prehistoric C# 1.0 notation for
15215         event handler.
15216         
15217         * NumericUpDown.cs: Added new implementation.
15218         * UpDownBase.cs: Added new implementation.
15219
15220         * XplatUIWin32.cs (KeyboardSpeed, KeyboardDelay): added default
15221         implementations.
15222         
15223         * XplatUIX11.cs (KeyboardSpeed, KeyboardDelay): added default
15224         implementations.
15225
15226         * XplatUIDriver.cs ((KeyboardSpeed, KeyboardDelay): added new
15227         methods.
15228
15229 2004-11-21  Miguel de Icaza  <miguel@ximian.com>
15230
15231         * Timer.cs  (Dispose): Should call the base dispose when
15232         overriding.
15233
15234 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
15235
15236         * ScrollBar.cs: updates thumb position when max, min or increment
15237         is changed
15238
15239 2004-11-21  Ravindra <rkumar@novell.com>
15240
15241         * ListView.cs: Implemented item selection, activation and
15242         column header style. Fixed properties to do a redraw, if
15243         required. Added support for MouseHover, DoubleClick, KeyDown
15244         and KeyUp event handling and some minor fixes.
15245         * ListViewItem.cs: Fixed constructor.
15246         * ThemeWin32Classic.cs: Improved drawing for ListView.
15247
15248 2004-11-19  Jordi Mas i Hernandez <jordi@ximian.com>
15249
15250         * ThemeWin32Classic.cs: initial listbox drawing code
15251         * DrawMode.cs: new enumerator
15252         * ListControl.cs: stubbed class
15253         * ListBox.cs: initial implementation
15254         * Theme.cs: new methods definitions
15255         * SelectionMode.cs: new enumerator
15256
15257 2004-11-17  Peter Bartok  <pbartok@novell.com>
15258
15259         * XplatUIWin32.cs: Added double-click events to the class style
15260         * Control.cs (WndProc):
15261           - Added handling of click-count to MouseDown/ MouseUp events.
15262           - Added handling of middle and right mouse buttons
15263           - Removed old debug code
15264
15265 2004-11-17  Jackson Harper  <jackson@ximian.com>
15266
15267         * XplatUIX11.cs: Use the new Mono.Unix namespace.
15268
15269 2004-11-17  Ravindra <rkumar@novell.com>
15270
15271         * ListView.cs: Added event handling for MouseMove/Up/Down.
15272         * ColumnHeader.cs: Added a read-only internal property 'Pressed'.
15273         * ThemeWin32Classic.cs: We need to clear the graphics context and
15274         draw column header in a proper state.
15275
15276
15277 2004-11-17  Jordi Mas i Hernandez <jordi@ximian.com>
15278
15279         *  Menu.cs: fixes signature
15280
15281 2004-11-16  Peter Bartok  <pbartok@novell.com>
15282
15283         * XplatUIX11.cs (GetMessage): Implemented generation of
15284           double click mouse messages
15285
15286 2004-11-12  Jordi Mas i Hernandez <jordi@ximian.com>
15287
15288         *  Form.cs, MainMenu.cs, MenuAPI.cs: tracker should be for tracking session
15289         not by menu
15290
15291 2004-11-11  Peter Bartok  <pbartok@novell.com>
15292
15293         * HandleData.cs: Added Visible property
15294         * XplatUIX11.cs (IsVisible): Now uses Visible property from
15295           HandleData
15296         * XplatUIX11.cs: Removed old debug leftovers
15297         * XplatUIX11.cs (DefWndProc): Added WM_ERASEBKGND handler
15298         * Control.cs (WndProc): Removed old debug leftovers,
15299           streamlined handling of WM_WINDOWPOSCHANGED, removed un-
15300           needed WM_SIZE handling
15301
15302 2004-11-11  Jackson Harper  <jackson@ximian.com>
15303
15304         * OwnerDrawPropertyBag.cs:
15305         * TreeViewImageIndexConverter.cs: Initial implementation
15306
15307 2004-11-10  Jackson Harper  <jackson@ximian.com>
15308
15309         * ThemeWin32Classic.cs:
15310         * TabControl.cs: instead of moving tabs by the slider pos just
15311         start drawing at the tab that is offset by the slider. This way
15312         scrolling always moves by exactly one tab.
15313
15314 2004-11-10  Jackson Harper  <jackson@ximian.com>
15315
15316         * TabControl.cs: You can only scroll left when the slider has
15317         already ben moved right.
15318         
15319 2004-11-10  Jackson Harper  <jackson@ximian.com>
15320
15321         * ThemeWin32Classic.cs: Do not draw the selected tab if its not in
15322         the clip area.
15323         
15324 2004-11-10  Jackson Harper  <jackson@ximian.com>
15325
15326         * ThemeWin32Classic.cs: Don't bother drawing tabs outside of the
15327         clip area.
15328         
15329 2004-11-09  Jackson Harper  <jackson@ximian.com>
15330
15331         * TabControl.cs (CalcXPos): New helper method so we can determine
15332         the proper place to start drawing vertical tabs.
15333         * ThemeWin32Classic.cs (DrawTab): Draw right aligned tabs.
15334         
15335 2004-11-09  Jackson Harper  <jackson@ximian.com>
15336
15337         * TabControl.cs: Calculate sizing and rects for left aligned tabs.
15338         * ThemeWin32Classic.cs (GetTabControl*ScrollRect): Only handle Top
15339         and Bottom, left and right are illegal values for this and
15340         multiline is enabled when the alignment is set to left or right.
15341         (DrawTab): Each alignment block should draw the text itself now
15342         because Left requires special love. Also add rendering for Left
15343         aligned tabs.
15344         
15345 2004-11-09  Jordi Mas i Hernandez <jordi@ximian.com>
15346
15347         *  Form.cs, MainMenu.cs, MenuAPI.cs: fixes menu navigation, fixes popups,
15348         does not destroy the windows, removes debugging messages
15349
15350 2004-11-09  jba  <jba-mono@optusnet.com.au>
15351
15352         * ThemeWin32Classic.cs
15353         (DrawButtonBase): Fix verticle text rect clipping in windows
15354         (DrawCheckBox): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15355         rendering and incorrect text rect clipping
15356         (DrawRadioButton): Fix CheckAlign.TopCenter and CheckAlign.BottomCenter
15357         rendering and incorrect text rect clipping
15358         
15359 2004-11-08  Jackson Harper  <jackson@ximian.com>
15360
15361         * ThemeWin32Classic.cs (DrawTabControl): Render tabs from top to
15362         bottom when they are bottom aligned so the bottoms of the tabs get
15363         displayed.
15364         * TabControl.cs (DropRow): Move rows up instead of down when the
15365         tab control is bottom aligned.
15366
15367 2004-11-08 13:59  pbartok
15368
15369         * XplatUIX11.cs:
15370           - Added handling for various window styles
15371           - Added handling for popup windows
15372           - Added SetTopmost handling
15373
15374 2004-11-08 13:55  pbartok
15375
15376         * XplatUIWin32.cs:
15377           - Added argument to SetTopmost method
15378           - Fixed broken ClientToScreen function
15379
15380 2004-11-08 13:53  pbartok
15381
15382         * XplatUIStructs.cs:
15383           - Added missing WS_EX styles
15384
15385 2004-11-08 13:53  pbartok
15386
15387         * XplatUI.cs, XplatUIDriver.cs:
15388           - Added argument to SetTopmost
15389
15390 2004-11-08 13:52  pbartok
15391
15392         * X11Structs.cs:
15393           - Added XSetWindowAttributes structure
15394           - Improved XWindowAttributes structure
15395           - Added SetWindowValuemask enum
15396           - Added window creation arguments enum
15397           - Added gravity enum
15398           - Added Motif hints structure
15399           - Added various Motif flags and enums
15400           - Added PropertyMode enum for property functions
15401
15402 2004-11-08 13:50  pbartok
15403
15404         * Form.cs:
15405           - Fixed arguments for updated SetTopmost method
15406
15407 2004-11-08 13:49  pbartok
15408
15409         * ToolTip.cs:
15410           - Fixed arguments for updated SetTopmost function
15411           - Fixed usage of PointToClient
15412
15413 2004-11-08 13:44  pbartok
15414
15415         * MenuAPI.cs:
15416           - Added Clipping of children and siblings
15417
15418 2004-11-08 13:41  pbartok
15419
15420         * MainMenu.cs:
15421           - Removed SetMenuBarWindow call. We do this in Form.cs
15422
15423 2004-11-08 13:40  jackson
15424
15425         * TabControl.cs, Theme.cs, ThemeWin32Classic.cs: Render the little
15426           scrolling jimmi in the correct location with bottom aligned tabs
15427
15428 2004-11-08 13:36  pbartok
15429
15430         * ContainerControl.cs:
15431           - Implemented BindingContext
15432           - Implemented ParentForm
15433
15434 2004-11-08 12:46  jackson
15435
15436         * TabControl.cs: Put bottom rendered tabs in the right location
15437
15438 2004-11-08 07:15  jordi
15439
15440         * ScrollBar.cs, ThemeWin32Classic.cs: fixes vertical scrollbar and
15441           removes dead code
15442
15443 2004-11-05 17:30  jackson
15444
15445         * TabControl.cs: When selected tabs are expanded make sure they
15446           don't go beyond the edges of the tab control
15447
15448 2004-11-05 14:57  jackson
15449
15450         * TabControl.cs: Reset show_slider so if the control is resized to
15451           a size where it is no longer needed it's not displayed anymore
15452
15453 2004-11-05 13:16  jackson
15454
15455         * TabControl.cs: Make tab pages non visible when added to the
15456           control
15457
15458 2004-11-05 12:42  jackson
15459
15460         * TabControl.cs: Implement SizeMode.FillToRight
15461
15462 2004-11-05 12:16  jackson
15463
15464         * Control.cs: Do not call CreateHandle if the handle is already
15465           created
15466
15467 2004-11-05 11:46  jackson
15468
15469         * TabControl.cs: Remove superflous call to CalcTabRows
15470
15471 2004-11-05 09:07  jackson
15472
15473         * XplatUIX11.cs: Update for Mono.Posix changes
15474
15475 2004-11-05 07:00  ravindra
15476
15477         * ListView.cs, ListViewItem.cs: Implemented some methods and fixed
15478           scrolling.
15479
15480 2004-11-04 22:47  jba
15481
15482         * ThemeWin32Classic.cs:
15483           - Fix Button rendering for FlatStyle = Flat or Popup
15484           - Fix RadioButton and CheckBox rendering when Appearance = Button
15485             (normal and flatstyle).
15486           - Correct outer rectangle color when drawing focus rectangle
15487           - Adjust button bounds to be 1 px smaller when focused
15488           - Make button not draw sunken 3d border when pushed (windows compat)
15489           - Fix CPDrawBorder3D to not make bottom right hand corner rounded
15490           - Offset the text in RadioButton and Checkbox when being rendered as
15491           a button.
15492           - Hover and Click behaviour for Colored FlatStyle.Flat and Popup
15493           radiobuttons
15494           - Fixed disabled rendering for colored flatstyle radiobuttons (both)
15495           - Fixed disabled text rendering for normally rendered radiobuttons
15496
15497 2004-11-04 10:26  jackson
15498
15499         * TabControl.cs: Recalculate tab rows when resizing
15500
15501 2004-11-04 07:47  jordi
15502
15503         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs:
15504           collection completion, drawing issues, missing features
15505
15506 2004-11-04 05:03  ravindra
15507
15508         * ScrollBar.cs:
15509                 - We need to recalculate the Thumb area when
15510                 LargeChange/maximum/minimum values are changed.
15511           - We set the 'pos' in UpdatePos() method to minimum, if it's less
15512                 than minimum. This is required to handle the case if large_change is
15513                 more than max, and use LargeChange property instead of large_change
15514                 variable.
15515           - We return max+1 when large_change is more than max, like MS does.
15516
15517 2004-11-04 04:29  ravindra
15518
15519         * ColumnHeader.cs, ListView.cs, ListViewItem.cs:
15520                 - Changed default value signatures (prefixed all with ListView).
15521                 - Fixed/implemented layout LargeIcon, SmallIcon and List views for
15522                 ListView.
15523           - Fixed calculations for ListViewItem and implemented Clone()
15524           method.
15525
15526 2004-11-04 04:26  ravindra
15527
15528         * Theme.cs, ThemeWin32Classic.cs:
15529                 - Changed default ListView values signatures (prefixed all with
15530                 ListView).
15531           - Fixed default size values for VScrollBar and HScrollBar.
15532                 - Fixed DrawListViewItem method.
15533
15534 2004-11-04 04:05  ravindra
15535
15536         * ColumnHeaderStyle.cs: Typo. It should be Nonclickable.
15537
15538 2004-11-04 04:04  ravindra
15539
15540         * ImageList.cs: Implemented the missing overload for Draw method.
15541
15542 2004-11-03 19:29  jackson
15543
15544         * TabControl.cs: Handle dropping rows on selection properly
15545
15546 2004-11-03 11:59  jackson
15547
15548         * TabControl.cs: remove debug code
15549
15550 2004-11-03 11:52  jackson
15551
15552         * TabControl.cs, ThemeWin32Classic.cs: Initial implementation of
15553           the scrolly widgerywoo
15554
15555 2004-11-02 13:52  jackson
15556
15557         * TabControl.cs: Resize the tab pages and tabs when the tab control
15558           is resized
15559
15560 2004-11-02 13:40  jackson
15561
15562         * TabControl.cs, ThemeWin32Classic.cs: Move the row with the
15563           selected tab to the bottom
15564
15565 2004-11-02 13:39  jackson
15566
15567         * TabPage.cs: Store the tab pages row
15568
15569 2004-11-02 12:33  jordi
15570
15571         * MenuItem.cs: fixes handle creation
15572
15573 2004-11-02 11:42  jackson
15574
15575         * TabControl.cs: signature fix
15576
15577 2004-11-02 08:56  jackson
15578
15579         * TabControl.cs: Calculate whether the tab is on an edge properly.
15580           Remove top secret debugging code
15581
15582 2004-11-01 19:57  jackson
15583
15584         * TabControl.cs: Add click handling, and proper sizing
15585
15586 2004-11-01 19:47  jackson
15587
15588         * Theme.cs, ThemeWin32Classic.cs: New rendering and sizing code for
15589           tab controls
15590
15591 2004-11-01 19:39  jackson
15592
15593         * TabPage.cs: add internal property to store the bounds of a tab
15594           page
15595
15596 2004-10-30 04:23  ravindra
15597
15598         * Theme.cs, ThemeWin32Classic.cs: Drawing ListView and some default
15599           values.
15600
15601 2004-10-30 04:21  ravindra
15602
15603         * ListView.cs, ListViewItem.cs: Added support for scrolling and
15604           fixed calculations.
15605
15606 2004-10-30 03:06  pbartok
15607
15608         * XplatUIX11.cs:
15609           - Removed extension of DllImported libs
15610
15611 2004-10-29 09:55  jordi
15612
15613         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: Menu key
15614           navigation, itemcollection completion, menu fixes
15615
15616 2004-10-27 22:58  pbartok
15617
15618         * XplatUIX11.cs:
15619           - Now throws a nice error message when no X display could be opened
15620
15621 2004-10-26 13:51  jordi
15622
15623         * ListView.cs: removes warning
15624
15625 2004-10-26 03:55  ravindra
15626
15627         * ColumnHeader.cs, ListView.cs, ListViewItem.cs,
15628           ThemeWin32Classic.cs: Some formatting for my last checkins.
15629
15630 2004-10-26 03:36  ravindra
15631
15632         * ThemeWin32Classic.cs: Implemented DetailView drawing for ListView
15633           control and default values.
15634
15635 2004-10-26 03:35  ravindra
15636
15637         * Theme.cs: Added some default values for ListView control.
15638
15639 2004-10-26 03:33  ravindra
15640
15641         * ToolBar.cs: ToolBar should use the user specified button size, if
15642           there is any. Added a size_specified flag for the same.
15643
15644 2004-10-26 03:33  ravindra
15645
15646         * ColumnHeader.cs: Added some internal members and calculations for
15647           ColumnHeader.
15648
15649 2004-10-26 03:32  ravindra
15650
15651         * ListViewItem.cs: Calculations for ListViewItem.
15652
15653 2004-10-26 03:31  ravindra
15654
15655         * ListView.cs: Added some internal members and calculations for
15656           ListView.
15657
15658 2004-10-22 13:31  jordi
15659
15660         * MenuAPI.cs: speedup menus drawing
15661
15662 2004-10-22 13:16  jackson
15663
15664         * XplatUIX11.cs: Make sure to update exposed regions when adding an
15665           expose event
15666
15667 2004-10-22 11:49  jackson
15668
15669         * Control.cs: oops
15670
15671 2004-10-22 11:41  jackson
15672
15673         * Control.cs: Check to see if the window should have its background
15674           repainted by X when drawing.
15675
15676 2004-10-22 11:31  jackson
15677
15678         * XplatUIX11.cs: When invalidating areas only use XClearArea if
15679           clear is true, this way we do not get flicker from X repainting the
15680           background
15681
15682 2004-10-22 11:28  jackson
15683
15684         * XEventQueue.cs: Queue properly
15685
15686 2004-10-21 09:38  jackson
15687
15688         * XEventQueue.cs: Fix access modifier
15689
15690 2004-10-21 09:36  jackson
15691
15692         * XEventQueue.cs: Don't loose messages
15693
15694 2004-10-21 09:22  jackson
15695
15696         * XEventQueue.cs: Don't loose messages
15697
15698 2004-10-20 04:15  jordi
15699
15700         * BootMode.cs: enum need it by SystemInfo
15701
15702 2004-10-19 21:58  pbartok
15703
15704         * XplatUIWin32.cs:
15705           - Small sanity check
15706
15707 2004-10-19 21:56  pbartok
15708
15709         * Form.cs:
15710           - Added private FormParentWindow class which acts as the container
15711             for our form and as the non-client area where menus are drawn
15712           - Added/Moved required tie-ins to Jordi's menus
15713           - Fixed/Implemented the FormStartPosition functionality
15714
15715 2004-10-19 21:52  pbartok
15716
15717         * Control.cs:
15718           - Removed unneeded locals
15719           - Added code to all size and location properties to understand and
15720             deal with the parent container of Form
15721
15722 2004-10-19 21:33  pbartok
15723
15724         * Application.cs:
15725           - Fixed to deal with new Form subclasses for menus
15726
15727 2004-10-19 17:48  jackson
15728
15729         * XEventQueue.cs: commit correct version of file
15730
15731 2004-10-19 16:50  jackson
15732
15733         * XEventQueue.cs, XplatUIX11.cs: New optimized event queue
15734
15735 2004-10-19 16:15  jordi
15736
15737         * MenuAPI.cs: MenuBarCalcSize returns the height
15738
15739 2004-10-19 08:31  pbartok
15740
15741         * Control.cs:
15742           - Added missing call to PreProcessMessage before calling OnXXXKey
15743           methods
15744
15745 2004-10-19 00:04  ravindra
15746
15747         * ToolTip.cs: Fixed constructor.
15748
15749 2004-10-18 09:31  jordi
15750
15751         * MenuAPI.cs: menuitems in menubars do not have shortcuts
15752
15753 2004-10-18 09:26  jordi
15754
15755         * MenuItem.cs: fixes MenuItem class signature
15756
15757 2004-10-18 08:56  jordi
15758
15759         * MenuAPI.cs: prevents windows from showing in the taskbar
15760
15761 2004-10-18 00:28  ravindra
15762
15763         * ToolTip.cs: Suppressed a warning message.
15764
15765 2004-10-18 00:27  ravindra
15766
15767         * Control.cs: Default value of visible property must be true.
15768
15769 2004-10-17 23:19  pbartok
15770
15771         * ToolTip.cs:
15772           - Complete implementation
15773
15774 2004-10-17 23:19  pbartok
15775
15776         * XplatUIX11.cs:
15777           - Added EnableWindow method
15778           - Added SetModal stub
15779           - Added generation of WM_ACTIVATE message (still needs testing)
15780           - Added SetTopMost stub
15781           - Changes to deal with VirtualKeys being moved to XplatUIStructs.cs
15782
15783 2004-10-17 23:17  pbartok
15784
15785         * XplatUIWin32.cs:
15786           - Removed VirtualKeys to XplatUIStructs
15787           - Implemented SetTopMost method
15788           - Implemented EnableWindow method
15789           - Bugfix in ScreenToClient()
15790           - Bugfixes in ClientToScreen()
15791
15792 2004-10-17 22:51  pbartok
15793
15794         * XplatUIStructs.cs:
15795           - Added WS_EX styles to WindowStyles enumeration
15796
15797 2004-10-17 22:50  pbartok
15798
15799         * XplatUI.cs, XplatUIDriver.cs:
15800           - Added method for enabling/disabling windows
15801           - Added method for setting window modality
15802           - Added method for setting topmost window
15803
15804 2004-10-17 22:49  pbartok
15805
15806         * ThemeWin32Classic.cs:
15807           - Added ToolTip drawing code
15808
15809 2004-10-17 22:49  pbartok
15810
15811         * Theme.cs:
15812           - Added ToolTip abstracts
15813
15814 2004-10-17 22:47  pbartok
15815
15816         * Form.cs:
15817           - Fixed Form.ControlCollection to handle owner relations
15818           - Added Owner/OwnedForms handling
15819           - Implemented Z-Ordering for owned forms
15820           - Removed unneeded private overload of ShowDialog
15821           - Fixed ShowDialog, added the X11 incarnation of modal handling (or
15822             so I hope)
15823           - Fixed Close(), had wrong default
15824           - Added firing of OnLoad event
15825           - Added some commented out debug code for Ownership handling
15826
15827 2004-10-17 22:16  pbartok
15828
15829         * Control.cs:
15830           - Fixed/implemented flat list of controls
15831
15832 2004-10-17 22:14  pbartok
15833
15834         * Application.cs:
15835           - Added code to simulate modal dialogs on Win32
15836
15837 2004-10-17 16:11  jordi
15838
15839         * ScrollBar.cs: disabled scrollbar should not honor any keyboard or
15840           mouse event
15841
15842 2004-10-17 13:39  jordi
15843
15844         * MenuAPI.cs: menu drawing fixes
15845
15846 2004-10-15 09:10  ravindra
15847
15848         * StructFormat.cs: General Enum.
15849
15850 2004-10-15 09:09  ravindra
15851
15852         * SizeGripStyle.cs: Enum for Form.
15853
15854 2004-10-15 09:08  ravindra
15855
15856         * Theme.cs, ThemeWin32Classic.cs: Added ColumnHeaderHeight property
15857           in Theme for ListView.
15858
15859 2004-10-15 09:06  ravindra
15860
15861         * ColumnHeader.cs: Flushing some formatting changes.
15862
15863 2004-10-15 09:05  ravindra
15864
15865         * ListViewItem.cs: Implemented GetBounds method and fixed coding
15866           style.
15867
15868 2004-10-15 09:03  ravindra
15869
15870         * ListView.cs: Implemented Paint method and fixed coding style.
15871
15872 2004-10-15 07:34  jordi
15873
15874         * MenuAPI.cs: fix for X11
15875
15876 2004-10-15 07:32  ravindra
15877
15878         * ButtonBase.cs, CheckBox.cs, RadioButton.cs:
15879                 - Renamed Paint() method to Draw() for clarity. Also, moved
15880                 DrawImage() to OnPaint().
15881
15882 2004-10-15 07:25  ravindra
15883
15884         * CheckBox.cs, RadioButton.cs:
15885                 - Removed Redraw (), we get it from ButtonBase.
15886                 - Implemented Paint (), to do class specific painting.
15887
15888 2004-10-15 07:16  ravindra
15889
15890         * ButtonBase.cs:
15891                 - Redraw () is not virtual now.
15892                 - Added an internal virtual method Paint (), so that
15893                 derived classes can do their painting on their own.
15894                 - Modified OnPaint () to call Paint ().
15895
15896 2004-10-15 06:43  jordi
15897
15898         * ContextMenu.cs, DrawItemEventHandler.cs, Form.cs, MainMenu.cs,
15899           MenuAPI.cs, MenuItem.cs: menu work, mainmenu, subitems, etc
15900
15901 2004-10-15 00:30  ravindra
15902
15903         * MessageBox.cs:
15904                 - MessageBox on windows does not have min/max buttons.
15905                 This change in CreateParams fixes this on Windows. We
15906                 still need to implement this windowstyle behavior in
15907                 our X11 driver.
15908
15909 2004-10-14 05:14  ravindra
15910
15911         * ToolBar.cs:
15912                 - Changed Redraw () to do a Refresh () always.
15913                 - Fixed the MouseMove event handling when mouse is pressed,
15914                 ie drag event handling.
15915                 - Replaced the usage of ToolBarButton.Pressed property to
15916                 ToolBarButton.pressed internal variable.
15917
15918 2004-10-14 05:10  ravindra
15919
15920         * ToolBarButton.cs:
15921                 - Added an internal member 'inside' to handle mouse move
15922                 with mouse pressed ie mouse drag event.
15923                 - Changed 'Pressed' property to return true only when
15924                 'inside' and 'pressed' are both true.
15925                 - Some coding style love.
15926
15927 2004-10-14 00:17  ravindra
15928
15929         * Form.cs: Fixed class signature. ShowDialog (Control) is not a
15930           public method.
15931
15932 2004-10-14 00:15  ravindra
15933
15934         * ButtonBase.cs: Redraw () related improvements.
15935
15936 2004-10-14 00:14  ravindra
15937
15938         * MessageBox.cs: Moved InitFormSize () out of Paint method and
15939           removed unnecessary calls to Button.Show () method.
15940
15941 2004-10-13 17:50  pbartok
15942
15943         * XplatUIX11.cs:
15944           - Formatting fix
15945           - Removed destroying of window until we solve the problem of X
15946             destroying the window before us on shutdown
15947
15948 2004-10-13 16:32  pbartok
15949
15950         * ButtonBase.cs:
15951           - Now Redraws on MouseUp for FlatStyle Flat and Popup
15952
15953 2004-10-13 14:18  pbartok
15954
15955         * XplatUIX11.cs:
15956           - Added code to destroy the X window
15957
15958 2004-10-13 14:18  pbartok
15959
15960         * XplatUIWin32.cs:
15961           - Added code to destroy a window
15962
15963 2004-10-13 14:12  pbartok
15964
15965         * ButtonBase.cs:
15966           - Added the Redraw on Resize that got dropped in the last rev
15967
15968 2004-10-13 09:06  pbartok
15969
15970         * ThemeWin32Classic.cs:
15971           - Path from John BouAntoun:
15972             * Fix check rendering (centre correctly for normal style, offset
15973               correctly for FlatStyle).
15974             * Fix border color usage (use backcolor) for FlatStyle.Popup
15975             * Use checkbox.Capture instead of checkbox.is_pressed when
15976               rendering flatstyle states.
15977
15978 2004-10-12 21:48  pbartok
15979
15980         * ThemeWin32Classic.cs:
15981           - Removed all occurences of SystemColors and replaced them with the
15982             matching theme color
15983
15984 2004-10-12 21:41  pbartok
15985
15986         * ThemeWin32Classic.cs:
15987           - From John BouAntoun: Added an overload to CPDrawBorder3D to allow
15988             him using the function for flatstyle drawing
15989           - Changed functions to use the new version of CPDrawBorder3D
15990
15991 2004-10-12 21:15  pbartok
15992
15993         * ControlPaint.cs:
15994           - Fixed Dark(), DarkDark(), Light() and LightLight() methods to
15995             match MS documentation. They need to return defined colors if the
15996             passed color matches the configured control color. Thanks to John
15997             BouAntoun for pointing this out.
15998
15999 2004-10-12 20:57  pbartok
16000
16001         * Control.cs:
16002           - Fix from John BouAntoun: Raise ForeColorChanged event when text
16003             color is changed
16004
16005 2004-10-12 20:46  pbartok
16006
16007         * CheckBox.cs:
16008           - Fix from John BouAntoun: Now properly sets the Appearance property
16009
16010 2004-10-12 20:45  pbartok
16011
16012         * ThemeWin32Classic.cs:
16013           - Fixes from John BouAntoun: now handles forecolors and backcolors
16014             for flatstyle rendered controls much better; It also fixes normal
16015             checkbox rendering when pushed or disabled.
16016
16017 2004-10-08 02:50  jordi
16018
16019         * Form.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs: more menu
16020           work
16021
16022 2004-10-07 08:56  jordi
16023
16024         * ThemeWin32Classic.cs: Removes deletion of cached brushes
16025
16026 2004-10-06 03:59  jordi
16027
16028         * Control.cs, StatusBar.cs, ThemeWin32Classic.cs, ToolBar.cs,
16029           XplatUIWin32.cs: removes warnings from compilation
16030
16031 2004-10-05 12:23  jackson
16032
16033         * RadioButton.cs: Fix ctor
16034
16035 2004-10-05 11:10  pbartok
16036
16037         * MessageBox.cs:
16038           - Partial implementation by Benjamin Dasnois
16039
16040 2004-10-05 10:15  jackson
16041
16042         * ThemeWin32Classic.cs: Improve rendering of the radio button patch
16043           by John BouAntoun
16044
16045 2004-10-05 03:07  ravindra
16046
16047         * ToolBar.cs:
16048                 - Removed a private method, Draw ().
16049                 - Fixed the ButtonDropDown event handling.
16050                 - Fixed MouseMove event handling.
16051
16052 2004-10-05 03:04  ravindra
16053
16054         * ThemeWin32Classic.cs:
16055                 - Added DrawListView method and ListViewDefaultSize property.
16056                 - Changed ControlPaint method calls to CPDrawXXX wherever possible.
16057                 - Changed DOS style CRLF to Unix format (dos2unix).
16058
16059 2004-10-05 03:03  ravindra
16060
16061         * Theme.cs:
16062                 - Added DrawListView method and ListViewDefaultSize property.
16063
16064 2004-10-05 02:42  ravindra
16065
16066         * ToolBarButton.cs: Added an internal member dd_pressed to handle
16067           clicks on DropDown arrow.
16068
16069 2004-10-04 22:56  jackson
16070
16071         * ButtonBase.cs, Label.cs, MenuAPI.cs, ProgressBar.cs,
16072           ScrollBar.cs, StatusBar.cs, ToolBar.cs, TrackBar.cs: Let the base
16073           Control handle the buffers, derived classes should not have to
16074           CreateBuffers themselves.
16075
16076 2004-10-04 21:20  jackson
16077
16078         * StatusBar.cs: The control handles resizing the buffers now.
16079
16080 2004-10-04 21:18  jackson
16081
16082         * Control.cs: When resizing the buffers should be invalidated. This
16083           should be handled in Control not in derived classes.
16084
16085 2004-10-04 14:45  jackson
16086
16087         * TabPage.cs: oops
16088
16089 2004-10-04 02:14  pbartok
16090
16091         * LeftRightAlignment.cs:
16092           - Initial check-in
16093
16094 2004-10-04 01:09  jordi
16095
16096         * ThemeWin32Classic.cs: fixes right button position causing right
16097           button not showing on horizontal scrollbars
16098
16099 2004-10-02 13:12  pbartok
16100
16101         * XplatUIX11.cs:
16102           - Simplified the Invalidate method by using an X call instead of
16103             generating the expose ourselves
16104           - Added an expose when the window background is changed
16105           - Implemented ClientToScreen method
16106
16107 2004-10-02 13:08  pbartok
16108
16109         * XplatUIWin32.cs:
16110           - Added Win32EnableWindow method (test for implementing modal
16111           dialogs)
16112           - Added ClientToScreen method and imports
16113
16114 2004-10-02 13:07  pbartok
16115
16116         * XplatUI.cs, XplatUIDriver.cs:
16117           - Added ClientToScreen coordinate translation method
16118
16119 2004-10-02 13:06  pbartok
16120
16121         * KeyPressEventArgs.cs:
16122           - Fixed access level for constructor
16123
16124 2004-10-02 13:06  pbartok
16125
16126         * NativeWindow.cs:
16127           - Changed access level for the window_collection hash table
16128
16129 2004-10-02 13:05  pbartok
16130
16131         * Form.cs:
16132           - Added KeyPreview property
16133           - Added Menu property (still incomplete, pending Jordi's menu work)
16134           - Implemented ProcessCmdKey
16135           - Implemented ProcessDialogKey
16136           - Implemented ProcessKeyPreview
16137
16138 2004-10-02 13:02  pbartok
16139
16140         * Control.cs:
16141           - Added private method to get the Control object from the window
16142           handle
16143           - Implemented ContextMenu property
16144           - Implemented PointToScreen
16145           - Implemented PreProcessMessage
16146           - Implemented IsInputChar
16147           - Implemented IsInputKey
16148           - Implemented ProcessCmdKey
16149           - Completed ProcessKeyEventArgs
16150           - Fixed message loop to call the proper chain of functions on key
16151           events
16152           - Implemented ProcessDialogChar
16153           - Implemented ProcessDialogKey
16154           - Implemented ProcessKeyMessage
16155           - Implemented ProcessKeyPreview
16156           - Added RaiseDragEvent stub (MS internal method)
16157           - Added RaiseKeyEvent stub (MS internal method)
16158           - Added RaiseMouseEvent stub (MS Internal method)
16159           - Added RaisePaintEvent stub (MS Internal method)
16160           - Added ResetMouseEventArgs stub (MS Internal method)
16161           - Implemented RtlTranslateAlignment
16162           - Implemented RtlTranslateContent
16163           - Implemented RtlTranslateHorizontal
16164           - Implemented RtlTranslateLeftRight
16165           - Added generation of KeyPress event
16166
16167 2004-10-02 05:57  ravindra
16168
16169         * ListViewItem.cs: Added attributes.
16170
16171 2004-10-02 05:32  ravindra
16172
16173         * ListView.cs: Added attributes.
16174
16175 2004-10-01 11:53  jackson
16176
16177         * Form.cs: Implement the Close method so work on MessageBox can
16178           continue.
16179
16180 2004-09-30 14:06  pbartok
16181
16182         * XplatUIX11.cs:
16183           - Bug fixes
16184
16185 2004-09-30 11:34  jackson
16186
16187         * RadioButton.cs: Fix typo. Patch by John BouAntoun.
16188
16189 2004-09-30 07:26  ravindra
16190
16191         * ListViewItemConverter.cs: Converter for ListViewItem.
16192
16193 2004-09-30 07:26  ravindra
16194
16195         * SortOrder.cs: Enum for ListView control.
16196
16197 2004-09-30 07:25  ravindra
16198
16199         * ColumnHeader.cs: Supporting class for ListView control.
16200
16201 2004-09-30 07:24  ravindra
16202
16203         * ListView.cs, ListViewItem.cs: Initial implementation.
16204
16205 2004-09-30 07:20  ravindra
16206
16207         * ItemActivation.cs: Enum for ListView Control.
16208
16209 2004-09-29 20:29  pbartok
16210
16211         * XplatUIX11.cs:
16212           - Added lookup of pixel value for background color; tries to get a
16213             color 'close' to the requested color, it avoids having to create a
16214             colormap.  Depending on the display this could mean the used color
16215             is slightly off the desired color. Might have to change it to a more
16216             resource intensive colormap approach, but it will work as a
16217           workaround to avoid red screens.
16218
16219 2004-09-29 14:27  jackson
16220
16221         * XplatUIX11.cs: Set the X DisplayHandle in System.Drawing
16222
16223 2004-09-28 12:44  pbartok
16224
16225         * ButtonBase.cs, CheckBox.cs, ControlPaint.cs, GroupBox.cs,
16226           HScrollBar.cs, Label.cs, LinkLabel.cs, Panel.cs, PictureBox.cs,
16227           ProgressBar.cs, RadioButton.cs, ScrollBar.cs, StatusBar.cs,
16228           Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs, ToolBar.cs,
16229           TrackBar.cs, VScrollBar.cs:
16230           - Streamlined Theme interfaces:
16231             * Each DrawXXX method for a control now is passed the object for
16232               the control to be drawn in order to allow accessing any state the
16233               theme might require
16234
16235             * ControlPaint methods for the theme now have a CP prefix to avoid
16236               name clashes with the Draw methods for controls
16237
16238             * Every control now retrieves it's DefaultSize from the current
16239             theme
16240
16241 2004-09-28 12:17  jackson
16242
16243         * Button.cs: Do not redraw OnClick MouseUp/Down will handle the
16244           drawing
16245
16246 2004-09-24 14:57  jackson
16247
16248         * XplatUIX11.cs: Don't lock/enqueue/dequeue for unhandled messages.
16249           Gives us a nice little performance boost.
16250
16251 2004-09-24 12:02  jackson
16252
16253         * TabAlignment.cs, TabAppearance.cs, TabControl.cs, TabDrawMode.cs,
16254           TabPage.cs, TabSizeMode.cs: Partial implementation of the Tab
16255           Control and supporting classes. Initial checkin
16256
16257 2004-09-23 13:08  jackson
16258
16259         * Form.cs: Temp build fixage
16260
16261 2004-09-23 01:39  ravindra
16262
16263         * ItemChangedEventArgs.cs, ItemChangedEventHandler.cs,
16264           ItemCheckEventArgs.cs, ItemCheckEventHandler.cs,
16265           ItemDragEventArgs.cs, ItemDragEventHandler.cs,
16266           LabelEditEventArgs.cs, LabelEditEventHandler.cs: EventArgs and
16267           EventHandlers needed by ListView Control.
16268
16269 2004-09-22 14:12  pbartok
16270
16271         * ScrollableControl.cs:
16272           - Implemented DockPadding property
16273           - Implemented AutoScroll property
16274           - Implemented AutoScrollMargin property
16275           - Implemented AutoScrollMinSize property
16276           - Implemented AutoScrollPosition property
16277           - Implemented DisplayRectangle property (still incomplete)
16278           - Implemented CreateParams property
16279           - Implemented HScroll property
16280           - Implemented VScroll property
16281           - Implemented OnVisibleChanged property
16282
16283 2004-09-22 14:09  pbartok
16284
16285         * Form.cs:
16286           - Added Form.ControllCollection class
16287           - Added handling for Form owners: Owner, OwnedForms, AddOwnedForm,
16288             RemoveOwnedForm (still incomplete, missing on-top and common
16289             minimize/maximize behaviour)
16290           - Added StartPosition property (still incomplete, does not use when
16291             creating the form)
16292           - Added ShowDialog() methods (still incomplete, missing forcing the
16293             dialog modal)
16294
16295 2004-09-22 14:05  pbartok
16296
16297         * Application.cs:
16298           - Added message loop for modal dialogs
16299
16300 2004-09-22 14:02  pbartok
16301
16302         * GroupBox.cs:
16303           - Fixed wrong types for events
16304
16305 2004-09-22 14:00  pbartok
16306
16307         * Shortcut.cs, FormWindowState.cs:
16308           - Fixed wrong values
16309
16310 2004-09-22 12:01  jackson
16311
16312         * Control.cs: Text is never null
16313
16314 2004-09-20 22:14  pbartok
16315
16316         * XplatUIWin32.cs:
16317           - Fixed accessibility level for Idle handler
16318
16319 2004-09-20 18:54  jackson
16320
16321         * Application.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16322           XplatUIX11.cs: New message loop that uses poll so we don't get a
16323           busy loop
16324
16325 2004-09-17 10:43  pbartok
16326
16327         * ScrollBar.cs:
16328           - Fixed behaviour of arrow buttons. Now properly behaves like
16329             Buttons (and like Microsoft's scrollbar arrow buttons)
16330
16331 2004-09-17 10:14  pbartok
16332
16333         * ScrollBar.cs:
16334           - Added missing release of keyboard/mouse capture
16335
16336 2004-09-17 06:18  jordi
16337
16338         * ContextMenu.cs, MainMenu.cs, Menu.cs, MenuAPI.cs, MenuItem.cs,
16339           Theme.cs: Very early menu support
16340
16341 2004-09-16 17:45  pbartok
16342
16343         * XplatUIWin32.cs:
16344           - Fixed sending a window to the front
16345           - Added overload for SetWindowPos to avoid casting
16346
16347 2004-09-16 17:44  pbartok
16348
16349         * Control.cs:
16350           - Added SendToBack and BringToFront methods
16351
16352 2004-09-16 07:00  ravindra
16353
16354         * Copyright: Added Novell URL.
16355
16356 2004-09-16 07:00  ravindra
16357
16358         * ToolBar.cs: Invalidate should be done before redrawing.
16359
16360 2004-09-15 21:19  ravindra
16361
16362         * ColumnHeaderStyle.cs: Enum for ListView Control.
16363
16364 2004-09-15 21:18  ravindra
16365
16366         * ColumnClickEventArgs.cs, ColumnClickEventHandler.cs: Event for
16367           ListView Control.
16368
16369 2004-09-13 18:26  jackson
16370
16371         * Timer.cs, XplatUIX11.cs: Remove test code so timers are updated
16372           properly
16373
16374 2004-09-13 18:13  jackson
16375
16376         * Timer.cs, X11Structs.cs, XplatUIX11.cs: Timers are now handled in
16377           a second thread and post messages into the main threads message
16378           queue. This makes timing much more consistent. Both win2K and XP
16379           have a minimum timer value of 15 milliseconds, so we now do this
16380           too.
16381
16382 2004-09-13 15:18  pbartok
16383
16384         * X11Structs.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16385           XplatUIX11.cs:
16386           - Added Z-Ordering methods
16387
16388 2004-09-13 10:56  pbartok
16389
16390         * Form.cs:
16391           - Fixed #region names
16392           - Moved properties and methods into their proper #regions
16393
16394 2004-09-13 10:51  pbartok
16395
16396         * Form.cs:
16397           - Added Accept and CancelButton properties
16398           - Added ProcessDialogKey() method
16399
16400 2004-09-13 08:18  pbartok
16401
16402         * IWindowTarget.cs:
16403           - Initial check-in
16404
16405 2004-09-10 21:50  pbartok
16406
16407         * Control.cs:
16408           - Added DoDragDrop() [incomplete]
16409           - Properly implemented 'Visible' handling
16410           - Added SetVisibleCore()
16411           - Implemented FindChildAtPoint()
16412           - Implemented GetContainerControl()
16413           - Implemented Hide()
16414
16415 2004-09-10 19:28  pbartok
16416
16417         * Control.cs:
16418           - Moved methods into their appropriate #regions
16419           - Reordered methods within regions alphabetically
16420
16421 2004-09-10 18:57  pbartok
16422
16423         * XplatUIX11.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16424           - Added method to retrieve text from window
16425
16426 2004-09-10 18:56  pbartok
16427
16428         * Control.cs:
16429           - Moved some internal functions into the internal region
16430           - Implemented FontHeight
16431           - Implemented RenderRightToLeft
16432           - Implemented ResizeRedraw
16433           - Implemented ShowFocusCues
16434           - Implemented ShowKeyboardCues
16435           - Implemented FromChildHandle
16436           - Implemented FromHandle
16437           - Implemented IsMnemonic
16438           - Implemented ReflectMessage
16439           - All public and protected Static Methods are now complete
16440
16441 2004-09-10 16:54  pbartok
16442
16443         * Control.cs:
16444           - Implemented remaining missing public instance properties
16445           - Alphabetized some out of order properties
16446
16447 2004-09-10 05:51  ravindra
16448
16449         * PictureBox.cs: Added a check for null image.
16450
16451 2004-09-10 00:59  jordi
16452
16453         * GroupBox.cs: remove cvs tag
16454
16455 2004-09-09 05:25  ravindra
16456
16457         * ToolBar.cs: Make redraw accessible from ToolBarButton.
16458
16459 2004-09-09 05:23  ravindra
16460
16461         * ToolBarButton.cs: Changes in ToolBarButton need to make it's
16462           parent redraw.
16463
16464 2004-09-09 02:28  pbartok
16465
16466         * ThemeWin32Classic.cs:
16467           - Improve disabled string look
16468
16469 2004-09-09 01:15  jordi
16470
16471         * MeasureItemEventArgs.cs, MeasureItemEventHandler.cs: measureitem
16472           args and handler
16473
16474 2004-09-08 23:56  ravindra
16475
16476         * ItemBoundsPortion.cs: It's enum, not a class!
16477
16478 2004-09-08 23:47  ravindra
16479
16480         * FormBorderStyle.cs, FormStartPosition.cs, FormWindowState.cs:
16481           Enums for Form.
16482
16483 2004-09-08 21:13  ravindra
16484
16485         * ItemBoundsPortion.cs, ListViewAlignment.cs, View.cs: Enums for
16486           ListView control.
16487
16488 2004-09-08 21:03  ravindra
16489
16490         * ThemeWin32Classic.cs: PictureBox would not draw a null image to
16491           avoid crash.
16492
16493 2004-09-08 21:01  ravindra
16494
16495         * ScrollableControl.cs: Removed unreachable code.
16496
16497 2004-09-08 06:45  jordi
16498
16499         * MenuMerge.cs, Shortcut.cs: enumerations need it by menus
16500
16501 2004-09-08 01:00  jackson
16502
16503         * XplatUIX11.cs: Only run the timers when updating the message
16504           queue. This effectively gives X messages a higher priority then
16505           timer messages. Timers still need love though
16506
16507 2004-09-07 14:01  jackson
16508
16509         * XplatUIX11.cs: Do not call XDestroyWindow, X has already done
16510           this for us and the handle is no longer valid.
16511
16512 2004-09-07 13:59  jackson
16513
16514         * HandleData.cs, XplatUIX11.cs: First steps towards a new X event
16515           loop that manages to not crash. TODO: Add poll and cleanup timers
16516
16517 2004-09-07 11:12  jordi
16518
16519         * GroupBox.cs, Theme.cs, ThemeWin32Classic.cs: GroupBox control
16520
16521 2004-09-07 03:40  jordi
16522
16523         * Label.cs, LinkLabel.cs, Theme.cs, ThemeWin32Classic.cs: LinkLabel
16524           fixes, methods, multiple links
16525
16526 2004-09-06 06:55  jordi
16527
16528         * Control.cs: Caches ClientRectangle rectangle value
16529
16530 2004-09-05 02:03  jordi
16531
16532         * ScrollBar.cs, ThemeWin32Classic.cs: fixes bugs, adds flashing on
16533           certain situations
16534
16535 2004-09-04 11:10  jordi
16536
16537         * Label.cs: Refresh when font changed
16538
16539 2004-09-02 16:24  pbartok
16540
16541         * Control.cs:
16542           - Added sanity check to creation of double buffer bitmap
16543
16544 2004-09-02 16:24  pbartok
16545
16546         * ButtonBase.cs:
16547           - Fixed selection of text color
16548           - Fixed handling of resize event; now properly recreates double
16549             buffering bitmap
16550           - Added missing assignment of TextAlignment
16551           - Added proper default for TextAlignment
16552
16553 2004-09-02 14:26  pbartok
16554
16555         * RadioButton.cs:
16556           - Added missing RadioButton.RadioButtonAccessibleObject class
16557
16558 2004-09-02 14:26  pbartok
16559
16560         * Control.cs:
16561           - Added missing Control.ControlAccessibleObject class
16562           - Started to implement Select()ion mechanisms, still very incomplete
16563
16564 2004-09-02 14:25  pbartok
16565
16566         * AccessibleObject.cs:
16567           - Added missing methods
16568
16569 2004-09-02 14:23  pbartok
16570
16571         * AccessibleNavigation.cs, AccessibleSelection.cs:
16572           - Initial check-in
16573
16574 2004-09-02 10:32  jordi
16575
16576         * Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: implements resource
16577           pool for pens, brushes, and hatchbruses
16578
16579 2004-09-01 15:30  jackson
16580
16581         * StatusBar.cs: Fix typo
16582
16583 2004-09-01 14:44  pbartok
16584
16585         * RadioButton.cs:
16586           - Fixed state
16587
16588 2004-09-01 14:39  pbartok
16589
16590         * Button.cs, RadioButton.cs:
16591           - Functional initial check-in
16592
16593 2004-09-01 14:01  pbartok
16594
16595         * CheckBox.cs:
16596           - Added missing default
16597           - Added missing region mark
16598
16599 2004-09-01 09:10  jordi
16600
16601         * Label.cs: fixes method signatures, new methods, events, fixes
16602           autosize
16603
16604 2004-09-01 07:19  jordi
16605
16606         * Control.cs: Init string variables with an empty object
16607
16608 2004-09-01 04:20  jordi
16609
16610         * Control.cs: fires OnFontChanged event
16611
16612 2004-08-31 20:07  pbartok
16613
16614         * ButtonBase.cs:
16615           - Enabled display of strings
16616
16617 2004-08-31 20:05  pbartok
16618
16619         * Form.cs:
16620           - Added (partial) implementation of DialogResult; rest needs to be
16621             implemented when the modal loop code is done
16622
16623 2004-08-31 19:55  pbartok
16624
16625         * CheckBox.cs:
16626           - Fixed to match the removal of the needs_redraw concept
16627
16628 2004-08-31 19:55  pbartok
16629
16630         * ButtonBase.cs:
16631           - Removed the rather odd split between 'needs redraw' and redrawing
16632           - Now handles the events that require regeneration (ambient
16633             properties and size)
16634
16635 2004-08-31 19:41  pbartok
16636
16637         * Control.cs:
16638           - Added firing of BackColorChanged event
16639           - Added TopLevelControl property
16640           - Fixed handling of WM_ERASEBKGRND message
16641
16642 2004-08-31 12:49  pbartok
16643
16644         * ButtonBase.cs:
16645           - Removed debug
16646           - Minor fixes
16647
16648 2004-08-31 12:48  pbartok
16649
16650         * CheckBox.cs:
16651           - Finished (famous last words)
16652
16653 2004-08-31 04:35  jordi
16654
16655         * ScrollBar.cs: adds autorepeat timer, uses a single timer, fixes
16656           scrolling bugs, adds new methods
16657
16658 2004-08-30 14:42  pbartok
16659
16660         * CheckBox.cs:
16661           - Implemented CheckBox drawing code
16662
16663 2004-08-30 14:42  pbartok
16664
16665         * ButtonBase.cs:
16666           - Made Redraw() and CheckRedraw() virtual
16667           - Improved mouse up/down/move logic to properly track buttons
16668
16669 2004-08-30 09:44  pbartok
16670
16671         * CheckBox.cs:
16672           - Updated to fix broken build. Not complete yet.
16673
16674 2004-08-30 09:28  pbartok
16675
16676         * CheckState.cs:
16677           - Initial checkin
16678
16679 2004-08-30 09:17  pbartok
16680
16681         * Appearance.cs:
16682           - Initial check-in
16683
16684 2004-08-27 16:12  ravindra
16685
16686         * ToolBarButton.cs: Added TypeConverter attribute.
16687
16688 2004-08-27 16:07  ravindra
16689
16690         * ImageIndexConverter.cs: Implemented.
16691
16692 2004-08-27 14:17  pbartok
16693
16694         * Control.cs:
16695           - Removed unneeded stack vars
16696           - First attempt to fix sizing issues when layout is suspended
16697
16698 2004-08-25 15:35  jordi
16699
16700         * ScrollBar.cs: more fixes to scrollbar
16701
16702 2004-08-25 14:04  ravindra
16703
16704         * Theme.cs, ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs:
16705           Added the missing divider code and grip for ToolBar Control.
16706
16707 2004-08-25 13:20  pbartok
16708
16709         * Control.cs:
16710           - Control now properly passes the ambient background color to child
16711             controls
16712
16713 2004-08-25 13:20  jordi
16714
16715         * ScrollBar.cs: small bug fix regarding bar position
16716
16717 2004-08-25 12:33  pbartok
16718
16719         * Timer.cs:
16720           - Now only calls SetTimer or KillTimer if the enabled state has
16721           changed
16722
16723 2004-08-25 12:33  pbartok
16724
16725         * XplatUIWin32.cs:
16726           - Fixed timer handling, now seems to work
16727           - Improved error message for window creation
16728
16729 2004-08-25 12:32  pbartok
16730
16731         * Control.cs:
16732           - Fixed generation of MouseUp message
16733
16734 2004-08-25 12:29  jordi
16735
16736         * ProgressBar.cs, ThemeWin32Classic.cs: new methods, properties,
16737           and fixes for progressbar
16738
16739 2004-08-24 18:43  ravindra
16740
16741         * ThemeWin32Classic.cs, ToolBar.cs: Fixed wrapping related issues
16742           in ToolBar control.
16743
16744 2004-08-24 17:15  pbartok
16745
16746         * Panel.cs:
16747           - Added #region
16748           - Added missing events
16749           - Alphabetized
16750
16751 2004-08-24 17:14  pbartok
16752
16753         * StatusBar.cs, PictureBox.cs:
16754           - Now uses Control's CreateParams
16755
16756 2004-08-24 16:36  pbartok
16757
16758         * XplatUIX11.cs:
16759           - Fixed background color handling
16760           - Fixed sending of enter/leave events on a grab
16761
16762 2004-08-24 16:35  pbartok
16763
16764         * X11Structs.cs:
16765           - Refined definitions for CrossingEvent
16766
16767 2004-08-24 12:37  jordi
16768
16769         * ScrollBar.cs, Theme.cs, ThemeGtk.cs, ThemeWin32Classic.cs: fixes
16770           formmating, methods signature, and adds missing events
16771
16772 2004-08-24 12:24  jordi
16773
16774         * Control.cs: fire OnEnabledChanged event
16775
16776 2004-08-24 11:17  pbartok
16777
16778         * XplatUIWin32.cs:
16779           - Implemented SetTimer() and KillTimer()
16780
16781 2004-08-24 11:16  pbartok
16782
16783         * XplatUIX11.cs:
16784           - Now uses Remove instead of Add to kill the timer
16785
16786 2004-08-24 10:16  jackson
16787
16788         * PictureBox.cs, Theme.cs, ThemeWin32Classic.cs: Handle drawing
16789           picture boxes in the theme now. Draw picture box borders and obey
16790           sizing modes
16791
16792 2004-08-24 05:49  jackson
16793
16794         * Timer.cs: Remove top secret debugging code
16795
16796 2004-08-24 05:34  jackson
16797
16798         * PictureBox.cs: Temp hack to make picture boxes draw their full
16799           image
16800
16801 2004-08-24 05:29  jackson
16802
16803         * Timer.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
16804           XplatUIX11.cs: Move timers to the driver level. On X they are
16805           queued by the driver and checked on idle.
16806
16807 2004-08-24 01:07  jackson
16808
16809         * XplatUIX11.cs: Use a queue for async messages instead of passing
16810           them as ClientMessages since that was totally broken. Also simply
16811           check for events and return an idle message if none are found. This
16812           gives us an idle handler, and prevents deadlocking when no messages
16813           are in the queue.
16814
16815 2004-08-23 18:19  ravindra
16816
16817         * XplatUIWin32.cs: Removed the unwanted destructor.
16818
16819 2004-08-23 17:27  pbartok
16820
16821         * ButtonBase.cs:
16822           - Finishing touches. Works now, just needs some optimizations.
16823
16824 2004-08-23 16:53  jordi
16825
16826         * ScrollBar.cs: small fix
16827
16828 2004-08-23 16:45  pbartok
16829
16830         * Application.cs:
16831           - Removed debug output
16832           - Simplifications
16833
16834 2004-08-23 16:43  jordi
16835
16836         * ScrollBar.cs: [no log message]
16837
16838 2004-08-23 16:10  pbartok
16839
16840         * Form.cs:
16841           - Fixed handling of WM_CLOSE message
16842           - Removed debug output
16843
16844 2004-08-23 16:09  pbartok
16845
16846         * Application.cs:
16847           - Added handling of Idle event
16848           - Added handling of form closing
16849           - Fixed reporting of MessageLoop property
16850           - Removed some unneeded code, should provide a bit of a speedup
16851
16852 2004-08-23 15:22  pbartok
16853
16854         * Control.cs:
16855           - Added InitLayout() method
16856           - Added code to properly perform layout when Anchor or Dock property
16857             is changed
16858           - Changed 'interpretation' of ResumeLayout. MS seems to have a
16859             LAMESPEC, tried to do it in a way that makes sense
16860
16861 2004-08-23 14:10  jordi
16862
16863         * HScrollBar.cs, ScrollBar.cs, TrackBar.cs, VScrollBar.cs: fixes
16864           properties and methods
16865
16866 2004-08-23 13:55  pbartok
16867
16868         * Control.cs:
16869           - Properly fixed Jordi's last fix
16870           - Now uses Cursor's Position property instead of calling XplatUI
16871           directly
16872
16873 2004-08-23 13:44  jordi
16874
16875         * PaintEventHandler.cs: Adding missing attribute
16876
16877 2004-08-23 13:39  pbartok
16878
16879         * Cursor.cs:
16880           - Implemented Position property
16881
16882 2004-08-23 13:39  pbartok
16883
16884         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
16885           - Added method to move mouse cursor
16886
16887 2004-08-23 13:39  pbartok
16888
16889         * XplatUIX11.cs:
16890           - Fixed setting of background color
16891           - Added method to move mouse cursor
16892
16893 2004-08-23 13:16  jordi
16894
16895         * Control.cs: avoids null exception
16896
16897 2004-08-22 17:46  jackson
16898
16899         * PictureBox.cs, PictureBoxSizeMode.cs: Initial implementation of
16900           PictureBox
16901
16902 2004-08-22 17:40  jackson
16903
16904         * XplatUIX11.cs: Add some missing locks
16905
16906 2004-08-22 15:10  pbartok
16907
16908         * Control.cs, Form.cs:
16909           - Removed OverlappedWindow style from Control, instead it's default
16910             now is child
16911           - Made form windows OverlappedWindow by default
16912
16913 2004-08-22 13:34  jackson
16914
16915         * ScrollBar.cs: Update the position through the Value property so
16916           the OnValueChanged event is raised.
16917
16918 2004-08-22 12:04  pbartok
16919
16920         * SWF.csproj:
16921           - Added Cursor.cs and UserControl.cs
16922
16923 2004-08-22 12:03  pbartok
16924
16925         * Cursor.cs:
16926           - Started implementation, not usable yet
16927
16928 2004-08-22 12:00  pbartok
16929
16930         * UserControl.cs:
16931           - Implemented UserControl (complete)
16932
16933 2004-08-21 19:20  ravindra
16934
16935         * ToolBar.cs: Correcting the formatting mess of VS.NET.
16936
16937 2004-08-21 18:49  ravindra
16938
16939         * ToolBar.cs: Probably this completes the missing attributes in
16940           toolbar control.
16941
16942 2004-08-21 18:03  ravindra
16943
16944         * ToolBar.cs, ToolBarButton.cs, ToolBarButtonClickEventArgs.cs:
16945           Fixed toolbar control signatures.
16946
16947 2004-08-21 16:32  pbartok
16948
16949         * LinkLabel.cs:
16950           - Signature Fixes
16951
16952 2004-08-21 16:30  pbartok
16953
16954         * Label.cs:
16955           - Signature fixes
16956
16957 2004-08-21 16:19  pbartok
16958
16959         * Control.cs, Label.cs:
16960           - Signature fixes
16961
16962 2004-08-21 15:57  pbartok
16963
16964         * ButtonBase.cs:
16965           - Added loads of debug output for development
16966           - Fixed typo in method name
16967
16968 2004-08-21 15:52  pbartok
16969
16970         * ToolBarButtonClickEventArgs.cs:
16971           - Added missing base class
16972
16973 2004-08-21 14:53  pbartok
16974
16975         * Control.cs:
16976           - Updated to match new GrabWindow signature
16977
16978 2004-08-21 14:51  pbartok
16979
16980         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16981           - Added method to get default display size
16982
16983 2004-08-21 14:23  pbartok
16984
16985         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
16986           - Added method to query current grab state
16987           - Added argument to allow confining a grab to a window
16988
16989 2004-08-21 14:22  pbartok
16990
16991         * Keys.cs:
16992           - Added [Flags] attribute so that modifiers can be used in bitwise
16993           ops
16994
16995 2004-08-21 14:21  pbartok
16996
16997         * TrackBar.cs, ScrollBar.cs:
16998           - Replaced direct XplatUI calls with their Control counterpart
16999
17000 2004-08-21 13:32  pbartok
17001
17002         * Control.cs:
17003           - Implemented Created property
17004
17005 2004-08-21 13:28  pbartok
17006
17007         * Control.cs:
17008           - Implemented ContainsFocus
17009
17010 2004-08-21 13:26  pbartok
17011
17012         * Control.cs:
17013           - Implemented CausesValidation
17014
17015 2004-08-21 13:21  pbartok
17016
17017         * Control.cs:
17018           - Implemented CanFocus
17019           - Implemented CanSelect
17020           - Implemented Capture
17021
17022 2004-08-21 12:35  pbartok
17023
17024         * XplatUIWin32.cs:
17025           - Fixed bug with Async message handling
17026           - Implemented getting the ModifierKeys
17027
17028 2004-08-21 12:32  jackson
17029
17030         * AsyncMethodResult.cs: Make sure we have the mutex before we
17031           release it. Fixes BeginInvoke on windows
17032
17033 2004-08-21 11:31  pbartok
17034
17035         * XplatUIWin32.cs, XplatUIX11.cs:
17036           - Drivers now return proper mouse state
17037
17038 2004-08-21 10:54  jackson
17039
17040         * Control.cs: Implement EndInvoke
17041
17042 2004-08-21 10:48  jackson
17043
17044         * Timer.cs: Remove unneeded finalizer
17045
17046 2004-08-20 19:52  ravindra
17047
17048         * ThemeWin32Classic.cs, ToolBar.cs, ToolBarButton.cs: Improvments
17049           in mouse event handling in the ToolBar control.
17050
17051 2004-08-20 19:50  ravindra
17052
17053         * ImageList.cs: Changed draw method to use the arguments passed in
17054           to draw the image.
17055
17056 2004-08-20 18:58  pbartok
17057
17058         * XplatUIStructs.cs:
17059           - Added private message for async communication
17060
17061 2004-08-20 17:38  ravindra
17062
17063         * Control.cs: Made RightToLeft property virtual and removed a
17064           Console.WriteLine.
17065
17066 2004-08-20 14:39  jordi
17067
17068         * ThemeGtk.cs: use style_attach
17069
17070 2004-08-20 14:39  pbartok
17071
17072         * XplatUIWin32.cs:
17073           - Added jackson's Async code from X11 to Win32
17074
17075 2004-08-20 14:09  pbartok
17076
17077         * SWF.csproj:
17078           - Added all new files
17079
17080 2004-08-20 14:09  pbartok
17081
17082         * Control.cs:
17083           - Added call to set window background color
17084
17085 2004-08-20 14:03  pbartok
17086
17087         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17088           - Added method for setting the window background
17089
17090 2004-08-20 14:02  pbartok
17091
17092         * XplatUIWin32.cs:
17093           - Added method for setting the background color
17094           - Added handling for erasing the window background
17095
17096 2004-08-20 13:45  jordi
17097
17098         * TrackBar.cs: fixes timer, new properties and methods
17099
17100 2004-08-20 13:34  jackson
17101
17102         * ScrollBar.cs: Use the SWF timer so callbacks are run in the
17103           correct thread
17104
17105 2004-08-20 13:22  jackson
17106
17107         * Timer.cs: Timer Tick events are now handed through Controls Async
17108           mechanism so the callbacks are executed in the same thread as X
17109
17110 2004-08-20 13:19  jackson
17111
17112         * XplatUIDriver.cs: Expose functionality to send async messages
17113           through the driver
17114
17115 2004-08-20 13:18  jackson
17116
17117         * Control.cs: Implement Begininvoke
17118
17119 2004-08-20 13:14  jackson
17120
17121         * XplatUI.cs, XplatUIWin32.cs: Expose functionality to send async
17122           messages through the driver
17123
17124 2004-08-20 13:12  jackson
17125
17126         * XplatUIX11.cs: Lock before all X operations. Also added Async
17127           method functionality through XSendEvent
17128
17129 2004-08-20 13:11  jackson
17130
17131         * X11Structs.cs: Use IntPtrs for ClientMessage extra data (TODO:
17132           This will screw up on 64 bit systems)
17133
17134 2004-08-20 13:10  jackson
17135
17136         * AsyncMethodData.cs, AsyncMethodResult.cs: Classes for sending
17137           Async messages through X/Win32
17138
17139 2004-08-19 19:39  pbartok
17140
17141         * XplatUIX11.cs:
17142           - Updated code to match new HandleData.DeviceContext type
17143
17144 2004-08-19 19:38  pbartok
17145
17146         * HandleData.cs:
17147           - Made DeviceContext a generic object to allow usage from various
17148           drivers
17149           - Added support for queueing Windows messages
17150
17151 2004-08-19 19:37  pbartok
17152
17153         * XplatUIWin32.cs:
17154           - Added generation of MouseEnter, MouseLeave and MouseHover events
17155           - Added cleanup on EndPaint
17156
17157 2004-08-19 19:17  pbartok
17158
17159         * Control.cs:
17160           - Added handling of WM_MOUSEHOVER
17161           - Worked around 'bug' in Win32 WM_MOUSE_ENTER/WM_MOUSE_LEAVE driver
17162           code
17163
17164 2004-08-19 18:55  jordi
17165
17166         * ThemeGtk.cs: fixes button order
17167
17168 2004-08-19 18:12  jordi
17169
17170         * Theme.cs, ThemeWin32Classic.cs: fixes methods signature
17171
17172 2004-08-19 17:09  pbartok
17173
17174         * Control.cs:
17175           - Added Right property
17176           - Added RightToLeft property
17177
17178 2004-08-19 16:27  jordi
17179
17180         * ThemeGtk.cs: experimental GTK theme support
17181
17182 2004-08-19 16:26  jordi
17183
17184         * ITheme.cs, Theme.cs: move themes from an interface to a class
17185
17186 2004-08-19 16:25  jordi
17187
17188         * Control.cs, ScrollBar.cs, ThemeEngine.cs, ThemeWin32Classic.cs:
17189           theme enhancaments
17190
17191 2004-08-19 16:04  pbartok
17192
17193         * XplatUIX11.cs:
17194           - Added colormap basics
17195           - Added a way to re-initialize with a different display handle
17196           - Fixed setting of the window background color
17197           - Added various X11 imports related to colors and colormaps
17198
17199 2004-08-19 15:51  pbartok
17200
17201         * X11Structs.cs:
17202           - Removed packing hints (Paolo suggested this a while back)
17203           - fixed colormap type
17204           - Added default Atom types
17205           - Added Screen and color structs and enums
17206
17207 2004-08-19 15:39  pbartok
17208
17209         * ImageList.cs:
17210           - Added missing Draw() method
17211           - Added missing RecreateHandle event
17212
17213 2004-08-19 15:30  pbartok
17214
17215         * Form.cs:
17216           - Added handling of WM_CLOSE
17217
17218 2004-08-18 13:16  jordi
17219
17220         * ITheme.cs, ThemeWin32Classic.cs, XplatUIWin32.cs: Move colors to
17221           a table
17222
17223 2004-08-18 09:56  jordi
17224
17225         * ScrollBar.cs: fixes to scrollbar: steps and multiple timers
17226
17227 2004-08-17 15:31  ravindra
17228
17229         * SWF.csproj: Updated project.
17230
17231 2004-08-17 15:25  pbartok
17232
17233         * Control.cs:
17234           - Drawing improvement; don't call UpdateBounds if we are not visible
17235             (or have been minimized)
17236
17237 2004-08-17 15:24  pbartok
17238
17239         * XplatUIWin32.cs:
17240           - Finished IsVisible
17241           - Added Win32GetWindowPlacement
17242
17243 2004-08-17 15:08  jackson
17244
17245         * Panel.cs: Initial checkin of the Panel
17246
17247 2004-08-17 14:25  pbartok
17248
17249         * Control.cs:
17250           - Fixed broken handling of default window sizes
17251
17252 2004-08-17 13:29  jackson
17253
17254         * ThemeWin32Classic.cs: Don't use KnownColor to create colours. It
17255           has a large startup time.
17256
17257 2004-08-17 10:25  jackson
17258
17259         * HandleData.cs: union areas properly
17260
17261 2004-08-17 10:12  jackson
17262
17263         * HandleData.cs: union areas properly
17264
17265 2004-08-16 20:00  ravindra
17266
17267         * ToolBar.cs, ToolBarButton.cs: Added attributes.
17268
17269 2004-08-16 18:48  ravindra
17270
17271         * ToolBar.cs: Added attributes.
17272
17273 2004-08-16 17:17  ravindra
17274
17275         * SWF.csproj: Updated project.
17276
17277 2004-08-16 17:16  jackson
17278
17279         * XplatUIX11.cs: Check for more expose events before sending a
17280           WM_PAINT so they can all be grouped together. This makes dragging a
17281           window across another window redraw in a sane way.
17282
17283 2004-08-16 15:47  pbartok
17284
17285         * Control.cs:
17286           - Added handling of WM_MOUSE_ENTER & WM_MOUSE_LEAVE to
17287             support OnMouseEnter/Leave()
17288           - Added WS_CLIPSIBLINGS and WS_CLIPCHILDREN window styles to improve
17289             exposure handling
17290
17291 2004-08-16 15:46  pbartok
17292
17293         * XplatUIStructs.cs, XplatUIX11.cs:
17294           - Added WM_MOUSE_ENTER & WM_MOUSE_LEAVE to support
17295           OnMouseEnter/Leave()
17296
17297 2004-08-16 15:34  jackson
17298
17299         * XplatUIX11.cs: Group multiple expose events in HandleData, make
17300           sure messages get the message field set to WM_NULL if they are not
17301           handled.
17302
17303 2004-08-16 15:24  jackson
17304
17305         * HandleData.cs: HandleData is used for storing message information
17306           for window handles
17307
17308 2004-08-15 17:23  ravindra
17309
17310         * ColorDepth.cs: Added attribute.
17311
17312 2004-08-15 17:23  ravindra
17313
17314         * SWF.csproj: Updated project for ToolBar Control.
17315
17316 2004-08-15 17:20  ravindra
17317
17318         * ITheme.cs, ThemeWin32Classic.cs: Changes to Theme for ToolBar
17319           control and also dos2unix format.
17320
17321 2004-08-15 17:13  ravindra
17322
17323         * ToolBar.cs, ToolBarAppearance.cs, ToolBarButton.cs,
17324           ToolBarButtonClickEventArgs.cs,
17325           ToolBarButtonClickEventHandler.cs, ToolBarButtonStyle.cs,
17326           ToolBarTextAlign.cs: First Implementation of ToolBar control.
17327
17328 2004-08-15 15:31  pbartok
17329
17330         * ButtonBase.cs:
17331           - First (mostly) working version
17332
17333 2004-08-13 16:15  pbartok
17334
17335         * Control.cs:
17336           - Fixed Anchor default
17337
17338 2004-08-13 15:43  pbartok
17339
17340         * Control.cs:
17341           - Changed GetCursorPos signature
17342
17343 2004-08-13 15:42  pbartok
17344
17345         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs:
17346           - Changed signature for GetCursorPos
17347
17348 2004-08-13 15:25  pbartok
17349
17350         * XplatUIX11.cs:
17351           - Cleanup
17352           - Fixed resizing/exposure handling
17353
17354 2004-08-13 15:22  jordi
17355
17356         * ThemeWin32Classic.cs: removes redundant code and fixes issues
17357           with tickposition
17358
17359 2004-08-13 14:55  jordi
17360
17361         * TrackBar.cs: change from wndproc to events
17362
17363 2004-08-13 13:00  jordi
17364
17365         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17366           XplatUIX11.cs: implements PointToClient (ScreenToClient)
17367
17368 2004-08-13 12:53  pbartok
17369
17370         * XplatUIWin32.cs:
17371           - Changed GetWindowPos to also provide client area size
17372           - Fixed broken prototypes for several win32 functions
17373
17374 2004-08-13 12:53  pbartok
17375
17376         * XplatUI.cs, XplatUIDriver.cs:
17377           - Changed GetWindowPos to also provide client area size
17378
17379 2004-08-13 12:52  pbartok
17380
17381         * XplatUIX11.cs:
17382           - Added generation of WM_POSCHANGED
17383           - Changed GetWindowPos to also provide client area size
17384
17385 2004-08-13 12:52  pbartok
17386
17387         * Control.cs:
17388           - Added Dispose() and destructor
17389           - Fixed resizing and bounds calculation
17390           - Fixed Layout
17391           - Added memory savings for invisible windows
17392
17393 2004-08-13 12:46  jordi
17394
17395         * TrackBar.cs: adds timer and grap window
17396
17397 2004-08-13 10:25  jackson
17398
17399         * Timer.cs: SWF Timer
17400
17401 2004-08-12 16:59  pbartok
17402
17403         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17404           - Implemented method to get current mouse position
17405
17406 2004-08-12 14:29  jordi
17407
17408         * ITheme.cs, ThemeWin32Classic.cs, TrackBar.cs: Trackbar
17409           enhancement, fix mouse problems, highli thumb, etc
17410
17411 2004-08-12 13:31  pbartok
17412
17413         * Control.cs:
17414           - Fixed Anchoring bugs
17415
17416 2004-08-12 13:01  jackson
17417
17418         * StatusBar.cs: Don't forget things
17419
17420 2004-08-12 12:54  jackson
17421
17422         * ThemeWin32Classic.cs: Handle owner draw status bars
17423
17424 2004-08-12 12:54  jackson
17425
17426         * StatusBar.cs: Implement missing properties, events, and methods.
17427           Handle mouse clicking
17428
17429 2004-08-12 10:19  jackson
17430
17431         * StatusBarPanelClickEventArgs.cs,
17432           StatusBarPanelClickEventHandler.cs: Classes for handling status
17433           bar panel click events
17434
17435 2004-08-12 10:10  jackson
17436
17437         * Control.cs: Add missing properties
17438
17439 2004-08-12 09:46  pbartok
17440
17441         * BindingsManagerBase.cs:
17442           - Name changed to BindingManagerBase.cs
17443
17444 2004-08-12 09:25  jordi
17445
17446         * ScrollableControl.cs: calls ctrlbase instead of exeception
17447
17448 2004-08-11 16:28  pbartok
17449
17450         * InputLanguageChangingEventArgs.cs:
17451           - Never check in before compiling. Fixes the last check-in
17452
17453 2004-08-11 16:26  pbartok
17454
17455         * InputLanguageChangingEventArgs.cs:
17456           - More signature fixes
17457
17458 2004-08-11 16:20  pbartok
17459
17460         * BindingManagerBase.cs, BindingMemberInfo.cs, ContainerControl.cs,
17461           Control.cs, ControlEventArgs.cs, ControlPaint.cs, Form.cs,
17462           ImageListStreamer.cs, InputLanguage.cs,
17463           InputLanguageChangedEventArgs.cs,
17464           InputLanguageChangingEventArgs.cs, Keys.cs, LayoutEventArgs.cs,
17465           LinkArea.cs, Message.cs, MouseEventArgs.cs, NativeWindow.cs,
17466           ScrollEventArgs.cs, ScrollableControl.cs, XplatUI.cs,
17467           XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17468           - Signature fixes
17469
17470 2004-08-11 16:16  pbartok
17471
17472         * Application.cs:
17473           - Fixed Signature
17474           - Added .Net 1.1 method
17475
17476 2004-08-11 15:25  pbartok
17477
17478         * SWF.csproj:
17479           - Fixed BindingManagerBase.cs filename
17480
17481 2004-08-11 15:22  pbartok
17482
17483         * BindingManagerBase.cs:
17484           - Was checked in with wrong filename
17485
17486 2004-08-11 14:50  pbartok
17487
17488         * SWF.csproj:
17489           - Updated
17490
17491 2004-08-11 13:41  jordi
17492
17493         * XplatUIWin32.cs: Fixes ClientRect
17494
17495 2004-08-11 13:19  pbartok
17496
17497         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17498           XplatUIX11.cs:
17499           - We had SetWindowPos and MoveWindow to set window positions and
17500             size, removed MoveWindow. We have GetWindowPos, so it made sense to
17501             keep SetWindowPos as matching counterpart
17502           - Added some X11 sanity checking
17503
17504 2004-08-11 12:59  pbartok
17505
17506         * Control.cs:
17507           - Major cleanup of my SetBounds/SetBoundsCore/UpdateBounds mess
17508             (It seems that SetBounds is just a front for SetBoundsCore and
17509              SetBoundsCore updates the underlying window system and
17510              UpdateBounds is responsible for updating the variables associated
17511              with the Control and sending the events)
17512           - Major cleanup of Size handling; we now have two sizes, client_size
17513             and bounds. Bounds defines the window with decorations, client_size
17514             without them.
17515
17516 2004-08-11 12:55  pbartok
17517
17518         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17519           - Added method to calculate difference between decorated window and
17520             raw client area
17521
17522 2004-08-11 12:54  pbartok
17523
17524         * Label.cs:
17525           - Forcing redraw on resize
17526
17527 2004-08-11 11:43  pbartok
17528
17529         * ImageList.cs:
17530           - Removed disposing of the actual images when the list is disposed
17531
17532 2004-08-11 09:13  pbartok
17533
17534         * Control.cs:
17535           - Now properly reparents windows
17536
17537 2004-08-11 08:37  pbartok
17538
17539         * Control.cs:
17540           - Duh!
17541
17542 2004-08-11 07:47  pbartok
17543
17544         * Control.cs:
17545           - Rewrote the collection stuff. Might not be as fast now, not
17546             keeping the number of children around and accessible directly, but
17547             it's more straightforward
17548
17549 2004-08-11 07:44  pbartok
17550
17551         * AccessibleObject.cs:
17552           - Fixed to match ControlCollection rewrite
17553
17554 2004-08-11 07:43  pbartok
17555
17556         * ImageList.cs:
17557           - Added missing creation of the collection list
17558
17559 2004-08-10 20:08  jackson
17560
17561         * StatusBar.cs: Get the paint message from WndProc
17562
17563 2004-08-10 19:31  jackson
17564
17565         * ThemeWin32Classic.cs: Create Brushes as little as possible
17566
17567 2004-08-10 19:20  jackson
17568
17569         * UICues.cs: Add Flags attribute
17570
17571 2004-08-10 19:19  jackson
17572
17573         * StatusBarPanel.cs: Signature cleanup
17574
17575 2004-08-10 19:10  jackson
17576
17577         * StatusBarDrawItemEventArgs.cs, StatusBarDrawItemEventHandler.cs:
17578           Initial implementation of status bar item drawing
17579
17580 2004-08-10 17:27  jordi
17581
17582         * TrackBar.cs: add missing methods, properties, and restructure to
17583           hide extra ones
17584
17585 2004-08-10 16:24  jackson
17586
17587         * AccessibleStates.cs, Border3DSide.cs, Border3DStyle.cs,
17588           ButtonState.cs, ControlStyles.cs, DragDropEffects.cs: Add flags
17589           attribute
17590
17591 2004-08-10 13:21  jordi
17592
17593         * ITheme.cs, ScrollBar.cs, ThemeWin32Classic.cs: scrollbar
17594           enhancements and standarize on win colors defaults
17595
17596 2004-08-10 12:52  jackson
17597
17598         * DrawItemEventArgs.cs, DrawItemState.cs, ITheme.cs,
17599           ThemeWin32Classic.cs: Implement DrawItem functionality
17600
17601 2004-08-10 12:47  jordi
17602
17603         * XplatUIWin32.cs: Calls InvalidateRect before UpdateWindow
17604
17605 2004-08-10 12:32  jordi
17606
17607         * Control.cs: throw ontextchange event
17608
17609 2004-08-10 11:43  pbartok
17610
17611         * Control.cs:
17612           - Added more to the still unfinished Dock/Anchor layout code
17613
17614 2004-08-10 11:39  pbartok
17615
17616         * XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs:
17617           - Added GetWindowPos method
17618
17619 2004-08-10 11:36  pbartok
17620
17621         * XplatUIWin32.cs:
17622           - Implemented several methods
17623
17624 2004-08-10 09:47  jackson
17625
17626         * TrackBar.cs: Allow control to handle buffering
17627
17628 2004-08-10 09:41  jackson
17629
17630         * ProgressBar.cs, ScrollBar.cs: Allow control to handle buffering
17631
17632 2004-08-10 09:24  jackson
17633
17634         * Label.cs, LinkLabel.cs: Let Control handle buffering.
17635
17636 2004-08-10 09:09  jackson
17637
17638         * StatusBar.cs: Let Control handle all the buffering.
17639
17640 2004-08-10 09:08  jackson
17641
17642         * Control.cs: Control will now handle the buffering code, so each
17643           control does not have to implement this.
17644
17645 2004-08-10 08:34  jackson
17646
17647         * XplatUIDriver.cs: Use default colors from the theme
17648
17649 2004-08-09 17:12  pbartok
17650
17651         * ImageList.cs:
17652           - Fixed several bugs Ravindra pointed out
17653
17654 2004-08-09 16:11  pbartok
17655
17656         * Control.cs:
17657           - Added incomplete dock layout code
17658           - Added support for mouse wheel
17659
17660 2004-08-09 16:09  pbartok
17661
17662         * XplatUIX11.cs:
17663           - Added handling for middle and right mousebutton
17664           - Added handling for mouse wheel
17665           - Added handling for key state and mouse state and position
17666           - Now properly generates WM_xBUTTONx messages and WM_MOUSEWHEEL
17667           messages
17668
17669 2004-08-09 15:40  jackson
17670
17671         * StatusBarPanel.cs, StatusBarPanelAutoSize.cs,
17672           StatusBarPanelBorderStyle.cs, StatusBarPanelStyle.cs: Initial
17673           checkin
17674
17675 2004-08-09 15:37  jackson
17676
17677         * StatusBar.cs: Initial implementation of StatusBar
17678
17679 2004-08-09 15:36  jackson
17680
17681         * ITheme.cs: Add support for drawing status bar and getting status
17682           bar item sizes
17683
17684 2004-08-09 15:35  pbartok
17685
17686         * MouseButtons.cs:
17687           - Fixed values
17688
17689 2004-08-09 15:34  jackson
17690
17691         * ThemeWin32Classic.cs: Add support for drawing status bar and get
17692           status bar item sizes
17693
17694 2004-08-09 15:21  jackson
17695
17696         * ThemeWin32Classic.cs: Use known colors for default control
17697           colours
17698
17699 2004-08-09 15:12  jackson
17700
17701         * ThemeWin32Classic.cs: Make the default font static, it is static
17702           in control so this doesn't change functionality and creating fonts
17703           is sloooooow.
17704
17705 2004-08-09 14:56  pbartok
17706
17707         * X11Structs.cs:
17708           - Added GrabMode enum
17709
17710 2004-08-09 14:55  pbartok
17711
17712         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17713           - Removed Run method, was only required for initial development
17714
17715 2004-08-09 14:51  pbartok
17716
17717         * XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs, XplatUIX11.cs:
17718           - Implemented GrabWindow/ReleaseWindow methods to allow pointer
17719           capture
17720
17721 2004-08-09 13:48  pbartok
17722
17723         * XplatUIX11.cs:
17724           - Fixed default sizing for child windows
17725
17726 2004-08-09 12:56  pbartok
17727
17728         * XplatUIX11.cs:
17729           - Added generation of WM_DESTROY message
17730           - Added handling of window manager induced shutdown
17731
17732 2004-08-09 11:31  jackson
17733
17734         * ThemeWin32Classic.cs: New names for control properties
17735
17736 2004-08-09 11:25  jackson
17737
17738         * Control.cs: Use new color names
17739
17740 2004-08-09 11:02  jackson
17741
17742         * XplatUI.cs: Get default window properties from the theme
17743
17744 2004-08-09 11:01  jackson
17745
17746         * ITheme.cs: The theme engine now controls default window
17747           properties
17748
17749 2004-08-09 11:00  jackson
17750
17751         * ThemeWin32Classic.cs: Add default window color properties
17752
17753 2004-08-09 10:17  jackson
17754
17755         * ThemeWin32Classic.cs: Use correct default back color
17756
17757 2004-08-09 10:05  jackson
17758
17759         * XplatUIWin32.cs, XplatUIX11.cs: These properties are handled by
17760           the theme now.
17761
17762 2004-08-09 09:56  jackson
17763
17764         * XplatUI.cs: Remove defaults, these are handled by the theme now.
17765
17766 2004-08-09 09:54  jackson
17767
17768         * Control.cs: Get default properties from the theme.
17769
17770 2004-08-09 09:53  jackson
17771
17772         * ITheme.cs: Themes now handle default control properties
17773
17774 2004-08-09 09:53  jackson
17775
17776         * ThemeWin32Classic.cs: Themes now handle default control
17777           properties so coloring will be consistent
17778
17779 2004-08-08 16:54  jordi
17780
17781         * ITheme.cs, ThemeWin32Classic.cs: Label BorderStyles
17782
17783 2004-08-08 15:08  jordi
17784
17785         * XplatUIX11.cs: fixes keyboard crash
17786
17787 2004-08-08 13:47  jordi
17788
17789         * Label.cs: add cvs header info
17790
17791 2004-08-08 12:09  jackson
17792
17793         * ThemeWin32Classic.cs: Add pen_buttonface
17794
17795 2004-08-08 11:52  jordi
17796
17797         * Label.cs, LinkLabel.cs: [no log message]
17798
17799 2004-08-08 11:34  jordi
17800
17801         * ThemeWin32Classic.cs: Use Windows Standard Colours
17802
17803 2004-08-07 17:32  jordi
17804
17805         * TrackBar.cs: throw exceptions of invalid enums values
17806
17807 2004-08-07 17:31  jordi
17808
17809         * Label.cs, LinkLabel.cs, ThemeWin32Classic.cs: fixes label bug and
17810           draw method name
17811
17812 2004-08-07 16:56  jackson
17813
17814         * HorizontalAlignment.cs: Initial checkin
17815
17816 2004-08-07 13:16  jordi
17817
17818         * Label.cs, LinkLabel.cs: throw exceptions, fixes events, missing
17819           methods
17820
17821 2004-08-07 13:05  jordi
17822
17823         * ITheme.cs, ThemeWin32Classic.cs: Theme colour support and
17824           GetSysColor defines
17825
17826 2004-08-06 18:01  pbartok
17827
17828         * ThemeWin32Classic.cs:
17829           - Fixed some rounding issues with float/int
17830
17831 2004-08-06 18:00  jackson
17832
17833         * DockStyle.cs, AnchorStyles.cs:
17834
17835                   Add flags and serializable attributes.
17836
17837 2004-08-06 17:46  pbartok
17838
17839         * XplatUIX11.cs:
17840           - Implemented GetParent
17841
17842 2004-08-06 17:18  pbartok
17843
17844         * TrackBar.cs:
17845           - Fixed some rounding issues with float/int
17846
17847 2004-08-06 17:17  pbartok
17848
17849         * X11Structs.cs, XplatUIX11.cs:
17850           - Fixed Refresh and Invalidate
17851
17852 2004-08-06 15:30  pbartok
17853
17854         * Control.cs, X11Structs.cs, XplatUIX11.cs:
17855           - Fixed recursive loop when resizing
17856           - Improved/fixed redrawing on expose messages
17857
17858 2004-08-06 09:53  jordi
17859
17860         * Control.cs, X11Structs.cs, XplatUIWin32.cs, XplatUIX11.cs: X11
17861           keyboard navigation
17862
17863 2004-08-06 08:02  pbartok
17864
17865         * X11Structs.cs, XplatUIX11.cs:
17866           - Fixed reparenting
17867           - Fixed window border creation
17868
17869 2004-08-05 15:38  pbartok
17870
17871         * XplatUIX11.cs:
17872           - Attempted fix for reparenting problems
17873
17874 2004-08-04 15:14  pbartok
17875
17876         * Control.cs:
17877           - Fixed Invalidation bug (calculated wrong client area)
17878           - Added ClientSize setter
17879
17880 2004-08-04 15:13  pbartok
17881
17882         * Form.cs:
17883           - Added AutoScale properties
17884
17885 2004-08-04 15:13  pbartok
17886
17887         * SWF.csproj:
17888           - Added latest files
17889
17890 2004-08-04 14:11  pbartok
17891
17892         * Control.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIWin32.cs,
17893           XplatUIX11.cs:
17894           - Added Invalidate handling
17895
17896 2004-08-03 17:09  jordi
17897
17898         * XplatUIDriver.cs: fixes spelling mistake
17899
17900 2004-07-27 09:53  jordi
17901
17902         * TrackBar.cs: fixes trackbar events, def classname, methods
17903           signature
17904
17905 2004-07-27 09:29  jordi
17906
17907         * ScrollBar.cs: fixes scrollbar events
17908
17909 2004-07-27 04:38  jordi
17910
17911         * Control.cs: changes to be able to run winforms samples
17912
17913 2004-07-26 11:42  jordi
17914
17915         * ControlPaint.cs, ITheme.cs, ProgressBar.cs, ScrollBar.cs,
17916           ThemeEngine.cs, ThemeWin32Classic.cs, TrackBar.cs: Theme support
17917
17918 2004-07-26 05:41  jordi
17919
17920         * MessageBox.cs, MessageBoxButtons.cs, MessageBoxDefaultButton.cs,
17921           MessageBoxIcon.cs, MessageBoxOptions.cs: initial messagebox
17922           implementation
17923
17924 2004-07-22 09:22  jordi
17925
17926         * LinkLabel.cs, LinkLabelLinkClickedEventHandler.cs: link label:
17927           check link overlapping, implement events, and fixes
17928
17929 2004-07-21 10:28  jordi
17930
17931         * DialogResult.cs, IButtonControl.cs: fixes comments filenames
17932
17933 2004-07-21 10:19  jordi
17934
17935         * DialogResult.cs, IButtonControl.cs, Label.cs, LinkArea.cs,
17936           LinkBehavior.cs, LinkClickedEventArgs.cs, LinkLabel.cs,
17937           LinkLabelLinkClickedEventArgs.cs,
17938           LinkLabelLinkClickedEventHandler.cs, LinkState.cs,
17939           XplatUIWin32.cs, LinkClickedEventHandler.cs: LinkLabel control
17940           implementation
17941
17942 2004-07-19 13:09  jordi
17943
17944         * Control.cs, Label.cs: label control re-written: added missing
17945           functionlity, events, and properties
17946
17947 2004-07-19 10:49  jordi
17948
17949         * Control.cs: fixes SetBounds logic
17950
17951 2004-07-19 01:29  jordi
17952
17953         * Control.cs: Call RefreshWindow only if the window has created
17954
17955 2004-07-15 14:05  pbartok
17956
17957         * ColorDepth.cs, ImageList.cs, ImageListStreamer.cs, SWF.csproj:
17958           - Implemented ImageList and ImageList.ImageCollection classes
17959           - Added ColorDepth enumeration
17960           - Updated SWF VS.Net project
17961
17962 2004-07-15 11:06  jordi
17963
17964         * XplatUIStructs.cs: added MsgButons enum
17965
17966 2004-07-15 11:03  jordi
17967
17968         * Control.cs: added basic mouse handeling events
17969
17970 2004-07-15 03:38  jordi
17971
17972         * Orientation.cs, TickStyle.cs, TrackBar.cs: Horizontal and
17973           Vertical TrackBar control implementation
17974
17975 2004-07-13 09:33  jordi
17976
17977         * HScrollBar.cs, VScrollBar.cs: vertical and hort. classes commit
17978
17979 2004-07-13 09:31  jordi
17980
17981         * Control.cs, Form.cs: commit: new properties and fixes form size
17982           problems
17983
17984 2004-07-09 14:13  miguel
17985
17986         * ProgressBar.cs: Spelling
17987
17988 2004-07-09 11:25  pbartok
17989
17990         * ProgressBar.cs:
17991           - Removed usage of Rectangle for drawing. Miguel pointed out it's
17992           faster
17993
17994 2004-07-09 11:17  miguel
17995
17996         * ProgressBar.cs: 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
17997
17998                 * ProgressBar.cs: Fixed spelling for `block'
17999
18000                 drawProgressBar: renamed to `DrawProgressBar' to follow the coding
18001                 style guidelines.
18002
18003                 Avoid using the += on rect.X, that exposed a bug in the compiler.
18004
18005 2004-07-08 23:21  pbartok
18006
18007         * AccessibleObject.cs, AccessibleRole.cs, AccessibleStates.cs,
18008           AnchorStyles.cs, Application.cs, ApplicationContext.cs,
18009           BaseCollection.cs, Binding.cs, BindingContext.cs,
18010           BindingMemberInfo.cs, BindingsCollection.cs,
18011           BindingsManagerBase.cs, Border3DSide.cs, Border3DStyle.cs,
18012           BorderStyle.cs, BoundsSpecified.cs, ButtonBorderStyle.cs,
18013           ButtonState.cs, CaptionButton.cs, CheckBox.cs,
18014           ContainerControl.cs, Control.cs, ControlEventArgs.cs,
18015           ControlEventHandler.cs, ControlPaint.cs, ControlStyles.cs,
18016           ConvertEventArgs.cs, ConvertEventHandler.cs, Copyright,
18017           CreateParams.cs, DockStyle.cs, DragAction.cs, DragDropEffects.cs,
18018           DragEventArgs.cs, DragEventHandler.cs, FlatStyle.cs, Form.cs,
18019           FrameStyle.cs, GiveFeedbackEventArgs.cs,
18020           GiveFeedbackEventHandler.cs, HelpEventArgs.cs,
18021           HelpEventHandler.cs, IContainerControl.cs, IDataObject.cs,
18022           IMessageFilter.cs, IWin32Window.cs, ImeMode.cs, InputLanguage.cs,
18023           InputLanguageChangedEventArgs.cs,
18024           InputLanguageChangedEventHandler.cs,
18025           InputLanguageChangingEventArgs.cs,
18026           InputLanguageChangingEventHandler.cs, InputLanguageCollection.cs,
18027           InvalidateEventArgs.cs, InvalidateEventHandler.cs,
18028           KeyEventArgs.cs, KeyEventHandler.cs, KeyPressEventArgs.cs,
18029           KeyPressEventHandler.cs, Keys.cs, Label.cs, LayoutEventArgs.cs,
18030           LayoutEventHandler.cs, MenuGlyph.cs, Message.cs, MouseButtons.cs,
18031           MouseEventArgs.cs, MouseEventHandler.cs, NativeWindow.cs,
18032           PaintEventArgs.cs, PaintEventHandler.cs, ProgressBar.cs,
18033           QueryAccessibilityHelpEventArgs.cs,
18034           QueryAccessibilityHelpEventHandler.cs,
18035           QueryContinueDragEventArgs.cs, QueryContinueDragEventHandler.cs,
18036           RightToLeft.cs, SWF.csproj, SWF.csproj.user, ScrollBar.cs,
18037           ScrollBars.cs, ScrollButton.cs, ScrollEventArgs.cs,
18038           ScrollEventHandler.cs, ScrollEventType.cs, ScrollableControl.cs,
18039           TODO, TODOAttribute.cs, UICues.cs, UICuesEventArgs.cs,
18040           UICuesEventHandler.cs, X11Structs.cs, XplatUI.cs,
18041           XplatUIDriver.cs, XplatUIStructs.cs, XplatUIWin32.cs,
18042           XplatUIX11.cs, lang.cs:
18043           - Initial check-in
18044